網(wǎng)絡(luò)消費(fèi)網(wǎng) >  5G > > 正文
嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎(chǔ)
時間:2021-12-15 06:22:04

一、 簡介

UART,全稱UniversalAsynchrONous Receiver/Transmitter,譯為通用異步收發(fā)器。

串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115kbps~230kbps。串口出現(xiàn)的初期是為了實(shí)現(xiàn)連接計(jì)算機(jī)外設(shè)的目的,初期串口一般用來連接鼠標(biāo)和外置Modem以及老式攝像頭和寫字板等設(shè)備。串口也可以應(yīng)用于兩臺計(jì)算機(jī)(或設(shè)備)之間的互聯(lián)及數(shù)據(jù)傳輸。由于串口(COM)不支持熱插拔及傳輸速率較低,目前部分新主板和大部分便攜電腦已開始取消該接口。目前串口多用于工控和測量設(shè)備以及部分通信設(shè)備中。

在幾乎所有的MCU中都會有UART接口。

from 百度百科串行接口

每當(dāng)口中提到“串口”,很容易讓人想到的名詞有UART、USART、COM口、TTL/CMOS、RS-232、RS-422、RS-485。其中:

UART,“串口”時序協(xié)議的名稱,定義了各個信號時序協(xié)議;

USART,相比UART增加了同步信號,可實(shí)現(xiàn)ISO-7816智能卡接口;

COM口,在PC等操作系統(tǒng)上,區(qū)別于USB、SATA接口的串行接口,定義了在操作系統(tǒng)中的規(guī)范;

TTL/CMOS,嵌入式硬件系統(tǒng)的信號電平;

RS-232,在UART基礎(chǔ)上再定義了信號的電氣特性

RS-422,在RS-232基礎(chǔ)上定義了差分信號傳輸?shù)碾姎馓匦?/p>

RS-485,在RS-422基礎(chǔ)上定義了半雙工模式

二、 信號線

信號線的命名,都是基于當(dāng)前終端設(shè)備而定義的。

UART常用的信號線有:

RxD,當(dāng)前終端設(shè)備的接收管腳

TxD,當(dāng)前終端設(shè)備的發(fā)送管腳

GND,當(dāng)前終端設(shè)備的地

如上所述,信號線的命名基于當(dāng)前終端設(shè)備而做的標(biāo)記,在手工接線時,可以快速判斷連接的線序。

一般的,設(shè)計(jì)者在設(shè)計(jì)PCB時,對外連接做的一些預(yù)留接口,標(biāo)記接口管腳時,都會添加絲印標(biāo)記,這時標(biāo)記的都是當(dāng)前終端設(shè)備的管腳信息。

例如標(biāo)記著RxD的引腳,應(yīng)該與外部的UART接口TxD連接。

三、 信號時序

信號線空閑時,處于高電平,當(dāng)有數(shù)據(jù)發(fā)送時,信號線以1個bit時長的低電平標(biāo)志開始通信,通信過程中,單個字節(jié)在信號線上的幀結(jié)構(gòu)如下圖:

信號管腳傳輸每個數(shù)據(jù)時,在管腳上呈現(xiàn)的是電氣信號為高低電平的變化,對應(yīng)數(shù)據(jù)每個bit的邏輯“1”和“0”。

組成UART幀結(jié)構(gòu)時,附帶的起始位、停止位,實(shí)現(xiàn)了對傳輸數(shù)據(jù)流每個字節(jié)的界定,該過程實(shí)現(xiàn)了起始式協(xié)議。同時在停止位前可選擇地插入校驗(yàn)位,實(shí)現(xiàn)了對數(shù)據(jù)幀正確性的校驗(yàn)。

如下圖是常見的UART通信過程中使用的配置參數(shù)8-N-1對應(yīng)的時序:

配置參數(shù)(8-N-1):8bit數(shù)據(jù)、無校驗(yàn)位、1bit停止位

四、 接口配置項(xiàng)

在啟用UART接口時,需要通信雙方對接口進(jìn)行相同參數(shù)的配置,才能夠正確通信。而UART可配置的參數(shù)有:

(一)波特率Baudrate:

由于UART屬于異步通信,在通信過程中沒有同步時鐘CLK來提供給接收方,接收方也就無法同步地確定每個bit的寬度,也就無法對每個bit進(jìn)行正確的采樣。因此接收方必須依靠設(shè)置與發(fā)送方相同的波特率參數(shù),這樣接收方對信號管腳進(jìn)行采樣和解碼時,才能正確判斷每個bit的值是“1”還是“0”,這也就是異步通信的特點(diǎn)。

在各類MCU的UART配置中,常用的波特率值有:

4800Bd、9600Bd、19200Bd、115200Bd,單位Bd。常見有如下代碼截圖:

要想理解波特率,來的維基百科中查詢一番

在維基百科的介紹中,可看到,波特率的值,直接以bit/s的單位取倒數(shù)后得到單位s/bit,同時在示波器端對UART發(fā)出的波形進(jìn)行抓取,可見每bit的寬度在誤差允許范圍內(nèi)基本就是波特率的倒數(shù)值。

在百度百科的詞條《波特》介紹中,波特率是指:

調(diào)制速率,指的是有效數(shù)據(jù)信號調(diào)制載波的速率,即單位時間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。它是對符號傳輸速率的一種度量,1波特即指每秒傳輸1個符號,而通過不同的調(diào)制方式,可以在一個碼元符號上負(fù)載多個bit位信息。 單位“波特”本身就已經(jīng)是代表每秒的調(diào)制數(shù),以“波特每秒”(Baud per second)為單位是一種常見的錯誤。

它代表的是信號的變化,而不是傳輸數(shù)據(jù)的多少。它表示每秒鐘內(nèi)通信線路狀態(tài)改變的次數(shù)。如果數(shù)據(jù)不壓縮,波特等于每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù),如果數(shù)據(jù)進(jìn)行了壓縮。那么每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)通常大于調(diào)制速率,使得交換使用波特和比特/秒有時會產(chǎn)生錯誤。

但是在現(xiàn)代的實(shí)際使用中,多數(shù)情況下,配置了MCU的波特率后,對輸出信號進(jìn)行觀測發(fā)現(xiàn),此時波特率等于比特率。也正是因?yàn)榇藭r傳輸?shù)姆柤?bit一個Byte的數(shù)據(jù)量,從而波特率等于比特率。

關(guān)鍵詞: 嵌入式 UART

版權(quán)聲明:
    凡注明來網(wǎng)絡(luò)消費(fèi)網(wǎng)的作品,版權(quán)均屬網(wǎng)絡(luò)消費(fèi)網(wǎng)所有,未經(jīng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明"來源:網(wǎng)絡(luò)消費(fèi)網(wǎng)"。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
    除來源署名為網(wǎng)絡(luò)消費(fèi)網(wǎng)稿件外,其他所轉(zhuǎn)載內(nèi)容之原創(chuàng)性、真實(shí)性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考并自行核實(shí)。
熱文

網(wǎng)站首頁 |網(wǎng)站簡介 | 關(guān)于我們 | 廣告業(yè)務(wù) | 投稿信箱
 

Copyright © 2000-2020 m.netfop.cn All Rights Reserved.
 

中國網(wǎng)絡(luò)消費(fèi)網(wǎng) 版權(quán)所有 未經(jīng)書面授權(quán) 不得復(fù)制或建立鏡像
 

聯(lián)系郵箱:920 891 263@qq.com

備案號:京ICP備2022016840號-15

營業(yè)執(zhí)照公示信息