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

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

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

UART通訊原理

冬至子 ? 來源:華維單片機編程 ? 作者:華維 ? 2023-06-06 15:01 ? 次閱讀

- 前言 -

開發(fā)中經(jīng)常用到串口通訊,串即串行,顧名思義,是指數(shù)據(jù)在一根數(shù)據(jù)線上按照二進制的數(shù)位,從低到高位一位一位的傳輸。單片機中的串口有UART,USART。

UART/USART 在許多 DIY 電子項目中用于將 GPS 模塊、藍牙模塊、 RFID 讀卡器模塊等連接到Raspberry Pi、Arduino 或其他微控制器。

- UART -

UART介紹:

我們今天要介紹的UART,全稱Universal Asynchronous

Receiver/Transmitter,通用異步收發(fā)傳輸器。使用TTL電平信號,和電腦的COM口(遵循RS-232)不同。它們之間不能直接通訊,需要在之間加入轉換器(如MAX232)。

Tips:

采用二進制來表示數(shù)據(jù)時:

TTL(晶體管-晶體管邏輯電平)電平信號規(guī)定,+5V等價于邏輯“1”,0V等價于邏輯“0”。

RS-232規(guī)定邏輯“1”的電平為-5V~-15 V,邏輯“0”的電平為+5 V~+15 V

UART工作原理

和其它串口一樣,數(shù)據(jù)按照二進制從低位到高位一位一位的傳輸,能將要傳輸?shù)臄?shù)據(jù)在串行通信與并行通信之間加以轉換,能夠靈活地與外部設備進行全雙工數(shù)據(jù)交換。例如要傳輸一個字節(jié)的數(shù)據(jù)10001110,它是從低位0開始,一位一位的傳輸過去。

在 UART 通信中,兩個 UART 直接相互通信。發(fā)送端將來自控制設備(如 CPU)的并行數(shù)據(jù)轉換為串行形式,接著將其串行傳輸?shù)浇邮斩?,然后接收端將串行?shù)據(jù)轉換回并行數(shù)據(jù)以供接收設備使用。

數(shù)據(jù)從一個UART的發(fā)送引腳(Tx) 流向另一個UART的接收(Rx) 引腳:

圖片

UART通訊分類:

單工:UART只用Tx或Rx其中一根線進行通訊,也就是只作接收或發(fā)送;

半雙工:UART在同一時間,只用作發(fā)送或接收;

全雙工:UART在發(fā)送的同時,也可以接收;

UART波特率:

UART的波特率是指每秒傳輸?shù)亩M制位數(shù)(單位bps),比如9600bps,意思就是每秒鐘可以傳輸9600個位(bit)。

例如:設字符傳輸?shù)乃俾蕿?20字符/秒,而每1個字符為10位(bit),那么傳送的波特率為:10位/字符 * 120 字符/秒 = 1200 /秒 = 1200bps。那么每1位二進制位(bit)的傳送時間:

T = 1/1200 = 0.833ms

UART要求發(fā)送與接收兩個UART的波特率配置相同。如果發(fā)送與接收波特率不同,相差很大,接收端采樣點跨過多個電平,造成接收丟失,或者造成波特率不匹配,接收失敗,如下圖:

圖片

常見的波特率有9600、115200、128000、256000等。

- 通訊 -

通訊過程:

UART屬于異步傳輸數(shù)據(jù),這意味著沒有時鐘信號將發(fā)送的位輸出與接收的位采樣同步,也就是發(fā)送與接收使用各自的時鐘。發(fā)送端將開始和停止位添加到傳輸?shù)臄?shù)據(jù)幀中,通過數(shù)據(jù)幀中定義的開始位和結束位,接收端知道何時開始讀取這些位。

每個數(shù)據(jù)幀包含 1 個起始位、5 到 9 個數(shù)據(jù)位(取決于 UART的設置,如果有奇偶校驗位是5到8,沒有則是5到9)、一個可選的奇偶校驗位和 1 個或 2 個停止位:

圖片

起始位:UART 數(shù)據(jù)傳輸線在不傳輸數(shù)據(jù)時通常保持在高電平。要開始發(fā)送數(shù)據(jù)時,發(fā)送端UART先在一個時鐘周期內(nèi)將傳輸線從高電平拉到低電平。當接收端UART 檢測到從高到低的電壓轉換時,它開始以設置好的波特率的頻率讀取數(shù)據(jù)幀中的位。

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

校驗:奇偶校驗位是接收端UART 判斷數(shù)據(jù)在傳輸過程中是否發(fā)生變化的一種方式。位會因電磁輻射、不匹配的波特率或長距離數(shù)據(jù)傳輸而發(fā)生改變。接收端 UART 讀取數(shù)據(jù)幀后,檢查數(shù)據(jù)部分值為1的個數(shù)是奇數(shù)還是偶數(shù)。當奇偶校驗位與數(shù)據(jù)匹配時,UART 知道傳輸沒有錯誤。

停止:發(fā)送端UART 將數(shù)據(jù)傳輸線從低電平拉到高電平持續(xù)至少兩個位的時間來表示整個數(shù)據(jù)包的傳輸已經(jīng)結束。

發(fā)送接收過程:

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

圖片

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

圖片

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

圖片

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

圖片

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

圖片

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

    關注

    48

    文章

    7458

    瀏覽量

    150859
  • 單片機
    +關注

    關注

    6030

    文章

    44491

    瀏覽量

    632007
  • 串口通訊
    +關注

    關注

    1

    文章

    258

    瀏覽量

    24813
  • UART接口
    +關注

    關注

    0

    文章

    124

    瀏覽量

    15256
  • RFID讀卡器
    +關注

    關注

    0

    文章

    57

    瀏覽量

    11334
收藏 人收藏

    評論

    相關推薦

    UART通訊過程詳解

    UART通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通信雙方接三根線,RX、TX和GND。其中,TX用于發(fā)送數(shù)據(jù),RX用于接受數(shù)據(jù),雙方收發(fā)交叉對接,支持全雙工方式。
    的頭像 發(fā)表于 09-28 15:06 ?3218次閱讀
    <b class='flag-5'>UART</b><b class='flag-5'>通訊</b>過程詳解

    通過中斷的方式進行UART通訊

    目錄前言數(shù)據(jù)格式波特率產(chǎn)生相關寄存器相關程序配置中斷相關內(nèi)容配置通訊相關內(nèi)容配置波特率串口及接收中斷配置接收中斷回調(diào)函數(shù)主邏輯UART模式對比不同配置波特率誤差表前言華大單片機HC32L110
    發(fā)表于 12-06 06:55

    如何解決UART通訊不受長度和回車等字符限制?

    如何解決UART通訊不受長度和回車等字符限制?
    發(fā)表于 12-13 06:47

    如何實現(xiàn)基于STM32F103ZET6的UART通訊

    什么是IAP,為什么要IAP?如何實現(xiàn)基于STM32F103ZET6的UART通訊?
    發(fā)表于 12-14 06:35

    鉅泉(HiTrendtech) HT7017,現(xiàn)貨 UART 通訊接口的高精度單相多功能計量芯片

    HT7017是-顆帶UART通訊接口的高精度單相多功能計量芯片。芯片的工作電壓范圍是4.5 ~ 5.5V。工作晶振為6MHz。1.2. 芯片特性◆三路 22 bit Sigma-Delta ADC
    發(fā)表于 03-09 11:11

    關于485通訊UART通訊

    請問有人知道嗎,就是目前我的電路板是485通訊的,現(xiàn)在我想轉換成UART通訊,那么通過外接怎樣的電路到我的485通訊接口可以實現(xiàn)呢
    發(fā)表于 04-11 09:10

    uart通訊問題求助

    各位好,我是剛工作的新手,最近接手一個傳感器的項目,其中有一個問題是這樣的:芯片是KEAZ128,CO2傳感器跟mcu通訊時,CO2正確的應答數(shù)據(jù)是16 05 01+四個字節(jié)數(shù)據(jù)+校驗和。通過串口轉
    發(fā)表于 04-15 12:46

    AB32VG1之UART通訊相關資料分享

    1、AB32VG1之UART通訊  TTL轉RS232模塊一個,藍訊UART1?! 〈趨?shù)為:波特率9600、停止位1數(shù)據(jù)位8、無友好。  軟件  開啟UART1  在硬件中使能
    發(fā)表于 10-21 14:53

    使用ISP Uart為LPC5528 CFPA和CMPA編程流程,IC沒有響應,Uart通訊失敗的原因?

    目前正在開發(fā)LPC5528 CFPA和CMPA編程流程,使用ISP Uart。 但是剛開始發(fā)送(0x5A 0xA6)(波特率115200),IC沒有響應,看來Uart通訊失敗 ?我們的原理圖如下,您有什么建議嗎? ?
    發(fā)表于 05-29 06:41

    ARM中基于DMA的高效UART通訊及其應用

    UART通訊中,通過采取DMA方式,直接將UART接收的數(shù)據(jù)轉移到設定好的RAM區(qū),然后設置相應的全局標志,通知主程序數(shù)據(jù)可用就可以了。
    發(fā)表于 04-16 16:32 ?7449次閱讀
    ARM中基于DMA的高效<b class='flag-5'>UART</b><b class='flag-5'>通訊</b>及其應用

    msp430 UART 通訊寄存器的詳細解讀

    msp430 UART 通訊 寄存器的詳細解讀 相關參數(shù)的設置和命令的詳見等等
    發(fā)表于 08-15 19:03 ?1次下載

    瑞薩G13單片機UART通訊例程資料包下載

    瑞薩G13單片機UART通訊例程
    發(fā)表于 04-12 11:03 ?12次下載

    UART通訊模塊介紹

    功耗,并且集成了豐富的外設模塊,可以滿足工業(yè)和消費等多種應用。MSP430FR2311中的eUSCI_A0支持UART通訊,本文對此UART模塊的寄存器配置進行了詳細的分析和計算,以幫助工程師對此
    的頭像 發(fā)表于 01-11 10:43 ?2130次閱讀

    振弦采集模塊UART 通訊協(xié)議

    振弦采集模塊UART 通訊協(xié)議 UART 接口支持標準的工業(yè) MODBUS 通訊協(xié)議( 03、 04、 06、 16 指令碼)和自定義的簡單 AABB協(xié)議以及$字符串指令集。 前兩種協(xié)
    發(fā)表于 11-15 09:40 ?319次閱讀
    振弦采集模塊<b class='flag-5'>UART</b> <b class='flag-5'>通訊</b>協(xié)議

    HT7017 是一顆帶 UART 通訊接口的高精度單相多功能計量芯片

    1.芯片簡介HT7017是一顆帶UART通訊接口的高精度單相多功能計量芯片。芯片的工作電壓范圍是4.5~5.5V。工作晶振為6MHz。2.芯片特性三路22bitSigma-DeltaADC支持
    的頭像 發(fā)表于 06-19 16:57 ?969次閱讀
    HT7017 是一顆帶 <b class='flag-5'>UART</b> <b class='flag-5'>通訊</b>接口的高精度單相多功能計量芯片