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

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

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

UART通信簡介,UART如何工作

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-09-09 09:56 ? 次閱讀

還記得當(dāng)年的打印機(jī),鼠標(biāo)和調(diào)制解調(diào)器嗎?他們都有巨大笨重的連接器和粗電纜,并且必須擰到你的電腦上。這些設(shè)備正是使用UART協(xié)議與計(jì)算機(jī)進(jìn)行通信。

雖然USB幾乎完全取代了舊的電纜和連接器,但UART絕對沒有過時(shí)。你會發(fā)現(xiàn)目前許多項(xiàng)目中使用UART的GPS模塊、藍(lán)牙模塊和RFID讀卡器模塊等連接到Raspberry Pi,Arduino或其他微控制器上。

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

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

UART最好的一點(diǎn)是它只使用兩根線就可以在設(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引腳:

2e3698c6-2fd7-11ed-ba43-dac502259ad0.png

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

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

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

2e85ff10-2fd7-11ed-ba43-dac502259ad0.png

UART如何工作

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

2ebf6048-2fd7-11ed-ba43-dac502259ad0.png

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

2efaa856-2fd7-11ed-ba43-dac502259ad0.png

1

開始位

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

2

數(shù)據(jù)框

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

3

奇偶校驗(yàn)位

奇偶校驗(yàn)描述數(shù)字的均勻性或奇數(shù)。奇偶校驗(yàn)位是接收UART在傳輸過程中判斷是否有任何數(shù)據(jù)發(fā)生變化的一種方法。電磁輻射、不匹配的波特率或長距離傳輸時(shí),數(shù)據(jù)都有可能發(fā)生變化。接收UART讀取數(shù)據(jù)幀后,它會計(jì)算值為1的位數(shù),并檢查總數(shù)是偶數(shù)還是奇數(shù)。

如果奇偶校驗(yàn)位為0(偶校驗(yàn)),則數(shù)據(jù)幀中的1位應(yīng)總計(jì)為偶數(shù)。如果奇偶校驗(yàn)位是1(奇校驗(yàn)),則數(shù)據(jù)幀中的1位應(yīng)總計(jì)為奇數(shù)。當(dāng)奇偶校驗(yàn)位與數(shù)據(jù)匹配時(shí),UART知道傳輸沒有錯誤。但如果奇偶校驗(yàn)位為0,然而1位應(yīng)總計(jì)為奇數(shù);或者奇偶校驗(yàn)位是1,并且1位應(yīng)總計(jì)是偶數(shù),則數(shù)據(jù)幀中的位已經(jīng)改變。

4

停止位

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

UART傳輸步驟

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

2f10b47a-2fd7-11ed-ba43-dac502259ad0.png

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

2f5b9fc6-2fd7-11ed-ba43-dac502259ad0.png

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

2f7a386e-2fd7-11ed-ba43-dac502259ad0.png

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

2fd4f31c-2fd7-11ed-ba43-dac502259ad0.png

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

2ff36270-2fd7-11ed-ba43-dac502259ad0.png

UART的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):只使用兩根電線;不需要時(shí)鐘信號;有一個奇偶校驗(yàn)位;只要雙方設(shè)置后,就可以改變數(shù)據(jù)包的結(jié)構(gòu);有完整的文檔并且具有廣泛的使用。

缺點(diǎn):數(shù)據(jù)幀的大小限制為最多9位;不支持多個從屬或多個主系統(tǒng);每個UART的波特率必須在10%之內(nèi)。

審核編輯 :李倩

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

    關(guān)注

    98

    文章

    14521

    瀏覽量

    136557
  • 調(diào)制解調(diào)器

    關(guān)注

    3

    文章

    854

    瀏覽量

    38819
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1626

    瀏覽量

    55530

原文標(biāo)題:還沒搞懂串口通信?一文帶你讀懂

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    通信技術(shù):UART串口通信開源代碼實(shí)操!

    今天我們分享的是關(guān)于UART串口通信示例,歡迎大家探討
    的頭像 發(fā)表于 11-05 11:56 ?3058次閱讀
    <b class='flag-5'>通信</b>技術(shù):<b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>開源代碼實(shí)操!

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

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

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

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

    在NXP源碼基礎(chǔ)上如何適配ELF 1開發(fā)板的UART功能

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

    使用MSP430 MCU簡化USB到UART橋應(yīng)用簡介

    電子發(fā)燒友網(wǎng)站提供《使用MSP430 MCU簡化USB到UART橋應(yīng)用簡介.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 11:06 ?0次下載
    使用MSP430 MCU簡化USB到<b class='flag-5'>UART</b>橋應(yīng)用<b class='flag-5'>簡介</b>

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

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

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

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

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

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

    UART串口通信實(shí)驗(yàn)及工作原理

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

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

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

    淺談UART通信的異步通信機(jī)制

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

    uart與usart區(qū)別 usart可以當(dāng)uart用嗎

    USART實(shí)際上包含了UART的功能,并增加了支持同步通信的能力。在大多數(shù)微控制器中,UART通常是USART功能的一部分,USART可以配置為UART模式進(jìn)行異步
    發(fā)表于 01-17 15:46 ?1.9w次閱讀
    <b class='flag-5'>uart</b>與usart區(qū)別 usart可以當(dāng)<b class='flag-5'>uart</b>用嗎

    常見通信的底層數(shù)據(jù)傳輸原理(UART、SPI、I2C)

    UART:Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器。 UART串口是最常見的一種串口通信,下面是串口連接上位機(jī)電腦,以及RS232應(yīng)用的動畫。
    發(fā)表于 01-15 10:41 ?916次閱讀
    常見<b class='flag-5'>通信</b>的底層數(shù)據(jù)傳輸原理(<b class='flag-5'>UART</b>、SPI、I2C)

    最詳細(xì)的UART通訊協(xié)議分析在這里

    下載本篇文章的pdf版本:UART協(xié)議分析.pdf1.協(xié)議基礎(chǔ)1.1.協(xié)議簡介UART是“UniversalAsynchronousReceiver/Transmitter”,通用異步收發(fā)器的縮寫
    的頭像 發(fā)表于 01-12 14:15 ?1.7w次閱讀
    最詳細(xì)的<b class='flag-5'>UART</b>通訊協(xié)議分析在這里