原创 【转】USB/HID设备报告描述符详解34

2011-1-10 22:12 2946 10 10 分类: MCU/ 嵌入式

HID 描述符编辑工具
USB 协会提供了一个HID 描述符编辑工具称作HID Descriptor Tool,其执行程序为DT.exe。这个工具软件可以在USB 网站上取得。虽然称作HID 描述符工具,事实上,仅提供编撰报告描述符之用。执行DT.exe 后会出现如图2 之窗口,小内窗口HID Items 列出所有报告描述符的标签。以前面所举的实际范例中键盘的报告描述符为例,首先点选[USAGE_PAGE],后会出现一个次窗口列出所有的Usage Page 的选项,这个例子要选[Generic Desktop],按[OK]后则次窗口消失,DT 的主窗口中的右边小内窗口Report Descriptor 就出现Usage Page(Generic Desktop)并跟随着该项目的编码05 01(低字节在左边),也就是这个工具可以帮助作自动编码的工作。程序员只要输入项目的卷标和内容,则可以由这个工具软件提供报告描述符的程序代码。接着,当点选第二个项目[USAGE]时,DT 软件会根据前面的编签Usage Page 的内容Generic Desktop,而产生一个次窗口列出Generic Desktop 包含的所有Usage 选项。同样道理,当选完Usage Page
(Keyboard),再要编撰Usage Minimum 和Usage Maximum 时,所出现的次窗口则为Usage Page (Keyboard)所包含的全部Usage 选项,选第224 个为Left Control键当用途范围的最小者,再选第231 个为Right GUI 键当用途范围的最大者。其他项目的编撰以此类推。
在主窗口下,点选下拉选项[File]中的[Info],则会出现讯息窗口,告知编撰的描述符中项目的个数和描述符长度所需字节的数目。编撰报告描述符完成后,还要做语法检验,这时点选下拉选项[Parse Descriptor],则DT 软件会告知检查的结果,并提供错误原因与更改的建议。
 


 
总结
最后一个问题是如何将报告描述符加入微控器的汇编程序。对于任何一种描述符,都是以汇编语言中的一个标记来分辨,例如第一个接口的报告描述符的标记就称作hid_report_descriptor00;同样的,第二个界面的就称作hid_report_descriptor01。记得在报告描述符结束处也加上一个标记,如end_hid_report_descriptor00 和end_ hid_report_descriptor01。这个结束标记除了有助于阅读程序外,其最主要的用处是可以用来计算描述符的长度(即字节数)。例如使用dwl end_hid_report_descriptor00 - hid_report_descriptor00组译器就会自动算出第一个报告描述符的长度,这个长度以二个字节来记载。“dwl”为汇编语言的指示,在于储存二个字节的数据,储存的方式为little Endian。所谓little Endian 方法,就是将低字节的值存于低地址值的内存空间,高字节之值存于高地址值处。

本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/program/cpp/20090417/16506_4.html

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条