usb_control_msg參數詳解

usb_control_msg()

struct usb_ctrlrequest
|-----------------------|
| __u8    bRequestType 
-|
| __u8    bRequest     
-|
| __le16 -wValue       -|
| __le16 
-wIndex       -|
| __le16 
-wLength      -|
|-----------------------|




這個數據結構就是SETUP信包的內容,而緩衝區的內容,就是隨後的數據信包的內容。

---------------------------------------------------------------
bRequestType
    D7     數據的傳輸方向:0表示從主機到設備; 1表示從設備到主機;
    D6~5   命令的類型:   0表示標準命令;    1表示類命令;      2表示廠商提供的命令; 3保留;
    D4~0   接收對象;     0表示設備;       1表示接口;       2表示端點;         3表示其他;
bRequest
    命令的序號(其實就是命令);所有的命令都是以不同編碼值的方式傳遞給設備的,bRequest就表示USB命令的編碼值
wValue, wIndex
    這兩個字段對於不同的命令有不同的含義
wLength
    表示在完成命令控制傳輸的數據階段,要求傳輸數據的字節長度。一般不論是輸入還是輸出都要求給出準確的數字。當命令不需要傳輸數據時,此字段設爲0




USB標準命令

---------------------------------------------------------------
命令            bReuestType bRequest         wValue      wIndex     wLength     數據         
Get_Descriptor 1000 0000b -GET_DESCRIPTOR   描述符類型   -0或語言ID -
-描述符長度 --描述符         
                                           
-描述符的索引號 

wValue   高8位表示描述符類型; 低8位表示描述符索引號


GET_DESCRIPTOR = 6
GetHubdescriptor = 0XA0
Get_Descriptor = 0X80


---------------------------------------------------------------
bRequestType    bRequest   wValue   wIndex   wLength
80              6          100      0        12
80              6          200      0        9
80              6          300      0        FF
80              6          301      409      FF
80              6          302      409      FF
80              6          303      409      FF


100        表示獲取設備描述符usb_device_descriptor
200        表示獲取配置描述符usb_config_descriptor
300        表示獲取字符描述符
           301        iSerialNumber
           302        iProduct
           303        iManufacturer

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