色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【世說知識】一文搞懂UART通信協議

Excelpoint世健 ? 2023-02-02 10:46 ? 次閱讀

UART,即通用異步接收器/發送器,是最常用的設備間通信協議之一,正確配置后,UART可以配合許多不同類型的涉及發送和接收串行數據的串行協議工作。在串行通信中,數據通過單條線路或導線逐位傳輸。在雙向通信中,我們使用兩根導線來進行連續的串行數據傳輸。根據應用和系統要求,串行通信需要的電路和導線較少,可降低實現成本。

本文將UART用作硬件通信協議應遵循的標準步驟進行說明,討論使用UART的基本原則,重點是數據包傳輸、標準幀協議和定制幀協議;定制幀協議將是安全合規性方面的增值特性,尤其是在代碼開發期間。在產品開發過程中,本文還將分享一些基本步驟,以檢查數據表的實際使用,目標是幫助更好地理解和遵循UART標準,以便最大程度地發揮其能力和應用優勢,特別是在開發新產品時。通信協議通信協議在組織設備之間的通信時扮演著重要角色。它基于系統要求而以不同方式進行設計。此類協議具有特定的規則,為實現成功通信,不同設備都遵循該規則。根據定義,UART是一種硬件通信協議,以可配置的速度使用異步串行通信。異步意味著沒有時鐘信號來同步從發送設備進入接收端的輸出位。嵌入式系統微控制器和計算機大多將UART作為設備間硬件通信協議的一種形式。在可用通信協議中,UART的發送和接收端僅使用兩條線。盡管它是一種廣泛使用的硬件通信方法,但它并非在所有時候都是完全優化的。在微控制器內部使用UART模塊時,通常會忽略幀協議的適當實現。

每個UART設備的兩個信號分別命名為:

  • 發送器(Tx)
  • 接收器(Rx)

每個設備的發送器和接收器線的主要作用是用于串行通信的串行數據的發送和接收。

發送UART連接到以并行形式發送數據的控制數據總線。然后,數據將在傳輸線路(導線)上一位一位地串行傳輸到接收UART。反過來,對于接收設備,串行數據會被轉換為并行數據。

UART線用作發送和接收數據的通信介質。請注意,UART設備具有專門用于發送或接收的發送和接收引腳。對于UART和大多數串行通信,發送和接收設備需要將波特率設置為相同的值。波特率是指信息傳輸到信道的速率。對于串行端口,設定的波特率將用作每秒傳輸的最大位數。表1總結了關于UART必須了解的幾點。

5a7d9cf6-a271-11ed-ad0d-dac502259ad0.png

表1.UART概要

UART接口不使用時鐘信號來同步發送器和接收器設備,而是以異步方式傳輸數據。發送器根據其時鐘信號生成的位流取代了時鐘信號,接收器使用其內部時鐘信號對輸入數據進行采樣。同步點是通過兩個設備的相同波特率來管理的。如果波特率不同,發送和接收數據的時序可能會受影響,導致數據處理過程出現不一致。允許的波特率差異最大值為10%,超過此值,位的時序就會脫節。數據傳輸在UART中,傳輸模式為數據包形式。連接發送器和接收器的機制包括串行數據包的創建和物理硬件線路的控制。數據包由起始位、數據幀、奇偶校驗位和停止位組成。

起始位

當不傳輸數據時,UART數據傳輸線通常保持高電壓電平。若要開始數據傳輸,發送UART會將傳輸線從高電平拉到低電平并保持1個時鐘周期。當接收UART檢測到高到低電壓躍遷時,便開始以波特率對應的頻率讀取數據幀中的位。

5a9941ea-a271-11ed-ad0d-dac502259ad0.jpg

圖4.起始位

數據幀

數據幀包含所傳輸的實際數據。如果使用奇偶校驗位,數據幀長度可以是5位到8位。如果不使用奇偶校驗位,數據幀長度可以是9位。在大多數情況下,數據以最低有效位優先方式發送。

5aae83e8-a271-11ed-ad0d-dac502259ad0.jpg

圖5.數據幀

奇偶校驗

奇偶性描述數字是偶數還是奇數。通過奇偶校驗位,接收UART判斷傳輸期間是否有數據發生改變。電磁輻射、不一致的波特率或長距離數據傳輸都可能改變數據位。接收UART讀取數據幀后,將計數值為1的位,檢查總數是偶數還是奇數。如果奇偶校驗位為0(偶數奇偶校驗),則數據幀中的1或邏輯高位總計應為偶數。如果奇偶校驗位為1(奇數奇偶校驗),則數據幀中的1或邏輯高位總計應為奇數。當奇偶校驗位與數據匹配時,UART認為傳輸未出錯。但是,如果奇偶校驗位為0,而總和為奇數,或者奇偶校驗位為1,而總和為偶數,則UART認為數據幀中的位已改變。

5ac25850-a271-11ed-ad0d-dac502259ad0.jpg

圖6.奇偶校驗位

停止位

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

5adefa96-a271-11ed-ad0d-dac502259ad0.jpg

圖7.停止位UART傳輸步驟

第一步:發送UART從數據總線并行接收數據。

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


數據幀第三步:從起始位到結束位,整個數據包以串行方式從發送UART送至接收UART。接收UART以預配置的波特率對數據線進行采樣。

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

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

幀協議UART的一個關鍵特性是幀協議的實現,但還沒有被充分使用。其主要用途和重要性是為每臺設備提供安全和保護方面的增值。例如,當兩個設備使用相同的UART幀協議時,有可能在沒有檢查配置的情況下連接到同一個UART,設備會連接到不同的引腳,這可能導致系統故障。另一方面,實現幀協議可確保安全性,因為需要根據設計幀協議解析接收到的信息。每個幀協議都經過專門設計,以確保唯一性和安全性。在設計幀協議時,設計人員可以給不同設備設置期望的報頭和報尾(包括CRC)。在圖13中,2個字節被設置為報頭的一部分。

5b57d3bc-a271-11ed-ad0d-dac502259ad0.jpg

圖13.UART幀協議示例根據示例,您可以給您的設備設置獨有的報頭、報尾和CRC。

報頭1(H1為0xAB)和報頭2(H2為0xCD)

報頭是確定您是否在與正確的設備通信的唯一標識符。

命令(CMD)選擇

命令將取決于用于創建兩個設備之間通信的命令列表。

  • 每個命令的數據長度(DL)

數據長度將取決于所選的命令。您可以根據所選的命令來使數據長度最大化,因此它會隨選擇而變化。在這種情況下,數據長度可以調整。

  • 數據n(可變數據)

數據是要從設備傳輸的有效載荷。

  • 報尾1(T1為0xE1)和報尾2(T2為0xE2)

報尾是在傳輸結束后添加的數據。就像報頭一樣,報尾也可以唯一標識符。

  • 循環冗余校驗(CRC公式)

循環冗余校驗公式是一種附加的錯誤檢測模式,用于檢測原始數據是否發生意外更改。發送設備的CRC值必須始終等于接收器端的CRC計算值。

建議為每個UART設備實現幀協議來增加安全性,幀協議要求發送和接收設備使用相同的配置。

UART工作原理

使用任何硬件通信協議時,首先必須檢查數據手冊和硬件參考手冊。以下是要遵循的步驟:

第一步:檢查設備的數據手冊接口。

5b6ad5d4-a271-11ed-ad0d-dac502259ad0.jpg

圖14.微控制器數據手冊

第二步:在存儲器映射下面檢查UART地址。

5b9f21c2-a271-11ed-ad0d-dac502259ad0.jpg

圖15.微控制器存儲器映射

第三步:檢查UART端口的具體信息,例如工作模式、數據位長度、奇偶校驗位和停止位。示例MCU提供了一個全雙工UART端口,其與PC標準UART完全兼容。UART端口提供一個簡化的UART接口用于連接其他外設或主機,支持全雙工、DMA和異步串行數據傳輸。UART端口支持5到8個數據位,以及無校驗、偶校驗和奇校驗。幀由一個半或兩個停止位終止。

第四步:檢查UART操作的詳細信息,包括波特率計算。波特率通過以下示例公式進行配置。此公式隨微控制器而異。

數據手冊中的UART端口詳細信息示例:

  • 5到8個數據位
  • 1、2或1 ?個停止位
  • 無、偶數或奇數奇偶校驗
  • 編程過采樣率為4、8、16、32
  • 波特率 = PCLK/((M + N/2048) × 2OSR + 2× DIV

其中:OSR(過采樣率)UART_LCR2.OSR = 0至3DIV(波特率分頻器)UART_DIV = 1至65535M(DIVM小數波特率M)UART_FBR.DIVM = 1至3N(DIVM小數波特率M)UART_FBR.DIVN = 0至2047

第五步:對于波特率,務必檢查要使用的外設時鐘(PCLK)。此示例有26 MHz PCLK和16 MHz PCLK可用。請注意,OSR、DIV、DIVM和DIVN隨設備而異。

5bacda42-a271-11ed-ad0d-dac502259ad0.png

表2.基于26 MHz PCLK的波特率示例

5bbebdde-a271-11ed-ad0d-dac502259ad0.png

表3.基于16 MHz PCLK的波特率示例第六步:下一部分是檢查UART配置的詳細寄存器。了解計算波特率時的參數,例如UART_LCR2、UART_DIV和UART_FBR。表4要列出所涉及的具體寄存器。

5bd4fcfc-a271-11ed-ad0d-dac502259ad0.png

表4.UART寄存器描述第七步:檢查每個寄存器下的詳細信息,代入值以計算波特率,然后開始實現UART。應用范例當開發穩健的、質量驅動的產品時,熟悉UART通信協議非常有優勢。知道如何僅使用兩條線發送數據,以及如何傳輸整個數據包或有效載荷,將有助于確保數據正確無誤地發送和接收。UART是最常用的硬件通信協議,具備相關知識可以在將來的設計中實現設計靈活性。

您可以將UART用于許多應用,例如:

  • 調試:在開發過程中及早發現系統錯誤很重要。添加UART便可從系統捕捉消息,幫助排除錯誤。
  • 制造功能級追蹤:日志在制造業中非常重要。通過日志可確定功能,提醒操作員生產線上正在發生的事情。
  • 客戶更新:軟件更新非常重要。完整的動態硬件和支持更新的軟件對于擁有完整系統至關重要。
  • 測試/驗證:在產品離開制造過程之前進行驗證有助于為客戶提供最優質的產品。


原文轉自亞德諾半導體

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6024

    瀏覽量

    135950
  • uart
    +關注

    關注

    22

    文章

    1235

    瀏覽量

    101354
收藏 人收藏

    評論

    相關推薦

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    通信協議棧是個復雜的系統,它涵蓋了多種通信方式和模塊,以實現車內ECU之間的高效、可靠的數據交換。以下是對AUTOSAR通信協議的解析及實現AUTOSAR
    的頭像 發表于 12-17 14:54 ?338次閱讀

    串口通信協議解析 串口通信應用實例

    串口通信協議解析 串口通信協議是指規定了數據包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定致的數據包格式才能正常收發數據的有關規范。以下是串口通信協議的介紹: 基
    的頭像 發表于 11-21 17:03 ?488次閱讀

    CAN總線與其他串行通信協議比較

    CAN總線與其他串行通信協議相比,具有其獨特的特點和優勢。以下是對CAN總線與UART、I2C、SPI等常見串行通信協議的比較: 、基本特性比較
    的頭像 發表于 11-12 09:56 ?560次閱讀

    PLC控制系統的通信協議解析

    在現代工業自動化中,PLC控制系統扮演著至關重要的角色。它們不僅需要處理復雜的邏輯控制任務,還需要與其他系統和設備進行通信。為了實現這目標,PLC系統必須遵循系列的通信協議。 PL
    的頭像 發表于 11-08 09:46 ?601次閱讀

    UART通信協議介紹和數據傳輸工作流程

    UART種通用串行數據總線,用于異步通信。該總線雙向通信,可實現全雙工傳輸和接收。UART通常用來實現與PC之間數據
    的頭像 發表于 10-24 14:20 ?597次閱讀
    <b class='flag-5'>UART</b><b class='flag-5'>通信協議</b>介紹和數據傳輸工作流程

    PROFINET通信協議是什么

    PROFINET通信協議種專為工業自動化領域設計的基于以太網的實時通信協議。以下是對PROFINET通信協議的詳細解析,包括其定義、特點、體系結構、工作原理、
    的頭像 發表于 09-25 18:13 ?1494次閱讀

    UART協議的工作原理和應用場景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)協議種廣泛使用的串行通信協議,它允許計算機與外部設備之間通過串
    的頭像 發表于 08-25 17:15 ?2906次閱讀

    簡單認識UART通信協議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)通信協議種常見的串行通信協議,廣泛應用于計算機、嵌入式系統、傳
    的頭像 發表于 07-25 18:07 ?1418次閱讀

    can的通信協議主要由什么完成

    CAN(Controller Area Network)是種基于消息的通信協議,主要用于汽車和工業領域。它是種局域網技術,允許多個設備在同網絡上進行
    的頭像 發表于 06-16 10:29 ?593次閱讀

    高速串行通信協議都有哪些

    高速串行通信協議是現代電子設備中用于數據傳輸的關鍵技術。這些協議在各種應用中發揮著重要作用,如計算機、移動設備、網絡設備等。以下是些常見的高速串行通信協議,以及它們的詳細描述。 US
    的頭像 發表于 05-31 16:11 ?1079次閱讀

    簡單認識UART串行通信協議

    在電子通信領域,UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是種非常常見的串行通信協議。它被廣泛應用于各種設
    的頭像 發表于 05-27 16:09 ?2088次閱讀

    RS485通信協議的特性和應用范圍

    隨著工業自動化和物聯網技術的飛速發展,數據通信協議的重要性日益凸顯。RS485通信協議作為種廣泛應用于工業自動化領域的串行通信協議,其穩定性和可靠性得到了廣泛的認可。本文將對RS48
    的頭像 發表于 05-23 16:27 ?1696次閱讀

    高速串行通信協議詳解

    隨著信息技術的飛速發展,數據通信已成為現代社會不可或缺的部分。在數據通信中,串行通信作為種基本的通信
    的頭像 發表于 05-16 16:45 ?807次閱讀

    UART串口通信協議是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是通信接口協議,用于實現串口通信
    的頭像 發表于 03-19 17:26 ?1367次閱讀

    有關通信協議些問題?

    抗干擾就加強濾波,要求輸入信號隔離就加隔離芯片或其他方式,總之這段電路不應該太夏雜吧,遠不如芯片內部的信號處理電路?最后請推薦幾本有關串行通信協議方面硬件方面的書,還有個問題,這些通信協議
    發表于 01-14 00:58
    主站蜘蛛池模板: 渔夫床满艳史bd高清在线直播| 1788vv视频| 97视频免费观看| 大胸美女被cao哭| 寂寞夜晚在线视频观看| 免费成人高清在线视频| 特污兔午夜影视院| 自拍黄色片| 国产成人在线视频播放| 久久精品国产亚洲AV蜜臀| 青柠在线观看免费高清电视剧荣耀| 午夜无码国产理论在线| 91精品免费久久久久久久久| 国产成人无码精品久久久免费69 | 亚洲视频中文字幕在线| xxnx18日本| 久久国产免费观看精品1| 日本六九视频| 在线观看国产高清免费不卡| 国产 亚洲 另类 欧美 在线| 久久一级片| 无码AV毛片色欲欧洲美洲| 中文字幕不卡在线视频| 国产精品自拍| 欧美深夜0000XXXX疯狂| 亚洲欧美一区二区三区四区| 成人国产在线视频| 美女被男人撕衣舔胸| 亚洲国产中文字幕在线视频综合| bt成人社区| 久久婷婷电影网| 亚洲国产精品线在线观看| 出租屋交换人妻 全文| 久久在精品线影院精品国产| 无止侵犯高H1V3无止侵犯| GAY空少被体育生开菊| 久久视频这里只精品99re8久| 亚州天堂在线视频av| 不分昼夜H1V3| 免费果冻传媒2021视频| 亚洲色t图|