usb-request

来源:互联网 发布:摩卡软件招聘 编辑:程序博客网 时间:2024/06/07 20:56

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 命令结构 偏移量 域 长度(字节) 值 描述 0 bmRequestType 0 位图 请求特征: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 DataClear_Feature 00000000B00000001B00000010B CLEAR_FEATURE 特性选择符 零 接口号 端点号 零无Get_Configuration 10000000B GET_CONFIGURATION 零 零 一 配置值Get_Descriptor 10000000B GET_DESCRIPTOR 描述表种类(高字节,见表5)和索引(低字节) 零或语言标志 描述表长 描述表Get_Interface 10000001B GET_INTERFACE 零 接口号 一 可选设置Get_Status 10000000B10000001B10000010B GET_STATUS 零 零(返回设备状态)接口号(对像时接口时)端点号(对象是端点时) 二 设备,接口 ,或 端点状态Set_Address 00000000B SET_ADDRESS 设备地址 零 零 无Set_Configuration 00000000B SET_CONFIGURATION 配置值(高字节为0,低字节表示要设置的配置值) 零 零 无Set_Descriptor 00000000B SET_DESCRIPTOR 描述表种类(高字节,见表5)和索引(低字节) 零或语言标志 描述表长 描述表Set_Feature 00000000B00000001B00000010B SET_FEATURE 特性选择符(1表示设备,0表示端点) 零 接口号 端点号 零 无Set_Interface 00000001B SET_INTERFACE 可选设置 接口号 零 无Synch_Frame 100000010B SYNCH_FRAME 零 端点号 二 帧号
标准命令的编码值 bRequestValueGET_STATUS 0 CLEAR_FEATURE 1为将来保留 2 SET_FEATURE 3 为将来保留 4 SET_ADDRESS 5GET_DESCRIPTOR 6 SET_DESCRIPTOR 7 GET_CONFIGURATION 8 SET_CONFIGURATION 9 GET_INTERFACE 10 SET_INTERFACE 11 SYNCH_FRAME 12
0 0