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

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

3天內不再提示

干貨滿滿:帶你看透UART總線的工作原理

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-08 16:42 ? 次閱讀

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

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作 UART。它將要傳輸的資料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART 通常被集成于其他通訊接口的連結上。

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

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

UART 通信簡介

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

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

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

兩個 UART 還必須配置為發(fā)送和接收相同的數據包結構。

UART 如何工作

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

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

開始位


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

數據框


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

奇偶校驗位


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

停止位


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

UART 傳輸步驟

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

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

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

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

5. 接收 UART 將串行數據轉換回并行并將其傳輸到接收端的數據總線:

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

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

優(yōu)點
只使用兩根電線
不需要時鐘信號
有一個奇偶校驗位
只要雙方設置后,就可以改變數據包的結構
有完整的文檔并且具有廣泛的使用

缺點
數據幀的大小限制為最多 9 位
不支持多個從屬或多個主系統(tǒng)
每個 UART 的波特率必須在 10%之內

審核編輯黃昊宇

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

    關注

    10

    文章

    2900

    瀏覽量

    88318
  • uart
    +關注

    關注

    22

    文章

    1243

    瀏覽量

    101690
收藏 人收藏

    評論

    相關推薦

    CAN總線工作原理分析 CAN總線在汽車工業(yè)中的應用

    CAN總線工作原理分析 1. 概述 CAN總線是一種串行通信協(xié)議,由Bosch公司在1986年開發(fā),主要用于汽車電子系統(tǒng)中。它允許多個設備共享同一通信線路,實現數據的高效傳輸。 2. 基本組
    的頭像 發(fā)表于 12-20 17:33 ?1532次閱讀

    UART通信協(xié)議介紹和數據傳輸工作流程

    UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可實現全雙工傳輸和接收。UART通常用來實現與PC之間數據通信,命令和控制信息的傳輸等。本文我們介紹
    的頭像 發(fā)表于 10-24 14:20 ?917次閱讀
    <b class='flag-5'>UART</b>通信協(xié)議介紹和數據傳輸<b class='flag-5'>工作</b>流程

    高速并行總線工作原理是什么 高速并行總線有哪些

    高速并行總線工作原理及其具體類型是一個涉及硬件技術和數據傳輸的復雜話題。以下是對高速并行總線工作原理的概述以及幾種常見的高速并行總線的介紹
    的頭像 發(fā)表于 10-06 15:17 ?573次閱讀
    高速并行<b class='flag-5'>總線</b>的<b class='flag-5'>工作原理</b>是什么 高速并行<b class='flag-5'>總線</b>有哪些

    CAN總線控制器的工作原理

    CAN(Controller Area Network,控制器局域網)總線控制器的工作原理涉及多個方面,包括消息傳輸、沖突檢測與解決、總線仲裁等關鍵機制。以下是對CAN總線控制器
    的頭像 發(fā)表于 09-30 11:33 ?1129次閱讀

    嵌入式常用總線有哪些

    嵌入式系統(tǒng)中常用的總線種類繁多,它們各自具有不同的特點和應用場景。以下將詳細介紹幾種嵌入式開發(fā)中常用的總線,包括UART、I2C、SPI、RS-232、RS-485、CAN以及USB等,每種
    的頭像 發(fā)表于 09-10 11:34 ?741次閱讀

    CAN總線的主要特點和工作原理

    的,但隨著時間的推移,其應用范圍已經擴展到工業(yè)自動化、船舶、醫(yī)療設備、航空航天等多個領域。以下將詳細闡述CAN總線的定義、特點及其工作原理
    的頭像 發(fā)表于 09-03 14:07 ?1557次閱讀

    CAN總線收發(fā)器的工作原理和應用

    CAN(Controller Area Network)總線收發(fā)器是CAN總線通信中的關鍵組件,其工作原理和應用對于理解現代汽車電子、工業(yè)自動化等領域的通信系統(tǒng)至關重要。以下將詳細闡述CAN
    的頭像 發(fā)表于 08-26 15:23 ?2681次閱讀

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

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

    I2C總線協(xié)議的工作原理和尋址格式

    等特點,在嵌入式系統(tǒng)設計中得到了廣泛應用。本文將詳細介紹I2C總線協(xié)議的工作原理和尋址格式,幫助讀者深入理解該協(xié)議。
    的頭像 發(fā)表于 05-27 15:47 ?1920次閱讀

    天線設計攻略簡要概述 帶你玩轉PCB和WIFI

    給大家分享干貨啦!天線設計全攻略,帶你玩轉PCB和WIFI
    的頭像 發(fā)表于 05-08 14:42 ?1582次閱讀
    天線設計攻略簡要概述 <b class='flag-5'>帶你</b>玩轉PCB和WIFI

    霍爾開關的工作原理及應用

    霍爾開關的工作原理及應用
    的頭像 發(fā)表于 04-09 10:29 ?3660次閱讀
    霍爾開關的<b class='flag-5'>工作原理</b>及應用

    UART串口通信實驗及工作原理

    UART通信過程需要設置波特率、數據長度、開始/停止位等參數。波特率決定了發(fā)送數據的速度,而數據長度和開始/停止位則用于確保數據的正確傳輸和接收。
    的頭像 發(fā)表于 03-21 17:10 ?4100次閱讀
    <b class='flag-5'>UART</b>串口通信實驗及<b class='flag-5'>工作原理</b>

    晶體管BJT的工作原理 MOSFET的工作原理介紹

    晶體管是一個簡單的組件,可以使用它來構建許多有趣的電路。在本文中,將帶你了解晶體管是如何工作的,以便你可以在后面的電路設計中使用它們。
    的頭像 發(fā)表于 02-20 09:44 ?1424次閱讀
    晶體管BJT的<b class='flag-5'>工作原理</b> MOSFET的<b class='flag-5'>工作原理</b>介紹

    什么是CAN總線通信?CAN總線工作原理

    這意味著變送器通過CAN收發(fā)器改變總線電平,并將其信息傳輸到CAN總線。接收器通過監(jiān)測總線電平將總線上的信息讀取到自己的CAN收發(fā)器中。
    發(fā)表于 02-19 14:53 ?6922次閱讀
    什么是CAN<b class='flag-5'>總線</b>通信?CAN<b class='flag-5'>總線</b><b class='flag-5'>工作原理</b>