<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > RF/微波 > 正文

    了解通用異步接收器/發送器的硬件通信協議

    發布時間:2021-02-01 來源:Eric Peňa 和 Mary Grace Legaspi 責任編輯:wenwei

    【導讀】UART,即通用異步接收器/發送器,是最常用的設備間通信協議之一。本文將UART用作硬件通信協議應遵循的標準步驟進行說明。
     
    正確配置后,UART可以配合許多不同類型的涉及發送和接收串行數據的串行協議工作。在串行通信中,數據通過單條線路或導線逐位傳輸。在雙向通信中,我們使用兩根導線來進行連續的串行數據傳輸。根據應用和系統要求,串行通信需要的電路和導線較少,可降低實現成本。
     
    本文將討論使用UART的基本原則,重點是數據包傳輸、標準幀協議和定制幀協議;定制幀協議將是安全合規性方面的增值特性,尤其是在代碼開發期間。在產品開發過程中,本文檔還旨在分享一些基本步驟,以檢查數據表的實際使用。
     
    最后,本文的目標是幫助更好地理解和遵循UART標準,以便最大程度地發揮其能力和應用優勢,特別是在開發新產品時。
     
    "溝通最大的問題在于,人們想當然地認為已經溝通了。"
    ——喬治·蕭伯納
     
    通信協議在組織設備之間的通信時扮演著重要角色。它基于系統要求而以不同方式進行設計。此類協議具有特定的規則,為實現成功通信,不同設備都遵循該規則。
     
    嵌入式系統、微控制器和計算機大多將UART作為設備間硬件通信協議的一種形式。在可用通信協議中,UART的發送和接收端僅使用兩條線。
     
    盡管它是一種廣泛使用的硬件通信方法,但它并非在所有時候都是完全優化的。在微控制器內部使用UART模塊時,通常會忽略幀協議的適當實現。
     
    根據定義,UART是一種硬件通信協議,以可配置的速度使用異步串行通信。異步意味著沒有時鐘信號來同步從發送設備進入接收端的輸出位。
     
    接口
     
    了解通用異步接收器/發送器的硬件通信協議
    圖1.兩個UART彼此直接通信
     
    每個UART設備的兩個信號分別命名為:
     
    ●     發送器(Tx)
    ●     接收器(Rx)
     
    每個設備的發送器和接收器線的主要作用是用于串行通信的串行數據的發送和接收。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖2.帶數據總線的UART
     
    發送UART連接到以并行形式發送數據的控制數據總線。然后,數據將在傳輸線路(導線)上一位一位地串行傳輸到接收UART。反過來,對于接收設備,串行數據會被轉換為并行數據。
     
    UART線用作發送和接收數據的通信介質。請注意,UART設備具有專門用于發送或接收的發送和接收引腳。
     
    對于UART和大多數串行通信,發送和接收設備需要將波特率設置為相同的值。波特率是指信息傳輸到信道的速率。對于串行端口,設定的波特率將用作每秒傳輸的最大位數。
     
    表1總結了關于UART必須了解的幾點。
     
    表1.UART概要
    了解通用異步接收器/發送器的硬件通信協議
     
    UART接口不使用時鐘信號來同步發送器和接收器設備,而是以異步方式傳輸數據。發送器根據其時鐘信號生成的位流取代了時鐘信號,接收器使用其內部時鐘信號對輸入數據進行采樣。同步點是通過兩個設備的相同波特率來管理的。如果波特率不同,發送和接收數據的時序可能會受影響,導致數據處理過程出現不一致。允許的波特率差異最大值為10%,超過此值,位的時序就會脫節。
     
    數據傳輸
     
    在UART中,傳輸模式為數據包形式。連接發送器和接收器的機制包括串行數據包的創建和物理硬件線路的控制。數據包由起始位、數據幀、奇偶校驗位和停止位組成。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖3.UART數據包
     
    起始位
     
    當不傳輸數據時,UART數據傳輸線通常保持高電壓電平。若要開始數據傳輸,發送UART會將傳輸線從高電平拉到低電平并保持1個時鐘周期。當接收UART檢測到高到低電壓躍遷時,便開始以波特率對應的頻率讀取數據幀中的位。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖4.起始位
     
    數據幀
     
    數據幀包含所傳輸的實際數據。如果使用奇偶校驗位,數據幀長度可以是5位到8位。如果不使用奇偶校驗位,數據幀長度可以是9位。在大多數情況下,數據以最低有效位優先方式發送。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖5.數據幀
     
    奇偶校驗
     
    奇偶性描述數字是偶數還是奇數。通過奇偶校驗位,接收UART判斷傳輸期間是否有數據發生改變。電磁輻射、不一致的波特率或長距離數據傳輸都可能改變數據位。
     
    接收UART讀取數據幀后,將計數值為1的位,檢查總數是偶數還是奇數。如果奇偶校驗位為0(偶數奇偶校驗),則數據幀中的1或邏輯高位總計應為偶數。如果奇偶校驗位為1(奇數奇偶校驗),則數據幀中的1或邏輯高位總計應為奇數。
     
    當奇偶校驗位與數據匹配時,UART認為傳輸未出錯。但是,如果奇偶校驗位為0,而總和為奇數,或者奇偶校驗位為1,而總和為偶數,則UART認為數據幀中的位已改變。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖6.奇偶校驗位
     
    停止位
     
    為了表示數據包結束,發送UART將數據傳輸線從低電壓驅動到高電壓并保持1到2位時間。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖7.停止位
     
    UART傳輸步驟
     
    第一步:發送UART從數據總線并行接收數據。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖8.數據總線至發送UART
     
    第二步:發送UART將起始位、奇偶校驗位和停止位添加到數據幀。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖9.Tx側的UART數據幀
     
    第三步:從起始位到結束位,整個數據包以串行方式從發送UART送至接收UART。接收UART以預配置的波特率對數據線進行采樣。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖10.UART傳輸
     
    第四步:接收UART丟棄數據幀中的起始位、奇偶校驗位和停止位。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖11.Rx側的UART數據幀
     
    第五步:接收UART將串行數據轉換回并行數據,并將其傳輸到接收端的數據總線。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖12.接收UART至數據總線
     
    幀協議
     
    UART的一個關鍵特性是幀協議的實現,但還沒有被充分使用。其主要用途和重要性是為每臺設備提供安全和保護方面的增值。
     
    例如,當兩個設備使用相同的UART幀協議時,有可能在沒有檢查配置的情況下連接到同一個UART,設備會連接到不同的引腳,這可能導致系統故障。
     
    另一方面,實現幀協議可確保安全性,因為需要根據設計幀協議解析接收到的信息。每個幀協議都經過專門設計,以確保唯一性和安全性。
     
    在設計幀協議時,設計人員可以給不同設備設置期望的報頭和報尾(包括CRC)。在圖13中,2個字節被設置為報頭的一部分。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖13.UART幀協議示例
     
    根據示例,您可以給您的設備設置獨有的報頭、報尾和CRC。
     
    報頭1(H1為0xAB)和報頭2(H2為0xCD)
    報頭是確定您是否在與正確的設備通信的唯一標識符。
     
    命令(CMD)選擇
    命令將取決于用于創建兩個設備之間通信的命令列表。
     
    每個命令的數據長度(DL)
    數據長度將取決于所選的命令。您可以根據所選的命令來使數據長度最大化,因此它會隨選擇而變化。在這種情況下,數據長度可以調整。
     
    數據n(可變數據)
    數據是要從設備傳輸的有效載荷。
     
    報尾1(T1為0xE1)和報尾2(T2為0xE2)
    報尾是在傳輸結束后添加的數據。就像報頭一樣,報尾也可以唯一標識符。
     
    循環冗余校驗(CRC公式)
    循環冗余校驗公式是一種附加的錯誤檢測模式,用于檢測原始數據是否發生意外更改。發送設備的CRC值必須始終等于接收器端的CRC計算值。
     
    建議為每個UART設備實現幀協議來增加安全性。幀協議要求發送和接收設備使用相同的配置。
     
    UART工作原理
     
    使用任何硬件通信協議時,首先必須檢查數據手冊和硬件參考手冊。
     
    以下是要遵循的步驟:
     
    第一步:檢查設備的數據手冊接口。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖14.微控制器數據手冊
     
    第二步:在存儲器映射下面檢查UART地址。
     
    了解通用異步接收器/發送器的硬件通信協議
    圖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至3
     
    DIV(波特率分頻器)
     
    UART_DIV = 1至65535
     
    M(DIVM小數波特率M)
     
    UART_FBR.DIVM = 1至3
     
    N(DIVM小數波特率M)
     
    UART_FBR.DIVN = 0至2047
     
    第五步:對于波特率,務必檢查要使用的外設時鐘(PCLK)。此示例有26 MHz PCLK和16 MHz PCLK可用。請注意,OSR、DIV、DIVM和DIVN隨設備而異。
     
    表2.基于26 MHz PCLK的波特率示例
    了解通用異步接收器/發送器的硬件通信協議
     
    表3.基于16 MHz PCLK的波特率示例
    了解通用異步接收器/發送器的硬件通信協議
     
    第六步:下一部分是檢查UART配置的詳細寄存器。了解計算波特率時的參數,例如UART_LCR2、UART_DIV和UART_FBR。表4要列出所涉及的具體寄存器。
     
    表4.UART寄存器描述
    了解通用異步接收器/發送器的硬件通信協議
     
    第七步:檢查每個寄存器下的詳細信息,代入值以計算波特率,然后開始實現UART。
     
    為何重要?
     
    當開發穩健的、質量驅動的產品時,熟悉UART通信協議非常有優勢。知道如何僅使用兩條線發送數據,以及如何傳輸整個數據包或有效載荷,將有助于確保數據正確無誤地發送和接收。UART是最常用的硬件通信協議,具備相關知識可以在將來的設計中實現設計靈活性。
     
    用例
     
    您可以將UART用于許多應用,例如:
     
    ●     調試:在開發過程中及早發現系統錯誤很重要。添加UART便可從系統捕捉消息,幫助排除錯誤。
    ●     制造功能級追蹤:日志在制造業中非常重要。通過日志可確定功能,提醒操作員生產線上正在發生的事情。
    ●     客戶更新:軟件更新非常重要。完整的動態硬件和支持更新的軟件對于擁有完整系統至關重要。
    ●     測試/驗證:在產品離開制造過程之前進行驗證有助于為客戶提供最優質的產品。
     
    參考電路
     
    "UART通信基礎。" Electronics Hub,2017年7月。
     
    Campbell, Scott。 "UART通信基礎。" 電路基礎。
     
    "回到基礎:通用異步接收器/發送器。" 關于電路的一切,2016年12月。
     
    "何為UART協議?UART通信闡釋。" Arrow。
     
     
    免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。
     
    推薦閱讀:
     
    零增益放大器
    為了更精確,更高質量,我們采用了數據采集系統“組合技”
    針對低功耗應用的非易失性電阻式RAM技術
    利用汽車前燈改善道路安全:發光二極管矩陣管理器
    測量電源上的輸出動態響應:示波器接地問題
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    亚洲日产无码中文字幕| www无码乱伦| 久久亚洲AV成人无码国产| 亚洲Aⅴ无码一区二区二三区软件| 最新中文字幕AV无码不卡| 无码人妻少妇久久中文字幕| 日韩乱码人妻无码中文字幕久久| 国产 日韩 中文字幕 制服| 十八禁视频在线观看免费无码无遮挡骂过 | 日韩精品久久无码中文字幕| 狠狠精品久久久无码中文字幕| 久久亚洲AV无码西西人体| 中文字幕在线视频第一页| 小泽玛丽无码视频一区| 亚洲日韩精品无码专区网址| 亚洲最大av无码网址| 日韩精品无码熟人妻视频| 无码毛片一区二区三区中文字幕| 国产在线观看无码免费视频 | 国产成人无码一区二区在线观看| 亚洲爆乳精品无码一区二区| 国产品无码一区二区三区在线蜜桃| 性无码专区| 精品久久久久久无码专区不卡| 日韩中文字幕一区| 国产精品99无码一区二区| 亚洲国产AV无码专区亚洲AV| 伊人热人久久中文字幕| 中文字幕无码成人免费视频| 久久青青草原亚洲av无码app| 亚洲精品人成无码中文毛片| 最好的中文字幕视频2019| 久久久久成人精品无码中文字幕 | 中文字幕亚洲欧美日韩在线不卡| 久久久久久无码Av成人影院| 日韩AV高清无码| 最近高清中文字幕免费| 高清无码中文字幕在线观看视频 | 色婷婷久久综合中文久久一本 | 天堂а在线中文在线新版| 成人毛片无码一区二区三区|