




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章USB接口HID设备HID(Human Interface Device )是USB设备中常用的设备类型,是与人直接通信的USB设备,如键盘、鼠标、操纵杆等。 在USB设备中,HID设备的成本很低。 另外,HID设备不一定需要交互功能,并且满足HID类别的标准的设备是HID设备。Wndows操作系统最初支持的HID设备。 windows 98及更高版本中内置了HID设备的驱动程序,该应用程序可以直接使用这些驱动程序与设备通信。在设计USB接口的计算机外部设备时,如果HID类型的设备能够满足您的需求,就可以设计为HID类型的设备。 这样可以省去创建相对复杂的USB驱动程序,并直接利用Win
2、dows操作系统来支持标准的HID类型的USB设备。8.1 HID设备概述8.1.1 HID设备的特征交换的数据存储在称为报告的结构中,设备的固件必须支持HlD报告的格式。 主机控制正在传输的传输和请求报告,并中断数据的发送和接收。 报告的格式非常灵活。每个事务可以携带少量或中量的数据。 低速设备每件最大8B,全速设备每件最大64B,高速设备每件最大1024B。 在一个报表中可以使用多个事务处理。设备可以在意想不到的时间向主机发送信息,如键盘按键和鼠标的移动。 因此,主机定期轮询设备以获取最新的数据。HID设备的最大传输速度有限。 主机可以保证低速中断端点在10ms内最多1个,每秒最多800B
3、。 在全速端点保证每个PS的事务。 每秒最大64000B。 高速端点每125毫秒有一个事务,确保每秒最多24.576MB。HID设备不保证的传输速率。 如果设备设置为10ms间隔,则事务之间的时间可能小于或等于10ms。 除非设备被设置为在全速时在每个帧上传输数据,或者被设置为在高速时在每个微帧上传输数据。 因为这是最快的轮询速度,所以端点可以确保正确的带宽。HID设备不仅向主机发送数据,还从主机接收数据。 可以是满足HlD类规格的设备,也可以是HID设备。设备除了HlD接口外,还可能包含USB接口。 例如,影像显示装置使用HID接口来进行亮度对比度的软件控制,使用现有的影像接口来传送显示的数
4、据。 USB扬声器在使用实时传输播放声音的同时,还可以使用HID接口控制音量、低音等。HID级设备的规范文件主要有以下两种deviceclustiondeforhumaninterfacedeviceshid使用表其中前者是HID的基本规范文件,后者是前者的附件,为开发者提供实际控制类型的描述。 文件定义了让主机理解和使用HID数据的数值。 这两个文件是由USB设备工作组创建的,可以在http:/www.USB.org/developers/hid page/# class _ definition网站上下载。8.1.2 HID设备的硬件要求HID接口必须满足deviceclessidefor
5、humaninterfacedevices规范中定义的HID类的要求。 此文件描述了必要的描述符、传输频率、传输类型等。 为了满足标准,HID接口的端点和描述符需要满足某些要求。所有的HID传输都需要使用默认控制管或中断管,HID设备必须具有用于将数据传输到主机的中断输入端点,而不需要中断输出端点。PS类别驱动程序PS类别设备主机外围设备默认的控制管切断烟斗图8-1 HID传输的传输类型表8-1 HID设备的传输类型传输类型资料来源数据类型是否必要配管控制系统设备(输入)没有严格的时间限制的数据是的,是的。主体(输出)没有严格的时间限制的数据或者输出管理没有被中断的情况下的数据中断设备(输入)
6、定时或低延迟数据是的,是的。主体(输出)定时或低延迟数据是的,是的。主机和设备之间交换的数据分为两种类型:低延迟的数据,必须尽快达到目的配置和其他数据没有严格的时间限制。中断管道是一种控制非管道数据交换的方法,特别适合接收方需要定时,或尽快接收数据。 中断输入管道在主机上拥有数据,中断输出管道在设备上拥有数据。 总线繁忙时,控制管道可能会延迟,中断管道会确保可用带宽。 HID不需要切断输出的配管。 如果输出管道没有中断,主机会使用特定于HID设备的Set_Report请求将所有报告转发到控制管道。8.1.3 HID固件要求要主机驱动程序与HID设备通信,设备固件必须满足以下要求:设备描述符必须
7、识别出它包含了HID接口。除了默认的控制管道之外,固件还必须支持中断输入管道。固件必须包含一个报告描述符,用于定义要发送和接收的设备数据。传输数据时,固件必须支持Get_Report控制传输和中断输入传输。 当接收数据时,固件必须支持Set_Report控制传输和选择性的中断输出传输。所有HID数据都必须使用定义的报告格式来定义报告中数据的大小和内容。 设备可以支持一个或多个报告。 固件中的报告描述符用于描述此报告和报告数据的使用方式。各报告的数值。 定义该报告是“输入”、“输出”或“特征”报告。 主机可以在输入报告中接收数据,在输出报告中传输数据,特性报告可以向任何方向传输。Windows
8、98或更高版本的HID驱动程序使用中断转发来传递输入报告。 输出报告的传输类型取决于设备支持的端点和Windows版本。 Windows 98 Gold仅遵守HID 1.0规范,HID驱动程序使用控制传输传输输出报告。 Windows 98 SE和Wndows 2000符合HID 1.1标准,HID驱动程序使用中断传输(如果有中断输出端点),否则使用控制传输传输传输输出报告。 所有的特征报告都使用控制传输。8.2 HID设备描述符在HID设备被连接到USB主机之后,主机发送Get_Descriptor请求读取HID设备的描述符,并且理解该描述符对于理解USB设备来说是重要的。8.2.1 HID
9、设备的描述符HID设备除了支持USB设备的5种标准描述符之外,还支持HID设备特定的3种描述符。 这些描述符如下:USB标准描述符:设备、配置、接口、端点、字符串描述符。特定于HID的描述符: HID、报告、物理描述符。从描述符的关联来看,HID描述符与接口相关联。 如果HID设备有两个端点,则设备不需要每个端点都有HID描述符。图8-2 HID描述符的关联关系接口描述符Interface端点描述符Endpoint公司HID描述符PS报告描述符报告公司实体描述符物流公司HID、报告和实体描述符是HID设备特定的描述符从前面的USB描述符中可以看到,描述符的第一个字节和第二个字节分别是描述符的长
10、度和类型,“描述符类型”字段表示描述符的类型,下表显示了不同描述符类型字段的数值。表8-2 HID的描述符类型描述符应用。数值标准设备设备。所有设备都是必要的。 只有一个01Configuration的设定所有设备都是必要的。 至少有一个是02字符串String可以选择03接口接口(Interface )每个接口一个。04端点Endpoint在除了端点0以外的各端点各一个05设备限定Device_Qualiffier需要同时支持全速和高速的设备06Other_Speed_Configuration07接口_ power08分类PS在HID设备上21华侨公司29PS特定的报告报告在HID设备上2
11、2物理物理量可以选择23对于HID设备,设备描述符和配置描述符中没有HID特定信息。 指示设备描述符的bDeviceClass和bDeviceSubClass字段的值为0,接口描述符的bindfaceclass字段的值为03,设备的此接口为HID类。 接口描述符中包含HID特定信息的其他字段包括子类别代码(blnterfaceSubClass )和协议代码(blnterfaceProtocol字段)。如果接口描述符中的子类别代码字段等于1,则该设备支持“引导接口”(Boot Interface )。 如果设备具有启动接口,则即使主机的HID中没有加载驱动程序,也可以使用该设备。 如果计算机直接
12、从DOS启动,并在启动时查看系统设置画面,或使用Wndows安全模式,则可能发生这种情况。具有引导接口的键盘和鼠标可以使用BIOS和许多主机支持的缺省简单协议. HID规范定义了键盘和鼠标的启动接口协议。如果设备没有启动接口,并且接口描述符中的“协议代码”字段为1,则设备支持键盘接口;如果“协议代码”字段为2,则设备支持鼠标接口。 接口描述符中的“协议代码”字段为0,表示设备不支持启动协议。HID Usage Tables规范定义了键盘和鼠标启动描述符。 因为BIOS知道引导协议,并且假设设备支持引导协议,所以不需要从设备读取描述符。 因此,要激活的设备无需将激活接口描述符包括在固件中,而是如
13、果主机还不需要在报告描述符中定义的协议,则可以支持激活协议。 操作系统加载HlD驱动程序后,使用Set_Protocol请求将设备从启动协议转换为报告协议。8.2.2 HID描述符HID描述符的主要作用是识别HID通信中使用的附加描述符。 下表显示了HID描述符的结构。表8-3 HID描述符结构偏移量量量菲尔德字节数数儿数值类型说明0蓝长度1Numeric描述符字节数1bDescriptorType1一定0x21=HID描述符2PR PR PS2NumericPS规格版本号(PS )4bCountryCode1Numeric硬件设备所在国家的国家代码5bnum描述符1Numeric类别描述符的
14、数量(至少有一个报告描述符)6bDescriptorType1一定类描述符的类型7wDescriptorLength2Numeric报告描述符的总长度9bDescriptorType 是.1一定附加描述符的类型、选项10wDescriptorLength .2Numeric附加描述符的总长度,可选BCDHID设备及其描述符符合的HID标准的版本号。 这个数字有四个十六进制的bcd格式字符。 例如,版本1.1的bcdHID是0110h。bCountryCode :硬件目的国的标识符。 如果没有说明,则此字段为0。bDescriptorType:HID描述符附带的描述符的类型(报表或实体)。 每个
15、HID至少必须支持一个报告描述符。 接口可以支持多个报告描述符和一个或多个实体描述符。可以存在多个HID描述符偏移为9和10的bDescriptorType和wDescriptorLength。1 .报告描述符报告描述符定义了执行设备功能的数据格式和使用方法。与USB的其他描述符不同,报告描述符不是简单的表,而是USB的所有描述符中最复杂的。 报告描述符需要处理各种用途的设备,因此很复杂、灵活。 报告中的数据应以简洁的格式存储,以免浪费设备中的存储空间和数据传输时的总线时间。实际上,可以理解,报告的内容的简洁是通过报告描述符的全面、复杂的数据描述来实现的。报告描述符必须首先描述数据的大小和内容
16、。 报告描述符的内容和大小因设备而异。 在转发报告之前,主机必须请求设备的报告描述符,并且只有在获得了报告描述符时才能正确分析报告数据。报告描述符是报告描述项目(Item )的集合,各描述项目具有比较统一的数据结构,项目多,通过编码来实现。(1)项目报告描述符包括描述HID设备的数据项(Item ),项目的第一个字节(项目前缀)由三部分组成:项目类型(item type )、项目标签(item tag )、项目大小(item size ) 其中,项目类型说明项目的数据类型,项目标签说明项目的功能,项目的长度说明项目的数据部分的长度。HID项目有短项目和长项目两种,其中短项目的格式如下图所示。data (最多可达0,1,2,4字节)巴特格公司字节类型bSize7 6 5 4 3 2 1 0名次菲尔德图8-3 HID报告的短项目格式将短项目的数据字节数由bSize的值定义,如果bSize为0、1、2、3,则Data部分的字节数分别为0、1、2、4字节。 短项目的项目类型由bType定义,在bT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农宅登记管理办法
- 农村养狗管理办法
- 农村桑丧管理办法
- 农用设施管理办法
- 农药客户管理办法
- 农险查勘管理办法
- 冷库设备管理办法
- 出外勤管理办法
- 出租行业管理办法
- 分中队管理办法
- 2025年食品安全知识竞赛试题库与答案
- 欠税管理课件
- 中国心理卫生协会心理咨询职业技能培训项目模拟试题
- 2025上半年四川五粮液文化旅游开发有限公司招聘8人笔试历年参考题库附带答案详解
- 2024年金华市警示教育基地管理中心招聘真题
- 小学英语-三年级升四年级英语阅读理解专项(附答案)
- 农田水利工程监理环保监理实施方案和措施
- 2025年资阳市税务系统遴选面试真题附带题目详解含答案
- 股骨粗隆间骨折术后的护理
- 肿瘤科质控汇报
- 口腔科发展汇报
评论
0/150
提交评论