USB接口HID设备详细介绍

上传人:B**** 文档编号:57722998 上传时间:2022-02-24 格式:DOCX 页数:49 大小:345.89KB
收藏 版权申诉 举报 下载
USB接口HID设备详细介绍_第1页
第1页 / 共49页
USB接口HID设备详细介绍_第2页
第2页 / 共49页
USB接口HID设备详细介绍_第3页
第3页 / 共49页
资源描述:

《USB接口HID设备详细介绍》由会员分享,可在线阅读,更多相关《USB接口HID设备详细介绍(49页珍藏版)》请在装配图网上搜索。

1、更多企业学院:中小企业管理全能版183 套讲座 +89700 份资料总经理、高层管理49套讲座 +16388 份资料中层管理学院46套讲座 +6020 份资料国学智慧、易经46套讲座人力资源学院56套讲座 +27123 份资料各阶段员工培训学院77套讲座 + 324 份资料员工管理企业学院67套讲座 + 8720 份资料工厂生产管理学院52套讲座 + 13920 份资料财务管理学院53套讲座 + 17945 份资料销售经理学院56套讲座 + 14350 份资料销售人员培训学院72套讲座 + 4879 份资料第8章 USB 接口 HID 设备HID ( Human Interface Devic

2、e,人机接口设备)是USB直接与人交互的USB 设备,例如键盘、鼠标与游戏杆等。在本较低。另外, HID 设备并不一定要有人机交互功能,只要符合设备。设备中常用的设备类型,是USB 设备中, HID 设备的成HID 类别规范的设备都是Wndows 操作系统最先支持的 HID 设备。在 windows 98 以及后来的版本中内置有 HID 设备的驱动程序,应用程序可以直接使用这些驱动程序来与设备通信。在设计一个USB 接口的计算机外部设备时,如果HID 类型的设备可以满足需要,可以将其设计为HID 类型设备,这样可以省去比较复杂的USB驱动程序的编写,直接利用Windows操作系统对标准的HID

3、 类型 USB 设备的支持。8.1HID设备简介HID 设备的特点交换的数据储存在称为报表(Report )的结构内, 设备的固件必须支持HlD 报表的格式。 主机通过控制和中断传输中的传送和请求报表来传送和接收数据。报表的格式非常灵活。每一笔事务可以携带小量或中量的数据。低速设备每一笔事务最大是8B ,全速设备每一笔事务最大是64B ,高速设备每一笔事务最大是1024B 。一个报表可以使用多笔事务。设备可以在未预期的时间传送信息给主机,例如键盘的按键或是鼠标的移动。所以主机会定时轮询设备,以取得最新的数据。HID 设备的最大传输速度有限制。主机可以保证低速的中断端点每10ms 内最多 1笔事

4、务,每一秒最多是800B 。保证全速端点每lms一笔事务,每一秒最多是64000B 。保证高速端点每125 us 三笔事务,每一秒最多是24.576MB 。HID 设备没有保证的传输速率。如果设备是设置在10ms 的时距,事务之间的时间可能等于或小于10ms 。除非设备是设置在全速时在每个帧传输数据,或是在高速时在每个微帧传输数据。这是最快的轮询速率,所以端点可以保证有正确的带宽可供使用。HID 设备除了传送数据给主机外,它也会从主机接收数据。只要能够符合HlD 类别规范的设备都可以是HID 设备。设备除了HlD 接口之外,它可能同时还包含有其他的USB 接口。例如影像显示设备可能使用HID

5、接口来做亮度、对比度的软件控制,而使用传统的影像接口来传送要显示的数据。 USB 扩音器可以使用实时传输来播放语音,同时使用HID 接口来控制音量、 低音等。HID类别设备的规范文件主要是以下两份:Device Class Definition for Human interface Devices HID Usage TablesHID 设备的硬件要求HID 接口必须符合Device Class Definition for Human interface Devices规范内所定义的 HID 类别的需求。在此文件内描述了所需的描述符、传输的频率以及传输的类型等。为了符合规范,HID 接口的

6、端点与描述符都必须符合数个要求。所有的 HID 传输都是使用默认控制管道或是一个中断管道,HID 设备必须有一个中断输入端点来传送数据到主机,中断输出端点则不是必需的。主机默认控制管道外设HID 类别HID 类别驱动程序设备中断管道图 8-1HID 传输的传输类型表 8-1HID 设备的传输类型传输数据类型是否需数据来源要管道类型设备(输入)没有严格时间限制的数据是控制没有严格时间限制的数据主机(输出)或是没有中断输出管道时的任何数据设备(输入)定时或低延迟的数据是中断定时或低延迟的数据是主机(输出)主机与设备之间所交换的数据,可以分成两种类型:低延迟的数据,必须尽快地到达目的;配置或其他的数

7、据,没有严格时间限制的需求。中断管道是控制管道之外的另一种数据交换的方式,特别适合使用在接收端需要定时或是尽可能及时收到数据的时候。中断输入管道携带数据到主机,中断输出管道则是携带数据到设备。在总线忙的时候,控制管道可能会被延迟,而中断管道保证会有可得到的带宽。 HID 不需要一定有中断输出管道。如果没有中断输出管道,主机会在控制管道上使用HID 设备特有的Set_Report请求来传送所有的报表。HID 固件的要求主机的驱动程序要与HID 设备通信,设备的固件必须符合下列需求:设备的描述符必须识别该设备包含有HID 接口。除了默认控制管道外,固件必须另外支持一个中断输入管道。固件必须包含一个

8、报表描述符来定义要传送与接收的设备数据。如果要传送数据,固件必须支持Get_Report控制传输与中断输入传输。如果要接收数据,固件必须支持Set_Report控制传输与选择性的中断输出传输。所有的 HID 数据都必须使用定义过的报表格式来定义报表中数据的大小与内容。设备可以支持一个或多个报表。在固件中的一个报表描述符用来描述此报表,以及如何使用报表数据的信息。在每一个报表中的一个数值,定义此报表是一个输入(Input )、输出( Output )或是特征( Feature )报表。主机在输入报表中接收数据,在输出报表中传送数据,特征报表可以在任何方向传递。Windows98 以及后来版本的H

9、ID 驱动程序使用中断传输来传递输入报表。输出报表的传输类型要根据设备支持的端点与Windows的版本而定。 Windows 98 Gold只符合 HID1.0 规范,它的HID 驱动程序使用控制传输来传递输出报表。Windows 98 SE、Wndows2000 符合 HID 1.1 规范, HID 驱动程序在有中断输出端点时使用中断传输,否则使用控制传输来传递输出报表。特征报表都是使用控制传输。8.2HID 设备描述符HID 设备连接到USB述符,了解描述符对了解主机后,主机通过发送USB 设备是至关重要的。Get_Descriptor请求读取HID设备的描HID 设备的描述符HID设备除

10、了支持USB设备的5 种标准描述符之外,还支持HID设备特有的3 种描述符。这些描述符是:USB 标准描述符:设备、配置、接口、端点和字符串描述符。HID 特有的描述符:HID 、报表( Report )和实体( Physical )描述符。从描述符的关联关系看,HID 描述符是关联于接口。所以如果一个HID 设备有 2 个端点,设备不需要每个端点有一个HID 描述符。接口描述符InterfaceHID 描述符端点描述符HidEndpointHID 、报表和实体描报表描述符实体描述符述符是 HID 设备特ReportPhysical有的描述符图 8-2HID 描述符的关联关系从前面的USB 描

11、述符可以看出一个规律,描述符的第一、二字节分别是描述符的长度和类型,描述符的类型字段(bDescriptorType)表明描述符的种类,下表列出了不同描述符的类型字段数值。表 8-2HID 的描述符类型描述符应用数值设备Device所有设备必须有,只能一个01配置Configuration所有设备必须有,至少一个02标准字符串String可选择03接口Interface每一个接口一个04端点Endpoint除端点 0 之外的每个端点一个05类别HID特定设备限定 Device_Qualiffier Other_Speed_Configuration Interface_powerHIDHub报

12、表Report实体Physical同时支持全速与高速的设备必须有06一个0708HID 设备必须有2129HID 设备必须有22可选择的23对于一个HID 设备,设备描述符与配置描述符没有HID 特定的信息。 其设备描述符的bDeviceClass和 bDeviceSubClass字段的值为0,接口描述符的bInterfaceClass字段值为 03 ,表示设备的该接口是HID 类别。在接口描述符中其他包含HID 特定信息的字段还有子类别码( blnterfaceSubClass)与协议码( blnterfaceProtocol字段)。在接口描述符中子类别码字段等于1 表示此设备支持启动接口(

13、BootInterface )。如果设备有启动接口,即便主机的HID 没有加载驱动程序,设备也可以使用。这种情形可能发生在计算机是由DOS 直接启动,在启动时观看系统设置画面或使用Wndows的安全模式时。含有启动接口的键盘或鼠标可以使用BIOS 或许多主机支持的默认简单协议。HID 规范定义了键盘与鼠标的启动接口协议。如果设备没有启动接口,并且接口描述符中协议码字段是1,表示设备支持键盘接口,协议码字段是2 ,表示支持鼠标接口。接口描述符中协议码字段是0,表示设备不支持启动协议。在 HID UsageTables 规范中定义了键盘与鼠标的启动描述符(BootDescriptor )。BIOS

14、 不需要从设备中读取描述符,因为它知道启动协议,并且假设设备支持启动协议。所以要启动的设备不需要在固件内包含启动接口描述符,它只要在主机尚未要求在报表描述符中的定义协议时支持启动协议即可。在操作系统加载 HlD 驱动程序后会使用 Set_Protocol 请求,将设备由启动协议转换成报表协议。HID 描述符HID 描述符的主要作用是用来识别 HID 通信所使用的额外描述符。 下表是 HID 描述符结构。表 8-3 HID 描述符结构偏移字段字节数值说明量数类型0bLength1Numeric描述符字节数1bDescriptorType1Constant0x21 = HID 描述符2bcdHID

15、2NumericHID 规范版本号( BCD )4bCountryCode1Numeric硬件设备所在国家的国家代码5bNumDescriptors1Numeric类别描述符数目(至少有一个报表描述符)6bDescriptorType1Constant类别描述符的类型7wDescriptorLength2Numeric报表描述符的总长度9bDescriptorType.1Constant附加的描述符的类型,可选的10wDescriptorLength.2Numeric附加的描述符的总长度,可选的bcdHID :设备与其描述符所遵循的 HID 规范的版本号码,此数值是 4 个 16 进位的 BC

16、D 格式字符。例如版本 1.1 的 bcdHID 是 0110h 。bCountryCode:硬件目的国家的识别码。如果不说明,该字段为0 。bDescriptorType: HID 描述符附属的描述符的类型(报表或实体)。每一个HID 都必须至少支持一个报表描述符。一个接口可以支持多个报表描述符,以及一个或多个实体描述符。HID 描述符的偏移量为 9 和 10 的 bDescriptorType 和 wDescriptorLength 可以重复存在多个。1. 报表描述符报表描述符定义了执行设备功能的数据格式和使用方法。报表描述符和USB的其他描述符是不一样的,它不是一个简单的表格,报表描述符

17、是 USB 所有描述符中最复杂的。报表描述符非常复杂而有弹性,因为它需要处理各种用途的设备。报表的数据必须以简洁的格式来储存,这样才不会浪费设备内的储存空间以及数据传输时的总线时间。实际上可以这样理解,报表内容的简洁,是通过报表描述符全面的、复杂的数据描述实现的。报表描述符必须先描述数据的大小与内容。报表描述符的内容与大小因设备的不同而不同,在进行报表传输之前,主机必须先请求设备的报表描述符,只有得到了报表描述符才可正确解析报表的数据。报表描述符是报表描述项目( Item )的集合,每一个描述项目都有相对统一的数据结构,项目很多,通过编码实现。(1)项目报表描述符由描述 HID 设备的数据项目

18、 ( Item )组成,项目的第一个字节 (项目前缀)由三部分构成,即项目类型( item type )、项目标志( item tag )和项目长度( item size )。其中项目类型说明项目的数据类型,项目标签说明项目的功能,项目长度说明项目的数据部分的长度。HID 的项目有短项目和长项目两种,其中短项目的格式如下图。位序7654 3210字段Data (可以是 0、 1、 2、 4 个字节 )bTagbType bSize图 8-3 HID报表短项目格式短项目的数据字节数由bSize 的值定义, bSize 为 0、 1 、2、3 时分别为 0 、1 、 2、 4 个字节。短项目的项目

19、类型由bType 定义, bTypeData 部分的字节数为 0、1、2 时分别为 Main 、 Global 和 Local 类型。长项目可以携带较多的数据,其格式如下图。位序76543210字段DatabLongItemTagbDataSize11111110字节数1255111图 8-4HID 报表长项目格式项目中的第一个字节为上图中的特定值时表明该项目是一个长项目。长项目中的 bDataSize 说明 Data 部分的字节数, bLongItemT ag 在 HID 规范中没有定义。下面是通过汇编实现的一个简单的报表描述符,描述符的每一行是一个项目,该描述符描述了一个从设备接收2 个字

20、节的输入报表和发送2 个字节到设备的输出报表。HID_Report_desc_table:db 06h, A0h, FFh; Usage Page(Vendor defined)定义设备功能db 09h, A5h; Usage(Vendor Defined)定义用法db A1h, 01h; Collection(Application)开一个集合db 09H, A6h;Usage(Vendor defined)定义用法;输入报表db 09h, A7h;Usgae(Vendor defined)定义用法db 15h, 80h;Logical Minimum定义输入最小值 =-128db 25h,

21、 7Fh;Logical Maximum定义输入最大值 =+27db 75h, 08h;Report Size定义报表数据项大小 =8db 95h, 02h;Report Count定义报表数据向个数 =2db 81h, 02h;Input(Data,Variable,Absolute)输入项目;输出报表db 09h, A9h;Usgae(Vendor defined)定义用法db 15h, 80h;Logical Minimum定义输入最小值 =-128db 25h, 7Fh;Logical Maximum定义输入最大值 =+27db 75h, 08h;Report Size定义报表数据项大

22、小 =8db 95h, 02h;Report Count定义报表数据向个数 =2db 91h, 02h;Output(Data,Variable,Absolute)输出项目db C0h; End Collection关闭集合(2 )项目的分类报表的项目有 Main 、Global 和 Local 三大类, 每一类都有多个不同的项目,实现不同的描述。Main 类项目用于定义报表描述符中的数据项。也可以组合其中的若干数据项成为一个集合。 Main 项目可以分为带数据的 Main 项目和不带数据的Main 项目。带数据项的Main用于生成报表中的数据项,包括Input 、Output和 Featur

23、e项目。不带数据的 Main项目不生成报表中的数据项,包括Collection 和 End Collection 项目。Global 类项目实现对数据的描述,用来识别报表并且描述报表内的数据,包括数据的功能、最大与最小允许值以及数据项的大小与数目等。改变由Main 类项目生成的项目状态表。 Global 类项目描述对后续的所有项目有效,除非遇到有新的Global 类项目。Local 类项目定义控制的特征, 这一类项目的作用域不超过下一个Main 项目,所以在每一 Main 项目之前可能有多个Local 项目。 Local 项目用于描述后面的 Input 、 Output 和Feature 项目

24、。下表列出的是全部的项目的前缀字和简要功能说明。表 8-4 HID 项目列表项目项目标志( Tag )项目前缀, nn功能说明类型为数据长度Input1000 00 nn定义输入报表,主机利用该信息解析设备提供的数Main据。主机向控制端口发送Get_Report实现输入类项Output1001 00 nn创建输出报表,通过向设备发送Set_Report 实现输目出Feature1011 00 nn定义送往设备的设置信息Collection1010 00 nnEnd Collection1100 00 nn定义 2 个以上数据( Input 、Output 和 Feature )的关系为集合,

25、 Collection 开始一个集合, 之后的 End Collection 结束集合。 Collection 项目的数据部分说明 Collection 的类型Global类项目Local类项目Usage Page0000 01 nnLogical Minimum0001 01 nnLogical Maximum0010 01 nnPhysical Minimum0011 01 nnPhysical Maximum0100 01 nnUnit Exponent0101 01 nnUnit0110 01 nnReport Size0111 01 nnReport ID1000 01 nnRepo

26、rt Count1001 01 nnPush1010 01 nnPop1011 01 nn1100 01 nn1111 01 nnUsage0000 10 nnUsage Minimum0001 10 nnUsage Maximum0010 10 nnDesignator Index0011 10 nnDesignator Minimum0100 10 nnDesignator Maximum0101 10 nnString Index0111 10 nnString Minimum1000 10 nnString Maximum1001 10 nnDelimiter1010 10 nn101

27、0 10 nn1111 10 nn指定设备的功能另外由于 Usage项目有 32位数据值, Usage Page 项目用于为 Usage项目在报表描述符中占居存储空间。用于存放后续的 Usage项目的高 16位。定义变量或数组项目的逻辑最小值和最大值定义变量或数组项目的物理最小值和最大值,分别和 Logical Minimum 、Logical Maximum 对应定义数值是基于 10 的指数单位指定报表数据区域所包含的位数报表 ID,该项目在报表中插入一个字节的报表 ID 报表中数据域的数目将 Global 项目状态表送入堆栈从堆栈恢复 Global 项目状态表 保留用法索引值,表示对项目或

28、集合建议的用法,用于当一个项目描述多个控制,对每一个变量和数组元素都有建议的用法定义阵列或位图中控制操作的第一个和最后一个用法确定用于控制的实体,指向物理描述符中的目标定义阵列或位图目标的起始和终止索引值确定字符串描述符中的索引值定义用于阵列或位图控制中字符串序列索引值的最小值和最大值定义一组 Local 项目的开始和结束, 1= 开始, 0=结束 保留在这些项目中, Usage Page 用来指定设备的功能,而 Usage 项目用来指定个别报表的功能。 Usage Page 项目相当于是 HID 的子集合, Usage 相当于是 Usage Page 的子集合。2. 报表描述符的项目(1 )

29、Input 、Outpot 和 Feature 项目这 3 个项目用来定义报表中的数据字段。Input 项目可以应用到任何控制、计数器读数或其他设备传给主机的信息。一个输入报表包含一个或多个Input 项目,主机使用中断输入传输来请求输入报表。Ouput项目用来定义主机传送给设备的信息。一个输出报表包含一个或多个Outpot项目。输出报表包含控制状态的数据。如果有中断输出管道,HID1.1 兼容主机使用中断输出传输来传送输出报表,否则使用Set_Report控制请求。Feature项目应用到主机传送给设备的信息,或是主机从设备读取Feature项目。一个特征报表包含一个或多个Feature项目

30、, Feature项目通常是包合影响设备与其组件整体行为的配置。特征报表通常是控制可以使用实际的控制面板调整的设置,例如主机可以使用虚拟控制面板来让用户选择控制特征。 主机使用 Set_Report 与 Get_Report 请求来传送与接收特征报表。在每一个 Input 、Output 和 Feature项目的前缀字之后是 32位描述数据,目前最多定义了 9个位,余的位则是保留。位 08的定义中只有位 7 不能应用于 Input 项目,除此之外其他的位定义都适应于Input 、 Output和 Feature 项目。表 8-5Input 、Output和 Feature 项目的数据项说明数据

31、字段含义说明位值名称00Data数据:表示项目的内容是可更改的(读/写)。1Constant常数:表示项目的内容是不可更改的(只读)。0Array数组:报告全部控制的状态。 如在键盘报表中每一个键在报表中占一位,报表传输全部键的状态,可以同时按下任意多个键。1变量:报告作用中的控制。 如在键盘报表中只报告按下的键的编1Variable号,可以同时按下的键的数目等于报表的计数(Global 类项目Report Count )23456789310 Absolute1 Relative0 No Wrap1 Wrap0 Linear1 Non-Linear0 Preferred1 Non-Prefe

32、rred0 No Null Position1Null State0 Non-Volatile1 Volatile0 Bit Field1 Buffered Bytes位绝对:表示数值以一个固定值为基准。游戏杆通常是报告绝对数据(游戏杆目前的位置) 。相对:表示数据的改变以上一个读数为基准。鼠标通常是报告相对数据(鼠标的移动位置) 。如果设置为 1 表示回转,当数值超过最小值到最大值的范围时将回转,如果最小值是0 而最大值是10 ,超过最大值的下一个数值是 0。线形:表示测量的数据与报表的数据有线性的关系。非线性:表示测量的数据与报表的数据没有线性的关系。优选状态:表示控制在没有用户交互时会回

33、到一个特定的状态。如按钮就有优选状态,在无操作时保持未按下的状态。非优选状态: 它维持在上一个用户选择的状态。如交替的开关就没有优选状态。无空状态位置:表示控制永远在传送有效的数据。空状态:表示控制支持一个没有传送有效数据的状态。如操纵杆可能具有一个多方向的按钮开关, 在没有按下时在空状态,这时控制将传送一个在Logical Minimum与 Logical Maximum范围之外的数值来表示它在空状态。不可变的: 表示设备只有在主机请求时才改变数值。当主机传送一个报表并且不要改变不可变项目时,如果该项目是定义成相对( Relative )的,数值 0 表示不改变数据,如果不可变项目是定义成绝

34、对( Absolute )的,超出范围外的数值则表示不改变数据。可变的:表示设备可以自己改变数值, 并不是必须主机传送报表要求给设备来改变数值。 例如设备控制面板可以由主机软件传送一个报表给设备,也可以由用户自己按设备上的实际按钮。位字段:表示每一个位或是一个字节内的一组位可以代表一份数据。缓冲字节: 表示信息包含一个或多个字节, 缓冲字节的报表大小必须是 8。保留注: :该位不能应用到数组。:只应用于Output 和 Feature 项目,对于Input 项目该位保留。(2 )Collection 和 End Collection项目所有的报表类型都可以使用Collection与 EndCo

35、llection 项目来将相关的Main 类型项目组成群组。 这两个项目分别用于打开和关闭集合。所有在 Collection 与 End Collection项目之间的 Main 类型项目都是Collection的一部分。Collection 有 3 种类型: Application 、 Physical与 Logical ,其项目的数据项的值分别为 1 、0 和 2。厂商也可以自己定义Collection 类型,数据项的值为 80hFFh 保留给厂商定义。 End Collection 项目无数据项。Application Collection 包含有共同用途的项目或执行单一功能的项目。例如

36、键盘的开机描述符将键盘的按键与LED指示灯数据集合成一个Application Collection 。所有的报表必须在一个 Application Collection 内。Physical Collection包含在一个单一几何点上的数据项目,可以将每个位置的数据集合成一个Physical Collection。在设备报告多个传感器的位置的时候,使用PhysicalCollection指明不同的数据来自不同的传感器。Logical Collection 形成一个数据结构,包含由Collection 所连结的不同类型的项目。例如数据缓冲区的内容以及缓冲区内字节数目的计数。(3 )Usage

37、Page和 Usage 项目Usagepage 项目的数据部分为12 个字节,目前的定义全部都是一个字节。UsagePage 定义了常用的设备功能,关于Usage Page (以及其他项目)的具体定义内容,可以查阅 HID Usage tables ( http:/www.usb.org/developers/hidpage/#Class_Definition),下表是来自 HID Usage tables的 Usage Page 定义。表 8-6 Usage Page 定义Page IDPage Name00Undefined01Generic Desktop Controls02Simul

38、ation Controls03VR Controls04Sport Controls05Game Controls06Generic Device Controls07Keyboard/Keypad08LEDs09Button0AOrdinal0BTelephony0CConsumer0DDigitizer0EReserved0FPID Page10Unicode11-13Reserved14Alphanumeric Display15-3fReserved40Medical Instruments41-7FReserved80-83Monitor pages84-87Power pages

39、88-8BReserved8CBar Code Scanner page8DScale page8EMagnetic Stripe Reading (MSR) Devices8FReserved Point of Sale pages90Camera Control Page91Arcade Page92-FEFFReservedFF00-FFFFVendor-defined关于 Usage Page 的每一个有效定义项,都有一个相应的下一级定义,如Usage Page的数据项数值为1,则设备定义为Generic Desktop Controls,关于该类设备的具体功能可以在 HIDUsage

40、Tables 中查到具体的定义。下表是HIDUsageTables 中对 GenericDesktop Controls设备的功能定义。表 8-7 Generic Desktop Controls用法定义参阅 HIDUsage IDUsage NameUsageUsage TablesType中的相关章节00Undefined01PointerCP4.102MouseCA03Reserved04JoystickCA05Game PadCA06KeyboardCA4.107KeypadCA08Multi-axis ControllerCA09Tablet PC System ControlsCA

41、0A-2FReserved30XDV31YDV32ZDV4.233RxDV34RyDV35RzDV36SliderDV37DialDV4.338WheelDV39Hat switchDV3ACounted BufferCL4.63BByte CountDV3CMotion WakeupOSC3DStartOOC4.33ESelectOOC3FReserved40VxDV41VyDV42VzDV43VbrxDV4.3.144VbryDV45VbrzDV46VnoDV47Feature NotificationDV,DF4.848Resolution MultiplierDV49-7FReserv

42、ed80System ControlCA4.581System Power DownOSC82System SleepOSC4.5.183System Wake UpOSC84System Context MenuOSC85System Main MenuOSC86System App MenuOSC87System Menu HelpOSC88System Menu ExitOSC4.589System Menu SelectOSC8ASystem Menu RightRTC8BSystem Menu LeftRTC8CSystem Menu UpRTC8DSystem Menu DownR

43、TC8ESystem Cold RestartOSC4.5.18FSystem Warm Restart OSC90D-pad UpOOC91D-pad DownOOC4.792D-pad RightOOC93D-pad LeftOOC94-9FReservedA0System DockOSCA1System UndockOSC4.5.1A2System SetupOSCA3System BreakOSCA4System Debugger BreakOSC4.9A5Application BreakOSCA6Application Debugger BreakOSCA7System Speak

44、er MuteOSC4.5.1A8System HibernateOSCA9-AFReservedB0System Display InvertOSCB1System Display InternalOSCB2System Display ExternalOSCB3System Display BothOSCB4System Display DualOSC4.10B5System Display Toggle Int/ExtOSCB6System Display SwapOSCPrimary/SecondaryB7System Display LCD AutoscaleOSCB8-FFFFRe

45、served用法( Usage )定义了各种各样设备特性,对于Usage Page的每一项都定义了常用的各种用法。用法说明了3 种信息,即控制、集合和数据。控制说明设备的状态,如on/off 、Enable/Disable等。集合说明控制和数据的组合关系。上表中的用法类型(Usage Type )描述了应用程序如何处理由Main 类型项目生成的数据,具体的定义和详细说明请参阅HID Usage Tables。(4 )Report ID项目Report ID放在信息包中报表数据之前,设备可以支持多个相同类型的报表,每一个报表包含不同的数据与其特有的ID 。在报表描述符中, Report ID 项

46、目作用于其后续所有的项目, 直到遇到下一个Report ID为止。如果报表描述符中没有Report ID 项目,默认的ID 值是 0 ,描述符不能定义一个为0 的 Report ID,输入报表、输出报表与特征报表可以分享同一个Report ID。在 Set_Report和 Get_Report请求传输中, 主机在设置事务的wValue字段的低字节中指定一个 Report ID。在中断传输中如果接口支持一个以上的Report ID, Report ID 必须是传送报表中的第一个字节。如果接口只支持数值为0 的默认 Report ID,此 Report ID不应该在中断传输中随着报表一起传送。(5

47、)Logical Minimum和 Logical Maximum 项目Logical Minimum与 Logical Maximum 项目定义报表的变量 ( Variable )或阵列( Array )数据的限制范围,此限制范围以逻辑单位来表示。例如设备报表的一个电流值读数是500mA ,而一个单位是2mA ,则 Logical Maximum值等于 250 。负数值以2 的补码来表示。 如果 Logical Minimum与 Logical Maximum都是正数, 就不需要有正负号位。不管LogicalMinimum与 LogicalMaximum是以有正负号或是无正负号的数值来表示,

48、设备都可以正确地传输数据。数据的接收者必须知道数据是否可以是负值。(5)Physical Minimum和 Physical Maximum项目Physical Minimum和 Physical Maximum项目定义数值的限制范围,该限制范围使用Unit 项目定义的单位来表示。 上例中设备报表的一个电流值读数是500mA ,单位是 2mA ,Logical Maximum值等于 250 ,而 Physical Maximum值是 500 。LogicalMinimum与 LogicalMaximum值说明了设备返回数值的边界,可以根据Physical Minimum和 Physical Maximum 值对数据进行偏移和比例变换。(6)Unit Exponent项目Unit Exponent项目定义了在使用逻辑范围和实际范围将设备的返回数值转换成实际数值时,使用10 的多少次方对数值进行定标。Unit Exponent的值的编码为4 位补码,代表 10 的指数范围是 -8+7 。表 8-8Unit Exponent数值表代码 00h01h 02h03h04h 05h06h 07h08h09h0Ah0Bh0Ch 0Dh 0Eh 0FH数值 01234567-8-7-6-5-4-3-2-1

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!