USB HID设备开发简介与实例分析概要1.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
USB HID设备开发简介与实例分析概要1

USB HID设备开发简介与实例分析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长度的状态数据包。如果主机确认该状态数据包已正确收到,就发送答应包ACK给设备,设备在收到这个ACK后就启用新的设备地址了。以后主机就通过这个新分配的设备地址来访问USB设备。控制写传输主机再次获取设备描述符,使用新的设备地址,获取全部18字节设备描述符主机获取配置描述符,获取配置集合HID设备HID设备简介HID(Human Interface Device, 人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备,如键盘鼠标和游戏杆等。HID设备成本较低。另外HID设备并不一定要有人机交互功能,

您可能关注的文档

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档