USB接HID设备培训课程4912.docx
第8章 USB接口HID设备 289第8章 USB接接口HIID设备备HID(HHumaan IInteerfaace Devvicee,人机机接口设设备)是是USBB设备中中常用的的设备类类型,是是直接与与人交互互的USSB设备备,例如如键盘、鼠鼠标与游游戏杆等等。在UUSB设设备中,HHID设设备的成成本较低低。另外外,HIID设备备并不一一定要有有人机交交互功能能,只要要符合HHID类类别规范范的设备备都是HHID设设备。 Wnddowss操作系系统最先先支持的的HIDD设备。在在winddowss 988以及后后来的版版本中内内置有 HIDD设备的的驱动程程序,应应用程序序可以直直接使用用这些驱驱动程序序来与设设备通信信。在设计一一个USSB接口口的计算算机外部部设备时时,如果果HIDD类型的的设备可可以满足足需要,可可以将其其设计为为HIDD类型设设备,这这样可以以省去比比较复杂杂的USSB驱动动程序的的编写,直直接利用用Winndowws操作作系统对对标准的的HIDD类型UUSB设设备的支支持。8.1 HID设设备简介介8.1.1 HID设设备的特特点 交换的数数据储存存在称为为报表(RRepoort)的的结构内内,设备备的固件件必须支支持HllD报表表的格式式。主机机通过控控制和中中断传输输中的传传送和请请求报表表来传送送和接收收数据。报报表的格格式非常常灵活。 每一笔事事务可以以携带小小量或中中量的数数据。低低速设备备每一笔笔事务最最大是88B,全全速设备备每一笔笔事务最最大是664B,高高速设备备每一笔笔事务最最大是110244B。一一个报表表可以使使用多笔笔事务。 设备可以以在未预预期的时时间传送送信息给给主机,例例如键盘盘的按键键或是鼠鼠标的移移动。所所以主机机会定时时轮询设设备,以以取得最最新的数数据。 HID设设备的最最大传输输速度有有限制。主主机可以以保证低低速的中中断端点点每100ms内内最多11笔事务务,每一一秒最多多是8000B。保保证全速速端点每每lmss一笔事事务,每每一秒最最多是6640000B。保保证高速速端点每每1255 uss三笔事事务,每每一秒最最多是224.5576MMB。 HID设设备没有有保证的的传输速速率。如如果设备备是设置置在100ms的的时距,事事务之间间的时间间可能等等于或小小于100ms。除除非设备备是设置置在全速速时在每每个帧传传输数据据,或是是在高速速时在每每个微帧帧传输数数据。这这是最快快的轮询询速率,所所以端点点可以保保证有正正确的带带宽可供供使用。HID设设备除了了传送数数据给主主机外,它它也会从从主机接接收数据据。只要要能够符符合HllD类别别规范的的设备都都可以是是HIDD设备。设备除了了HlDD接口之之外,它它可能同同时还包包含有其其他的UUSB接接口。例例如影像像显示设设备可能能使用HHID接接口来做做亮度、对对比度的的软件控控制,而而使用传传统的影影像接口口来传送送要显示示的数据据。USSB扩音音器可以以使用实实时传输输来播放放语音,同同时使用用HIDD接口来来控制音音量、低低音等。HID类类别设备备的规范范文件主主要是以以下两份份: Deviice Claass Deffiniitioon ffor Humman intterffacee Deevicces HID Usaage Tabbless其中前者者是HIID的基基本规范范文件,后后者可以以是前者者的附件件,为开开发人员员提供实实际的控控制类型型的描述述。文件件是用来来定义让让主机了了解以及及使用HHID数数据的数数值。这这两份文文件是由由 USSB DDeviice Worrkinng GGrouup制定定的,可可以在网网址#CClasss_DDefiinittionn下载。8.1.2 HID设设备的硬硬件要求求HID接接口必须须符合DDeviice Claass Deffiniitioon ffor Humman intterffacee Deevicces规规范内所所定义的的HIDD类别的的需求。在在此文件件内描述述了所需需的描述述符、传传输的频频率以及及传输的的类型等等。为了了符合规规范,HHID接接口的端端点与描描述符都都必须符符合数个个要求。所有的HHID传传输都是是使用默默认控制制管道或或是一个个中断管管道,HHID设设备必须须有一个个中断输输入端点点来传送送数据到到主机,中中断输出出端点则则不是必必需的。HID类别驱动程序HID类别设备主机外设默认控制管道中断管道图8-1 HID传输的传输类型表8-11 HHID设设备的传传输类型型传输类型数据来源源数据类型型是否需要管道控制设备(输输入)没有严格格时间限限制的数数据是主机(输输出)没有严格格时间限限制的数数据或是没有有中断输输出管道道时的任任何数据据中断设备(输输入)定时或低低延迟的的数据是主机(输输出)定时或低低延迟的的数据是主机与设设备之间间所交换换的数据据,可以以分成两两种类型型: 低延迟的的数据,必必须尽快快地到达达目的; 配置或其其他的数数据,没没有严格格时间限限制的需需求。中断管道道是控制制管道之之外的另另一种数数据交换换的方式式,特别别适合使使用在接接收端需需要定时时或是尽尽可能及及时收到到数据的的时候。中中断输入入管道携携带数据据到主机机,中断断输出管管道则是是携带数数据到设设备。在在总线忙忙的时候候,控制制管道可可能会被被延迟,而而中断管管道保证证会有可可得到的的带宽。HHID不不需要一一定有中中断输出出管道。如如果没有有中断输输出管道道,主机机会在控控制管道道上使用用HIDD设备特特有的SSet_Repportt请求来来传送所所有的报报表。8.1.3 HID固固件的要要求主机的驱驱动程序序要与HHID设设备通信信,设备备的固件件必须符符合下列列需求: 设备的描描述符必必须识别别该设备备包含有有HIDD接口。 除了默认认控制管管道外,固固件必须须另外支支持一个个中断输输入管道道。 固件必须须包含一一个报表表描述符符来定义义要传送送与接收收的设备备数据。如果要传传送数据据,固件件必须支支持Geet_RRepoort控控制传输输与中断断输入传传输。如如果要接接收数据据,固件件必须支支持Seet_RRepoort控控制传输输与选择择性的中中断输出出传输。所有的HHID数数据都必必须使用用定义过过的报表表格式来来定义报报表中数数据的大大小与内内容。设设备可以以支持一一个或多多个报表表。在固固件中的的一个报报表描述述符用来来描述此此报表,以以及如何何使用报报表数据据的信息息。在每一个个报表中中的一个个数值,定定义此报报表是一一个输入入(Innputt)、输输出(OOutpput)或或是特征征(Feeatuure)报报表。主主机在输输入报表表中接收收数据,在在输出报报表中传传送数据据,特征征报表可可以在任任何方向向传递。Winddowss 988以及后后来版本本的HIID驱动动程序使使用中断断传输来来传递输输入报表表。输出出报表的的传输类类型要根根据设备备支持的的端点与与Winndowws的版版本而定定。Wiindoows 98 Golld只符符合HIID 11.0规规范,它它的HIID驱动动程序使使用控制制传输来来传递输输出报表表。Wiindoows 98 SE、WWndoows 20000符合合HIDD 1.1规范范,HIID驱动动程序在在有中断断输出端端点时使使用中断断传输,否否则使用用控制传传输来传传递输出出报表。特特征报表表都是使使用控制制传输。8.2 HID设设备描述述符HID设设备连接接到USSB主机机后,主主机通过过发送GGet_Desscriiptoor请求求读取HHID设设备的描描述符,了了解描述述符对了了解USSB设备备是至关关重要的的。8.2.1 HID设设备的描描述符HID设设备除了了支持UUSB设设备的55种标准准描述符符之外,还还支持HHID设设备特有有的3种种描述符符。这些些描述符符是: USB标标准描述述符:设设备、配配置、接接口、端端点和字字符串描描述符。 HID特特有的描描述符:HIDD、报表表(Reeporrt)和和实体(PPhyssicaal)描描述符。从描述符符的关联联关系看看,HIID描述述符是关关联于接接口。所所以如果果一个HHID设设备有22个端点点,设备备不需要要每个端端点有一一个HIID描述述符。图8-2 HID描述符的关联关系接口描述符Interface端点描述符EndpointHID描述符Hid报表描述符Report实体描述符PhysicalHID、报表和实体描述符是HID设备特有的描述符从前面面的USSB描述述符可以以看出一一个规律律,描述述符的第第一、二二字节分分别是描描述符的的长度和和类型,描描述符的的类型字字段(bbDesscriiptoorTyype)表表明描述述符的种种类,下下表列出出了不同同描述符符的类型型字段数数值。表8-22 HHID的的描述符符类型描述符应用数值标准设备 Deevicce所有设备备必须有有,只能能一个01配置 Coonfiigurratiion所有设备备必须有有,至少少一个02字符串 Strringg可选择03接口 Innterrfacce每一个接接口一个个04端点 Enndpoointt除端点00之外的的每个端端点一个个05设备限定定 DDevicce_QQuallifffierr同时支持持全速与与高速的的设备必必须有一一个06Otheer_SSpeeed_CConffiguurattionn07Inteerfaace_powwer08类别HIDHID设设备必须须有21Hub29HID特定报表 ReeporrtHID设设备必须须有22实体 Phhysiicall可选择的的23对于一个个HIDD设备,设设备描述述符与配配置描述述符没有有HIDD特定的的信息。其其设备描描述符的的bDeevicceCllasss和bDDeviiceSSubCClasss字段段的值为为0,接接口描述述符的bbIntterffaceeClaass字字段值为为03,表表示设备备的该接接口是HHID类类别。在在接口描描述符中中其他包包含HIID特定定信息的的字段还还有子类类别码(bblntterffaceeSubbClaass)与与协议码码(bllnteerfaacePProttocool字段段)。在接口描描述符中中子类别别码字段段等于11表示此此设备支支持启动动接口(BBoott Innterrfacce)。如如果设备备有启动动接口,即即便主机机的HIID没有有加载驱驱动程序序,设备备也可以以使用。这这种情形形可能发发生在计计算机是是由DOOS直接接启动,在在启动时时观看系系统设置置画面或或使用WWndoows的的安全模模式时。含有启动动接口的的键盘或或鼠标可可以使用用BIOOS或许许多主机机支持的的默认简简单协议议。HIID规范范定义了了键盘与与鼠标的的启动接接口协议议。如果设备备没有启启动接口口,并且且接口描描述符中中协议码码字段是是1,表表示设备备支持键键盘接口口,协议议码字段段是2,表表示支持持鼠标接接口。接接口描述述符中协协议码字字段是00,表示示设备不不支持启启动协议议。在 HIID UUsagge TTablles规规范中定定义了键键盘与鼠鼠标的启启动描述述符(BBoott Deescrripttor)。BBIOSS不需要要从设备备中读取取描述符符,因为为它知道道启动协协议,并并且假设设设备支支持启动动协议。所所以要启启动的设设备不需需要在固固件内包包含启动动接口描描述符,它它只要在在主机尚尚未要求求在报表表描述符符中的定定义协议议时支持持启动协协议即可可。在操操作系统统加载HHlD驱驱动程序序后会使使用Seet_PProttocool请求求,将设设备由启启动协议议转换成成报表协协议。8.2.2 HID描描述符HID描描述符的的主要作作用是用用来识别别HIDD通信所所使用的的额外描描述符。下下表是HHID描描述符结结构。表8-33 HHID描描述符结结构偏移量字段字节数数值类型说明0bLenngthh1Numeericc描述符字字节数1bDesscriiptoorTyype1Consstannt0x211 = HIDD描述符符2bcdHHID2NumeericcHID规规范版本本号(BBCD)4bCouuntrryCoode1Numeericc硬件设备备所在国国家的国国家代码码5bNummDesscriiptoors1Numeericc类别描述述符数目目(至少少有一个个报表描描述符)6bDesscriiptoorTyype1Consstannt类别描述述符的类类型7wDesscriiptoorLeengtth2Numeericc报表描述述符的总总长度9bDeescrripttorTTypee.1Consstannt附加的描描述符的的类型,可可选的10wDeescrripttorLLenggth.2Numeericc附加的描描述符的的总长度度,可选选的bcdHHID:设备与与其描述述符所遵遵循的HHID规规范的版版本号码码,此数数值是44个166进位的的BCDD格式字字符。例例如版本本1.11的bccdHIID是001100h。bCouuntrryCoode:硬件目目的国家家的识别别码。如如果不说说明,该该字段为为0。bDesscriiptoorTyype:HIDD描述符符附属的的描述符符的类型型(报表表或实体体)。每每一个 HIDD都必须须至少支支持一个个报表描描述符。一一个接口口可以支支持多个个报表描描述符,以以及一个个或多个个实体描描述符。HID描描述符的的偏移量量为9和和10的的bDeescrripttorTTypee和wDeescrripttorLLenggth可可以重复复存在多多个。1. 报表描述述符报表描述述符定义义了执行行设备功功能的数数据格式式和使用用方法。报表描述述符和UUSB的的其他描描述符是是不一样样的,它它不是一一个简单单的表格格,报表表描述符符是USSB所有有描述符符中最复复杂的。报报表描述述符非常常复杂而而有弹性性,因为为它需要要处理各各种用途途的设备备。报表表的数据据必须以以简洁的的格式来来储存,这这样才不不会浪费费设备内内的储存存空间以以及数据据传输时时的总线线时间。实际上可可以这样样理解,报报表内容容的简洁洁,是通通过报表表描述符符全面的的、复杂杂的数据据描述实实现的。报表描述述符必须须先描述述数据的的大小与与内容。报报表描述述符的内内容与大大小因设设备的不不同而不不同,在在进行报报表传输输之前,主主机必须须先请求求设备的的报表描描述符,只只有得到到了报表表描述符符才可正正确解析析报表的的数据。报表描述述符是报报表描述述项目(IItemm)的集集合,每每一个描描述项目目都有相相对统一一的数据据结构,项项目很多多,通过过编码实实现。(1)项项目报表描述述符由描描述HIID设备备的数据据项目(IItemm)组成成,项目目的第一一个字节节(项目目前缀)由由三部分分构成,即即项目类类型(iitemm tyype)、项项目标志志(ittem tagg)和项项目长度度(ittem sizze)。其其中项目目类型说说明项目目的数据据类型,项项目标签签说明项项目的功功能,项项目长度度说明项项目的数数据部分分的长度度。HID的的项目有有短项目目和长项项目两种种,其中中短项目目的格式式如下图图。Data (可以是0、1、2、4个字节)bTagbTypebSize7 6 5 4 3 2 1 0位序字段图8-3 HID报表短项目格式短项目的的数据字字节数由由bSiize的的值定义义,bSSizee为0、11、2、33时Daata部部分的字字节数分分别为00、1、22、4个个字节。短短项目的的项目类类型由bbTyppe定义义,bTTypee为0、11、2时时分别为为Maiin、GGlobbal和和Loccal类类型。长项目可可以携带带较多的的数据,其其格式如如下图。bDataSize1 1 1 1 1 1 1 07 6 5 4 3 2 1 0位序字段图8-4 HID报表长项目格式bLongItemTagData字节数1111255项目中的的第一个个字节为为上图中中的特定定值时表表明该项项目是一一个长项项目。长长项目中中的bDDataaSizze说明明Datta部分分的字节节数,bbLonngIttemTTag在在HIDD规范中中没有定定义。下面是通通过汇编编实现的的一个简简单的报报表描述述符,描描述符的的每一行行是一个个项目,该该描述符符描述了了一个从从设备接接收2个个字节的的输入报报表和发发送2个个字节到到设备的的输出报报表。HID_Repportt_deesc_tabble:db 066h, A0hh, FFFh; Ussagee Paage(Venndorr deefinned) 定定义设备备功能db 099h, A5hh; UUsagge(VVenddor Deffineed) 定义义用法db A11h, 01hh; CColllecttionn(Apppliicattionn) 开一一个集合合db 099H, A6hh;Usaage(Venndorr deefinned) 定义用用法;输入入报表db 09hh, AA7h;Usggae(Venndorr deefinned) 定义用用法db 15hh, 880h;Loggicaal MMiniimumm 定义义输入最最小值=-1228db 25hh, 77Fh;Loggicaal MMaxiimumm 定义义输入最最大值=+277db 75hh, 008h;Repportt Siize 定定义报表表数据项项大小=8db 95hh, 002h;Repportt Coountt 定定义报表表数据向向个数=2db 81hh, 002h;Inpput(Datta,VVariiablle,AAbsoolutte) 输入入项目;输出出报表db 09hh, AA9h;Usggae(Venndorr deefinned) 定义用用法db 15hh, 880h;Loggicaal MMiniimumm 定义义输入最最小值=-1228db 25hh, 77Fh;Loggicaal MMaxiimumm 定义义输入最最大值=+277db 75hh, 008h;Repportt Siize 定定义报表表数据项项大小=8db 95hh, 002h;Repportt Coountt 定定义报表表数据向向个数=2db 91hh, 002h;Outtputt(Daata,Varriabble,Abssoluute) 输出项项目db C00h; EEnd Colllecctioon 关关闭集合合(2)项项目的分分类报表的项项目有MMainn、Gllobaal和LLocaal三大大类,每每一类都都有多个个不同的的项目,实实现不同同的描述述。Mainn类项目目用于定定义报表表描述符符中的数数据项。也也可以组组合其中中的若干干数据项项成为一一个集合合。Maain项项目可以以分为带带数据的的Maiin项目目和不带带数据的的Maiin项目目。带数数据项的的Maiin用于于生成报报表中的的数据项项,包括括Inpput、OOutpput和和Feaaturre项目目。不带带数据的的Maiin项目目不生成成报表中中的数据据项,包包括Coolleectiion和和Endd Coolleectiion项项目。Globbal类类项目实实现对数数据的描描述,用用来识别别报表并并且描述述报表内内的数据据,包括括数据的的功能、最最大与最最小允许许值以及及数据项项的大小小与数目目等。改改变由MMainn类项目目生成的的项目状状态表。GGlobbal类类项目描描述对后后续的所所有项目目有效,除除非遇到到有新的的Glooball类项目目。Locaal类项项目定义义控制的的特征,这这一类项项目的作作用域不不超过下下一个MMainn项目,所所以在每每一Maain项项目之前前可能有有多个LLocaal项目目。Loocall项目用用于描述述后面的的Inpput、OOutpput和和Feaaturre项目目。下表列出出的是全全部的项项目的前前缀字和和简要功功能说明明。表8-44 HHID项项目列表表项目类型项目标志志(Taag)项目前缀缀,nnn为数据据长度功能说明明Mainn类项目Inpuut10000 000 nnn定义输入入报表,主主机利用用该信息息解析设设备提供供的数据据。主机机向控制制端口发发送Geet_RRepoort实实现输入入Outpput10011 000 nnn创建输出出报表,通通过向设设备发送送Sett_Reeporrt实现现输出Featturee10111 000 nnn定义送往往设备的的设置信信息Colllecttionn10100 000 nnn定义2个个以上数数据(IInpuut、OOutpput和和Feaaturre)的的关系为为集合,CColllecttionn开始一一个集合合,之后后的Ennd CColllecttionn结束集集合。CColllecttionn项目的的数据部部分说明明Colllecctioon的类类型End Colllecctioon11000 000 nnnGlobbal类项目Usagge PPagee00000 011 nnn指定设备备的功能能另外由于于Usaage项项目有332位数数据值,UUsagge PPagee项目用用于为UUsagge项目目在报表表描述符符中占居居存储空空间。用用于存放放后续的的Usaage项项目的高高16位位。Logiicall Miinimmum00011 011 nnn定义变量量或数组组项目的的逻辑最最小值和和最大值值Logiicall Maaximmum00100 011 nnnPhyssicaal MMiniimumm00111 011 nnn定义变量量或数组组项目的的物理最最小值和和最大值值,分别别和Loogiccal Minnimuum、Loggicaal MMaxiimumm对应Physsicaal MMaxiimumm01000 011 nnnUnitt Exxponnentt 01011 011 nnn定义数值值是基于于10的的指数Unitt01100 011 nnn单位Repoort Sizze 01111 011 nnn指定报表表数据区区域所包包含的位位数Repoort ID 10000 011 nnn报表IDD,该项项目在报报表中插插入一个个字节的的报表IIDRepoort Couunt 10011 011 nnn报表中数数据域的的数目Pushh 10100 011 nnn将Glooball项目状状态表送送入堆栈栈Pop 10111 011 nnn从堆栈恢恢复Gllobaal项目目状态表表11000 011 nnn11111 011 nnn保留Locaal类项目Usagge00000 100 nnn用法索引引值,表表示对项项目或集集合建议议的用法法,用于于当一个个项目描描述多个个控制,对对每一个个变量和和数组元元素都有有建议的的用法Usagge MMiniimumm00011 100 nnn定义阵列列或位图图中控制制操作的的第一个个和最后后一个用用法Usagge MMaxiimumm00100 100 nnnDesiignaatorr Inndexx 00111 100 nnn确定用于于控制的的实体,指指向物理理描述符符中的目目标Desiignaatorr Miinimmum01000 100 nnn定义阵列列或位图图目标的的起始和和终止索索引值Desiignaatorr Maaximmum01011 100 nnnStriing Inddex 01111 100 nnn确定字符符串描述述符中的的索引值值Striing Minnimuum 10000 100 nnn定义用于于阵列或或位图控控制中字字符串序序列索引引值的最最小值和和最大值值Striing Maxximuum 10011 100 nnnDeliimitter 10100 100 nnn定义一组组Loccal项项目的开开始和结结束,11=开始始,0=结束10100 100 nnn 11111 100 nnn保留在这些项项目中,UUsagge PPagee用来指指定设备备的功能能,而UUsagge项目目用来指指定个别别报表的的功能。UUsagge PPagee项目相相当于是是HIDD的子集集合,UUsagge相当当于是UUsagge PPagee的子集集合。2. 报表描述述符的项项目(1)IInpuut、OOutppot和和Feaaturre项目目这3个项项目用来来定义报报表中的的数据字字段。Inpuut项目目可以应应用到任任何控制制、计数数器读数数或其他他设备传传给主机机的信息息。一个个输入报报表包含含一个或或多个IInpuut项目目,主机机使用中中断输入入传输来来请求输输入报表表。Oupuut项目目用来定定义主机机传送给给设备的的信息。一一个输出出报表包包含一个个或多个个Outtpott项目。输输出报表表包含控控制状态态的数据据。如果果有中断断输出管管道,HHID11.1兼兼容主机机使用中中断输出出传输来来传送输输出报表表,否则则使用SSet_Repportt控制请请求。Featturee项目应应用到主主机传送送给设备备的信息息,或是是主机从从设备读读取Feeatuure项项目。一一个特征征报表包包含一个个或多个个Feaaturre项目目,Feeatuure项项目通常常是包合合影响设设备与其其组件整整体行为为的配置置。特征征报表通通常是控控制可以以使用实实际的控控制面板板调整的的设置,例例如主机机可以使使用虚拟拟控制面面板来让让用户选选择控制制特征。主主机使用用 Seet_RRepoort与与Gett_Reeporrt请求求来传送送与接收收特征报报表。在每一个个Inpput、OOutpput和和Feaaturre项目目的前缀缀字之后后是322位描述述数据,目前最多定义了9个位,余的位则是保留。位08的定义中只有位7不能应用于Input项目,除此之外其他的位定义都适应于Input、Output和Feature项目。表8-55 IInpuut、OOutpput和和Feaaturre项目目的数据据项说明明数据字段段含义说明明位值名称00Dataa数据:表表示项目目的内容容是可更更改的(读读/写)。1Consstannt常数:表表示项目目的内容容是不可可更改的的(只读读)。10Arraay数组:报报告全部部控制的的状态。如如在键盘盘报表中中每一个个键在报报表中占占一位,报报表传输输全部键键的状态态,可以以同时按按下任意意多个键键。1Variiablle变量:报报告作用用中的控控制。如如在键盘盘报表中中只报告告按下的的键的编编号,可可以同时时按下的的键的数数目等于于报表的的计数(GGlobbal类类项目RRepoort Couunt)20Absoolutte绝对:表表示数值值以一个个固定值值为基准准。游戏戏杆通常常是报告告绝对数数据(游游戏杆目目前的位位置)。1Relaativve相对:表表示数据据的改变变以上一一个读数数为基准准。鼠标标通常是是报告相相对数据据(鼠标标的移动动位置)。30No WWrapp如果设置置为1表表示回转转,当数数值超过过最小值值到最大大值的范范围时将将回转,如如果最小小值是00而最大大值是110,超超过最大大值的下下一个数数值是00。1Wrapp40Lineear线形:表表示测量量的数据据与报表表的数据据有线性性的关系系。1Non-Linnearr非线性:表示测测量的数数据与报报表的数数据没有有线性的的关系。50Prefferrred 优选状态态:表示示控制在在没有用用户交互互时会回回到一个个特定的的状态。如如按钮就就有优选选状态,在在无操作作时保持持未按下下的状态态。1Non-Preeferrredd非优选状状态:它它维持在在上一个个用户选选择的状状态。如如交替的的开关就就没有优优选状态态。60No NNulll Poosittionn无空状态态位置:表示控控制永远远在传送送有效的的数据。1NulllStaate空状态:表示控控制支持持一个没没有传送送有效数数据的状状态。如如操纵杆杆可能具具有一个个多方向向的按钮钮开关,在在没有按按下时在在空状态态,这时时控制将将传送一一个在 Loggicaal MMiniimumm与Loogiccal Maxximuum范围围之外的的数值来来表示它它在空状状态。70Non-Vollatiile不可变的的:表示示设备只只有在主主机请求求时才改改变数值值。当主主机传送送一个报报表并且且不要改改变不可可变项目目时,如如果该项项目是定定义成相相对(RRelaativve)的的,数值值0表示示不改变变数据,如如果不可可变项目目是定义义成绝对对(Abbsollutee)的,超超出范围围外的数数值则表表示不改改变数据据。1Volaatille可变的:表示设设备可以以自己改改变数值值,并不不是必须须主机传传送报表表要求给给设备来来改变数数值。例例如设备备控制面面板可以以由主机机软件传传送一个个报表给给设备,也也可以由由用户自自己按设设备上的的实际按按钮。80Bit Fieeld位字段:表示每每一个位位或是一一个字节节内的一一组位可可以代表表一份数数据。1Bufffereed BBytees缓冲字节节:表示示信息包包含一个个或多个个字节,缓缓冲字节节的报表表大小必必须是88。9311位保留注:该位位不能应应用到数数组。:只应应用于OOutpput和和Feaaturre项目目,对于于Inpput项项目该位位保留。(2)CColllecttionn和Ennd CColllecttionn项目所有的报报表类型型都可以以使用CColllecttionn与 EEnd Colllecctioon项目目来将相相关的MMainn类型项项目组成成群组。这这两个项项目分别别用于打打开和关关闭集合合。所有有在Coolleectiion与与Endd Coolleectiion项项目之间间的Maain类类型项目目都是 Colllecctioon的一一部分。Colllecttionn有3种种类型:Apppliccatiion、PPhyssicaal与LLogiicall,其项项目的数数据项的的值分别别为1、00和2。厂厂商也可可以自己己定义CColllecttionn类型,数数据项的的值为880hFFhh保留给给厂商定定义。EEnd Colllecctioon项目目无数据据项。Appllicaatioon CColllecttionn包含有有共同用用途的项项目或执执行单一一功能的的项目。例例如键盘盘的开机机描述符符将键盘盘的按键键与LEED指示示灯数据据集合成成一个AAppllicaatioon CColllecttionn。所有有的报表表必须在在一个AAppllicaatioon CColllecttionn内。Physsicaal CColllecttionn包含在在一个单单一几何何点上的的数据项项目,可可以将每每个位置置的数据据集合成成一个 Phyysiccal Colllecctioon。在在设备报报告多个个传感器器的位置置的时候候,使用用Phyysiccal Colllecctioon指明明不同的的数据来来自不同同的传感感器。Logiicall Coolleectiion形形成一个个数据结结构,包包含由 Colllecctioon所连连结的不不同类型型的项目目。例如如数据缓缓冲区的的内容以以及缓冲冲区内字字节数目目的计数数。(3)UUsagge PPagee和Ussagee项目Usagge ppagee项目的的数据部部分为112个个字节,目目前的定定义全部部都是一一个字节节。Ussagee Paage定定义了常常用的设设备功能能,关于于Usaage Pagge(以以及其他他项目)的的具体定定义内容容,可以以查阅HHID Usaage tabbless(),下下表是来来自HIID UUsagge ttablles的的Usaage Pagge定义义。表8-66 UUsagge PPagee定义Pagee IDD Pagee Naame00Undeefinned01Geneericc Deeskttop Conntrools02 Simuulatti