由域構(gòu)成的包有四種類型,分別是令牌包、數(shù)據(jù)包、握手包和特殊包,前面三種是重要的包,不同包的域結(jié)構(gòu)不同,介紹如下:
1、令牌包
分為輸入包、輸出包、設(shè)置包和幀起始包(注意這里的輸入包是用于設(shè)置輸入命令的,輸出包是用來設(shè)置輸出命令的,而不是放數(shù)據(jù)的)其中輸入包、輸出包和設(shè)置包的格式都是一樣的:
SYNC + PID + ADDR + ENDP + CRC5(五位的校驗(yàn)碼)
幀起始包的格式:
SYNC + PID + 11位FRAM + CRC5(五位的校驗(yàn)碼)
2、數(shù)據(jù)包
分為DATA0包和DATA1包,當(dāng)USB發(fā)送數(shù)據(jù)的時候,如果一次發(fā)送的數(shù)據(jù)長度大于相應(yīng)端點(diǎn)的容量時,就需要把數(shù)據(jù)包分為好幾個包,分批發(fā)送,DATA0包和DATA1包交替發(fā)送,即如果第一個數(shù)據(jù)包是DATA0,那第二個數(shù)據(jù)包就是DATA1。但也有例外情況,在同步傳輸中(四類傳輸類型中之一),所有的數(shù)據(jù)包都是為DATA0,格式如下:
SYNC + PID + 0~1023字節(jié) + CRC16
3、握手包
結(jié)構(gòu)最為簡單的包,格式如下:
SYNC + PID
握手包包括 ACK、NAK、STALL以及NYET 四種,其中 ACK 表示肯定的應(yīng)答,成功的數(shù)據(jù)傳輸。NAK 表示否定的應(yīng)答,失敗的數(shù)據(jù)傳輸,要求重新傳輸。STALL表示功能錯誤或端點(diǎn)被設(shè)置了STALL屬性。NYET表示尚未準(zhǔn)備好,要求等待。
原文標(biāo)題:USB數(shù)據(jù)包解析
文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
usb
+關(guān)注
關(guān)注
60文章
8190瀏覽量
273046 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24997
原文標(biāo)題:USB數(shù)據(jù)包解析
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
藍(lán)牙數(shù)據(jù)通道空口包(數(shù)據(jù)包)
Bluetooth LE Link Layer數(shù)據(jù)包全解析
能否使用兩個 FX3 設(shè)備實(shí)現(xiàn) USB 數(shù)據(jù)包嗅探、插入和移除?
更改最大數(shù)據(jù)包大小時無法識別USB設(shè)備如何解決?
使用CyU3PDmaChannelCommitBuffer提交超過1024字節(jié)數(shù)據(jù)時usb包異常大怎么解決?
是否可以在安裝了CY7C65213的電路板上生成USB2.0測試數(shù)據(jù)包波形?
如何定義輪詢間隔和最大數(shù)據(jù)包大???
為UART、MCXA142實(shí)現(xiàn)ISP通信的主機(jī)端,發(fā)送Ping數(shù)據(jù)包并收到預(yù)期的響應(yīng),發(fā)送和接收數(shù)據(jù)包的典型順序是什么?
I2C總線數(shù)據(jù)包結(jié)構(gòu)詳解
mtu配置步驟詳解 mtu與數(shù)據(jù)包丟失的關(guān)系
華納云:服務(wù)器平均響應(yīng)時間和數(shù)據(jù)包大小之間的影響
USB協(xié)議分析儀的技術(shù)原理和應(yīng)用場景
艾體寶干貨 OIDA之四:掌握數(shù)據(jù)包分析-分析的藝術(shù)

評論