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

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

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

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

UART傳輸?shù)臄?shù)據(jù)被封裝成數(shù)據(jù)包

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-21 11:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹UART

最早的串行通訊設(shè)備可以追溯到電報機,它使用長度可變的脈沖信號進(jìn)行數(shù)據(jù)傳輸。要說早期的芯片級UART,不得不提一下DEC,該公司的PDP系列計算機用上了第一個UART。當(dāng)時的UART的線路占據(jù)了整個電路板,體積巨大!可以聯(lián)想一下早期計算機的樣子,如下圖。

如今PC機上的串口早已被USB取代,對RS-232(也稱標(biāo)準(zhǔn)串口)有需求的用戶通常使用USB轉(zhuǎn)串口線,這里常見的有CH340串口驅(qū)動程序。在UART通信中,兩個UART直接通信。

發(fā)送端的UART將來自控制設(shè)備(如CPU)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),以串行方式將其發(fā)送到接收端的UART,然后由接收端的UART將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)以用于接收設(shè)備的正常處理。這里只需要兩條線RX/TX即可在兩個UART之間傳輸數(shù)據(jù),如下圖所示。

UART傳輸?shù)臄?shù)據(jù)被封裝成數(shù)據(jù)包。每個數(shù)據(jù)包包含1個起始位,5~9個數(shù)據(jù)位(取決于UART的具體設(shè)置),一個可選的奇偶校驗位以及1個或2個停止位,如下圖所示。

起始位

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

數(shù)據(jù)

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

校驗位

在串口通信中一種簡單的檢錯方式。有四種檢錯方式:

偶校驗

奇校驗

高校驗

低校驗

對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。

停止位

發(fā)送端UART將數(shù)據(jù)傳輸線從低電壓驅(qū)動到高電壓至少持續(xù)兩位數(shù)據(jù)的時間寬度來表示整個數(shù)據(jù)包的傳輸已經(jīng)結(jié)束。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容錯性越好,但是數(shù)據(jù)傳輸率同時也越慢。

波特率

波特率是串口數(shù)據(jù)的傳輸速度,即Bit/s,常見的波特率比如:9600,19200,38400,57600,115200等。假設(shè)目前UART的配置為,1個起始位,8個數(shù)據(jù)位,0個校驗位,1個停止位,那么9600的波特率,可以計算出每一位數(shù)據(jù)的時間寬度為:

o4YBAGAHxKWADljhAAAQjK6T-sg963.png

那么傳輸一個字節(jié)(也就是10 bit 數(shù)據(jù))需要的時間為 1.04 毫秒。

UART傳輸過程

①發(fā)送端UART從數(shù)據(jù)總線轉(zhuǎn)換并行數(shù)據(jù)。

②發(fā)送端UART將起始位,奇偶校驗位和停止位添加到數(shù)據(jù)包中,示意圖如下。

③整個數(shù)據(jù)包從發(fā)送端UART串行發(fā)送到接收端UART,接收端UART按照預(yù)先配置好的波特率對數(shù)據(jù)線進(jìn)行采樣,示意圖如下。

④接收端UART解析接收的數(shù)據(jù),丟棄數(shù)據(jù)包中的起始位,奇偶校驗位和停止位。

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

本文轉(zhuǎn)自: STM32嵌入式開發(fā)(微信號:c-stm32),作者:acket,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。

審核編輯:何安

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

    關(guān)注

    6076

    文章

    45501

    瀏覽量

    670863
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1315

    瀏覽量

    106696
  • 異步串行
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CW32R030可以兼容BLE及XN297L數(shù)據(jù)包,請問這個XN297L數(shù)據(jù)包是什么?

    CW32R030可以兼容BLE及XN297L數(shù)據(jù)包,請問這個XN297L數(shù)據(jù)包是什么?
    發(fā)表于 01-20 06:37

    bk3633 usb 設(shè)備如何讀取主機向端點0 發(fā)送數(shù)據(jù)包

    bk3633 usb 設(shè)備如何讀取主機向端點0 發(fā)送數(shù)據(jù)包
    發(fā)表于 12-30 13:03

    【道生物聯(lián)TKB-623評估板試用】-3.數(shù)據(jù)傳輸

    1.根據(jù)不同速率模式查驗數(shù)據(jù)傳輸 已知速率模式有 10 種; 24/155761bps,155761bps 代表每秒能傳輸約 15.5 萬個二進(jìn)制位。 有一個模塊丟失 1 個數(shù)據(jù)包,SNR13
    發(fā)表于 11-01 00:22

    使用MCU200T開發(fā)板的UART口進(jìn)行數(shù)據(jù)傳輸

    ;amp;gt;Source->Drivers文件夾里可以看到。 完成uart口初始化后,我們開啟中斷發(fā)送使能。 根據(jù)鏈路狀態(tài)寄存器LSR的狀態(tài)判斷是否有數(shù)據(jù)UART傳輸
    發(fā)表于 10-28 08:16

    串口DMA接收數(shù)據(jù)包丟失怎么解決?

    RTT串口DMA接收數(shù)據(jù),超過緩沖區(qū)后為什么會吞掉一個數(shù)據(jù)包呢,不能每次處理完后清除緩沖區(qū)數(shù)據(jù)嗎,感覺接收的數(shù)據(jù)是累計的,累計滿之后會重新覆蓋,在最后一個
    發(fā)表于 09-29 07:50

    請問DCTCP與DCUDP 的登錄數(shù)據(jù)包和心跳數(shù)據(jù)包與服務(wù)器端是如何交互的?

    DCTCP與DCUDP 的登錄數(shù)據(jù)包和心跳數(shù)據(jù)包與服務(wù)器端是如何交互的?
    發(fā)表于 08-06 06:29

    在EZ串行的BLE“無響應(yīng)寫入”中, CAN一次通信中接收的最大數(shù)據(jù)包大小是多少?

    :所有數(shù)據(jù)都顯示在與 ez-Serial 和 PUART 連接的 TeraTerm 上 [問題] (1)在 EZ 串行的 BLE“無響應(yīng)寫入”中, CAN 一次通信中接收的最大數(shù)據(jù)包大小是多少? (2
    發(fā)表于 07-07 07:33

    Android14在BLE中,當(dāng)MTU超過 517時,如何處理數(shù)據(jù)傳輸?

    的情況下: 在分段傳輸過程中,是否應(yīng)該對每個數(shù)據(jù)包應(yīng)用單獨的延遲? 芯片組制造商是否有關(guān)于分段傳輸的具體注意事項或性能優(yōu)化指南? 當(dāng)前的 OTA 問題是否(BTSDK-10583)與上述請求 MTU 有關(guān)嗎? 使用分段
    發(fā)表于 07-01 06:56

    RDMA簡介7之可靠傳輸

    可靠傳輸技術(shù)旨在通過多種方法確保數(shù)據(jù)包傳輸過程中不會丟失或損壞,同時保證數(shù)據(jù)包按發(fā)送順序到達(dá)接收端,其要求在鏈路發(fā)生丟或網(wǎng)絡(luò)發(fā)生擁塞等情
    發(fā)表于 06-13 10:01

    藍(lán)牙數(shù)據(jù)通道空口數(shù)據(jù)包

    ? 與藍(lán)牙廣播相對應(yīng),藍(lán)牙數(shù)據(jù)包是另一種Bluetooth LE packet。藍(lán)牙數(shù)據(jù)包是藍(lán)牙數(shù)據(jù)信道空中的簡稱,表示空中
    發(fā)表于 06-03 10:51

    能否使用兩個 FX3 設(shè)備實現(xiàn) USB 數(shù)據(jù)包嗅探、插入和移除?

    能否使用兩個 FX3 設(shè)備實現(xiàn) USB 數(shù)據(jù)包嗅探、插入和移除?如果需要,除了兩個 FX3 設(shè)備外,還需要哪些硬件(如果有的話)?
    發(fā)表于 05-26 07:16

    更改最大數(shù)據(jù)包大小時無法識別USB設(shè)備如何解決?

    將生產(chǎn)者 EP 端點描述符中的最大數(shù)據(jù)包大小從 1024 字節(jié)更改為 512 字節(jié)時,無法識別 USB 設(shè)備。 請告知如何解決這個問題。
    發(fā)表于 05-20 08:13

    使用CyU3PDmaChannelCommitBuffer提交超過1024字節(jié)數(shù)據(jù)時usb異常大怎么解決?

    你好,我正在嘗試使用fx3實現(xiàn)USB3Vision設(shè)備,但是當(dāng)我使用CyU3PDmaChannelCommitBuffer函數(shù)提交超過1024字節(jié)數(shù)據(jù)時,主機獲取到的USB數(shù)據(jù)包變得非常大
    發(fā)表于 05-13 06:11

    UART、MCXA142實現(xiàn)ISP通信的主機端,發(fā)送Ping數(shù)據(jù)包并收到預(yù)期的響應(yīng),發(fā)送和接收數(shù)據(jù)包的典型順序是什么?

    我想為 UART、MCXA142 實現(xiàn) ISP 通信的主機端。我發(fā)送 Ping 數(shù)據(jù)包并收到預(yù)期的響應(yīng)。發(fā)送和接收數(shù)據(jù)包的典型順序是什么? 此刻,我的照片是這樣的: 1. 發(fā)送 Ping 2. 接收 Ping 響應(yīng) 3. 在成
    發(fā)表于 04-03 08:05

    為什么無法通過demo_feature_L2_bridge_vlan上的PFE轉(zhuǎn)發(fā)VLAN標(biāo)記的以太網(wǎng)數(shù)據(jù)包

    - PC1 使用 ICMP 應(yīng)答進(jìn)行響應(yīng) 對于第二個用例,我看不到正在路由的數(shù)據(jù)包。PC1 不響應(yīng) PC0 發(fā)送的 ARP 請求。我還嘗試發(fā)送硬編碼數(shù)據(jù)包(PC0 和 PC1 的 src 和 dst
    發(fā)表于 03-25 08:05