USB協議之二 數據包分析

一、協議知識
1)PID格式,詳見圖1

1.gif
                                                  (圖1)
注:
a、 上圖是從低位到高位
b、 高四位是低四位取反
c、 PID自校驗
2)PID分類,詳見圖2
2.gif

                                                  (圖2)

3)Token 包格式(不包括SOF),詳見圖3
3.gif

                                  (圖3)
 注:
a、 ADDR表示設備地址
b、 ENDP 表示端點號
c、 CRC5表示設備地址及端點號的校驗和
4)SOF包格式,詳見圖4
4.gif

                                         (圖4)
 注:
a、 FrameNumber 表示幀號,1毫秒發送一幀
b、 CRC5表示FrameNumber的校驗和
5)Data包格式,詳見圖5
5.gif

                                    (圖5)

       注:
a、 DATA 表示要傳輸的數據,全速USB的最大長度爲1023Bytes,高速USB 的最大長度爲     1024Bytes
b、 CRC16表示 DATA的校驗和

6)Handshake包格式,詳見圖6

6.gif


                 (圖6)

二、USB傳輸包組(事務)實例分析
1)IN包組分類(懶得自己總結,直接 從HD-USB12的數據包過濾功能截取),詳見圖7

7.gif


                 (圖7)

2)IN包組分析(通過HD-USB12監控軟件僅過濾出IN包組數據),詳見圖8

8.gif


                                             (圖8)
a、Index[691]:表示 主機向設備發送IN指令取數據,設備迴應沒數據;
b、Index[692 - 693]:表示主機向設備地址0(DEV = 00)端點0(EP = 80,  最高位表示傳輸方向)發送IN指令取數據,設備迴應端點停止(STALL);
c、Index[701 - 703]:表示主機向設備地址0(DEV = 00)端點0(EP = 80,  
最高位表示傳輸方向)發送IN指令取數據,設備收到指令後向主 機發送數據
    Index[702],主機正確收到數據後迴應ACK
 d、Index[701]的內容,詳見圖9

9.gif


                                           (圖9)
e、Index[702]的內容,詳 見圖10

10.gif


                                              (圖10)

f、Index[702]的數據發送時序,詳見圖11(只截取了部分,時序做的很漂亮,看着也很清晰)

11.gif


                                                 (圖11)
注意時序圖的 Offset[0003]其傳輸的數據爲FF,根據USB採用的傳輸編碼(NRZI)前6位爲1後插入1位0,因些第7位的傳輸要傳輸2位(01),其時 間也佔用兩位的時間。(啊啊!有時序功能就是清楚,時序還有其它用途以後分解)

3)OUT包組分類,詳見圖12(直接從HD-USB12 的數據包過濾功能截取)

12.gif


                  (圖12)

4)OUT包組分析(通過HD-USB12監控軟件僅過濾出OUT包組數據), 詳見圖13

13.gif


                                               (圖13)
a、Index[16 - 18]:表示主機向設備地址0(DEV = 00)端點0(EP = 00,  最高位表示傳輸方向)發送Out指令後,發送數據Index[17](主機發出空迴應所以Index[17]沒有數據),設備收到數據後迴應ACK;
b、 Index[16]的內容,詳見圖14

14.gif


                                              (圖14)
c、Index[17]的內 容,詳見圖15

15.gif


                                                (圖15)

5)SETUP 包組分類,詳見圖16(直接從HD-USB12的數據包過濾功能截取)

16.gif


                       (圖16)

6)SETUP包組分析(通過HD-USB12監控軟件僅過濾出 SETUP包組數據),詳見圖17

17.gif


                                                  (圖17)
a、 Index[23 - 25]:表示主機向設備地址0(DEV = 00)端點0(EP = 00, 最高位表示傳輸方向)發送SETUP指令後,發送數據Index[24],設備收到數據後迴應ACK;
b、Index[23]的內容,詳見圖18

18.gif


                                                    (圖18)
 c、 Index[24]的內容,詳見圖19

19.gif


                                                        (圖19)

以 上數據包分析是根據現有特定設備捕獲得到,並不完整涉及到所有事務包組,如IN+DATA+NAK、OUT+DATA+NAK、 SETUP+DATA+NAK等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章