91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

UART通訊原理

冬至子 ? 來源:華維單片機編程 ? 作者:華維 ? 2023-06-06 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

- 前言 -

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

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

- UART -

UART介紹:

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

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

Tips:

采用二進制來表示數據時:

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

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

UART工作原理

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

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

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

圖片

UART通訊分類:

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

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

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

UART波特率:

UART的波特率是指每秒傳輸的二進制位數(單位bps),比如9600bps,意思就是每秒鐘可以傳輸9600個位(bit)。

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

T = 1/1200 = 0.833ms

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

圖片

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

- 通訊 -

通訊過程:

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

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

圖片

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

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

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

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

發(fā)送接收過程:

1.UART 從數據總線并行接收數據:

圖片

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

圖片

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

圖片

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

圖片

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

圖片

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

    關注

    48

    文章

    8415

    瀏覽量

    164816
  • 單片機
    +關注

    關注

    6077

    文章

    45509

    瀏覽量

    671287
  • 串口通訊
    +關注

    關注

    2

    文章

    266

    瀏覽量

    26408
  • UART接口
    +關注

    關注

    0

    文章

    124

    瀏覽量

    16380
  • RFID讀卡器
    +關注

    關注

    0

    文章

    60

    瀏覽量

    12153
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    UART通訊過程詳解

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

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

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

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

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

    如何實現基于STM32F103ZET6的UART通訊?

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

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

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

    關于485通訊UART通訊

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

    AB32VG1之UART通訊相關資料分享

    1、AB32VG1之UART通訊  TTL轉RS232模塊一個,藍訊UART1?! 〈趨禐椋翰ㄌ芈?600、停止位1數據位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接收的數據轉移到設定好的RAM區(qū),然后設置相應的全局標志,通知主程序數據可用就可以了。
    發(fā)表于 04-16 16:32 ?8122次閱讀
    ARM中基于DMA的高效<b class='flag-5'>UART</b><b class='flag-5'>通訊</b>及其應用

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

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

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

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

    UART通訊模塊介紹

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

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

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

    VM系列振弦采集模塊 溫度傳感器使用及UART 通訊參數

    VM系列振弦采集模塊 溫度傳感器使用及UART 通訊參數 VM系列振弦采集模塊 VMXXX 模塊支持外接溫度傳感器,通過設置寄存器 TEMP_EX 的值來選擇外接溫度傳感器的類型, 通過讀取寄存器
    發(fā)表于 12-13 10:07 ?763次閱讀
    VM系列振弦采集模塊 溫度傳感器使用及<b class='flag-5'>UART</b> <b class='flag-5'>通訊</b>參數

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

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