在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > UART:了解通用異步接收器或發(fā)送器的硬件通信協(xié)議

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

            作者:Eric Pena,Mary Grace Legaspi (ADI消費(fèi)者軟件工程部門 設(shè)計與布局團(tuán)隊,菲律賓甲米地) 時間:2021-07-30 來源:電子產(chǎn)品世界 收藏
            編者按:UART,即通用異步接收器或發(fā)送器,是最常用的設(shè)備間通信協(xié)議之一。本文將UART用作硬件通信協(xié)議應(yīng)遵循的標(biāo)準(zhǔn)步驟進(jìn)行說明。

            作者簡介:Eric Peňa,高級固件工程師。2019年4月加入ADI公司。畢業(yè)于馬尼拉亞當(dāng)森大學(xué),獲計算機(jī)工程學(xué)士學(xué)位。Eric之前曾在Technology Enabler Designer擔(dān)任固件工程師,還曾在Fujitsu Ten Solutions擔(dān)任系統(tǒng)工程師。聯(lián)系方式:[email protected]

            本文引用地址:http://www.biyoush.com/article/202107/427250.htm

            Mary Grace Legaspi,固件工程師。2018年9月加入ADI公司。畢業(yè)于塔拉克州立大學(xué),獲電子工程學(xué)士學(xué)位。目前正在攻讀菲律賓大學(xué)管理碩士學(xué)位。聯(lián)系方式:[email protected]。

            摘要:正確配置后,可以配合許多不同類型的涉及發(fā)送和接收串行數(shù)據(jù)的串行協(xié)議工作。在串行通信中,數(shù)據(jù)通過單條線路或?qū)Ь€逐位傳輸。在雙向通信中,我們使用兩根導(dǎo)線來進(jìn)行連續(xù)的串行數(shù)據(jù)傳輸。根據(jù)應(yīng)用和系統(tǒng)要求,串行通信需要的電路和導(dǎo)線較少,可降低實(shí)現(xiàn)成本。

            本文將討論使用的基本原則,重點(diǎn)是數(shù)據(jù)包傳輸、標(biāo)準(zhǔn)幀協(xié)議和定制幀協(xié)議;定制幀協(xié)議將是安全合規(guī)性方面的增值特性,尤其是在代碼開發(fā)期間。在產(chǎn)品開發(fā)過程中,本文還旨在分享一些基本步驟,以檢查數(shù)據(jù)表的實(shí)際使用。

            最后,本文的目標(biāo)是幫助更好地理解和遵循標(biāo)準(zhǔn),以便最大程度地發(fā)揮其能力和應(yīng)用優(yōu)勢,特別是在開發(fā)新產(chǎn)品時。


            “溝通最大的問題在于,人們想當(dāng)然地認(rèn)為已經(jīng)溝通了。”

            ——喬治·蕭伯納

            在組織設(shè)備之間的通信時扮演著重要角色。它基于系統(tǒng)要求而以不同方式進(jìn)行設(shè)計。此類協(xié)議具有特定的規(guī)則,為實(shí)現(xiàn)成功通信,不同設(shè)備都遵循該規(guī)則。嵌入式系統(tǒng)、微控制器和計算機(jī)大多將UART 作為設(shè)備間的一種形式。在可用中,UART 的發(fā)送和接收端僅使用兩條線。盡管它是一種廣泛使用的通信方法,但它并非在所有時候都是完全優(yōu)化的。在微控制器內(nèi)部使用UART 模塊時,通常會忽略幀協(xié)議的適當(dāng)實(shí)現(xiàn)。根據(jù)定義,UART 是一種通信協(xié)議,以可配置的速度使用異步串行通信。異步意味著沒有時鐘信號來同步從發(fā)送設(shè)備進(jìn)入接收端的輸出位[1-2]。

            1628563284836376.png

            圖1 兩個UART彼此直接通信

            接口

            每個UART 設(shè)備的兩個信號分別命名為:發(fā)送器(Tx),接收器(Rx)(如圖1)。

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

            1628563072532887.png

            圖2 帶數(shù)據(jù)總線的UART

            發(fā)送UART 連接到以并行形式發(fā)送數(shù)據(jù)的控制數(shù)據(jù)總線。然后,數(shù)據(jù)將在傳輸線路(導(dǎo)線)上一位一位地串行傳輸?shù)浇邮誙ART。反過來,對于接收設(shè)備,串行數(shù)據(jù)會被轉(zhuǎn)換為并行數(shù)據(jù)。UART 線用作發(fā)送和接收數(shù)據(jù)的通信介質(zhì)。請注意,UART 設(shè)備具有專門用于發(fā)送或接收的發(fā)送和接收引腳。對于UART 和大多數(shù)串行通信,發(fā)送和接收設(shè)備需要將波特率設(shè)置為相同的值。波特率是指信息傳輸?shù)叫诺赖乃俾?。對于串行端口,設(shè)定的波特率將用作每秒傳輸?shù)淖畲笪粩?shù)。

            表1 總結(jié)了關(guān)于UART 必須了解的幾點(diǎn)[3-4]。

            1628563169261292.png

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

            數(shù)據(jù)傳輸

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

            1628563348571679.png

            圖3 UART數(shù)據(jù)包

            起始位

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

            1628563411310364.png

            圖4 起始位

            數(shù)據(jù)幀

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

            1628563468315060.png

            圖5 數(shù)據(jù)幀

            奇偶校驗

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

            1628563574762508.png

            圖6 奇偶校驗位

            停止位

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

            1628563634582174.png

            圖7 停止位

            UART傳輸步驟

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

            1628563702508126.png

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

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

            1628563854122520.png

            圖9 Tx側(cè)的UART數(shù)據(jù)幀

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

            1628563904954840.png

            圖10 UART傳輸

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

            1628563967595719.png

            圖11 Rx側(cè)的UART數(shù)據(jù)幀

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

            1628564015404222.png

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

            幀協(xié)議

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

            另一方面,實(shí)現(xiàn)幀協(xié)議可確保安全性,因為需要根據(jù)設(shè)計幀協(xié)議解析接收到的信息。每個幀協(xié)議都經(jīng)過專門設(shè)計,以確保唯一性和安全性。在設(shè)計幀協(xié)議時,設(shè)計人員可以給不同設(shè)備設(shè)置期望的報頭和報尾(包括CRC)。在圖13 中,2 個字節(jié)被設(shè)置為報頭的一部分。

            1628564083112836.png

            圖13 UART幀協(xié)議示例

            根據(jù)示例,您可以給您的設(shè)備設(shè)置獨(dú)有的報頭、報尾和CRC。

            報頭1(H1 為0×AB)和報頭2(H2 為0×CD)

            報頭是確定您是否在與正確的設(shè)備通信的唯一標(biāo)識符。

            命令(CMD) 選擇

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

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

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

            在這種情況下,數(shù)據(jù)長度可以調(diào)整。

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

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

            報尾1(T1 為0×E1)和報尾2(T2 為0×E2)

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

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

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

            建議為每個UART 設(shè)備實(shí)現(xiàn)幀協(xié)議來增加安全性。

            幀協(xié)議要求發(fā)送和接收設(shè)備使用相同的配置。

            UART工作原理

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

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

            1628564265748260.png

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

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

            1628564321701143.png

            圖15 微控制器存儲器映射

            第3 步:檢查UART 端口的具體信息,例如工作模式、數(shù)據(jù)位長度、奇偶校驗位和停止位。

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

            UART端口

            示例MCU 提供了一個全雙工UART 端口,其與PC 標(biāo)準(zhǔn)UART 完全兼容。UART 端口提供一個簡化的UART 接口用于連接其他外設(shè)或主機(jī),支持全雙工、DMA 和異步串行數(shù)據(jù)傳輸。UART 端口支持5 到8個數(shù)據(jù)位,以及無校驗、偶校驗和奇校驗。幀由1?個或2 個停止位終止。

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

            UART 操作的詳細(xì)信息示例:

            ●   5~8 個數(shù)據(jù)位

            ●   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

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

            1628564515900201.png

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

            1628564577231262.png

            第7 步:檢查每個寄存器下的詳細(xì)信息,代入值以計算波特率,然后開始實(shí)現(xiàn)UART。

            為何重要?

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

            用例

            您可以將UART 用于許多應(yīng)用,例如:

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

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

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

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

            參考文獻(xiàn):

            [1] UART通信基礎(chǔ)[Z].Electronics Hub,2017.

            [2] CAMPBELL S.UART通信基礎(chǔ)[Z].電路基礎(chǔ).

            [3] KEIM R.回到基礎(chǔ):通用異步接收器/發(fā)送器[Z].關(guān)于電路的一切,2016.

            [4] 何為UART協(xié)議?UART通信闡釋[Z]. Arrow.

            (本文來源于《電子產(chǎn)品世界》雜志2021年5月期)



            關(guān)鍵詞: 202105 UART 硬件 通信協(xié)議

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉