USB标准请求命令

标准的USB 设备请求命令是用在控制传输中的“初始设置步骤”里的数据包阶段(即DATA0,由八个字节构成)。标准USB 设备请求命令共有11个,大小都是8个字节,具有相同的结构,由5 个字段构成(字段是标准请求命令的数据部分),结构如下(括号中的数

字表示字节数,首字母bm,b,w 分别表示位图、字节,双字节):

     bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

各字段的意义如下:

1、bmRequestType:D7D6D5D4D3D2D1D0

D7=0主机到设备

   =1设备到主机;

D6D5=00标准请求命令

        =01 类请求命令

        =10用户定义的命令

        =11保留值

D4D3D2D1D0=00000 接收者为设备

                    =00001 接收者为设备

                    =00010 接收者为端点

           =00011 接收者为其他接收者

=其他其他值保留

2、bRequest:请求命令代码,在标准的USB 命令中,每一个命令都定义了编号,编号的

值就为字段的值,编号与命令名称如下(要注意这里的命令代码要与其他字段结合使用,可

以说命令代码是标准请求命令代码的核心,正是因为这些命令代码而决定了11个USB 标准

请求命令):

1.Get Status (00H) 获取状态

          A:[To Device]获取设备的状态:

             位0:自供电(0表示总线供电;1表示自供电).

             位1:远程唤醒(0表示不支持远程唤醒;1表示远程唤醒).

             位2~15:保留.

             一般选择总线供电,不支持远程唤醒,所以返回数据就是0x0000.

         B:[To Interface]获取接口的状态:

            接口状态的16位字节全部保留,所以返回数据就是0x0000.

         C:[To Endpoint]获取端点的状态:

            位0:Halt(0表示端点允许;1表示端点禁止).

            位1~15:保留(复位为0).

2.Clear Feature (01H) 清除特性

        A:[To Device]清除设备的远程唤醒功能,并返回一个空包.

        B:[To Endpoint]解禁端点.

3.Set Feature (03H) 设置特性

        A:[To Device]设置设备的远程唤醒功能,并返回一个空包.

        B:[To Endpoint]禁止端点.

4.Set Address (05H) 设置地址

        A:设置设备地址.

5.Get Descriptor (06H) 获取描述符

        A:[To Device]获取设备描述符:

              描述当前USB 协议的版本号.设备端点0的FIFO 大小.USB 设备的ID 号等.

        B:[To Configuration]获取配置描述符:

              描述USB 设备接口个数及是否有自供电能力等.

        C:[To Interface]获取接口描述符:

              描述端点0以外的物理端点个数等信息.

         D:[To Endpoint]获取端点描述符:

             描述端点0各端点的传输类型和最大信息包大小和端点的传输方向(IN/OUT).

6.Set Descriptor (07H) 设置描述符(可选,无法更新)

7.Get Configuration (08H) 获取配置信息

8.Set Configuration (09H) 设置配置

          A:[To Configuration]设置配置描述符.

          B:[To Interface]设置接口描述符.

          C:[To Endpoint]设置端点描述符.

9.Get Interface (0AH) 获取接口信息

10.Set Interface (0BH) 设置接口

11.SYNCH_FRAME(0CH)

用于设备设置和报告一个端点的同步帧.

3、wvalue 根据USB 不同的请求命令,含义不同。比如:请求命令为Set_Address,wvalue

的值表示设备地址。

4、wIndex 根据USB 不同的请求命令,含义不同。比如:请求命令为Get_Status,wIndex

可以是0、接口号、端点号,分别表示----0(返回设备状态)、接口号(对像时接口时)、

端点号(对象是端点时)。

5、wLength 根据USB 不同的请求命令,含义不同。比如:请求命令为Get_Descriptor,

wLength 表示描述表长。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值