您现在的位置是:主页 > HID规范 >

HID报告描述符详解

发布时间:2022-11-24 20:56:10所属栏目:HID规范 已帮助编辑作者:【USB接口百科】

HID的报告描述符和其它描述符不一样,不是具有固定的数据结构,而是由固件开发商根据上报的数据自行组装的。这个组装的原材料是HID规范定义的ITEM。所以说HID报告描述符就像搭积木一样,其最终的数据结构和设计图纸是什么,都是由固件开发商决定的,但是其最终的产品又是由HID规范提供的各个标准积木模块搭建的。这个标准件就是HID规范提供的各个ITEM。

HID规范定义了三种类型的ITEM,、每个ITEM都具有共同的数据结构:

ITEM TAG,分为main,global和local item三种类型。ITEM TYPE,指示ITEM的功能ITEM SIZE:后跟数据的长度。

HID 报表描述符 http://www.usbzh.com/article/detail-48.html

HID item

main item的type包含5种item,分别为:

input item :用于向主机上报数据output item : 用于主机向设备发送数据。像主机控制键盘的LED灯光,使用输出报告的OUT item组合数据。feature item : 用于返回配置信息collection : 用于数据的分组。end collection:数据分组的结束。end collection和collection是成对出现的。

报告描述符实现的是HID设备的数据格式信息。这些数据是通过打包传输的,这个打包的方式也存储在报告描述符中。如ReportId,各个控件的数据长度和位序等。
HID数据

main item的input output feature item标识了数据的基本特征信息(如是数据还是变量,是绝对还是相对),而数据的附加信息如最大值、最小值则是通过local item和global item来标识的。

来自控件的一个或多个数据字段由 Main 项定义,并由的 Global 和 Local 项进一步描述其相关附加信息。 local item仅描述由下一个主要项目定义的数据字段。 global item 则是该描述符中所有后续数据字段的默认属性。
如以下报告描述的描述:

Report Size (3) //gloal
Report Count (2) //gloal
Input           //main
Report Size (8)  
Input           //继承Report Count (2)
Output          //继承Report Count (2) Report Size (8)

上面的报告描述符定义了两分数据结构,分别为输入报告和输出报告。

输入报告的数据结构如下图:
输入报告

输出报告的数据结构建如下图:
输出报告

HID报告描述符的最小单元

一个HID报告描述符一般包含多个main item,并且必须包含以下ITEM.

Input (Output or Feature)UsageUsage PageLogical MinimumLogical MaximumReport SizeReport Count

下面的这个示例是定义了三个按键的鼠标报告描述符:

Usage Page (Generic Desktop), ;Use the Generic Desktop Usage Page
Usage (Mouse),
Collection (Application), ;Start Mouse collection
    Usage (Pointer),
    Collection (Physical), ;Start Pointer collection
        Usage Page (Buttons)
        Usage Minimum (1),
        Usage Maximum (3),
        Logical Minimum (0),
        Logical Maximum (1), ;Fields return values from 0 to 1
        Report Count (3),
        Report Size (1), ;Create three 1 bit fields (button 1, 2, & 3)
        Input (Data, Variable, Absolute), ;Add fields to the input report.
        Report Count (1),
        Report Size (5), ;Create 5 bit constant field
        Input (Constant), ;Add field to the input report
        Usage Page (Generic Desktop),
        Usage (X),
        Usage (Y),
        Logical Minimum (-127),
        Logical Maximum (127), ;Fields return values from -127 to 127
        Report Size (8),
        Report Count (2), ;Create two 8 bit fields (X & Y position)
        Input (Data, Variable, Relative), ;Add fields to the input report
    End Collection, ;Close Pointer collection
End Collection ;Close Mouse collection

     以上就是USB接口百科为您提供HID报告描述符详解的解读,本文章链接: http://www.usb-hub.cn/hidgf/42341.html 欢迎分享转载,更多婚礼相关资讯请前往HID规范