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
usb_control_msg參數詳解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.