usb_control_msg参数详解【转】

简介: 转自:http://blog.chinaunix.net/uid-25909619-id-3243059.html usb_control_msg()struct usb_ctrlrequest|-----------------------|| __u8    bRequestType -|| ...

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

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
用IAR打开STM8时,出现“Unable to create configuration 'Debug' using tool chain ‘STM8’
用IAR打开STM8时,出现“Unable to create configuration 'Debug' using tool chain ‘STM8’
459 0
|
网络安全 开发工具 git
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
git 出现错误:kex_exchange_identification: read: Connection reset by peer fatal
linux3.10使用PCIE-USB警告处理:needs XHCI_TRUST_TX_LENGTH quirk?
linux3.10使用PCIE-USB警告处理:needs XHCI_TRUST_TX_LENGTH quirk?
175 0
linux3.10使用PCIE-USB警告处理:needs XHCI_TRUST_TX_LENGTH quirk?
一文了解USB Type-C
现在的USB Type-C已经被广泛使用,移动设备基本都是使用Type-C。它主要是用于快充和作为音频接口。最近欧盟还要求电子设备统一使用Type-C接口,来防止浪费。接下来我们来简单了解这个接口。
|
Linux
LINUX打印机报错:ipp error(1034, client-error-document-format-not-supported)
LINUX打印机报错:ipp error(1034, client-error-document-format-not-supported)
3631 0
LINUX打印机报错:ipp error(1034, client-error-document-format-not-supported)
|
安全
解决:efi usb device has been blocked by the current security policy
解决:efi usb device has been blocked by the current security policy 问题描述:U盘装系统或者其他操作时,是因为BIOS安全策略,出现上述错误无法进入后续步骤。 解决方法:按F2(Fn+F2)进入BIOS,在secure Boot 中security选择disable。解决! 延伸(可不读): 黑苹
11139 0
|
Linux 数据安全/隐私保护

热门文章

最新文章

下一篇
开通oss服务