概述
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱(chēng)作UART。它將要傳輸?shù)?a href="http://ttokpm.com/soft/special/" target="_blank">資料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號(hào)轉(zhuǎn)成串行輸出信號(hào)的芯片,UART通常被集成于其他通訊接口的連結(jié)上。 具體實(shí)物表現(xiàn)為獨(dú)立的模塊化芯片,或作為集成于微處理器中的周邊設(shè)備。一般是RS-232C規(guī)格的,與類(lèi)似Maxim的MAX232之類(lèi)的標(biāo)準(zhǔn)信號(hào)幅度變換芯片進(jìn)行搭配,作為連接外部設(shè)備的接口。在UART上追加同步方式的序列信號(hào)變換電路的產(chǎn)品,被稱(chēng)為USART(Universal Synchronous Asynchronous Receiver Transmitter)。
接口
在UART通信中,兩個(gè)UART直接相互通信。發(fā)送UART將來(lái)自CPU等控制設(shè)備的并行數(shù)據(jù)轉(zhuǎn)換為串行形式,并將其串行發(fā)送到接收UART,接收UART然后將串行數(shù)據(jù)轉(zhuǎn)換回接收設(shè)備的并行數(shù)據(jù)。數(shù)據(jù)從發(fā)送UART的Tx引腳流向接收UART的Rx引腳,硬件連接比較簡(jiǎn)單,僅需要3條線,如果兩個(gè)設(shè)備UART電平不一致需要轉(zhuǎn)換電平再連接。
TX - 數(shù)據(jù)發(fā)送接口 RX - 數(shù)據(jù)接受接口 GND - 保證兩設(shè)備共地,有統(tǒng)一的參考平面
通信協(xié)議
UART串口傳輸?shù)臄?shù)據(jù)被組織成數(shù)據(jù)包。每個(gè)數(shù)據(jù)包包含1個(gè)起始位,5至9個(gè)數(shù)據(jù)位,可選的奇偶校驗(yàn)位和1或1.5或2個(gè)停止位,協(xié)議如下: |起始位|數(shù)據(jù)位 |奇偶校驗(yàn)位|停止位| |--|--|--|--| | 1bit | 5-9bit |0-1bit | 1-2bit | 空閑位 :UART協(xié)議規(guī)定,當(dāng)總線處于空閑狀態(tài)時(shí)信號(hào)線的狀態(tài)為‘1’即高電平,表示當(dāng)前線路上沒(méi)有數(shù)據(jù)傳輸。
起始位 :開(kāi)始進(jìn)行數(shù)據(jù)傳輸時(shí)發(fā)送方要先發(fā)出一個(gè)低電平’0’來(lái)表示傳輸字符的開(kāi)始。因?yàn)榭偩€空閑時(shí)為高電平所以開(kāi)始一次通信時(shí)先發(fā)送一個(gè)明顯區(qū)別于空閑狀態(tài)的信號(hào)即低電平。
數(shù)據(jù)位 :起始位之后就是要傳輸需要傳輸?shù)臄?shù)據(jù),數(shù)據(jù)可以是5,6,7,8,9位,構(gòu)成一個(gè)字符,一般都是8位。先發(fā)送最低位最后發(fā)送最高位,使用低電平表示‘0’高電平表示‘1’完成數(shù)據(jù)位的傳輸。 奇偶校驗(yàn)位 :數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)數(shù)據(jù)傳送的正確性。校驗(yàn)位其實(shí)是調(diào)整個(gè)數(shù),串口校驗(yàn)分幾種方式:
- 無(wú)校驗(yàn)(no parity)
- 奇校驗(yàn)(odd parity):如果數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),則校驗(yàn)位為“1”,如果“1”的數(shù)目是奇數(shù),校驗(yàn)位為“0”。
- 偶校驗(yàn)(even parity):如果數(shù)據(jù)為中“1”的數(shù)目是偶數(shù),則校驗(yàn)位為“0”,如果為奇數(shù),校驗(yàn)位為“1”。
- mark parity:校驗(yàn)位始終為1(不常用)。
- parity:校驗(yàn)位始終為0(不常用)。
停止位 :數(shù)據(jù)結(jié)束標(biāo)志,可以是1位,1.5位,2位的高電平。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備之間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘的機(jī)會(huì)。停止位個(gè)數(shù)越多,數(shù)據(jù)傳輸越穩(wěn)定,但是數(shù)據(jù)傳輸速度也越慢。 傳輸方向 :即數(shù)據(jù)是從高位(MSB)開(kāi)始傳輸還是從低位(LSB)開(kāi)始傳輸。
波特率
在電子通信領(lǐng)域,波特(Baud)即調(diào)制速率,指的是有效數(shù)據(jù)訊號(hào)調(diào)制載波的速率,即單位時(shí)間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。 波特率表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),它是對(duì)符號(hào)傳輸速率的一種度量,它用單位時(shí)間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來(lái)表示,1波特即指每秒傳輸1個(gè)符號(hào)。 數(shù)據(jù)傳輸速率使用波特率來(lái)表示。單位bps(bits per second),常見(jiàn)的波特率9600bps、115200bps等等,其他標(biāo)準(zhǔn)的波特率是1200,2400,4800,19200,38400,57600。舉個(gè)例子,如果串口波特率設(shè)置為115200bps,那么傳輸一個(gè)比特需要的時(shí)間是1/115200≈8.68us。
示例
設(shè)置115200,傳輸單個(gè)0x62的數(shù)據(jù),使用示波器抓得的波形如下所示。 上圖是uart協(xié)議傳輸一個(gè)0x62的數(shù)據(jù),通過(guò)示波器的uart解碼而得到的波形示意圖,由于未設(shè)置奇偶校驗(yàn)位,故在上圖未顯示出來(lái);比特流格式為L(zhǎng)SB,故從低位開(kāi)始傳輸,接收數(shù)據(jù)為0100 0110,實(shí)際的數(shù)據(jù)應(yīng)該反過(guò)來(lái),即0110 0010(0x62)。
設(shè)置115200,傳輸0x55,0xAA,0x03等多個(gè)數(shù)據(jù)時(shí),使用示波器抓得的波形如下所示。
上圖是uart協(xié)議傳輸0x55,0xAA,0x03等多個(gè)數(shù)據(jù),通過(guò)示波器的uart解碼而得到的波形示意圖,由于未設(shè)置奇偶校驗(yàn)位,故在上圖未顯示出來(lái),設(shè)置的停止位為1位;比特流格式為L(zhǎng)SB,故從低位開(kāi)始傳輸,接收三個(gè)數(shù)據(jù)分別為1010 1010、0101 0101、1100 0000,實(shí)際的數(shù)據(jù)應(yīng)該反過(guò)來(lái),即0101 0101(0x55)、1010 1010(0xAA)、0000 0011(0x03)。
審核編輯:湯梓紅
-
串口
+關(guān)注
關(guān)注
14文章
1540瀏覽量
76059 -
uart
+關(guān)注
關(guān)注
22文章
1219瀏覽量
101117 -
通訊協(xié)議
+關(guān)注
關(guān)注
10文章
265瀏覽量
20311
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論