hid协议报告描述总结(共12页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《hid协议报告描述总结(共12页).doc》由会员分享,可在线阅读,更多相关《hid协议报告描述总结(共12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上HID报告描述符主要内容整理刚刚接触USB(HID)时对【报告描述符】感到难于理解,因此就更无从下手。下面根据2个主要的协议文本整理出一些常用信息,不完整,备忘。l 主要参考文本:n 【协议文本1】:Device Class Definition for Human Interface Devices (HID)Ver1.11n 【协议文本2】:Universal Serial Bus HID Usage TablesVer1.12每个协议文本后面的附录都有很多例子可供参考借鉴。0、主要术语与概念(1)报告(Report):HID设备与主机交换信息的单位(报告字节数似
2、乎没有限制);(2)报告描述符(Report Description):用许多【项目】说明报告的格式与【用途】;(3)用途(Usage):用于指出报告中某个数据域的意义或目的,32bit。高16bit用途页(Usage Page)指出用途的大类,低16bit用途ID(Usage ID)指出用途大类下的子用途;(4)项目(Item):报告描述符用于说明数据域的某种属性的数据,有短项目和长项目之分,短项目15B,长项目3255B;(5)共有3种类型的项目:主项目、全局项目(Global)、局部项目(Local);(6)主项目(Main Item)共有5个,其中的Input、Output和Featu
3、re会产生实际的数据域并附带说明其操作特性(见2.1);其余2个Collection和End Collection是一对括号,其间的内容构成一个【集合】,用于限定集合中信息的整体特性;(7)全局项目(Global Item):说明其后主项目产生的数据域的某方面特性,一旦说明一直有效,除非遇到一个新的全局项目说明改变其值;(8)局部项目(Local Item):说明其后主项目产生的数据域的某方面特性,但只对其后的一个主项目有效;(9)可以认为所有用【全局项目】说明的各种数据域特性构成一个【全局状态表】,随着新的【全局项目】出现,该表在不断变化。可以使用【全局项目】中的【push】和【pop】将该
4、表入栈或者出栈,以简化描述符。(10)项目后的【可选数据字节】可以采用简短方式给出(不够该数据的实际位数),此时认为省略了高有效位且它们的值为0。(11)一个产生多个数据域(Report Count1)的主项目之前有一个以上的【用途】时,每个【用途】与一个数据域依次对应,如果数据域个数(Report Count)超过【用途】的个数,则剩余的数据域都对应于最后一个【用途】。1、短项目格式 (更多细节请参见协议文本1:p26)前缀字节说明bTag项目标签指出该项目的具体意义,见后续说明bType项目类型【00】=主项目,【01】=全局项目,【10】=局部项目,【11】=保留bSize可选数据字节数
5、【00,01,10,11】=(0,1,2,4)字节长项目很少使用,忽略。2、主项目分类(更多细节请参见协议文本1:p28)主项目说明项目标签前缀字节取值Input输入1000 00 nnOutput输出1001 00 nnFeature特征1011 00 nnCollection集合开始1010 00 nnEnd Collection集合结束1100 00 nn(nn为bSize【可选数据字节数】,后同)2.1 【输入】【输出】【特征】项目的后续数据说明(更多细节请参见协议文本1:p30)Bit取值01说明 (0/1)8Bit FieldBuffered Bytes位域/字节填充(不足8位填充
6、成8位)7Non VolatileVolatile主机不可改变/可改变状态值,只用于Feature项目6No Null PositionNull State 没有【无效(空)状态】/有【无效(空)状态】5Preferred StateNo Preferred无操作时回复原位(如按键或游戏杆)/不回复原位4LinearNon Linear线性/非线性3No WrapWrap卷绕/非卷绕,【卷绕】指最大最小值首尾相连2AbsoluteRelative绝对值/相对值1ArrayVariable每个字段(Report Size)独立触发操作/所有字段(Report Size* Report Count
7、)触发一个操作0DataConstant变量/常量如果Bit8为0,则可以只给出1字节的低8位数据。2.2 【集合开始】项目后的【集合类型】字节说明(更多细节参见协议文本1:p33)集合类型缩写取值说明PhysicalCP0x00用于包含单个几何点的控制ApplicationCA0x01用于包含多种报告、多种应用LogicalCL0x02用于包含多种不同结构的报告数据Report0x03用于包含一个单独的报告(含有报告ID)Named ArrayNary0x04Usage SwitchUS0x05Usage ModifierUM0x06Reserved0x07 0x7F(保留)未来扩展0x80
8、 0xFF(保留)用户自定义3、全局项目分类(更多细节参见协议文本1:p35)项目标签前缀字节取值说明Usage Page用途页0000 01 nnLogical Minimum逻辑最小0001 01 nn Logical Maximum逻辑最大0010 01 nnPhysical Minimum物理最小0011 01 nnPhysical Maximum物理最大0100 01 nnUnit Exponent 单位指数(以10为底)0101 01 nn Unit 单位值0110 01 nn Report Size报告大小(Bit)0111 01 nn 数据域bit数Report ID报告ID1
9、000 01 nn取值1255Report Count 报告数量1001 01 nn数据域重复次数Push全局状态表入栈1010 01 nn Pop全局状态表出栈1011 01 nnReserved保留1100 01 nn 1111 01 nn全局项目设置的参数会影响其后的所有主项目,直到该参数被重新设置。3、局部项目分类(更多细节参见协议文本1:p40)项目标签前缀字节取值说明Usage用途0000 10 nnUsage Minimum用途最小0001 10 nn许多个用途的(起始值)Usage Maximum用途最大0010 10 nn许多个用途的(结束值)Designator Index
10、指示器ID0011 10 nnDesignator inimum 指示器最小0100 10 nnDesignator aximum 指示器最大0101 10 nnString Index串ID0111 10 nnString Minimum串最小1000 10 nnString Maximum串最大1001 10 nnDelimiter分隔符1010 10 nnReserved保留1010 10 nn 1111 10 nn局部项目设置的参数只影响其后的一个主项目。4、用途页代码 (更多细节参见协议文本2:p14)代码用途页说明00Undefined 未定义01Generic Desktop C
11、ontrols通用桌面控制02Simulation Controls仿真控制03VR Controls虚拟现实控制04Sport Controls运动控制05Game Controls游戏控制06Generic Device Controls通用设备控制07Keyboard/Keypad键盘08LEDsLED阵09Button按钮0AOrdinal顺序0BTelephony电话0CConsumer消费0DDigitizer数字化仪0EReserved保留0FPID Page人体接口设备10UnicodeUincode码11-13Reserved保留14Alphanumeric Display字
12、符显示15-3fReserved保留40Medical Instruments医学设备41-7FReserved保留80-83Monitor pages监控器页84-87Power pages 电源页88-8BReserved保留8CBar Code Scanner page条形码页8DScale page天平8EMagnetic Stripe Reading (MSR) Devices 磁条阅读设备8FReserved Point of Sale pages90Camera Control Page照相机控制页91Arcade Page92-FEFFReserved保留FF00-FFFFVe
13、ndor-defined用户自定义5、【通用桌面控制】用途页下的部分主要用途Usage ID (更多细节参见协议文本2:p26)用途ID用途名用途类型说明00Undefined未定义01PointerCP(物理集合)指针定位02MouseCA(应用集合)鼠标03Reserved保留04JoystickCA(应用集合)游戏摇杆05Game PadCA(应用集合)游戏板06KeyboardCA(应用集合)键盘07KeypadCA(应用集合)键板(数字小键盘)08Multi-axis ControllerCA(应用集合)多轴控制器09Tablet PC System ControlsCA(应用集合)
14、平板计算机系统控制0A-2FReserved保留30XDV(动态值)X坐标31YDV(动态值)Y坐标32ZDV(动态值)Z坐标33RxDV(动态值)X轴旋转34RyDV(动态值)Y轴旋转35RzDV(动态值)Z轴旋转36SliderDV(动态值)滑动条37DialDV(动态值)刻度盘38WheelDV(动态值)旋钮39Hat switchDV(动态值)碰触开关6、其他注意事项(1)一个最小的报告描述符至少应包含:l Input(或者OutputFeature)l Usagel Usage Pagel Logical Minimuml Logical Maximuml Report Sizel
15、Report Count(2)报告描述符至少要有一个顶层(Application)集合,集合可以嵌套。(3)报告不能跨越顶层集合。(4)除了最长的报告,顶层集合中的其他报告必须以【短包】(short packet?)终结;所有没有达到【端点】的【最大包长度(wMaxPacketSize)】的报告也必须以【短包】(short packet?)终结。(5)整个报告长度必须是字节的整数倍。(6)项目说明的数据域不能跨越超过4字节,即最长的数据域32bit必须开始于字节边界。7、几个报告描述符的例子(来源于网络)(1)一个红外触摸屏的例子【包含2种不同的报告,REPORT_ID (1) ,REPORT
16、_ID (2)】/126 byte 0x05, 0x01, / USAGE_PAGE (Generic Desktop) 0x09, 0x02, / USAGE (Mouse) 0xa1, 0x01, / COLLECTION (Application) 0x09, 0x01, / USAGE (Pointer) 0xa1, 0x00, / COLLECTION (Physical) 0x85, 0x01, / REPORT_ID (1) 0x05, 0x09, / USAGE_PAGE (Button) 0x19, 0x01, / USAGE_MINIMUM (Button 1) 0x29,
17、 0x03, / USAGE_MAXIMUM (Button 3) 0x15, 0x00, / LOGICAL_MINIMUM (0) 0x25, 0x01, / LOGICAL_MAXIMUM (1) 0x75, 0x01, / REPORT_SIZE (1) 0x95, 0x03, / REPORT_COUNT (3) 0x81, 0x02, / INPUT (Data,Var,Abs) 0x75, 0x05, / REPORT_SIZE (5) 0x95, 0x01, / REPORT_COUNT (1) 0x81, 0x01, / INPUT (Cnst,Ary,Abs) 0x05,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hid 协议 报告 描述 总结 12
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内