博客專欄

        EEPW首頁 > 博客 > 一文搞懂UART通信協議

        一文搞懂UART通信協議

        發布人:美男子玩編程 時間:2022-09-19 來源:工程師 發布文章

        1


        UART簡介

        UART(Universal Asynchronous Receiver/Transmitter,通用異步收發器)是一種雙向、串行、異步的通信總線,僅用一根數據接收線和一根數據發送線就能實現全雙工通信。


        典型的串口通信使用3根線完成,分別是:發送線(TX)、接收線(RX)和地線(GND),通信時必須將雙方的TX和RX交叉連接并且GND相連才可正常通信,如下圖所示:


        圖片


        2


        UART特性

        UART接口不使用時鐘信號來同步發送器和接收器設備,而是以異步方式傳輸數據。發送器根據其時鐘信號生成的位流取代了時鐘信號,接收器使用其內部時鐘信號對輸入數據進行采樣。


        同步點是通過兩個設備的相同波特率(UART和大多數串行通信一樣,發送和接收設備需要將波特率(波特率是指信息傳輸到信道的速率)設置為相同的值。對于串行端口,設定的波特率將用作每秒傳輸的最大位數)來管理的。


        如果波特率不同,發送和接收數據的時序可能會受影響,導致數據處理過程出現不一致。允許的波特率差異最大值為10%,超過此值,位的時序就會脫節。


        圖片

        下總結了關于UART必須了解的幾點:


        導線數量3根(TX、RX和GND)
        速度1200、2400、4800、9600、19200、38400、57600、115200等
        傳輸方式全雙工異步
        最大主機數量1
        最大從機數量1



        3


        UART協議幀

        在UART中,傳輸模式為數據包形式。數據包由起始位、數據幀、奇偶校驗位和停止位組成。


        圖片


        3.1、起始位

        當不傳輸數據時,UART數據傳輸線通常保持高電壓電平。若要開始數據傳輸,發送UART會將傳輸線從高電平拉到低電平并保持1個時鐘周期。


        當接收UART檢測到高到低電壓躍遷時,便開始以波特率對應的頻率讀取數據幀中的位。


        圖片


        3.2、數據位

        數據幀包含所傳輸的實際數據。如果使用奇偶校驗位,數據幀長度可以是5位到8位。如果不使用奇偶校驗位,數據幀長度可以是9位。


        在大多數情況下,數據以最低有效位優先方式發送。


        圖片


        3.3、奇偶校驗位

        奇偶性描述數字是偶數還是奇數。通過奇偶校驗位,接收UART判斷傳輸期間是否有數據發生改變。電磁輻射、不一致的波特率或長距離數據傳輸都可能改變數據位。


        校驗位可以配置成 1 位偶校驗或 1 位奇校驗或無校驗位。


        接收UART讀取數據幀后,將統計數值為1的位,檢查總數是偶數還是奇數。如果奇偶校驗位為0(偶數奇偶校驗),則數據幀中的1或邏輯高位總計應為偶數。如果奇偶校驗位為1(奇數奇偶校驗),則數據幀中的1或邏輯高位總計應為奇數。


        當奇偶校驗位與數據匹配時,UART認為傳輸未出錯。但是,如果奇偶校驗位為0,而總和為奇數,或者奇偶校驗位為1,而總和為偶數,則UART認為數據幀中的位已改變。


        圖片


        3.4、停止位

        為了表示數據包結束,發送UART將數據傳輸線從低電壓驅動到高電壓并保持1到2位時間。


        圖片


        4


        UART通信步驟

        第1步:數據從數據總線到發送器。


        圖片

        第2步:發送UART將起始位、奇偶校驗位和停止位添加到數據幀。


        圖片

        第3步:從起始位到結束位,整個數據包以串行方式從發送器送至接收器。


        接收UART以預配置的波特率對數據線進行采樣。


        圖片

        第4步:接收器丟棄數據幀中的起始位、奇偶校驗位和停止位。


        圖片

        第5步:接收器將串行數據轉換回并行數據,并將其傳輸到接收端的數據總線。


        圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: UART

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天柱县| 垦利县| 扎鲁特旗| 桐乡市| 交城县| 灌云县| 曲靖市| 泽州县| 郓城县| 祥云县| 寻甸| 府谷县| 望谟县| 张掖市| 富顺县| 安仁县| 金溪县| 浦江县| 苍南县| 富川| 育儿| 瑞昌市| 乡宁县| 南皮县| 日喀则市| 京山县| 海门市| 自贡市| 黎城县| 博兴县| 方山县| 青神县| 庆安县| 修文县| 特克斯县| 阜宁县| 临海市| 桐城市| 岱山县| 中江县| 四会市|