4938|2

473

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

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表示描述表长。
此帖出自NXP MCU论坛

最新回复

努力学习,,呀,,  详情 回复 发表于 2011-1-15 10:56

赞赏

1

查看全部赞赏

点赞 关注
个人签名Nicrosystem专业提供freescale、TI和STM32高性价比开发板、解决方案
http://nicrosystem.taobao.com
 

回复
举报

54

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
嗯。来学习了!
此帖出自NXP MCU论坛
 
 
 

回复

208

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
努力学习,,呀,,
此帖出自NXP MCU论坛
 
个人签名LED射灯
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表