usb,hid,报告描述符(共7篇).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,报告描述符(共7篇)   USBHID设备报告描述符详解   概述:   报告在这里意思是数据传输,而报告描述符是对这些传输的数据作用途上的说明。   USB通讯协议的规范是以1ms产生一个USB帧,USB设备可以每一个帧中发送和接收一个交换。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的数据。在这里,传输和报告的意思相类似。传输方式有四种,初始学一般只要了解控制型传输(controltransfer)和中断型传输(interrupttransfer)即可。控制型传输是当需要时才执行传输要求,是最一般的传输方式,组态、命令和状态的通讯都可以使用控制型传输;控制型传输主要用于消息型数据。中断型传输目的在做重复的数据更新传输,精确一点而言,即是在每个有限有周期内(boundedperiod)作至少一次的小量数据发送或接收;所以适用于流动型数据,注意这里所谓的周期时间就是在端点描述符中的轮询间隔时间。报告有三种:input,output,和Feature.后面将作进一步介绍。中断型输入管线(interruptinpipe)仅可以传送input报告;中断型输出管线(interruptoutpipe)仅可以传送output报告;但是控制型管线(controlpipe)可以传送input,output和feature报告。端点描述符有声明所使用的端点为何种管线。   数据本身没有任何意义,要赋于用途才能明确其为控制什么;例如设备上的按钮指示灯和X与Y轴的位移等都通称控制,数据则为按钮和指示灯的开关状态或X与Y轴的位移量。为了这个目的应运而生报告描述符,其将数据的操控与它的用途作一对一的对应,所以解读报告后就可以知道每个数据作何种操作。所以“传输的数据”和“操作”只是一事件的两种描述方式。用途是以一个32位卷标来表示,高16位称作usagepage(用途类页),低16位称为usageDI(用途识别名):   Usage=(usagepage:usageID)   举例说明:二个字节分别为x和y轴的位移数据,因此第一个字节的usage=(genericdesktop:X),而第二个字节的usage=(genericdesktop:Y),其中gen   ericdesktop为用途的大类别之一,x和y轴的操作用途属于此用途类页。文件universalserialBusHIDUsageTable完整列出所有的usagepages(用途类页)和usageID(用途识别名),使用者必须遵照文件的规范来声明操作的用途。该文件的附录A有十多个报告描述符的范例,值得研究下。   表1、报告描述符的标签   标签:   用途卷标只是报告描述符诸多标签的一个。表1列出所有的卷标,利用这些卷标取可以清楚完整的描述符操作的用途。报告描述符的语法不同于USB标准   描述符,它是以项目方式排列而成,无一定的长度;项目有一个前辍(prefix),然后跟着一个括号,内为该项目的数据:item=prefix(data)。   项目分成三种类别:主项目,全局项目,区域项目。主项目中的input,ouput,feature三个卷标用来表示报告中数据的种类,这些是报告描述符中最主要的项目,其他项目都是用来修饰这三种项目。主要项目中其他二个卷标后面再作详细的介绍。   ?Input项:表示设备操作输入到主机的数据模式。这个数据格式就形成一个输入报告,虽然输入报告可以用控制型管线以getreport来传输,但是通常用中断型输入管线来传输以确保在每一固定周期内都能将更新的输入报告传给主机。   ?Output项:表示由主机输出到装置操作的数据格式。这个数据格式就形成一个输出报告。输出报告通常不适用轮询的方式来传送给设备,而是由应用软件依实际需求以传令方式要求送出输出报告,所以大多用控制型管线以setreport(output)指令来将报告送到设备。当然也可以选择用中断型输出管线来传送,只是通常不建议这样用。   ?Feature项:表示由主机送到设备的组态所需数据的数据格式。这个数据模式就形成一个特征报告。特征报告只能用控制型管线以getreport(feature)和setreport(feature)指令分别来取得和设定设备的特征值。   ?范例:考虑一个2X16字的显示装置,它的列数、行数、字宽、和字高为固定值属于feature报告;显示状态例如“就绪”和“输入字错误”则属于input报告;光标位置和显示的字需可读写,所以属于另一个feature报告;更新显示的字则为output报告。为了区别两个features,要用到全局项目中的reportID,每个feature报告有一个不同的reportID,因而主机请求指令要加

文档评论(0)

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

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

1亿VIP精品文档

相关文档