USB HID协议中文版-USB接口HID设备.docx

上传人:李司机 文档编号:6929014 上传时间:2024-03-24 格式:DOCX 页数:52 大小:345.35KB
返回 下载 相关 举报
USB HID协议中文版-USB接口HID设备.docx_第1页
第1页 / 共52页
USB HID协议中文版-USB接口HID设备.docx_第2页
第2页 / 共52页
USB HID协议中文版-USB接口HID设备.docx_第3页
第3页 / 共52页
USB HID协议中文版-USB接口HID设备.docx_第4页
第4页 / 共52页
USB HID协议中文版-USB接口HID设备.docx_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《USB HID协议中文版-USB接口HID设备.docx》由会员分享,可在线阅读,更多相关《USB HID协议中文版-USB接口HID设备.docx(52页珍藏版)》请在三一办公上搜索。

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

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

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

4、lD接口来做亮度、对比度的软件控制,而使用传统的影像接口来传送要显示的数据。USB犷音器可以使用实时传输来播放语音,同时使用HID接口来控制音量、低音等。HID类别设备的规范文件主要是以下两份: DeviceClassDefinitionforHumaninterfaceDevices HIDUsageTables其中前者是HlD的基本规范文件,后者可以是前者的附件,为开发人员提供实际的控制类型的描述。文件是用来定义让主机了解以及使用HID数据的数值。这两份文件是由USBDeviceWorkingGroup制定的,可以在网址httpwww.usb.orgdevelopersidpage#Cla

5、ssDefi制On下载。8.1.2 HlD设备的硬件要求HlD接口必须符合DeviceClassDefinitionforHumaninterfaceDevices规范内所定义的HID类别的需求。在此文件内描述了所需的描述符、传输的频率以及传输的类型等。为了符合规范,HlD接口的端点与描述符都必须符合数个要求。所有的HID传输都是使用默认控制管道或是一个中断管道,HID设备必须有一个中断输入端点来传送数据到主机,中断输出端点则不是必需的。主机HID类别驱动程序默认控制管道中断管道图87HID传输的传输类型外设HlD类别,设备表81HID设备的传*类型输型传类数据来源数据类型是否需耍管道控制设齐

6、(输入没有严格时间限制的数据是主机(输出)没有严格时间限制的数据或是没有中断输出管道时的任何数据中断设备(输入)定时或低延迟的数据是主机(输出)定时或低延迟的数据是主机与设备之间所交换的数据,可以分成两种类型:低延迟的数据,必须尽快地到达目的;配置或其他的数据,没有严格时间限制的需求。中断管道是控制管道之外的另一种数据交换的方式,特别适合使用在接收端需要定时或是尽可能及时收到数据的时候。中断输入管道携带数据到主机,中断输出管道则是携带数据到设备。在总线忙的时候,控制管道可能会被延迟,而中断管道保证会有可得到的带宽。HlD不需要一定有中断输出管道。如果没有中断输出管道,主机会在控制管道上使用HI

7、D设备特有的SeLReport请求来传送所有的报表。8.1.3 HTD固件的要求主机的驱动程序要与HlD设备通信,设备的固件必须符合下列需求: 设备的描述符必须识别该设备包含有HID接口。 除了默认控制管道外,固件必须另外支持一个中断输入管道。 固件必须包含个报表描述符来定义要传送与接收的设备数据。如果要传送数据,固件必须支持GeLReport控制传输与中断输入传输。如果要接收数据,固件必须支持SeLRePort控制传监与选择性的中断输出传输。所有的HID数据都必须使用定义过的报表格式来定义报表中数据的大小与内容。设备可以支持一个或多个报表。在固件中的一个报表描述符用来描述此报表,以及如何使用

8、报表数据的信息。在每一个报表中的一个数值,定义此报表是一个输入(Input)、输出(OUtPUt)或是特征(FeatUre)报表。主机在输入报表中接收数据,在输出报表中传送数据,特征报表可以在任何方向传递。Windows98以及后来版本的HlD驱动程序使用中断传输来传递输入报表。输出报表的传输类型要根据设备支持的端点与Windows的版本而定。WindoWS98Gold只符合HID1.0规范,它的HlD驱动程序使用控制传输来传递输出报表。Windows98SE.Wndows2000符合HlDLl规范,HlD驱动程序在有中断输出端点时使用中断传输,否则使用控制传输来传递输出报表。特征报表都是使用

9、控制传输。8.2HID设备描述符HlD设备连接到USB主机后,主机通过发送IGeLDeSCriPtOr请求|读取HID设备的描一一批注与中述符,了解描述符对了解USB设备是至关重要的。8.2.1 HID设备的描述符HlD设备除了支持USB设备的5种标准描述符之外,还支持HID设备特有的3种描述符。这些描述符是:USB标准描述符:设备、配置、接口、端点和字符串描述符。HlD特有的描述符:HID,报表(RePort)和实体(PhySiCal)描述符。从描述符的关联关系看,HlD描述符是关联于接口。所以如果一个HlD设备有2个端点,设备不需要每个端点有一个HID描述符。图8-2HID描述符的关联关系

10、从前面的USB描述符可以看出一个规律,描述符的第一、二字节分别是描述符的长度和类型,描述符的类型字段SDescriPtorTyPe)表明描述符的种类,下表列出了不同描述符的类型字段数值。表82HID的描述符类型描述符应用数值标准设备DeV记e所有设备必须有,只能一个01配置Configuration所有设备必须有,至少个02字符申String可选择03接口Interface每一个接口一个04端点Endpoint除端点0之外的每个端点一个05设备限定DeViCe-QuaIiffierOther_Speed_Configuration同时支持全速与高速的设备必须有一个0607Interfacepo

11、wer08类别HIDHID设备必须有21Hub29HID特定报表ReportHID设备必须有22实体Physical可选择的23对于一个HID设备,设备描述符与配置描述符没有HID特定的信息。其设备描述符的bDeviceClass和bDeviceSbClass字段的值为0,接口描述符的blnterfaceClass字段值为03,表示设备的该接口是HID类别。在接口描述符中其他包含HlD特定信息的字段还有子类别码(blnterfaceSubClass)与协议码(blnterfacePrOtOCol字段)。在接口描述符中子类别码字段等于1表示此设备支持启动接口(BootInterface)=如果设

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

13、备支持启动协议。所以要启动的设备不需要在固件内包含启动接口描述符,它只要在主机尚未要求在报表描述符中的定义协议时支持启动协议即可。在操作系统加载HID驱动程序后会使用SeLProtocoI请求,将设备由后动协议转换成报表协议。8.2.2 HID描述符HlD描述符的主要作用是用来识别HID通信所使用的额外描述符。下表是HID描述符结构。表8-3HID描述符结构偏移量字段字节数数值类型说明0bLength1Numeric描述符字节数1bDescriptorType1Constant0x21=HID描述符2bcdHID2NumericHID规范版本号(BCD)4bCountryCode1Numeri

14、c硬件设备所在国家的国家代码5bNumDescriptors1Numeric类别描述符数目(至少有一个报表描述符)6bDescriptorType1Constant类别描述符的类型7WDescriptorLength2Numeric报表描述符的总长度9bDescriptorType.1Constant附加的描述符的类型,可选的10WDescriptorLengthJ.2Numeric附加的描述符的总长度,可选的bcdHID:设备与其描述符所遵循的HID规范的版本号码,此数值是4个16进制的BCD格式字符。例如版本1.1的bcdHID是OIIoh。(2bytes)bCountryCode:硬件目

15、的国家的识别码。如果不说明,该字段为0。bDescriptorType:HlD描述符附属的描述符的类型(报表或实体)。每个HlD都必须至少支持一个报表描述符。一个接口可以支持多个报表描述符,以及一个或多个实体描述符。HID描述符的偏移量为9和10的bDescriptorType和WDescriptorLength可以重复存在多个O1 .报表描述符报表描述符定义了执行设备功能的数据格式和使用方法。报表描述符和USB的其他描述符是不一样的,它不是一个简单的表格,报表描述符是USB所有描述符中最复杂的。报表描述符非常复杂而有弹性,因为它需要处理各种用途的设备。报表的数据必须以简洁的格式来储存,这样才

16、不会浪变设备内的储存空间以及数据传输时的总线时间。实际上可以这样理解,报表内容的箍洁,是通过报表描述符全面的、复杂的数据描述实现的。报表描述符必须先描述数据的大小与内容。报表描述符的内容与大小因设备的不同而不同,在进行报表传输之前,主机必须先请求设备的报表描述符,只有得到了报表描述符才可正确解析报表的数据。报表描述符是报表描述项目(Item)的集合,每一个描述项目都有相对统一的数据结构,项目很多,通过编码实现。(1)项目报表描述符由描述HID设备的数据项目(Item)组成。项目的第一个字节(项目前缀)由三部分构成:项目标志(ItemTag):说明项目的功能,项目类型(itemType):说明项

17、目的数据类型,项目长度(itemSize):说明项目的数据部分的长度。HID的项目有短项目和长项目两种,其中短项目的格式如下图。位序字段Data(可以是0、1、2、4个字节)bTagIbTypebSize图8-3HID报表短项目格式76543210短项目的数据字节数由bSize的值定义,bSize为0、1、2、3时Data部分的字节数分别为0、1、2、4个字节。(nn为数据长度)短项目的项目类型由bType定义,bType为0、1、2时分别为Mair)、GIobal和Local类型。(见后面的表8-4HID项目列表)长项目可以携带较多的数据,其格式如下图。76513210DataIbLOng

18、IlemTag I bDataSizc IilllllO位序字段字节数1255I1图8-4HID报表长项目格式项目中的第一个字节为上图中的特定值时表明该项目是一个长项目。长项目中的bDataSize说明Data部分的字节数,bLongItemTag在HID规范中没有定义。下面是通过汇编实现的一个简单的报表描述符,描述符的每一行是一个项目,该描述符描述了一个从设备接收2个字节的输入报表和发送2个字节到设备的输出报表。tiID Report desc table:1db db db06h, AOh, FFh09h, A5hAlhz Olh; Usage Page(Vendor defined);U

19、sage(Vendor Defined); Collection(Application)定义设备功能 定义用法 开个集合db09H, A6h; Usage(Vendor defined);输入报表定义用法db09h, A7h; Usgae(Vendor defined)定义用法db15h, 80h; Logical Minimum定义输入最小值=-128db25hz 7Fh; Logical Maximum定义输入圾大值=+127db75h, 08h; Report Size定义报发数据项大小=8db95h, 02h; Report Count定义报表数据项个数-2db81h, 02h; I

20、nput (DatazVariablezAbsolute) 输入项目;输出报表db09h, A9h; Usgae(Vendor defined)定义用法db15h, 80h; Logical Minimum定义输入最小值=728db25hz 7Fh; Logical Maximum定义输入最大值+27db75hz 08h; Report Size定义报表数据项大小8db95h, 02h; Report Count定义报表数据向个数=2db91h, 02h; Output (Datar VariablerAbsolute) 输出项目dbCOh; End Collection关闭集合批注w2:九、

21、DBDB伪指令用于定义一个连续的彳 存储单元赋值。该伪指令的参数W 表达式中对变元个数没有限制,只 在源程序的一行内,其格式为: 标号:DB表达式 只要表达式不是字符串,每一表达 节。计算表达式值时按1 6位处理 位,若多个表达式出现在一个DE 以逗号分开。表达式中有字符串时,以单引号 字符占个字节,字符串不加改3 并不将小写字母转换成大写字母。 例如:DB OOH OiH 03H 46H DB This is a demo!,(2)项目的分类报表的项目有Main、GIobal和LoCal三大类,每一类都有多个不同的项目,实现不同的描述。Main类项目用于定义报表描述符中的数据项。也可以组合其

22、中的若干数据项成为一个集合.Main项目可以分为带数据的Main项目和不带数据的Main项目。带数据项的Main用于生成报表中的数据项,包括InPUt、OUtPUt和FeatUre项目。不带数据的Main项目不生成报表中的数据项,包括Collection和EndColleCtiOn项目。GIObal类项目实现对数据的描述,用来识别报表并且描述报表内的数据,包括数据的功能、最大与最小允许值以及数据项的大小与数目等。改变由Main类项目生成的项目状态表。Global类项目描述对后续的所有项目有效,除非遇到有新的Global类项目。1.OCal类项目定义控制的特征,这一类项目的作用域不超过下一个Ma

23、in项目,所以在每Main项目之前可能有多个LOCal项目。LoCal项目用于描述后面的InPUt、Outputf11Feature项目。下表列出的是全部的项目的前缀字和简要功能说明。表8-4HID项目列表目型类项目标志(Tag)项目前皴,n11为数据长度功能说明Main类项目(Oo)Input100000nn定义输入报表,主机利用该信息解析设备提供的数据“主机向控制端口发送GeLRePOrt实现输入Output100100n创建输出报表,通过向设备发送SeLReport实现输出Feature101100nn定义送往设备的设置信息Collection101000nn定义2个以上数据(InPUh

24、OutputfFeature)的关系为集合,COHeCtion开始一个集合,之后的EndCollection结束集合:Collection项目的数据部分说明Collection的类型EndCollection110000nnGlobal类项目(01)UsagePage000001nn指定设备的功能06h,A0h,FFh)另外由于USage项目TT32位数据值,UsagePage项目用于为USage项目在报表描述符中占居存储空间。用于存放后续的USage项目的高16位。LogicalMinimum000101nn定义变量或数组项目的逻辑最小值和最大值(-128,+127)(15h,80h)(25

25、h,7Fh)LogicalMaximum001001nnPhysicalMinimum001101nn定义变量或数组项目的物理最小值和最大值,分别和LogicalMinimum、LogicalMaximum对应PhysicalMaximum010001nnUnitExponent010101nn定义数值是基于10的指数Unit011001单位ReportSize011101nn指定报表数据区域所包含的位数(8)ReportID100001nn报表ID,该项目在报表中插入一个字节的报表IDReportCount100101nn报表中数据域的数目(2)Push101001将Global项目状态表送

26、入堆栈Pop101101nn从堆栈恢复GlObal项目状态表110001nn-111101nn保留Local类项目(10)Usage000010nn用法索引值,表示对项Fl或集合建议的用法,用于当一个项目描述多个控制,对每一个变量和数组元素都有建议的用法(09h,A7h)UsageMinimum000110nn定义阵列或位图中控制操作的第一个和最后一个用法UsageMaximum001010DesignatorIndex001110nn确定用于控制的实体,指向物理描述符中的目标DesignatorMinimum010010nn定义阵列或位图目标的起始和终止索引值DesignatorMaximu

27、m010110nnStringIndex011110确定字符串描述符中的索引值StringMinimum100010nn定义用于阵列或位图控制中字符串序列索引值的最小值和最大值StringMaximum100110nnDelimiter101010nn定义一组LOCal项目的开始和结束,1=开始,O=结束101010nn-111110nn保留在这些项目中,USagePage用来指定设备的功能,而USage项目用来指定个别报表的功能。USagePage项目相当于是HlD的子集合,USage相当于是USagePage的子集合2 .报表描述符的项目(1) InputvOutpot和Feature项目

28、这3个项目用来定义报表中的数据字段。InPUt项目可以应用到任何控制、计数器读数或其他设备传给主机的信息。一个输入报表包含一个或多个I叩Ut项目,主机使用中断输入传输来请求输入报表。Ouput项目用来定义主机传送给设备的信息。一个输出报表包含一个或多个OUtPot项目。输出报表包含控制状态的数据。如果有中断输出管道,HID1.1兼容主机使用中断输出传输来传送输出报表,否则使用SeLReport控制请求。Feature项目应用到主机传送给设出的信息,或是主机从设备读取Feature项目。个特征报表包含一个或多个Feature项目,Feature项目通常是包合影响设备与其组件整体行为的配置。特征报

29、表通常是控制可以使用实际的控制面板调整的设置,例如主机可以使用虚拟控制面板来让用户选择控制特征。主机使用SeLReport与Get.Report请求来传送与接收特征报表。在每一个InPUt、OUtPUt和FeauJre项目的前缀字之后是32位描述数据,目前最多定义了9个位,余的位则是保留。位08的定义中只有位7不能应用于InPUt项目,除此之外其他的位定义都适应于Input、Output和Feature项目。衰8-5Input、OUtPUt和FeatUre项目的数据项说明数据字段含义说明位值名称00Data数据:表示项Fl的内容是可更改的(读/写)。1Constant常数:表示项目的内容是不可

30、更改的(只读0Array数组:报告全部控制的状态。如在键盘报表中每个键在报表中占位,报表传输全部键的状态,可以同时按下任意多个键.11Variable变量:报告作用中的控制。如在键盘报表中只报告按卜的键的编号,可以同时按下的键的数目等于报表的计数(Global类项目ReportCount)20Absolute绝对:表示数值以一个固定值为基准。游戏杆通常是报告绝对数据(游戏杆目前的位置)。1Relative相对:表示数据的改变以上一个读数为基准。鼠标通常是报告相对数据(鼠标的移动位置)。30NoWrap如果设置为1次示回转,当数侑超过最小Ift到最大(ft的范围时将1Wrap【可转,如果最小值是

31、。而最大值是10,超过最大值的下一个数值是0。40Linear线形:表小测量的数据与报表的数据仃线性的美系。1Non-Linear非线性:表小测量:的数据与报表的数据没有线性的关系.50Preferred优选状态:表示控制在没有用户交互时会回到一个特定的状态。如按钮就有优选状态,在无操作时保持未按卜的状态。1Non-Preferred非优选状态:它维持在上一个用户选择的状态.如交替的开关就没有优选状态,0NoNullPosition无空状态位置:表示控制永远在传送有效的数据.61NullState空状态:表示控制支持个没有传送有效数据的状态,如操纵杆可能具有一个多方向的按钮开关,在没有按下时在

32、空状态,这时控制将传送一个在LogiCalMinimumtjLogicalMaximum范围之外的数位来表示它在空状态“70Non-Volatile不可变的:表示设备只有在主机请求时才改变数值。当主机传送个报表并IL不要改变不可变项目时,如果该项目是定义成相对(Relative)的,数值。表示不改变数据,如果不可变项目是定义成绝对(Absolute)的,超出范闹外的数值则表示不改变数据.1Volatile可变的:表示设备可以自己改变数值,并不是必须主机传送报表要求绐设备来改变数值。例如设备控制面板可以由主机软件传送个报表给设备.也可以由用户自己按设备上的实际按钮。80BitField位字段:表

33、示每一个位或是一个字节内的一组位可以代表一份数据.1BufferedBytes缓冲字节:表示信息包含一个或多个字节,缓冲字节的报表大小必须是8,931位保留注:该位不能应用到数组。:只应用于OUtPUt和Feature项目,对于IrlPUt项目该位保留。(2) Collection和EndCollection项目所有的报表类型都可以使用COlleCtion与EndColleCtiOn项目来将相关的Main类型项目组成群组。这两个项目分别用于打开和关闭集合。所有在Collection与EndCollection项目之间的Main类型项目都是CoiIeCtion的部分。ColIeCtiOn有3种类

34、型:Application,PhysicaljLogical.其项l三l的数据项的值分别为1、。和2。厂商也可以自己定义COHeCtiOn类型,数据项的值为80hFFh保留给厂商定义。EndCoIieetion项目无数据项。ApplicationCoiIeCtiOrl包含有共同用途的项目或执行单功能的项目。例如键盘的开机描述符将键盘的按键与LED指示灯数据集合成一个ApplicationCollection0所有的报表必须在一个APPliCatiOnCollection内。PhysicalCollection包含在一个单一几何点上的数据项目,可以将每个位置的数据集合成一个PhysicalCol

35、lection(,在设备报告多个传感器的位置的时候,使用PhysicalCollection指明不同的数据来自不同的传感器。1.ogiCaIColIeCtion形成一个数据结构,包含由ColleCtion所连结的不同类型的项目。例如数据缓冲区的内容以及缓冲区内字节数目的计数。(3) UsagePage和Usage项目USagePage项目的数据部分为12个字节,目前的定义全部都是一个字节。UsagePage定义了常用的设备功能,关于USagePage(以及其他项目)的具体定义内容,可以查阅HlDUsagetables(http:/www.usb.Org/developers/hidpage/#

36、Class_Definition),下表是来自HIDUsagetables的UsagePage定义。表8-6USagePage定义PageIDPageName00Undefined01GenericDesktopControls02SimulationControls03VRControls04SportControls05GameControls06GenericDeviceControls07KeyboardZKeypad08LEDs09ButtonOAOrdinalOBTelephonyOCConsumerODDigitizerOEReservedOFPIDPage10Unicode11

37、-13Reserved14AlphanumericDisplay15-3fReserved40MedicalInstruments41-7FReserved80-83Monitorpages84-87Powerpages88-8BReserved8CBarCodeScannerpage8DScalepage8EMaqneticStripeReading(MSR)Devices8FReservedPointofSalepages90CameraControlPage91ArcadePage92-FEFFReservedFF00-FFFFVendor-defined关于USagePage的每一个有

38、效定义项,都有一个相应的下一级定义,如USagePage的数据项数值为1,则设备定义为GeneriCDeSktoPControls,关于该类设备的具体功能可以在HlDUsageTableS中查到具体的定义。下表是HlDUsageTabieS中对GeneriCDesktopContrOIS设备的功能定义。表8-7GenericDesktopControls用法定义UsageIDUsageNameUsageTypeMhidUsageTables中的相关章节00Undefined01PointerCP4.102MouseCA03Reserved04JoystickCA4.105GamePadCA06

39、KeyboardCA07KevpadCA08Multi-axisControllerCA09TabletPCSystemControlsCA0A-2FReserved30XDV4.231YDV32ZDV33RxDV34RyDV35RzDV36SliderDV4.337DialDV38WheelDV39HatswitchDV3ACountedBufferCL4.63BByteCountDV3CMotionWakeupOSC4.33DStartC3ESelectC3FReserved40VxDV4.3.141VyDV42VzDV43VbrxDV44VbryDV45VbrzDV46VnoDV47Fe

40、atureNotificationDV1DF4.848ResolutionMultiplierDV49-7FReserved80SystemControlCA4.581SystemPowerDownOSC82SystemSleepOSC4.5.183SystemWakeUpOSC84SystemContextMenuOSC4.585SystemMainMenuOSC86SystemAppMenuOSC87SystemMenuHelpOSC88SystemMenuExitOSC89SystemMenuSelectOSC8ASystemMenuRightRTC8BSystemMenuLeftRTC

41、8CSystemMenuUpRTC8DSystemMenuDownRTC8ESystemColdRestartOSC4.5.18FSystemWarmRestartOSC90D-padUpC4.791D-padDownC92DpadRightC93D-padLeftC94-9FReservedAOSystemDockOSC4.5.1A1SystemUndockOSCA2SystemSetupOSCA3SystemBreakOSCA4SystemDebuggerBreakOSC4.9A5ApplicationBreakOSCA6ApplicationDebuggerBreakOSCA7Syste

42、mSpeakerMuteOSC4.5.1A8SystemHibernateOSCA9-AFReservedBOSystemDisplayInvertOSC4.10B1SystemDisplayInternalOSCB2SystemDisplayExternalOSCB3SystemDisplayBothOSCB4SystemDisplayDualOSCB5SystemDisplayToggleIntZExtOSCB6SystemDisplaySwapPrimaryZSecondaryOSCB7SystemDisplayLCDAutoscaleOSCB8-FFFFReserved用法(USage

43、)定义了各种各样设备特性,对于USagePage的每一项都定义了常用的各种用法。用法说明了3种信息,即控制、集合和数据。控制说明设备的状态,如onoff.EnabIeZDisabIe等。集合说明控制和数据的组合关系。上表中的用法类型(USageTyPe)描述了应用程序如何处理由Main类型项目生成的数据,具体的定义和详细说明请参阅HIDUsageTables=(4) RePOrtlD项目ReportID放在信息包中报表数据之前,设备可以支持多个相同类型的报表,每一个报表包含不同的数据与其特有的ID。在报表描述符中,ReportID项目作用于其后续所有的项目,直到遇到下一个ReportID为止。

44、如果报表描述符中没有RePOrtID项目,默认的ID值是0,描述符不能定义一个为0的RePortID,输入报表、输出报表与特征报表可以分享同一个RePort15在SeLRePort和IGeLRePOrt请求传输中,主机在设置事务的WVakJe字段的低字节中指定个RePOrtID,在中断传输中如果接口支持一个以上的ReportID,RePortID必须是传送报表中的第一个字节。如果接口只支持数值为0的默认RePOrtID,此RePOrtID不应该在中断传输中随着报表一起传送。1.ogicalMinimum和LogicalMaximum项目1.ogicalMinimumljLogicalMaXimUm项目定义报

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号