不錯的usb分析工具!!!---用bus hound分析usb的枚舉過程【轉】


轉自: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                                  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM