天天看點

usb_control_msg參數詳解【轉】

<a href="http://hi.baidu.com/zengzhaonong/blog/item/6bb44682452a4da00df4d245.html" target="_blank">usb_control_msg()</a>

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

【新浪微網誌】 張昺華--sky

【twitter】 @sky2030_

【facebook】 張昺華 zhangbinghua

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.

繼續閱讀