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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UART是什么,其背后的原理你搞懂了嗎

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-10-31 04:08 ? 次閱讀

還記得當(dāng)年的打印機,鼠標(biāo)和調(diào)制解調(diào)器嗎?他們都有巨大笨重的連接器和粗電纜,并且必須擰到你的電腦上。這些設(shè)備正是使用 UART 協(xié)議與計算機進(jìn)行通信。雖然 USB 幾乎完全取代了舊的電纜和連接器,但 UART 絕對沒有過時。您會發(fā)現(xiàn)目前許多項目中使用 UART 的 GPS 模塊、藍(lán)牙模塊和 RFID 讀卡器模塊等連接到 Raspberry PiArduino 或其他微控制器上。

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作 UART。它將要傳輸?shù)?a href="http://www.wenjunhu.com/soft/special/" target="_blank">資料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號轉(zhuǎn)成串行輸出信號的芯片,UART 通常被集成于其他通訊接口的連結(jié)上。

它不是像 SPI 和 I2C 這樣的通信協(xié)議,而是微控制器中獨立的物理電路或獨立的 IC。

UART 最好的一點是它只使用兩根線就可以在設(shè)備之間傳輸數(shù)據(jù),UART 背后的原理很容易理解。

UART 通信簡介

在 UART 通信中,兩個 UART 直接相互通信。發(fā)送 UART 將來自 CPU 等控制設(shè)備的并行數(shù)據(jù)轉(zhuǎn)換為串行形式,并將其串行發(fā)送到接收 UART,接收 UART 然后將串行數(shù)據(jù)轉(zhuǎn)換回接收設(shè)備的并行數(shù)據(jù)。在兩個 UART 之間傳輸數(shù)據(jù)只需要兩根線。數(shù)據(jù)從發(fā)送 UART 的 Tx 引腳流向接收 UART 的 Rx 引腳:

UART 以異步方式發(fā)送數(shù)據(jù),這意味著沒有時鐘信號將發(fā)送 UART 的位輸出與接收 UART 的位采樣同步。發(fā)送 UART 不是時鐘信號,而是將開始和停止位添加到正在傳輸?shù)臄?shù)據(jù)包中。這些位定義數(shù)據(jù)包的開始和結(jié)束,因此接收 UART 知道何時開始讀取位。

當(dāng)接收 UART 檢測到起始位時,它開始以稱為波特率的特定頻率讀取輸入位。波特率是數(shù)據(jù)傳輸速度的度量,以每秒位數(shù)(bps)表示。兩個 UART 必須以大致相同的波特率運行。發(fā)送和接收 UART 之間的波特率只能相差 10%左右。

兩個 UART 還必須配置為發(fā)送和接收相同的數(shù)據(jù)包結(jié)構(gòu)。


UART 如何工作
UART 傳輸數(shù)據(jù)依靠的是 UART 總線,數(shù)據(jù)總線用于通過 CPU,存儲器或微控制器等其他設(shè)備將數(shù)據(jù)發(fā)送到 UART。數(shù)據(jù)以并行形式從數(shù)據(jù)總線傳輸?shù)桨l(fā)送 UART。在發(fā)送 UART 從數(shù)據(jù)總線獲得并行數(shù)據(jù)之后,它將添加起始位,奇偶校驗位和停止位,從而創(chuàng)建數(shù)據(jù)包。接下來,數(shù)據(jù)包在 Tx 引腳上逐位串行輸出。UART 接收端則在其 Rx 引腳上逐位讀取數(shù)據(jù)包。然后,接收 UART 將數(shù)據(jù)轉(zhuǎn)換回并行形式,并刪除起始位,奇偶校驗位和停止位。最后,接收 UART 將數(shù)據(jù)包并行傳輸?shù)浇邮斩说臄?shù)據(jù)總線:



UART 傳輸?shù)臄?shù)據(jù)被組織成數(shù)據(jù)包。每個數(shù)據(jù)包包含 1 個起始位,5 到 9 個數(shù)據(jù)位(取決于 UART),可選的奇偶校驗位以及 1 或 2 個停止位:


開始位
當(dāng) UART 數(shù)據(jù)傳輸線不傳輸數(shù)據(jù)時,它通常保持在高電壓電平。為了開始數(shù)據(jù)傳輸,發(fā)送 UART 將傳輸線從高電平拉至低電平一個時鐘周期。當(dāng)接收 UART 檢測到高電壓到低電壓轉(zhuǎn)換時,它開始以波特率的頻率讀取數(shù)據(jù)幀中的位。

數(shù)據(jù)框
數(shù)據(jù)框包含要傳輸?shù)膶嶋H數(shù)據(jù)。如果使用奇偶校驗位,則它可以是 5 位到 8 位長。如果不使用奇偶校驗位,則數(shù)據(jù)幀可以是 9 位長。在大多數(shù)情況下,數(shù)據(jù)首先以最低有效位發(fā)送。

奇偶校驗位
奇偶校驗描述數(shù)字的均勻性或奇數(shù)。奇偶校驗位是接收 UART 在傳輸過程中判斷是否有任何數(shù)據(jù)發(fā)生變化的一種方法。電磁輻射、不匹配的波特率或長距離傳輸時,數(shù)據(jù)都有可能發(fā)生變化。接收 UART 讀取數(shù)據(jù)幀后,它會計算值為 1 的位數(shù),并檢查總數(shù)是偶數(shù)還是奇數(shù)。如果奇偶校驗位為 0(偶校驗),則數(shù)據(jù)幀中的 1 位應(yīng)總計為偶數(shù)。如果奇偶校驗位是 1(奇校驗),則數(shù)據(jù)幀中的 1 位應(yīng)總計為奇數(shù)。當(dāng)奇偶校驗位與數(shù)據(jù)匹配時,UART 知道傳輸沒有錯誤。但如果奇偶校驗位為 0,然而 1 位應(yīng)總計為奇數(shù);或者奇偶校驗位是 1,并且 1 位應(yīng)總計是偶數(shù),則數(shù)據(jù)幀中的位已經(jīng)改變。

停止位
為了通知傳輸數(shù)據(jù)包的結(jié)束,UART 發(fā)送端會將數(shù)據(jù)傳輸線從低電壓驅(qū)動至高電壓至少兩位持續(xù)時間。

UART 傳輸步驟

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


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

3. 整個數(shù)據(jù)包從發(fā)送 UART 串行發(fā)送到接收 UART。接收 UART 以預(yù)先配置的波特率對數(shù)據(jù)線進(jìn)行采樣:


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



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


UART 的優(yōu)點和缺點

沒有任何一種通信協(xié)議是完美的,以下是一些優(yōu)點和缺點,可幫助您確定它們是否符合您項目的需求:

優(yōu)點
只使用兩根電線


不需要時鐘信號


有一個奇偶校驗位


只要雙方設(shè)置后,就可以改變數(shù)據(jù)包的結(jié)構(gòu)


有完整的文檔并且具有廣泛的使用

缺點
數(shù)據(jù)幀的大小限制為最多 9 位


不支持多個從屬或多個主系統(tǒng)


每個 UART 的波特率必須在 10%之內(nèi)

審核編輯:符乾江


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

    關(guān)注

    172

    文章

    5955

    瀏覽量

    172640
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1243

    瀏覽量

    101582
收藏 人收藏

    評論

    相關(guān)推薦

    USB/UART橋接器的應(yīng)用優(yōu)勢

    這一切都要歸功于USB/UART橋接器——它們是嵌入式系統(tǒng)中的強大工具。無論您是從事調(diào)試、物聯(lián)網(wǎng)還是工業(yè)應(yīng)用,了解此橋接器都可以簡化硬件集成并提高通信可靠性。以下是USB/UART橋接如何簡化這些連接以及一些現(xiàn)實用例的說明(見下圖)。
    的頭像 發(fā)表于 12-03 13:52 ?302次閱讀
    USB/<b class='flag-5'>UART</b>橋接器的應(yīng)用優(yōu)勢

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

    UART(Universal Asynchronous Receiver/Transmitter)是一種廣泛使用的異步串行通信技術(shù),它允許兩臺設(shè)備之間進(jìn)行雙向數(shù)據(jù)傳輸。在UART通信中,波特率和傳輸
    的頭像 發(fā)表于 10-06 16:12 ?3393次閱讀
    <b class='flag-5'>uart</b>波特率和傳輸頻率的關(guān)系 <b class='flag-5'>UART</b>串口的常用波特率為多少

    ElfBoard技術(shù)貼|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對ELF 1開發(fā)板,實際引出
    的頭像 發(fā)表于 09-25 13:56 ?2389次閱讀
    ElfBoard技術(shù)貼|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的<b class='flag-5'>UART</b>功能

    轉(zhuǎn)換UART的電壓

    電子發(fā)燒友網(wǎng)站提供《轉(zhuǎn)換UART的電壓.pdf》資料免費下載
    發(fā)表于 09-24 11:37 ?2次下載
    轉(zhuǎn)換<b class='flag-5'>UART</b>的電壓

    電感很燙是短路了嗎

    電子發(fā)燒友網(wǎng)站提供《電感很燙是短路了嗎.docx》資料免費下載
    發(fā)表于 09-04 11:31 ?0次下載

    CAN轉(zhuǎn)UART橋接器

    電子發(fā)燒友網(wǎng)站提供《CAN轉(zhuǎn)UART橋接器.pdf》資料免費下載
    發(fā)表于 08-28 10:39 ?0次下載
    CAN轉(zhuǎn)<b class='flag-5'>UART</b>橋接器

    UART協(xié)議的工作原理和應(yīng)用場景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)協(xié)議是一種廣泛使用的串行通信協(xié)議,它允許計算機與外部設(shè)備之間通過串行接口進(jìn)行數(shù)據(jù)傳輸。以下是對UART協(xié)議的詳細(xì)解析,包括
    的頭像 發(fā)表于 08-25 17:15 ?3527次閱讀

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

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

    第3章_UART 開發(fā)基礎(chǔ)

    第3章_UART 開發(fā)基礎(chǔ)
    的頭像 發(fā)表于 06-29 14:27 ?740次閱讀
    第3章_<b class='flag-5'>UART</b> 開發(fā)基礎(chǔ)

    降價潮背后:大模型落地門檻真的降了嗎

    “比起價格門檻,AI大模型的應(yīng)用門檻,更難跨越?!贝竽P蜖幭嘟祪r下,AI應(yīng)用的門檻真的降低了嗎?答案還真不一定。因為除了價格門檻,AI大模型還有應(yīng)用門檻。甚至,后者比前者更具挑戰(zhàn)性。B端業(yè)務(wù)場景向來
    的頭像 發(fā)表于 06-13 08:04 ?275次閱讀
    降價潮<b class='flag-5'>背后</b>:大模型落地門檻真的降<b class='flag-5'>了嗎</b>?

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

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

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

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

    常見的UART收發(fā)方式

    這種方式適合大多數(shù)單片機,只要有中斷就行。使用UART Write發(fā)送數(shù)據(jù)時,數(shù)據(jù)并不是直接寫入到UART發(fā)送器,而是放進(jìn)了一個環(huán)形緩沖區(qū)中。
    的頭像 發(fā)表于 02-19 16:23 ?939次閱讀

    淺談UART通信的異步通信機制

    波特率表示每秒鐘傳送的碼元符號的個數(shù),它是對符號傳輸速率的一種度量。在UART通信中,波特率用于描述通信速度,單位是bps(每秒鐘傳輸?shù)腷it的數(shù)量)。
    發(fā)表于 02-19 16:19 ?936次閱讀
    淺談<b class='flag-5'>UART</b>通信的異步通信機制

    是否有可能通過USB或UART通道將新固件上傳到XMC4000微控制器?

    你好, 我想知道是否有可能通過 USB 或UART通道將新固件上傳到XMC4000微控制器。 如果是這樣,有人能指導(dǎo)我怎么做嗎? 我不需要調(diào)試任何代碼,只需上傳新固件即可。 在此先謝謝。
    發(fā)表于 02-01 07:36