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