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

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

3天內不再提示

討論使用UART通信協(xié)議的基本原則

Sq0B_Excelpoint ? 來源:亞德諾半導體 ? 2023-02-01 17:54 ? 次閱讀

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

本文將UART用作硬件通信協(xié)議應遵循的標準步驟進行說明,討論使用UART的基本原則,重點是數(shù)據包傳輸、標準幀協(xié)議和定制幀協(xié)議;定制幀協(xié)議將是安全合規(guī)性方面的增值特性,尤其是在代碼開發(fā)期間。在產品開發(fā)過程中,本文還將分享一些基本步驟,以檢查數(shù)據表的實際使用,目標是幫助更好地理解和遵循UART標準,以便最大程度地發(fā)揮其能力和應用優(yōu)勢,特別是在開發(fā)新產品時。

通信協(xié)議

通信協(xié)議在組織設備之間的通信時扮演著重要角色。它基于系統(tǒng)要求而以不同方式進行設計。此類協(xié)議具有特定的規(guī)則,為實現(xiàn)成功通信,不同設備都遵循該規(guī)則。 根據定義,UART是一種硬件通信協(xié)議,以可配置的速度使用異步串行通信。

異步意味著沒有時鐘信號來同步從發(fā)送設備進入接收端的輸出位。 嵌入式系統(tǒng)、微控制器和計算機大多將UART作為設備間硬件通信協(xié)議的一種形式。在可用通信協(xié)議中,UART的發(fā)送和接收端僅使用兩條線。盡管它是一種廣泛使用的硬件通信方法,但它并非在所有時候都是完全優(yōu)化的。在微控制器內部使用UART模塊時,通常會忽略幀協(xié)議的適當實現(xiàn)。

接口

10378790-a20f-11ed-bfe3-dac502259ad0.svg

圖1.兩個UART彼此直接通信

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

發(fā)送器(Tx)

接收器(Rx)

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

10482546-a20f-11ed-bfe3-dac502259ad0.svg

圖2.帶數(shù)據總線的UART 發(fā)送UART連接到以并行形式發(fā)送數(shù)據的控制數(shù)據總線。然后,數(shù)據將在傳輸線路(導線)上一位一位地串行傳輸?shù)浇邮誙ART。反過來,對于接收設備,串行數(shù)據會被轉換為并行數(shù)據。

UART線用作發(fā)送和接收數(shù)據的通信介質。請注意,UART設備具有專門用于發(fā)送或接收的發(fā)送和接收引腳。對于UART和大多數(shù)串行通信,發(fā)送和接收設備需要將波特率設置為相同的值。波特率是指信息傳輸?shù)叫诺赖乃俾?。對于串?a target="_blank">端口,設定的波特率將用作每秒傳輸?shù)淖畲笪粩?shù)。表1總結了關于UART必須了解的幾點。

1059d1e2-a20f-11ed-bfe3-dac502259ad0.png

表1.UART概要

UART接口不使用時鐘信號來同步發(fā)送器和接收器設備,而是以異步方式傳輸數(shù)據。發(fā)送器根據其時鐘信號生成的位流取代了時鐘信號,接收器使用其內部時鐘信號對輸入數(shù)據進行采樣。同步點是通過兩個設備的相同波特率來管理的。如果波特率不同,發(fā)送和接收數(shù)據的時序可能會受影響,導致數(shù)據處理過程出現(xiàn)不一致。允許的波特率差異最大值為10%,超過此值,位的時序就會脫節(jié)。

數(shù)據傳輸

在UART中,傳輸模式為數(shù)據包形式。連接發(fā)送器和接收器的機制包括串行數(shù)據包的創(chuàng)建和物理硬件線路的控制。數(shù)據包由起始位、數(shù)據幀、奇偶校驗位和停止位組成。

1067f006-a20f-11ed-bfe3-dac502259ad0.svg

圖3.UART數(shù)據包

起始位

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

1077c814-a20f-11ed-bfe3-dac502259ad0.jpg

圖4.起始位

數(shù)據幀

數(shù)據幀包含所傳輸?shù)膶嶋H數(shù)據。如果使用奇偶校驗位,數(shù)據幀長度可以是5位到8位。如果不使用奇偶校驗位,數(shù)據幀長度可以是9位。在大多數(shù)情況下,數(shù)據以最低有效位優(yōu)先方式發(fā)送。

108ed568-a20f-11ed-bfe3-dac502259ad0.jpg

圖5.數(shù)據幀

奇偶校驗

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

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

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

109ddc98-a20f-11ed-bfe3-dac502259ad0.jpg

圖6.奇偶校驗位

停止位

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

10c092b0-a20f-11ed-bfe3-dac502259ad0.jpg

圖7.停止位

UART傳輸步驟

第一步:發(fā)送UART從數(shù)據總線并行接收數(shù)據。

10e0c800-a20f-11ed-bfe3-dac502259ad0.svg

圖8.數(shù)據總線至發(fā)送UART

第二步:發(fā)送UART將起始位、奇偶校驗位和停止位添加到數(shù)據幀。

10f78522-a20f-11ed-bfe3-dac502259ad0.svg

圖9.Tx側的UART數(shù)據幀

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

11150afc-a20f-11ed-bfe3-dac502259ad0.svg

圖10.UART傳輸

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

11386812-a20f-11ed-bfe3-dac502259ad0.svg

圖11.Rx側的UART數(shù)據幀

第五步:接收UART將串行數(shù)據轉換回并行數(shù)據,并將其傳輸?shù)浇邮斩说臄?shù)據總線。

114f6b66-a20f-11ed-bfe3-dac502259ad0.svg

圖12.接收UART至數(shù)據總線

幀協(xié)議

UART的一個關鍵特性是幀協(xié)議的實現(xiàn),但還沒有被充分使用。其主要用途和重要性是為每臺設備提供安全和保護方面的增值。例如,當兩個設備使用相同的UART幀協(xié)議時,有可能在沒有檢查配置的情況下連接到同一個UART,設備會連接到不同的引腳,這可能導致系統(tǒng)故障。

另一方面,實現(xiàn)幀協(xié)議可確保安全性,因為需要根據設計幀協(xié)議解析接收到的信息。每個幀協(xié)議都經過專門設計,以確保唯一性和安全性。

在設計幀協(xié)議時,設計人員可以給不同設備設置期望的報頭和報尾(包括CRC)。在圖13中,2個字節(jié)被設置為報頭的一部分。

116a837e-a20f-11ed-bfe3-dac502259ad0.jpg

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

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

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

命令(CMD)選擇

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

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

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

數(shù)據n(可變數(shù)據)

數(shù)據是要從設備傳輸?shù)挠行лd荷。

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

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

循環(huán)冗余校驗(CRC公式)

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

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

UART工作原理

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

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

118578fa-a20f-11ed-bfe3-dac502259ad0.jpg

圖14.微控制器數(shù)據手冊

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

11a6028c-a20f-11ed-bfe3-dac502259ad0.jpg

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

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

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

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

5到8個數(shù)據位

1、2或1 ?個停止位

無、偶數(shù)或奇數(shù)奇偶校驗

編程過采樣率為4、8、16、32

波特率 = PCLK/((M + N/2048) × 2OSR + 2× DIV

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

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

11b33498-a20f-11ed-bfe3-dac502259ad0.png

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

11e2c82a-a20f-11ed-bfe3-dac502259ad0.png

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

11ff3de8-a20f-11ed-bfe3-dac502259ad0.png

表4.UART寄存器描述 第七步:檢查每個寄存器下的詳細信息,代入值以計算波特率,然后開始實現(xiàn)UART。

應用范例

當開發(fā)穩(wěn)健的、質量驅動的產品時,熟悉UART通信協(xié)議非常有優(yōu)勢。知道如何僅使用兩條線發(fā)送數(shù)據,以及如何傳輸整個數(shù)據包或有效載荷,將有助于確保數(shù)據正確無誤地發(fā)送和接收。UART是最常用的硬件通信協(xié)議,具備相關知識可以在將來的設計中實現(xiàn)設計靈活性。

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

調試:在開發(fā)過程中及早發(fā)現(xiàn)系統(tǒng)錯誤很重要。添加UART便可從系統(tǒng)捕捉消息,幫助排除錯誤。

制造功能級追蹤:日志在制造業(yè)中非常重要。通過日志可確定功能,提醒操作員生產線上正在發(fā)生的事情。

客戶更新:軟件更新非常重要。完整的動態(tài)硬件和支持更新的軟件對于擁有完整系統(tǒng)至關重要。

測試/驗證:在產品離開制造過程之前進行驗證有助于為客戶提供最優(yōu)質的產品。






審核編輯:劉清

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

    關注

    28

    文章

    810

    瀏覽量

    40119
  • 接收器
    +關注

    關注

    14

    文章

    2441

    瀏覽量

    71525
  • uart
    +關注

    關注

    22

    文章

    1199

    瀏覽量

    100823
  • 發(fā)送器
    +關注

    關注

    1

    文章

    258

    瀏覽量

    26739

原文標題:【世說知識】一文搞懂UART通信協(xié)議

文章出處:【微信號:Excelpoint_CN,微信公眾號:Excelpoint_CN】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MOS設計選型的基本原則

    6個MOS設計選型的基本原則
    發(fā)表于 03-18 07:04

    電源IC的選擇基本原則

    及成本等問題。這里給出一些選擇基本原則,供參考。成本等問題。這里給出一些選擇基本原則,供參考。1、優(yōu)先考慮升壓式DC/DC變換器采用升壓式DC/DC變換器不僅效率高并且可減少電池數(shù)(減小整個電源體積及...
    發(fā)表于 11-17 08:10

    UART通信協(xié)議的相關資料推薦

    一、前言1、簡介  寫的這篇博客,是為了簡單講解一下UART通信協(xié)議,以及UART能夠實現(xiàn)的一些功能,還有有關使用STM32CubeMX來配置芯片的一些操作,在后面我會以我使用的STM32F429
    發(fā)表于 01-25 06:40

    通信設備防雷接地的基本原則

    通信設備防雷接地的基本原則 4.1? 通信機房建筑物??機房建筑以鋼筋混凝土結構為宜。??機房建筑應有避雷
    發(fā)表于 09-09 21:26 ?4505次閱讀
    <b class='flag-5'>通信</b>設備防雷接地的<b class='flag-5'>基本原則</b>

    內電層分割基本原則

    內電層分割基本原則,內電層分割基本原則,內電層分割基本原則
    發(fā)表于 12-24 11:02 ?0次下載

    PCB設計基本原則

    PCB設計基本原則,好東西,喜歡的朋友可以下載來學習。
    發(fā)表于 01-18 15:17 ?0次下載

    PLC選型的基本原則有哪些

    PLC選型的基本原則是:所選的PLC應能夠滿足控制系統(tǒng)的功能需要。
    發(fā)表于 04-25 10:10 ?1.7w次閱讀

    PLC控制系統(tǒng)設計的基本原則

    PLC控制系統(tǒng)的設計四項基本原則如下
    發(fā)表于 05-18 08:57 ?3789次閱讀

    硬件原理圖設計基本原則

    硬件原理圖設計還應該遵守一些基本原則,這些基本原則要貫徹到整個設計過程,雖然成功的參考設計中也體現(xiàn)了這些原則,但因為我們可能是“拼”出來的原理圖,所以我們還是要隨時根據這些原則來設計審
    的頭像 發(fā)表于 06-14 10:29 ?4470次閱讀

    UART:了解通用異步接收器/發(fā)射器的硬件通信協(xié)議

    在本文中,我們將討論使用 UART 時的基本原則,重點是數(shù)據包傳輸、標準幀協(xié)議和自定義幀協(xié)議,這些協(xié)議
    的頭像 發(fā)表于 12-16 15:42 ?1007次閱讀
    <b class='flag-5'>UART</b>:了解通用異步接收器/發(fā)射器的硬件<b class='flag-5'>通信協(xié)議</b>

    手機故障維修基本原則及方法

    電子發(fā)燒友網站提供《手機故障維修基本原則及方法.ppt》資料免費下載
    發(fā)表于 10-24 14:22 ?1次下載
    手機故障維修<b class='flag-5'>基本原則</b>及方法

    群脈沖預防方案的基本原則?

    群脈沖預防方案的基本原則?|深圳比創(chuàng)達電子
    的頭像 發(fā)表于 01-15 14:03 ?490次閱讀
    群脈沖預防方案的<b class='flag-5'>基本原則</b>?

    UART串口通信協(xié)議是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一種通信接口協(xié)議,用于實現(xiàn)串口通信。它是一種簡單的、可靠的、廣泛應用的串口
    的頭像 發(fā)表于 03-19 17:26 ?955次閱讀

    簡單認識UART串行通信協(xié)議

    的數(shù)據通信,特別是在嵌入式系統(tǒng)、計算機外設以及微控制器等場景中。本文將對UART串行通信協(xié)議進行詳細的介紹,包括其基本原理、工作方式、參數(shù)設置、錯誤檢測與糾正以及應用實例等方面。
    的頭像 發(fā)表于 05-27 16:09 ?1400次閱讀

    簡單認識UART通信協(xié)議

    模塊等多種設備之間的數(shù)據傳輸。以下是對UART通訊協(xié)議的詳細簡述,內容將涵蓋其基本原理、工作方式、配置參數(shù)、常見應用以及與其他通信協(xié)議的比較。
    的頭像 發(fā)表于 07-25 18:07 ?978次閱讀