STM32-USB-HID详解.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32 USB HID详解 1、USB简介 2、USB描述符 USB只是一个总线,只提供一个数据通路而已。USB总线驱动程序并不知道一个设备具体如何操作,有哪些行为。具体的一个设备实现什么功能,要由设备自己来决定。那么,USB主机是如何知道一个设备的功能以及行为呢?这就要通过描述符来实现了。描述符中记录了设备的类型、厂商ID和产品ID(通常依靠它们来加载对应的驱动程序)、端点情况、版本号等众多信息。 标准的USB设备有5种USB描述符:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符。下面详解: 2.1、设备描述符 一个USB设备只有一个设备描述符。设备描述符主要记录的信息有:设备所使用的USB协议版本号、设备类型、端点0的最大包大小、厂商ID(VID)和产品ID(PID)、设备版本号、厂商字符串索引、产品字符串索引、设备序列号索引、可能的配置数等。 偏移量 域 大小/字节 说明 0 bLength 1 该描述符的长度(0x12=18字节) 1 bDescriptorType 1 描述符类型(0x01设备描述符) 2 bcdUSB 2 本设备使用的USB协议版本 4 bDeviceClass 1 类代码 5 bDeviceSubClass 1 子类代码 6 bDeviceProtocol 1 协议码 7 bMaxPacketSize 1 端点0最大包长 8 idVendor 2 厂商ID 10 idProduct 2 产品ID 12 bcdDevice 2 设备版本号 14 iManufacturer 1 描述厂商的字符串索引 15 iProduct 1 描述产品的字符串索引 16 iSerialNumber 1 产品序列号的字符串索引 17 bNumConfigurations 1 可能的配置数 2.2、配置描述符 设备描述符里决定了该设备有多少种配置,每种配置都有一个配置描述符。配置描述符主要记录的信息有:配置所包含的接口数、配置的编号、供电方式、是否支持远程唤醒、电流需求量等。 偏移量 域 大小/字节 说明 0 bLength 1 该描述符的长度(0x09字节) 1 bDescriptorType 1 描述符类型(0x02配置描述符) 2 wTotalLength 2 配置、接口、端点和类描述符字节总和 4 bNumInterfaces 1 支持接口数 5 bConfigurationValue 1 本配置描述符标识 6 iConfiguration 1 配置描述符说明字符串索引 7 bmAttributes 1 电源及唤醒 8 MaxPower 1 设备耗电电流 2.3、接口描述符 在每个配置描述符中又定义了该配置有多少个接口,每个接口都有一个接口描述符。接口描述符主要记录的信息有:接口的编号、接口的端点数、接口所使用的类、子类、协议等。 偏移量 域 大小/字节 说明 0 bLength 1 该描述符的长度(0x09字节) 1 bDescriptorType 1 描述符类型(0x04接口描述符) 2 bInterfaceNumber 1 本接口描述符标识 3 bAlternateSetting 1 4 bNumEndpoints 1 接口端点数 5 bInterfaceClass 1 接口类代码 6 bInterfaceSubClass 1 启动类型1=BOOT, 0=No BOOT 7 bInterfaceProtocol 1 0=None, 1=Keyboard, 2=Mouse 8 iInterface 1 接口描述符说明字符串索引 2.4、[类描述符] 该描述符不是必须的,如果配置的USB类型有类特殊描述符(如HID类),它跟在相应的接口描述符之后。 2.5、端点描述符 在接口描述符里又定义了该接口有多少个端点,每个端点都有一个端点描述符。端点描述符主要记录的信息有:端点号及方向、端点的传输类型、最大包长度、查询时间间隔等。 偏移量 域 大小/字节 说明 0 bLength 1 该描述符的长度(0x07字节) 1 bDescriptorType 1 描述符类型(0x5端点描述符) 2 bEndpointAddress 1 端点地址 3 bmAttributes 1 端点类型 4 wMaxPacketSize 2 端点发送接收最大包长 6 bInterval 1 中断端点轮训时间间隔 2.6、[字符串描述符] 字符串描述符主要是提供一些方便人们阅读的信息,它不是必需的。 偏移量 域 大小/字节 说明 0 bLength 1 该描述符的长度(0x04/0xXX字节),第一个字符串描述符0x0

文档评论(0)

197918 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档