<noscript id="jftie"></noscript>
    <style id="jftie"><mark id="jftie"><dfn id="jftie"></dfn></mark></style>
  1. <span id="jftie"></span>
    • 国产成人精品久久一区二区,韩国精品久久久久久无码,国产精品国产高清国产av,欧美99久久无码一区人妻a片,亚洲高清码在线精品av,午夜人妻久久久久久久久,伊人热热久久原色播放www ,亚洲女教师丝祙在线播放
      你的位置:首頁 > 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技術
      利用汽車前燈改善道路安全:發光二極管矩陣管理器
      測量電源上的輸出動態響應:示波器接地問題
      特別推薦
      技術文章更多>>
      技術白皮書下載更多>>
      熱門搜索
      ?

      關閉

      ?

      關閉

      主站蜘蛛池模板: 神马影院午夜dy888| 国内精品久久久久久久小说| 国产午夜福利在线播放| 欧美午夜成人片在线观看| 国产超碰人人爽人人做av | 亚洲狠狠婷婷综合久久久久图片| 亚洲欧美另类成人综合图片| 亚洲依依成人综合网址| 精品国产av一区二区果冻传媒| 人妻精品久久久久中文字幕69| 国产av精国产传媒| 精品国产乱码久久久久久浪潮小说| 成人毛片无码一区二区三区| 初尝黑人嗷嗷叫中文字幕 | 免费午夜无码片在线观看影院| 国产第一页屁屁影院| 手机国产乱子伦精品视频| 亚洲爆乳少妇无码激情| 亚洲妇女无套内射精| 人妻少妇乱孑伦无码专区蜜柚| 欧美最猛性xxxxx大叫| 免费看国产曰批40分钟| 高清无码午夜福利视频| 熟女人妻高清一区二区三区| 未满十八18勿进黄网站| 亚洲精品美女久久久久久久| 亚洲中文字幕不卡无码| 国产成人精品亚洲777人妖| 国产女精品视频网站免费蜜芽| 欧美日韩精品一区二区在线观看| 久久香蕉综合色一综合色88| 久久99国产精品二区| 国产精品久久久久电影院| 色窝窝无码一区二区三区成人网站| 亚洲一区二区无码偷拍| 欧美日韩视频无码一区二区三 | 天天做天天爱夜夜爽女人爽| 国产男女做爰高清全过小说| 7777精品伊久久久大香线蕉 | 国产精品自在拍一区二区不卡| 国产黑色丝袜在线观看片不卡顿|