女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

數(shù)據(jù)包的結(jié)構(gòu)及傳輸過(guò)程

單片機(jī)匠人 ? 來(lái)源:?jiǎn)纹瑱C(jī)匠人 ? 作者:?jiǎn)纹瑱C(jī)匠人 ? 2022-03-11 09:19 ? 次閱讀

今天我們來(lái)詳細(xì)地說(shuō)說(shuō)數(shù)據(jù)包的結(jié)構(gòu)以及它們的傳輸過(guò)程。USB是串行總線,所以數(shù)據(jù)是一位一位地在數(shù)據(jù)線上傳送的。既然是一位一位地傳送,就存在著一個(gè)數(shù)據(jù)位先后的問(wèn)題。usb使用的是LSB在前的方式,即先出來(lái)的是最低位數(shù)據(jù),接下來(lái)是次低位,最后是最高位(MSB)。一個(gè)包,又被分成了很多個(gè)域(field),而LSB、MSB就是以域?yàn)閱挝粊?lái)劃分的。

前面說(shuō)過(guò),USB數(shù)據(jù)在發(fā)送到總線上之前,要先經(jīng)過(guò)位填充,再經(jīng)過(guò)NRZ1編碼。在這里討論時(shí),所用的數(shù)據(jù)都是原始的數(shù)據(jù),即沒(méi)有經(jīng)過(guò)位填充和NRZ編碼的原始數(shù)據(jù)。以后也是如此,凡是沒(méi)有明確說(shuō)明是位填充或NRZI編碼過(guò)的數(shù)據(jù),默認(rèn)為原始的數(shù)據(jù)。另外還有一個(gè)數(shù)據(jù)傳輸方向的問(wèn)題,因?yàn)樵赨SB系統(tǒng)中,主機(jī)處于主導(dǎo)地位,所以把從設(shè)備到主機(jī)的數(shù)據(jù)叫做輸入,從主機(jī)到設(shè)備的數(shù)據(jù)叫做輸出。

USB總線上傳輸數(shù)據(jù)是以包為基本單位的。一個(gè)包被分成不同的域。根據(jù)不同類(lèi)型的包,所包含的域是不一樣的。但是不同的包有個(gè)共同的特點(diǎn),就是都要以同步域開(kāi)始,緊跟一個(gè)包標(biāo)識(shí)符PD( Packet Identifier),最終以包結(jié)束符EOP(End Of Packet)來(lái)結(jié)束這個(gè)包。

同步域是用來(lái)告訴USB的串行接口引擎數(shù)據(jù)要開(kāi)始傳輸了,請(qǐng)做好準(zhǔn)備。除此之外,同步域還可以用來(lái)同步主機(jī)端和設(shè)備端的數(shù)據(jù)時(shí)鐘,因?yàn)橥接蚴且砸淮?開(kāi)始的,而0在USB總線上就被編碼為電平翻轉(zhuǎn),結(jié)果就是每個(gè)數(shù)據(jù)位都發(fā)生電平變化,這讓串行接口引擎很容易就能恢復(fù)出采樣時(shí)鐘信號(hào);對(duì)于全速設(shè)備和低速設(shè)備,同步域使用的是0000001(二進(jìn)制數(shù),線上的發(fā)送順序);對(duì)于高速設(shè)備,同步域使用的是31個(gè)0,后面跟1個(gè)1(需要注意的是,這是對(duì)發(fā)送端的要求,接收端解碼時(shí),0的個(gè)數(shù)可以少于這個(gè)數(shù))。

圖1是一個(gè)全速或者低速USB數(shù)據(jù)包的同步域經(jīng)過(guò)NRZ編碼后的波形。這個(gè)波形有7次電平翻轉(zhuǎn),即對(duì)應(yīng)著7個(gè)0,最后一個(gè)電平不翻轉(zhuǎn),即對(duì)應(yīng)著1個(gè)1當(dāng)串行接口引擎檢測(cè)到一個(gè)位的數(shù)據(jù)未發(fā)生翻轉(zhuǎn)后(即收到數(shù)據(jù)1),就認(rèn)為包標(biāo)識(shí)符PID開(kāi)始了,如圖1.9.1中的PID0PD1,就是包標(biāo)識(shí)符的最低兩位。

cfaa03a4-894d-11ec-952b-dac502259ad0.jpg

cfc05302-894d-11ec-952b-dac502259ad0.png

圖1 全速設(shè)備和低速設(shè)備的同步域

包結(jié)束符EOP,對(duì)于高速設(shè)備和全速/低速設(shè)備也是不一樣的。全速/低速設(shè)備的EOP是一個(gè)大約為2個(gè)數(shù)據(jù)位寬度的單端0(SE0)信號(hào)。SE0的意思就是,D+和D同時(shí)都保持為低電平。由于USB使用的是差分?jǐn)?shù)據(jù)線,通常都是一高一低的,而SE0不同,是一種都為低特殊的狀態(tài)。SE0用來(lái)表示一些特殊的意義,例如包結(jié)束、復(fù)位信號(hào)等。前面提到USB集線器對(duì)USB設(shè)備進(jìn)行復(fù)位的操作,就是通過(guò)將總線設(shè)置為SE0狀態(tài)大約10ms來(lái)實(shí)現(xiàn)的。對(duì)于高速設(shè)備的EOP,使用故意的位填充錯(cuò)誤來(lái)表示。那么如何判斷一個(gè)位填充錯(cuò)誤是真的位填充錯(cuò)誤還是包結(jié)束呢?這個(gè)由CRC校驗(yàn)來(lái)判斷。如果CRC校驗(yàn)正確,則說(shuō)明這個(gè)位填充錯(cuò)誤是EOP;否則,說(shuō)明傳輸出錯(cuò)。具體的定義請(qǐng)參看USB協(xié)議,這里只要知道有EOP這么一個(gè)東西就行了。

包標(biāo)識(shí)符PID是用來(lái)標(biāo)識(shí)一個(gè)包的類(lèi)型的它總共有8位,其中USB協(xié)議使用的只有4位(PID~PID3),另外4位(PI4~PID7)是PID~PD3的取反,用來(lái)校驗(yàn)PID。USB協(xié)議規(guī)定了4類(lèi)包,分別是令牌包(token packet,PD1~0為01)、數(shù)據(jù)包( data packet,pid1~0為11)、握手包(handshake packet,piD~0為10)和特殊包( special packet,PiD1~0為00)。不同類(lèi)的包又分成幾種具體的包。圖2 是USB2.0協(xié)議中規(guī)定的各種PID,其中有些是在USB1.1協(xié)議中沒(méi)有的,用號(hào)標(biāo)出。

cfaa03a4-894d-11ec-952b-dac502259ad0.jpg

cff19b42-894d-11ec-952b-dac502259ad0.png

圖2 USB2.0中定義的各種PID

以上是數(shù)據(jù)包的結(jié)構(gòu)以及它們傳輸?shù)倪^(guò)程,今天的分享就到這里。

往期回顧:

●USB的四種傳輸類(lèi)型之控制傳輸

●指針和數(shù)組的恩恩怨怨

●USB的四種傳輸類(lèi)型之中斷傳輸?shù)葧r(shí)傳輸

聲明:本文內(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)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8136

    瀏覽量

    270735
  • 數(shù)據(jù)包
    +關(guān)注

    關(guān)注

    0

    文章

    269

    瀏覽量

    24870

原文標(biāo)題:USB的包結(jié)構(gòu)以及包的類(lèi)型

文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

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

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

    I2C總線數(shù)據(jù)包結(jié)構(gòu)詳解

    。以下是I2C總線數(shù)據(jù)包結(jié)構(gòu)的詳解: 一、I2C總線數(shù)據(jù)包的基本組成 I2C總線上的數(shù)據(jù)傳輸數(shù)據(jù)包為單位進(jìn)行,每個(gè)
    的頭像 發(fā)表于 01-17 15:46 ?642次閱讀

    mtu配置步驟詳解 mtu與數(shù)據(jù)包丟失的關(guān)系

    MTU(Maximum Transmission Unit)即最大傳輸單元,是指一種通信協(xié)議的某一層上面所能通過(guò)的最大數(shù)據(jù)報(bào)大小,單位是字節(jié)。MTU配置步驟及其與數(shù)據(jù)包丟失的關(guān)系如下: MTU配置
    的頭像 發(fā)表于 12-16 14:33 ?2259次閱讀

    華納云:服務(wù)器平均響應(yīng)時(shí)間和數(shù)據(jù)包大小之間的影響

    服務(wù)器的平均響應(yīng)時(shí)間與數(shù)據(jù)包大小有一定的關(guān)系,但這只是影響響應(yīng)時(shí)間的眾多因素之一。具體來(lái)說(shuō),數(shù)據(jù)包大小對(duì)服務(wù)器響應(yīng)時(shí)間的影響可以從以下幾個(gè)方面來(lái)理解: 1.數(shù)據(jù)傳輸時(shí)間 影響: 較大的數(shù)據(jù)包
    的頭像 發(fā)表于 10-10 14:01 ?529次閱讀

    艾體寶干貨 OIDA之一:掌握數(shù)據(jù)包分析-學(xué)會(huì)觀察

    OIDA方法論是數(shù)據(jù)包分析的有效手段。其中,觀察是至關(guān)重要的第一步。本文探討了如何通過(guò)明確目標(biāo)、選擇最佳捕獲點(diǎn)、確定捕獲時(shí)機(jī)以及使用合適工具來(lái)優(yōu)化這一過(guò)程,從而為后續(xù)分析過(guò)程奠定堅(jiān)實(shí)基礎(chǔ)。
    的頭像 發(fā)表于 08-26 16:21 ?356次閱讀
    艾體寶干貨 OIDA之一:掌握<b class='flag-5'>數(shù)據(jù)包</b>分析-學(xué)會(huì)觀察

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

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

    esp8266怎么做才能每秒發(fā)送更多的數(shù)據(jù)包呢?

    數(shù)據(jù)包的速度,即每秒大約 50 個(gè) UDP 數(shù)據(jù)包。高波特率唯一改變的是,在數(shù)據(jù)包較大的情況下,我可以以與輕量級(jí)數(shù)據(jù)包相同的速度發(fā)送數(shù)據(jù)包
    發(fā)表于 07-22 08:00

    使用AT SAVETRANSLINK時(shí)UDP數(shù)據(jù)包丟失怎么解決?

    Android 發(fā)送一個(gè)小 UDP 數(shù)據(jù)包(5 字節(jié))。這個(gè)小數(shù)據(jù)包被我的微控制器在UART上接收到。微控制器將更大的數(shù)據(jù)包(可變長(zhǎng)度,約 100 字節(jié))發(fā)送回 UART。ESP在UART上接
    發(fā)表于 07-18 07:17

    能否在ESP結(jié)束之前通過(guò)串行端口停止傳入的UDP數(shù)據(jù)包傳輸以解析下一個(gè)UDP數(shù)據(jù)包

    丟棄在ESP完成之前不需要的數(shù)據(jù)包,以便通過(guò)串行端口發(fā)送它以接收下一個(gè)數(shù)據(jù)包, 如果沒(méi)有,我必須按順序讀取所有傳入的數(shù)據(jù)包,需要的和不需要的, 而且波特率不足,主機(jī)處理器開(kāi)銷(xiāo)大, 我能否在 ESP 結(jié)束之前通過(guò)串行端口停止傳入
    發(fā)表于 07-16 06:18

    將UDP數(shù)據(jù)包發(fā)送到廣播IP地址時(shí)遇到的疑問(wèn)求解

    保持不變,包括傳輸數(shù)據(jù)。 此外,當(dāng) wroom 充當(dāng)客戶(hù)端時(shí),我們可以通過(guò)遠(yuǎn)程主機(jī)(WIFI 路由器)廣播 UDP 數(shù)據(jù)包,方法是使用主機(jī) IP 在 wroom 上創(chuàng)建到主機(jī)的 UDP 連接,并將
    發(fā)表于 07-16 06:07

    請(qǐng)問(wèn)如何使用AT CIPSEND或AT CIPSENDBUF發(fā)送多個(gè)數(shù)據(jù)包

    我可以使用 AT CIPSEND 發(fā)送單個(gè)數(shù)據(jù)包。但是我必須發(fā)送一系列二進(jìn)制數(shù)據(jù)包。如何使用AT CISEND或AT CIPSENDBUF發(fā)送多個(gè)數(shù)據(jù)包,什么是正確的算法? 到目前為止,我嘗試
    發(fā)表于 07-15 07:37

    NONOS如何檢查是否實(shí)際發(fā)送了UDP數(shù)據(jù)包

    我發(fā)現(xiàn)進(jìn)入深度睡眠通常無(wú)法傳輸發(fā)送的最后一個(gè) UDP 數(shù)據(jù)包。我現(xiàn)在將睡眠延遲 30 毫秒,這是一個(gè)黑客。 我寧愿有一種方法來(lái)檢查是否可以休眠,或者以其他方式能夠注冊(cè)指示數(shù)據(jù)包已發(fā)送的回調(diào)(無(wú)線電發(fā)送緩沖區(qū)為空)。 說(shuō)清楚:
    發(fā)表于 07-12 06:14

    ESP32-C3在SPI-AT模式下進(jìn)行數(shù)據(jù)透?jìng)鳎詈笠粋€(gè)數(shù)據(jù)包數(shù)據(jù)偶爾會(huì)出現(xiàn)錯(cuò)誤,為什么?

    目前采用SPI-AT的方式在兩個(gè)硬件板之間進(jìn)行數(shù)據(jù)的無(wú)線傳輸,一個(gè)作為AP開(kāi)啟TCP服務(wù)器,一個(gè)作為STA連接到對(duì)應(yīng)的服務(wù)器,傳輸數(shù)據(jù)量為3000000字節(jié),在測(cè)試的
    發(fā)表于 06-26 06:07

    用ESP32-CAM和ESP-WROVER-KIT做局域網(wǎng)視頻傳輸時(shí),如何修改UDP數(shù)據(jù)包最大長(zhǎng)度?

    UDP數(shù)據(jù)包的包頭可以看出,UDP的最大包長(zhǎng)度是2^16-1的個(gè)字節(jié)。由于UDP包頭占8個(gè)字節(jié),而在IP層進(jìn)行封裝后的IP包頭占去20字節(jié),所以這個(gè)是UDP數(shù)據(jù)包的最大理論長(zhǎng)度是2^16 - 1 - 8 - 20 = 65507字節(jié)。 謝謝
    發(fā)表于 06-21 06:09

    can總線的數(shù)據(jù)傳輸過(guò)程是什么

    CAN總線(Controller Area Network)是一種用于汽車(chē)和工業(yè)控制系統(tǒng)的通信協(xié)議。它具有高可靠性、實(shí)時(shí)性和靈活性,因此在許多領(lǐng)域得到了廣泛應(yīng)用。本文將詳細(xì)介紹CAN總線的數(shù)據(jù)傳輸過(guò)程
    的頭像 發(fā)表于 06-16 10:18 ?3830次閱讀