USB设备请求
来源:互联网 发布:omegle软件下载 编辑:程序博客网 时间:2024/06/01 08:54
USB 设备请求
所有的USB设备在设备的缺省控制通道(Default Control Pipe)处对主机的请求发出响应。这些请求是通过使用控制传输来达到的,请求及请求的参数通过Setup包发向设备,由主机负责设置Setup包内的每个域的值。每个Setup包有8个字节。见表8-2。 偏移量 域 大小 值 描述 0 bmRequestType 1 位图 请求特征: D7: 传输方向 0=主机至设备 1=设备至主机 D6..5: 种类 0=标准 1=类 2=厂商 3=保留 D4..0: 接受者 0=设备 1=接口 2=端点 3=其他 4..31=保留 1 bRequest 1 值 具体请求(参见表8-3) 2 wValue 2 值 字长域,根据不同的请求含义改变. 4 wIndex 2 索引或偏移 字长域,根据不同的请求含义改变.典型用于传送索引或偏移. 6 wLength 2 如有数据传送阶段,此为数据字节数. 表8-2 . Setup 数据包的格式 1 bmRequestType域 这个域表明此请求的特性。特别地,这个域表明了第二阶段控制传输方向。如果wLength域被设作0的话,表明没有数据传送阶段,那Direction位就会被忽略。 USB说明定义了一系列所有设备必须支持的标准请求。这些请求被例举在表8-3中。另外,一个设备类可定义更多的请求。设备厂商也可定义设备支持的请求。 请求可被导引到设备,设备接口,或某一个设备端结点(endpoint)上。这个请求域也指定了接收者。当指定的是接口或端结点(endpoint)时,wIndex域指出那个接口或端节点。 2 bRequest域 这个域标识特别的请求。bmRequestType域的Type啦可修改此域的含义。本说明仅定义Type 字位为0即标准设备请求时bRequest域值的含义。 3 wValue域 此域用来传送当前请求的参数,随请求不同而变。 4 wIndex域 wIndex域用来表明是哪一个接口或端结点,图8-2表明wIndex的格式(当标识端结点时)。Direction位在设为0时表示出结点,设为1时表示是入结点,Endpoint Number是结点号。图8-3表明wIndex用于标识接口时的格式。 D6 D5 D4 D3 D2 D1 D0 方向 保留(为0) 端点号 D16 D15 D13 D12 D11 D10 D9 D8 保留(为0) 图8-2. 所指为端点时wIndex 格式 D6 D5 D4 D3 D2 D1 D0 接口号 D16 D15 D13 D12 D11 D10 D9 D8 保留(为0) 图8-3. 所指为接口时WIndex 格式 5 wLength域 这个域表明第二阶段的数据传输长度。传输方向由bmRequstType域的Direction位指出。wLength域为0则表明无数据传输。在输入请求下,设备返回的数据长度不应多于wLength,但可以少于。在输出请求下,wLength指出主机发出的确切数据量。如果主机发送多于wLength的数据,设备做出的响应是无定义的。 7 标准设惫请求 这部分描述的所有USB设备都定义的标准设备请求,表8-3将它们列出,而表8-4、8-5分别结出了对应的标准请求码及描述表类型。 不管设备是否被分配了非缺省地址或设备当前是被配置了的,它们都应当对标准请求产生响应。 特性选择符被用来设置特性或使特性生效。比如说某个设备、接口、或结点的远程唤醒功能,特性选择符的值在表8-6中得到了说明。 对于非法请求的处理从前所述。但是非法请求并不会使得控制通道设置Halt特性。如果因为某种原因,设备因为一个错误状态不能通过缺省控制通道来与主机通信,设备必须被reset来清除错误状态并重启缺省通道。 bmRequestType bRequest wValue Windex wLength Data 00000000B 00000001B 00000010B CLEAR_FEATURE 特性选择符 零 接口号 端点号 零 无 10000000B GET_CONFIGURATION 零 零 一 配置值 10000000B GET_DESCRIPTOR 描述表种类和索引 零或语言标志 描述表长 描述表 10000001B GET_INTERFACE 零 接口号 一 可选设置 10000000B 10000001B 10000010B GET_STATUS 零 零 接口号 端点号 二 设备, 接口 ,或 端点状态 00000000B SET_ADDRESS 设备地址 零 零 无 00000000B SET_CONFIGURATION 配置值 零 零 无 00000000B SET_DESCRIPTOR 描述表种类和索引 零或语言标志 描述表长 描述表 00000000B 00000001B 00000010B SET_FEATURE 特性选择符 零 接口号 端点号 零 无 00000001B SET_INTERFACE 可选设置 接口号 零 无 100000010B SYNCH_FRAME 零 端点号 二 幀号 表8-3 标准设备请求 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 表8-4 标准请求码 描述表种类 值 DEVICE 1 CONFIGURATION 2 STRING 3 INTERFACE 4 ENDPOINT 5 表8-5 描述表种类 特性选择符 接受者 值 DEVICE_REMOTE_WAKEUP 设备 1 ENDPOINT_HALT 端点 0 表8-6 标准特性选择符 转自:http://blog.csdn.net/lujunql/archive/2008/08/23/2817000.aspx D7
D7
- USB设备请求
- USB设备请求
- USB设备请求命令
- USB设备请求
- usb设备请求命令详解
- 标准USB设备请求命令
- USB设备---URB请求快
- 标准的USB设备请求命令
- USB设备请求的各字段
- USB协议介绍[5]-设备请求
- Usb键盘//USB设备请求的各字段
- usb标准设备请求+usb各种描述符结构+usb枚举过程
- USB1.1协议学习经验之5---- USB设备请求
- USB——设备请求和描述符
- USB设备
- usb设备
- usb设备/proc/bus/usb
- USB标准输入请求:获取描述符——设备描述符
- C#关键字
- 汉字交换码和机内码
- 异步函数的同步调用(转载)
- asp.net常见七大内置对象
- 嵌入式实时Hypervisor:XtratuM (12)
- USB设备请求
- 嵌入式实时Hypervisor:XtratuM (13)
- Head First面向对象分析与设计(Chapter1 小结)
- 有关文学作品的一点认识
- c#与java岔路该如何选择
- flexispy
- 不要乱用EqualsBuilder的appendSuper
- C# 类型参考
- Q爱好者论坛