USB设备请求

  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 用于标识接口时的格式。

  

 

 

    D7

 

    D6

 

    D5

 

    D4

 

    D3

 

    D2

 

    D1

 

    D0

 

   方向

 

           保留 ( 0)

 

              端点号

 

    D16

 

    D15

 

    D13

 

    D12

 

    D11

 

    D10

 

    D9

 

    D8

                                       保留 ( 0)










                      8-2. 所指为端点时 wIndex 格式

 

   

 

 

 

    D7

 

    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-48-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

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值