Linux下USB MASS STORAGE驱动的分析和改造

usb_control_msg参数详解 2012-06-14 13:12:37

分类:

原文地址: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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值