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

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

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

使用UART協(xié)議與計算機(jī)進(jìn)行通信

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2020-11-29 11:12 ? 次閱讀

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

雖然USB幾乎完全取代了舊的電纜和連接器,但UART絕對沒有過時。你會發(fā)現(xiàn)目前許多項(xiàng)目中使用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通常被集成于其他通訊接口的連接上。

它不是像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引腳:

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

當(dāng)接收UART檢測到起始位時,它開始以稱為波特率的特定頻率讀取輸入位。波特率是數(shù)據(jù)傳輸速度的度量,以每秒位數(shù)(bps)表示。兩個UART必須以大致相同的波特率運(yùn)行。發(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ù)總線傳輸發(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ù)總線:

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

1

開始位

當(dāng)UART數(shù)據(jù)傳輸線不傳輸數(shù)據(jù)時,它通常保持在高電壓電平。為了開始數(shù)據(jù)傳輸,發(fā)送UART將傳輸線從高電平拉至低電平一個時鐘周期。當(dāng)接收UART檢測到高電壓到低電壓轉(zhuǎn)換時,它開始以波特率的頻率讀取數(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ù)據(jù)都有可能發(fā)生變化。接收UART讀取數(shù)據(jù)幀后,它會計算值為1的位數(shù),并檢查總數(shù)是偶數(shù)還是奇數(shù)。

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

4

停止位

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

UART傳輸步驟

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

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

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

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

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

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

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

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

責(zé)任編輯:lq

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

    關(guān)注

    98

    文章

    14617

    瀏覽量

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

    關(guān)注

    3

    文章

    854

    瀏覽量

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

    關(guān)注

    34

    文章

    1627

    瀏覽量

    55616

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    刀片計算機(jī)設(shè)計方案:192-6U VPX i7 刀片計算機(jī)

    6U VPX , 6U VPX , KU5P計算板 , VPX刀片式計算機(jī) , 刀片計算機(jī) , 無線電通信
    的頭像 發(fā)表于 11-29 15:13 ?217次閱讀
    刀片<b class='flag-5'>計算機(jī)</b>設(shè)計方案:192-6U VPX i7 刀片<b class='flag-5'>計算機(jī)</b>

    量子計算機(jī)與普通計算機(jī)工作原理的區(qū)別

    ? 本文介紹了量子計算機(jī)與普通計算機(jī)工作原理的區(qū)別。 量子計算是一個新興的研究領(lǐng)域,科學(xué)家們利用量子力學(xué),制造出具有革命性能力的計算機(jī)。雖然現(xiàn)在的量子
    的頭像 發(fā)表于 11-24 11:00 ?394次閱讀
    量子<b class='flag-5'>計算機(jī)</b>與普通<b class='flag-5'>計算機(jī)</b>工作原理的區(qū)別

    簡述計算機(jī)總線的分類

    計算機(jī)總線作為計算機(jī)系統(tǒng)中連接各個功能部件的公共通信干線,其結(jié)構(gòu)和分類對于理解計算機(jī)硬件系統(tǒng)的工作原理至關(guān)重要。以下是對計算機(jī)總線結(jié)構(gòu)和分類
    的頭像 發(fā)表于 08-26 16:23 ?2317次閱讀

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

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

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

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是一種常見的串行通信協(xié)議,廣泛應(yīng)用于計算機(jī)、嵌入式系統(tǒng)、傳
    的頭像 發(fā)表于 07-25 18:07 ?1514次閱讀

    計算機(jī)系統(tǒng)的組成和功能

    計算機(jī)系統(tǒng)是一個復(fù)雜而龐大的概念,它涵蓋了計算機(jī)硬件、軟件以及它們之間相互作用的所有元素。為了全面而深入地探討計算機(jī)系統(tǒng),本文將從定義、組成、功能、發(fā)展歷程以及未來趨勢等方面進(jìn)行詳細(xì)闡
    的頭像 發(fā)表于 07-24 17:41 ?1149次閱讀

    計算機(jī)視覺的主要研究方向

    計算機(jī)視覺(Computer Vision, CV)作為人工智能領(lǐng)域的一個重要分支,致力于使計算機(jī)能夠像人眼一樣理解和解釋圖像和視頻中的信息。隨著深度學(xué)習(xí)、大數(shù)據(jù)等技術(shù)的快速發(fā)展,計算機(jī)視覺的研究和應(yīng)用取得了顯著進(jìn)步。本文將對
    的頭像 發(fā)表于 06-06 17:17 ?1040次閱讀

    工業(yè)計算機(jī)與普通計算機(jī)的區(qū)別

    在信息化和自動化日益發(fā)展的今天,計算機(jī)已經(jīng)成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡墓ぞ?。然而,?b class='flag-5'>計算機(jī)領(lǐng)域中,工業(yè)計算機(jī)和普通計算機(jī)雖然都具備基本的計算
    的頭像 發(fā)表于 06-06 16:45 ?1514次閱讀

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

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

    【RTC程序設(shè)計:實(shí)時音視頻權(quán)威指南】計算機(jī)知識基礎(chǔ)篇

    的加密,加密方法、算法也有很多種,有對稱加密算法,也有非對稱加密算法。在這些計算機(jī)網(wǎng)絡(luò)中的基本概念,可以從物理層到應(yīng)用層的特性進(jìn)行了解,重點(diǎn)可以學(xué)習(xí)一下UDP和TCP這兩種最基本的網(wǎng)絡(luò)協(xié)議,并且該節(jié)也
    發(fā)表于 04-23 09:02

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

    電子工業(yè)協(xié)會(Electronic Industries Association)定義的,用于計算機(jī)與外設(shè)之間的數(shù)據(jù)傳輸。UART通信速率較慢,最高波特率為115200bps,但是功耗低,成本低
    的頭像 發(fā)表于 03-19 17:26 ?1484次閱讀

    【量子計算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+ 了解量子疊加原理

    邏輯門,但是它們可以操作疊加態(tài)和糾纏態(tài)。 量子計算機(jī)計算能力主要來自于量子比特的疊加特性,通過操縱量子比特的疊加態(tài),量子計算機(jī)可以同時進(jìn)行大量的
    發(fā)表于 03-13 17:19

    【量子計算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+量子計算機(jī)的原理究竟是什么以及有哪些應(yīng)用

    來的,看了本書第一部分內(nèi)容,有了點(diǎn)認(rèn)識,但是感覺還是迷糊,還是沒有弄清楚什么是量子計算機(jī),尤其是其原理。以下是個人讀完之后的一些理解。 書中1.4章節(jié),以解決交通擁堵問題為例進(jìn)行了距離,對比了傳統(tǒng)方法和量子
    發(fā)表于 03-11 12:50

    【量子計算機(jī)重構(gòu)未來 | 閱讀體驗(yàn)】+ 初識量子計算機(jī)

    話對我觸動很大:量子計算機(jī)不僅能解決身邊的問題,還能解決社會層面的重大課題。 看來真是“天下武功,唯快不破”,只要處理速度足夠快,海量數(shù)據(jù)處理就像計算1+1一樣簡單,可以想象一下,用量子計算機(jī)
    發(fā)表于 03-05 17:37

    計算機(jī)系統(tǒng)如何應(yīng)對大模型時代的挑戰(zhàn)與機(jī)遇

    “操作系統(tǒng)管理著計算機(jī)的資源和進(jìn)程,以及所有的硬件和軟件。計算機(jī)的操作系統(tǒng)讓用戶在不需要了解計算機(jī)語言的情況下與計算機(jī)進(jìn)行交互?!边@是我們對
    發(fā)表于 01-23 11:06 ?591次閱讀
    <b class='flag-5'>計算機(jī)</b>系統(tǒng)如何應(yīng)對大模型時代的挑戰(zhàn)與機(jī)遇