USB HID设备开发简介与实例.docxVIP

  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文档。上传文档
查看更多
USB HID设备开发简介与实例分析 目录 TOC \o 1-3 \h \z \u 1. USB简介 2 2. USB通信机制与设备介绍 3 2.1 USB通信机制 3 2.2 USB设备及枚举 4 3. HID设备 5 3.1 HID设备简介 5 3.2 HID设备报表描述符 6 3.3 HID设备的访问 7 4. 总线数据分析软件 8 4.1 Bus Hound 8 4.2 USBlyzer 10 5. 实例分析 10 USB简介 USB是通用串行总线(Universal Serial Bus)的缩写,已有20多年历史。主要是为了简化PC与外设的连接,增加易用性。 USB具有即插即用特性,即热插拔。如下图的标准USB接口,电源与地线会突出,在连接时电源与地先接通,然后中间两根信号线再接通,这样防止烧坏芯片。 常见的USB接口: 随着智能手机的兴起,Micro-B型USB接口大量使用,并随之产生了Type-C接口,该接口不分正反面随意插拔,传输速度有明显提升,如下图。 USB协议类型: 随着外设的发展,对接口速度要求越来越高,从USB产生到现在已经经历了5个版本,如下表。 USB通信机制与设备介绍 USB通信机制 USB是主从结构的系统。主机叫Host,从机叫Device。 通常主机具有一个或多个USB主控制器(host controller)和根集线器(root hub),USB集线器可以对原有的USB接口在数量上进行扩展,但不能扩展出更多的带宽。 USB是主从结构,所有的通信都由主机发起。在USB设备连接主机时,主机能检测到接口电平的变化,进而识别出插入的是什么速度类型的设备。 USB有四种传输类型: 控制传输:USB设备接入主机时,通过控制传输获取设备描述符进行设备识别 批量传输:传输大量数据,如打印机和扫描仪 中断传输:数据少量但实时性高,如鼠标和键盘 等时传输:数据的建立、传送和接收是连续且实时的,对传输延迟非常敏感,如语音传输 控制传输: 在设备的枚举过程中使用控制传输(Control Transaction),分为三个阶段:建立过程,可选的数据过程及状态过程。 建立过程(SETUP)是由USB主机发起的,开始发一个SETUP令牌包,后面跟一个DATA0数据包,接着就是数据过程;如果控制读传输,那么数据过程就是输入数据,如果控制写传输,那么数据过程就是输出数据。如果在建立过程中指定数据长度为0,则没有数据过程,因此称为可选的数据过程。接着就是状态过程,跟数据过程的传输方向相反,如果是控制读传输,则状态过程是一个输出数据包,如果是控制写传输,则状态过程是一个输入数据包。状态过程是用来确认所有的数据是否都正确传输。 USB设备及枚举 一个USB设备只有一个设备描述符,设备描述符中决定了该设备有多少种配置,每种配置都有一个配置描述符;在每个配置描述符中又定义了多少接口,每个接口都有一个接口描述符,在接口描述符里又定义了该接口有多少个端点,每个端点有一个端点描述符,端点描述符中定义了端点的大小、类型等。USB的描述符之间的关系是一层一层的。 主机获取描述符时,首先获取设备描述符,接着再获取配置描述符,然后根据配置集合的长度,将配置描述符、接口描述符、特殊描述符、端点描述符一次性读回。字符串描述符(非必需)是单独获取的。 USB设备描述符示例:(定义设备类型,VID,PID,数据包大小等) 主机枚举出的设备描述符如下(USBlyzer抓包软件): 每个USB设备有一个设备地址,USB主机依靠该设备地址访问USB设备。每个设备分出一些端点,如EP0、EP1.。。等,有了设备地址和端点地址,USB主机就能准确地对端点发送和读取数据了。 USB设备的枚举过程: USB设备一插入USB主机接口后,主机就加载合适的驱动。 USB主机检测到USB设备插入后,会先对设备进行复位。USB设备在总线复位后其设备地址为0,主机通过地址0和跟接入的设备通信。USB主机往地址为0的设备的端点0(EP0)发送获取设备描述符的标准请求(standard request)(建立过程)。设备收到该请求后,会按照主机请求的参数,将设备描述符返回给主机(数据过程)。主机在成功获取到一个数据包的设备描述符并确认无误后,就会返回一个0长度的确认数据包(状态过程)。 控制读传输 主机对设备又一次复位,进入到设置地址阶段。USB主机往地址为0的设备的端点0发出设置地址的请求(控制传输的建立过程),新的设备地址包含在建立过程的数据包中。设备地址由USB主机负责管理和分配,USB设备在收到这个建立过程后,就直接进入到状态过程,设备等待主机请求状态返回(一个输入令牌包),设备

文档评论(0)

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

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

1亿VIP精品文档

相关文档