UART通信協(xié)議的主要定義是什么?詳解分析
UART將是下述內(nèi)容的主要介紹對(duì)象,通過(guò)這篇文章,小編希望大家可以對(duì)它的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。
一、UART
UART是“Universal Asynchronous Receiver/Transmitter”,通用異步收發(fā)器的縮寫(xiě)。在19世紀(jì)60年代,為了解決計(jì)算機(jī)和電傳打字機(jī)通信,Bell發(fā)明了 UART協(xié)議,將并行輸入信號(hào)轉(zhuǎn)換成串行輸出信號(hào)。因?yàn)閁ART簡(jiǎn)單實(shí)用的特性,其已經(jīng)成為一種使用非常廣泛的通訊協(xié)議。我們?nèi)粘=佑|到的串口,RS232,RS485等總線,內(nèi)部使用的基本都是 UART協(xié)議 。
為了更好的理解和分析協(xié)議與總線的關(guān)系,我們通常把一個(gè)完整的通訊規(guī)范劃分成物理層,協(xié)議層以及應(yīng)用層。物理層只定義真實(shí)的信號(hào)特性(比如電壓,電流,驅(qū)動(dòng)能力等),以及電信號(hào)與邏輯信號(hào)0和1的對(duì)應(yīng)關(guān)系;協(xié)議層不關(guān)心底層的0和1具體怎么實(shí)現(xiàn),只規(guī)定邏輯信號(hào)的協(xié)議規(guī)范以及通訊過(guò)程(例如起始,數(shù)據(jù)以及結(jié)束等);應(yīng)用層不關(guān)心數(shù)據(jù)是怎么獲取的,只定義數(shù)據(jù)表示的意義,以及如何實(shí)現(xiàn)具體的業(yè)務(wù)邏輯。
最簡(jiǎn)單的UART協(xié)議應(yīng)用,通常物理層只需要兩根傳輸線,一根用于發(fā)送,一根用于接收,從而實(shí)現(xiàn)全雙工通訊。對(duì)于單向傳輸,也可以只使用一根傳輸線。此類應(yīng)用最典型的實(shí)例就是單片機(jī)的RX/TX端口互相連接,從而實(shí)現(xiàn)基于TTL電平的UART通訊。對(duì)于不同的傳輸距離以及可靠性的要求,替換不同的物理層實(shí)現(xiàn)既可以得到我們常見(jiàn)的RS232、RS485等通訊總線。
二、UART接口協(xié)議詳解
UART接口協(xié)議不使用時(shí)鐘信號(hào)來(lái)同步發(fā)送器和接收器設(shè)備,而是以異步方式傳輸數(shù)據(jù)。發(fā)送器根據(jù)其時(shí)鐘信號(hào)生成的位流取代了時(shí)鐘信號(hào),接收器使用其內(nèi)部時(shí)鐘信號(hào)對(duì)輸入數(shù)據(jù)進(jìn)行采樣。同步點(diǎn)是通過(guò)兩個(gè)設(shè)備的相同波特率來(lái)管理的。如果波特率不同,發(fā)送和接收數(shù)據(jù)的時(shí)序可能會(huì)受影響,導(dǎo)致數(shù)據(jù)處理過(guò)程出現(xiàn)不一致。允許的波特率差異最大值為10%,超過(guò)此值,位的時(shí)序就會(huì)脫節(jié)。數(shù)據(jù)傳輸在UART中,傳輸模式為數(shù)據(jù)包形式。連接發(fā)送器和接收器的機(jī)制包括串行數(shù)據(jù)包的創(chuàng)建和物理硬件線路的控制。數(shù)據(jù)包由起始位、數(shù)據(jù)幀、奇偶校驗(yàn)位和停止位組成。
1、起始位
當(dāng)不傳輸數(shù)據(jù)時(shí),UART數(shù)據(jù)傳輸線通常保持高電壓電平。若要開(kāi)始數(shù)據(jù)傳輸,發(fā)送UART會(huì)將傳輸線從高電平拉到低電平并保持1個(gè)時(shí)鐘周期。當(dāng)接收UART檢測(cè)到高到低電壓躍遷時(shí),便開(kāi)始以波特率對(duì)應(yīng)的頻率讀取數(shù)據(jù)幀中的位。
2、數(shù)據(jù)幀
數(shù)據(jù)幀包含所傳輸?shù)膶?shí)際數(shù)據(jù)。如果使用奇偶校驗(yàn)位,數(shù)據(jù)幀長(zhǎng)度可以是5位到8位。如果不使用奇偶校驗(yàn)位,數(shù)據(jù)幀長(zhǎng)度可以是9位。在大多數(shù)情況下,數(shù)據(jù)以最低有效位優(yōu)先方式發(fā)送。
3、奇偶校驗(yàn)
奇偶性描述數(shù)字是偶數(shù)還是奇數(shù)。通過(guò)奇偶校驗(yàn)位,接收UART判斷傳輸期間是否有數(shù)據(jù)發(fā)生改變。電磁輻射、不一致的波特率或長(zhǎng)距離數(shù)據(jù)傳輸都可能改變數(shù)據(jù)位。接收UART讀取數(shù)據(jù)幀后,將計(jì)數(shù)值為1的位,檢查總數(shù)是偶數(shù)還是奇數(shù)。如果奇偶校驗(yàn)位為0(偶數(shù)奇偶校驗(yàn)),則數(shù)據(jù)幀中的1或邏輯高位總計(jì)應(yīng)為偶數(shù)。如果奇偶校驗(yàn)位為1(奇數(shù)奇偶校驗(yàn)),則數(shù)據(jù)幀中的1或邏輯高位總計(jì)應(yīng)為奇數(shù)。當(dāng)奇偶校驗(yàn)位與數(shù)據(jù)匹配時(shí),UART認(rèn)為傳輸未出錯(cuò)。但是,如果奇偶校驗(yàn)位為0,而總和為奇數(shù),或者奇偶校驗(yàn)位為1,而總和為偶數(shù),則UART認(rèn)為數(shù)據(jù)幀中的位已改變。
4、停止位
為了表示數(shù)據(jù)包結(jié)束,發(fā)送UART將數(shù)據(jù)傳輸線從低電壓驅(qū)動(dòng)到高電壓并保持1到2位時(shí)間。
第一步:發(fā)送UART從數(shù)據(jù)總線并行接收數(shù)據(jù)。
至發(fā)送UART第二步:發(fā)送UART將起始位、奇偶校驗(yàn)位和停止位添加到數(shù)據(jù)幀。
數(shù)據(jù)幀第三步:從起始位到結(jié)束位,整個(gè)數(shù)據(jù)包以串行方式從發(fā)送UART送至接收UART。接收UART以預(yù)配置的波特率對(duì)數(shù)據(jù)線進(jìn)行采樣。
傳輸?shù)谒牟剑航邮誙ART丟棄數(shù)據(jù)幀中的起始位、奇偶校驗(yàn)位和停止位。
第五步:接收UART將串行數(shù)據(jù)轉(zhuǎn)換回并行數(shù)據(jù),并將其傳輸?shù)浇邮斩说臄?shù)據(jù)總線。
上述所有信息便是小編這次為大家推薦的有關(guān)UART的內(nèi)容,希望大家能夠喜歡,想了解更多有關(guān)它的信息或者其它內(nèi)容,請(qǐng)關(guān)注我們網(wǎng)站哦。