usb-request

usb device request 
在usb 系统中device 中每个实现功能的endpoint在主机中定义为channel,而主机的某一channelh和devecie的特定endpoint配对构成以个pipe.所有的usb系统都是主机通过默认的Control Pipe 发送requeset 到device,device发送respond.
USB规范定义了11个标准命令,它们分别是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、Set_Address、Set_Configuration、Set_Descriptor、Set_Interface、Set_Feature、Synch_Frame。所有USB设备都必须支持这些命令(个别命令除外,如Set_Descriptor、Synch_Frame)。

  所有的命令虽然有不同的数据和使用目的,有的USB命令结构是一样的。下表所示为USB命令的结构:

USB 命令结构
偏移量 长度(字节) 描述
0bmRequestType0位图请求特征:D7:传输方向 0=主机至设备 1=设备至主机 D6..5:种类 0=标准 1=类 2=厂商 3=保留 D4..0:接受者 0=设备 1=接口 2=端点 3=其他 4..31 保留
1 bRequest 1 命令类型编码值(见表3)
2 wValue 2 根据不同的命令,含义也不同
4 wIndex 2索引或偏移 根据不同的命令,含义也不同,主要用于传送索引或偏 移
6 wLength 2 如有数据传送阶段,此为数据字节数。

11种标准命令
命令 bmRequestType bRequest wValue wIndex wLength Data
Clear_Feature 00000000B 00000001B 00000010B CLEAR_FEATURE 特性选择符 零 接口号 端点号
Get_Configuration 10000000B GET_CONFIGURATION 配置值
Get_Descriptor 10000000B GET_DESCRIPTOR 描述表种类(高字节,见表5)和索引(低字节) 零或语言标志 描述表长 描述表
Get_Interface 10000001B GET_INTERFACE 接口号 可选设置
Get_Status 10000000B 10000001B 10000010B GET_STATUS 零(返回设备状态) 接口号(对像时接口时) 端点号(对象是端点时) 设备, 接口 ,或 端点状态
Set_Address 00000000B SET_ADDRESS 设备地址
Set_Configuration 00000000B SET_CONFIGURATION 配置值(高字节为0,低字节表示要设置的配置值)
Set_Descriptor 00000000B SET_DESCRIPTOR 描述表种类(高字节,见表5)和索引(低字节) 零或语言标志 描述表长 描述表
Set_Feature 00000000B 00000001B 00000010B SET_FEATURE 特性选择符(1表示设备,0表示端点) 零 接口号 端点号
Set_Interface 00000001B SET_INTERFACE 可选设置 接口号
Synch_Frame 100000010B SYNCH_FRAME 端点号 帧号

标准命令的编码值
bRequest Value
GET_STATUS 0
CLEAR_FEATURE 1
为将来保留 2
SET_FEATURE 3
为将来保留 4
SET_ADDRESS 5
GET_DESCRIPTOR 6
SET_DESCRIPTOR 7
GET_CONFIGURATION 8
SET_CONFIGURATION 9
GET_INTERFACE 10
SET_INTERFACE 11
SYNCH_FRAME 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值