usb_control_msg參數詳解【轉】


轉自:http://blog.chinaunix.net/uid-25909619-id-3243059.html

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


免責聲明!

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



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