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

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

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

UART串口通訊協(xié)議解析

嵌入式單片機(jī)MCU開(kāi)發(fā) ? 來(lái)源:嵌入式單片機(jī)MCU開(kāi)發(fā) ? 作者:嵌入式單片機(jī)MCU開(kāi) ? 2022-11-14 16:48 ? 次閱讀

概述

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱(chēng)作UART。它將要傳輸?shù)?a href="http://ttokpm.com/soft/special/" target="_blank">資料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號(hào)轉(zhuǎn)成串行輸出信號(hào)的芯片,UART通常被集成于其他通訊接口的連結(jié)上。 具體實(shí)物表現(xiàn)為獨(dú)立的模塊化芯片,或作為集成于微處理器中的周邊設(shè)備。一般是RS-232C規(guī)格的,與類(lèi)似Maxim的MAX232之類(lèi)的標(biāo)準(zhǔn)信號(hào)幅度變換芯片進(jìn)行搭配,作為連接外部設(shè)備的接口。在UART上追加同步方式的序列信號(hào)變換電路的產(chǎn)品,被稱(chēng)為USART(Universal Synchronous Asynchronous Receiver Transmitter)。

接口

在UART通信中,兩個(gè)UART直接相互通信。發(fā)送UART將來(lái)自CPU等控制設(shè)備的并行數(shù)據(jù)轉(zhuǎn)換為串行形式,并將其串行發(fā)送到接收UART,接收UART然后將串行數(shù)據(jù)轉(zhuǎn)換回接收設(shè)備的并行數(shù)據(jù)。數(shù)據(jù)從發(fā)送UART的Tx引腳流向接收UART的Rx引腳,硬件連接比較簡(jiǎn)單,僅需要3條線,如果兩個(gè)設(shè)備UART電平不一致需要轉(zhuǎn)換電平再連接。

TX - 數(shù)據(jù)發(fā)送接口 RX - 數(shù)據(jù)接受接口 GND - 保證兩設(shè)備共地,有統(tǒng)一的參考平面 在這里插入圖片描述

通信協(xié)議

UART串口傳輸?shù)臄?shù)據(jù)被組織成數(shù)據(jù)包。每個(gè)數(shù)據(jù)包包含1個(gè)起始位,5至9個(gè)數(shù)據(jù)位,可選的奇偶校驗(yàn)位和1或1.5或2個(gè)停止位,協(xié)議如下: |起始位|數(shù)據(jù)位 |奇偶校驗(yàn)位|停止位| |--|--|--|--| | 1bit | 5-9bit |0-1bit | 1-2bit | 空閑位 :UART協(xié)議規(guī)定,當(dāng)總線處于空閑狀態(tài)時(shí)信號(hào)線的狀態(tài)為‘1’即高電平,表示當(dāng)前線路上沒(méi)有數(shù)據(jù)傳輸。

起始位 :開(kāi)始進(jìn)行數(shù)據(jù)傳輸時(shí)發(fā)送方要先發(fā)出一個(gè)低電平’0’來(lái)表示傳輸字符的開(kāi)始。因?yàn)榭偩€空閑時(shí)為高電平所以開(kāi)始一次通信時(shí)先發(fā)送一個(gè)明顯區(qū)別于空閑狀態(tài)的信號(hào)即低電平。

數(shù)據(jù)位 :起始位之后就是要傳輸需要傳輸?shù)臄?shù)據(jù),數(shù)據(jù)可以是5,6,7,8,9位,構(gòu)成一個(gè)字符,一般都是8位。先發(fā)送最低位最后發(fā)送最高位,使用低電平表示‘0’高電平表示‘1’完成數(shù)據(jù)位的傳輸。 奇偶校驗(yàn)位 :數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)數(shù)據(jù)傳送的正確性。校驗(yàn)位其實(shí)是調(diào)整個(gè)數(shù),串口校驗(yàn)分幾種方式:

  1. 無(wú)校驗(yàn)(no parity)
  2. 奇校驗(yàn)(odd parity):如果數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),則校驗(yàn)位為“1”,如果“1”的數(shù)目是奇數(shù),校驗(yàn)位為“0”。
  3. 偶校驗(yàn)(even parity):如果數(shù)據(jù)為中“1”的數(shù)目是偶數(shù),則校驗(yàn)位為“0”,如果為奇數(shù),校驗(yàn)位為“1”。
  4. mark parity:校驗(yàn)位始終為1(不常用)。
  5. parity:校驗(yàn)位始終為0(不常用)。

停止位 :數(shù)據(jù)結(jié)束標(biāo)志,可以是1位,1.5位,2位的高電平。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備之間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘的機(jī)會(huì)。停止位個(gè)數(shù)越多,數(shù)據(jù)傳輸越穩(wěn)定,但是數(shù)據(jù)傳輸速度也越慢。 傳輸方向 :即數(shù)據(jù)是從高位(MSB)開(kāi)始傳輸還是從低位(LSB)開(kāi)始傳輸。

波特率

電子通信領(lǐng)域,波特(Baud)即調(diào)制速率,指的是有效數(shù)據(jù)訊號(hào)調(diào)制載波的速率,即單位時(shí)間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。 波特率表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),它是對(duì)符號(hào)傳輸速率的一種度量,它用單位時(shí)間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來(lái)表示,1波特即指每秒傳輸1個(gè)符號(hào)。 數(shù)據(jù)傳輸速率使用波特率來(lái)表示。單位bps(bits per second),常見(jiàn)的波特率9600bps、115200bps等等,其他標(biāo)準(zhǔn)的波特率是1200,2400,4800,19200,38400,57600。舉個(gè)例子,如果串口波特率設(shè)置為115200bps,那么傳輸一個(gè)比特需要的時(shí)間是1/115200≈8.68us。

示例

設(shè)置115200,傳輸單個(gè)0x62的數(shù)據(jù),使用示波器抓得的波形如下所示。 在這里插入圖片描述 上圖是uart協(xié)議傳輸一個(gè)0x62的數(shù)據(jù),通過(guò)示波器的uart解碼而得到的波形示意圖,由于未設(shè)置奇偶校驗(yàn)位,故在上圖未顯示出來(lái);比特流格式為L(zhǎng)SB,故從低位開(kāi)始傳輸,接收數(shù)據(jù)為0100 0110,實(shí)際的數(shù)據(jù)應(yīng)該反過(guò)來(lái),即0110 0010(0x62)。

設(shè)置115200,傳輸0x55,0xAA,0x03等多個(gè)數(shù)據(jù)時(shí),使用示波器抓得的波形如下所示。 在這里插入圖片描述

上圖是uart協(xié)議傳輸0x55,0xAA,0x03等多個(gè)數(shù)據(jù),通過(guò)示波器的uart解碼而得到的波形示意圖,由于未設(shè)置奇偶校驗(yàn)位,故在上圖未顯示出來(lái),設(shè)置的停止位為1位;比特流格式為L(zhǎng)SB,故從低位開(kāi)始傳輸,接收三個(gè)數(shù)據(jù)分別為1010 1010、0101 0101、1100 0000,實(shí)際的數(shù)據(jù)應(yīng)該反過(guò)來(lái),即0101 0101(0x55)、1010 1010(0xAA)、0000 0011(0x03)。

審核編輯:湯梓紅

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

    關(guān)注

    14

    文章

    1540

    瀏覽量

    76059
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1219

    瀏覽量

    101117
  • 通訊協(xié)議
    +關(guān)注

    關(guān)注

    10

    文章

    265

    瀏覽量

    20311
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    UART協(xié)議,將并行輸入信號(hào)轉(zhuǎn)換成串行輸出信號(hào)。因?yàn)?b class='flag-5'>UART簡(jiǎn)單實(shí)用的特性,其已經(jīng)成為一種使用非常廣泛的通訊協(xié)議。我們?nèi)粘=佑|到的
    的頭像 發(fā)表于 09-04 16:13 ?9520次閱讀
    最詳細(xì)的<b class='flag-5'>UART</b><b class='flag-5'>通訊</b><b class='flag-5'>協(xié)議</b>分析在這里

    UART串口通訊協(xié)議解析

    - 數(shù)據(jù)接受接口 GND - 保證兩設(shè)備共地,有統(tǒng)一的參考平面 通信協(xié)議 UART串口傳輸?shù)臄?shù)據(jù)被組織成數(shù)據(jù)包。每個(gè)數(shù)據(jù)包包含1個(gè)起始位,5至9個(gè)數(shù)據(jù)位,可選的奇偶校驗(yàn)位和1或1.5或2個(gè)停止位
    發(fā)表于 09-12 16:01

    RS-232-C串口通訊協(xié)議解析

    RS-232-C串口通訊協(xié)議解析
    發(fā)表于 08-18 22:08

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

    UART串口通訊協(xié)議解析概述接口通信協(xié)議概述通用異步收發(fā)傳輸器(Universal Asynch
    發(fā)表于 07-29 08:07

    基于STM32的串口通訊協(xié)議

    通訊協(xié)議是指在嵌入式開(kāi)發(fā)中,不同的硬件系統(tǒng)或者操作系統(tǒng)之間進(jìn)行數(shù)據(jù)交換的方式,是一種數(shù)據(jù)通訊的規(guī)約。 通訊協(xié)議有很多種,而我今天要說(shuō)的是
    發(fā)表于 08-03 06:12

    串口通訊協(xié)議的相關(guān)資料推薦

    文章目錄通訊的基本概念串口通訊協(xié)議簡(jiǎn)介物理層RS-232標(biāo)準(zhǔn)USB轉(zhuǎn)串口原生的串口
    發(fā)表于 12-09 08:27

    SPI、I2C、UART串行總線協(xié)議

    串口通訊通信協(xié)議UART,以及常用外設(shè)通信協(xié)議 SPI、I2C的介紹與他們之間的區(qū)別
    發(fā)表于 11-30 11:28 ?94次下載

    實(shí)驗(yàn)五 UART串口通訊實(shí)驗(yàn)

    UART串口通訊
    發(fā)表于 01-22 20:51 ?8次下載

    基于KMP算法的串口通訊協(xié)議解析鄒鐵

    基于KMP算法的串口通訊協(xié)議解析_鄒鐵
    發(fā)表于 03-17 08:00 ?2次下載

    UART串口通訊協(xié)議的實(shí)現(xiàn)

    何時(shí)發(fā)送數(shù)據(jù): 什么時(shí)候開(kāi)始,我知道你開(kāi)始發(fā)送數(shù)據(jù) 2. 何時(shí)結(jié)束發(fā)送:什么時(shí)候開(kāi)始,我知道你已經(jīng)結(jié)束數(shù)據(jù)的發(fā)送了 3. 該怎樣接受數(shù)據(jù):接受到的數(shù)據(jù)我該怎樣進(jìn)行存儲(chǔ) 3. 協(xié)議 UART一共用4根線,分別是數(shù)據(jù)發(fā)送線,數(shù)據(jù)接收線,VCC,GND,從這4根線上
    的頭像 發(fā)表于 03-29 14:45 ?1700次閱讀
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通訊</b><b class='flag-5'>協(xié)議</b>的實(shí)現(xiàn)

    【STM32學(xué)習(xí)筆記】串口通訊 — USART / UART

    文章目錄通訊的基本概念串口通訊協(xié)議簡(jiǎn)介物理層RS-232標(biāo)準(zhǔn)USB轉(zhuǎn)串口原生的串口
    發(fā)表于 11-26 11:51 ?15次下載
    【STM32學(xué)習(xí)筆記】<b class='flag-5'>串口</b><b class='flag-5'>通訊</b> — USART / <b class='flag-5'>UART</b>

    UART串口通訊

    UART串口通訊總結(jié)前言串口的基本概念串口配置的基本屬性串口(Serial port)和RS-2
    發(fā)表于 12-20 19:31 ?24次下載
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通訊</b>

    STM32的串口通訊協(xié)議

    本文主要講解串口協(xié)議和RS-232標(biāo)準(zhǔn),以及RS232電平與TTL電平的區(qū)別;介紹"USB/TTL轉(zhuǎn)232"模塊(以CH340芯片模塊為例)的工作原理。一、串口協(xié)議1.1
    發(fā)表于 12-24 18:37 ?8次下載
    STM32的<b class='flag-5'>串口</b><b class='flag-5'>通訊</b><b class='flag-5'>協(xié)議</b>

    串口通訊時(shí)的數(shù)據(jù)幀格式和通訊協(xié)議有什么區(qū)別?

    串口通訊時(shí)的數(shù)據(jù)幀格式和通訊協(xié)議是兩個(gè)不同的概念,它們?cè)?b class='flag-5'>串口通訊中起著不同的作用,但都是為了實(shí)現(xiàn)
    的頭像 發(fā)表于 01-30 09:21 ?1797次閱讀

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

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