轉自:http://blog.chinaunix.net/uid-25909619-id-3335199.html
說明:由於分析時是在記事本上分析的,貼到這里出現了格式有點亂,看時請復制到記事本中,可以看到完整的格式。
Bus Hound 5.00 capture. Complements of www.perisoft.net
Device - Device ID (followed by the endpoint for USB devices)
(22) Qualcomm HS-USB Diagnostics 9025 (COM5)
Phase - Phase Type
CTL USB control transfer
DO Data out
LEN Data length
RSET bus reset
URB USB request block
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data
Delta - Elapsed time from the previous phase to the current phase
Time - Time the phase occurred in hour:minute:second.millisec form
Date - Date the phase occurred in year/month/day form
/*說明*/
1.1.0第一個命令的第一個階段
1.2.0第一個命令的第二個階段
1.3.0第一個命令的0字節偏移
1.3.16第一個命令的16個字節偏移
22.0解釋:22為設備加入系統的順序號,0為端點號
22.d解釋:22為設備加入系統的順序號,d為端點號
22.9解釋:22為設備加入系統的順序號,9為端點號
Device Phase Data Description Cmd.Phase.Ofs(rep) Delta Time Date
------ ----- -------------------------------------------------- ---------------- ------------------ ----- ------------ ----------
22.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0 14sc 06:45:32.794 2012-09-02
(80 方向:設備至主機 種類:標准 接收者:設備
(06 獲得描述符
(00 01 獲得的是設備描述符
(00 00 偏移為0
(12 00 要求設備返回18字節
22.0 LEN 12 00 00 00 18 1.2.0 8us 06:45:32.794 2012-09-02
(返回的字節數
22.0 DO 12 01 00 02 00 00 00 40 d1 12 00 40 27 02 01 09 .......@...@'... 1.3.0 1us 06:45:32.794 2012-09-02
03 01 .. 1.3.16
(設備的應答剛好18個字符
(bLength:12 ,此設備描述符的長度是18字節
(bDecriptorType:01 ,參照表5得知是設備描述符
(bcdUSB:00 02 ,代表USB協議的版本號,此處2.0版
(bDeviceClass:00
(bDeviceSubClass:00,表述設備類碼由接口文件給出,可能是為了每個接口獨立實現不同的功能。
(bDevicePortocol:00,跟前兩個字節緊密聯系,這里指還是等待在接口文件里再說明使用的設備協議
(bMaxPacketSize0:40,指端點0最大可接受的包大小。
(idVendor:d1 12 ,VID其實是0x12D1,字節序問題不在贅述
(idProduct:00 40 ,PID 0x4000
(bcdDevice:27 02,這個似乎沒什么通用的意義
(iManufacturer:01,
(iProduct:09,
(iSerialNumber:03,
(bNumConfigurations:01
這幾個數字都是索引值,如果以后主機想向設備端索要這些字符串信息(包含在字符串描述符里),就用這些值填充wIndex
22.0 URB 50 00 0b 00 00 00 00 00 56 00 69 00 64 00 5f 00 GET DEVICE DESCR 1.4.0 2us 06:45:32.794 2012-09-02
31 00 32 00 64 00 31 00 12 00 00 00 88 a1 77 8a 1.4.16
22.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 2.1.0 6us 06:45:32.794 2012-09-02
(80 方向:設備至主機 種類:標准 接收者:設備
(06 獲得描述符
(00 02 獲得的是配置描述符
(00 00 偏移為0
(09 00 要求設備返回9字節
22.0 LEN 09 00 00 00 9 2.2.0 3us 06:45:32.794 2012-09-02
22.0 DO 09 02 20 00 01 01 00 a0 fa .. ...... 2.3.0 1us 06:45:32.794 2012-09-02
(bLength:09
(bDescriptorType:02 這跟設備描述符都沒什么區別
(wTotalLength: 20 00 ,表示包括此配置描述符、接口描述符、端點描述符和設備類及廠商定義的描述符的總長為0x0020=32個字節。
(bNumInterfaces: 01 ,支持的接口數為1
(bCongfigurationValue:01, SetConfiguration請求中用作參數來選定此配置
(iConfiguration:00,描述此配置的字串描述表索引
(bmAttributes:A0,10100000B,只看得出是D5: 遠程喚醒 ,D7是保留位
(MaxPower:fa,總線耗電量為250x2=500mA.
22.0 URB 50 00 0b 00 00 00 00 00 56 00 69 00 64 00 5f 00 GET DEVICE DESCR 2.4.0 2us 06:45:32.794 2012-09-02
31 00 32 00 64 00 31 00 09 00 00 00 60 23 5a 8a 2.4.16
22.0 CTL 80 06 00 02 00 00 20 00 GET DESCRIPTOR 3.1.0 4us 06:45:32.794 2012-09-02
(80 方向:設備至主機 種類:標准 接收者:設備
(06 獲得描述符
(00 02 獲得的是配置描述符
(00 00 偏移為0
(20 00 要求設備返回32字節
22.0 LEN 20 00 00 00 32 3.2.0 3us 06:45:32.794 2012-09-02
22.0 DO 09 02 20 00 01 01 00 a0 fa 09 04 00 00 02 08 06 .. ............. 3.3.0 0us 06:45:32.794 2012-09-02
50 09 07 05 8d 02 00 02 00 07 05 09 02 00 02 01 P............... 3.3.16
第一部分09 02 20 00 01 01 00 a0 fa
(bLength:09
(bDescriptorType:02 這跟設備描述符都沒什么區別
(wTotalLength: 20 00 ,表示包括此配置描述符、接口描述符、端點描述符和設備類及廠商定義的描述符的總長為0x0020=32個字節。
(bNumInterfaces: 01 ,支持的接口數為1
(bCongfigurationValue:01, SetConfiguration請求中用作參數來選定此配置
(iConfiguration:00,描述此配置的字串描述表索引
(bmAttributes:A0,10100000B,只看得出是D5: 遠程喚醒 ,D7是保留位
(MaxPower:fa,總線耗電量為250x2=500mA.
第二部分09 04 00 00 02 08 06 50 09 是接口描述符(Interface Descriptor),見表10
bLength:09
bDescriptorType:04,接口描述符
bInterfaceNumber:00 ,當前配置的是0號接口(第一個接口)
bAlternateSetting:00,可選設置的索引值,還不清楚具體意義
bNumEndpoints:02,此接口用的端點數量為2
bInterfaceClass:08 ,
bInterfaceSubClass:06,
bInterfaceProtocol:50 ,
iInterface:09, 是一個字符串索引
第三部分07 05 8d 02 00 02 00是端點描述符(EndPont Descriptor)
bLength:07
bDescriptorType:05
bEndpointAddress:8d,端點地址0xd,入端點
bmAttributes:02 ,位圖,批量傳送
wMaxPacketSize:00 02 ,當前配置下此端點能夠接收或發送的最大數據包的大小為512
bInterval:00
第四部分07 05 09 02 00 02 01是端點描述符(EndPont Descriptor)
bLength:07
bDescriptorType:05
bEndpointAddress:09,端點地址0x9,出端點
bmAttributes:02 ,位圖,批量傳送
wMaxPacketSize:00 02 ,當前配置下此端點能夠接收或發送的最大數據包的大小為512
bInterval:01 輪詢的間隔為1ms,就是說1ms發生一次中斷
22.0 URB 50 00 0b 00 00 00 00 00 56 00 69 00 64 00 5f 00 GET DEVICE DESCR 3.4.0 1us 06:45:32.794 2012-09-02
31 00 32 00 64 00 31 00 20 00 00 00 a0 47 c4 8a 3.4.16
22.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 4.1.0 6us 06:45:32.794 2012-09-02
(00 D7: 傳輸方向;0=主機至設備 種類;0=標准 接受者;0=設備
(09為set config
(01 00為配置值
(00 00
(00 00
22.0 URB 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 SELECT CONFIG 4.2.0 3us 06:45:32.794 2012-09-02
a0 47 c4 8a f8 c8 81 8a 38 00 00 00 08 06 50 00 4.2.16
22.0 CTL 00 03 01 00 00 00 00 00 SET FEATURE 5.1.0 19us 06:45:32.794 2012-09-02
(00 D7: 傳輸方向;0=主機至設備 種類;0=標准 接受者;0=設備
(03為set feature
(01 00為特性選擇符,設備
(00 00
(00 00
22.0 URB 50 00 08 00 00 00 00 00 00 82 52 8a 20 00 00 00 CONTROL TRANSFER 5.2.0 374us 06:45:32.794 2012-09-02
18 82 52 8a 0a 00 00 00 00 00 00 00 00 00 00 00 5.2.16
22.d RSET 6.1.0 10us 06:45:32.794 2012-09-02
(重啟端點d
22.d URB 18 00 1e 00 00 00 00 00 00 82 52 8a 10 00 00 00 RESET PIPE 6.2.0 364us 06:45:32.795 2012-09-02
1c 24 10 8a 73 00 00 00 6.2.16
22.9 RSET 7.1.0 6us 06:45:32.795 2012-09-02
(重啟端點9
22.9 URB 18 00 1e 00 00 00 00 00 00 82 52 8a 10 00 00 00 RESET PIPE 7.2.0 364us 06:45:32.795 2012-09-02
3c 24 10 8a 73 00 00 00 7.2.16