VC的HID人机接口设备设计+技术发展+需求分析 第8页
5 HID设备软硬件设计与实现5.1 HID设备系统设计
本项目的人机接口设备端需要硬件设计与软件设计,硬件方面包括芯片选择、电路图的设计等。软件方面,即固件代码,包括USB协议栈的编写、键盘驱动及LCD驱动的编写。这些都是项目开发的重点与难点。
USB设备端的软件开发实际上包含着很大的工作量,因为开发者需要在自己的平台上实现一个USB 设备端的协议栈。简单说来,USB设备端的软件主要需要两个功能:一是监视设备的状态,控制设备的行为,自动产生状态信息和用户命令信息;二是完成主机与设备之间的USB总线通讯,自动处理主机的控制和查询命令。实现前一个功能的软件模块我们称为USB 设备的通用模块,而实现后一个功能的软件模块我们称为USB 设备的协议模块。5.2 HID功能模块设计与实现5.2.1 USB HID驱动开发(1)固件流程图
USB设备作为一个完整的硬件设备,由硬件和固件两部分组成。其中,固件包括有关系统配置和CPU的一些设置模块、USB协议栈模块等部分。图5-1为本项目中USB设备固件流程图。图5-1 USB固件流程图
(2)HID属性描述符
如2.2.4所述,HID类支持标准的USB描述符,即设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。此外,作为一个特定的设备类,HID有其独有的类描述符,即HID描述符、报告描述符和物理描述符。
下面主要介绍本项目使用的HID描述符、端点描述符与报告描述符。
HID描述符跟接口描述符、端点描述符类似,也是随配置信息一起返回给主机的,主机并不会单独发出请求来读取它。HID描述符在配置信息中的位置是紧接接口描述符。
HID描述符详细设计如下:
HID_CLASS_DESCRIPTOR:
DB 09H ;bLength域,HID描述符的长度为9个字节
DB 21H ;bDescriptorType域,描述符种类为HID类描述符
DB 00H ;bcdHID域,HID规范版本号为0x0100
DB 01H
DB 00H ;bCountryCode域,不支持硬件的目的国家识别码
DB 01H ;bNumDescriptors域,支持的附属描述符数为1,即报告描述符
DB 22H ;bDescriptorType域,HID相关描述符为0x22,即报表描述符
DB 30H ; bDescriptorLength域,报告描述符的总长度0x0030,即48字节
DB 00H
端点描述符详细设计如下:
ENDPOINT_DESCRIPTOR_INTERRUPT_IN:
DB 07H ;bLength域,端点描述符长度为7个字节
DB 05H ;bDescriptorType域,描述符种类为端点描述符
DB 83H ; bEndpointAddress,端点号为3
DB 03H ;bmAttributes域,端点号为3的端点是Interrupt In端点
DB 08H ;wMaxPacketSize域,0x0008
DB 00H毕业论文
http://www.youerw.com DB 10H ;bInterval域,轮询间隔为2 ms
报告描述符,顾名思义就是描述“报告”格式的,这个格式使主机和设备能遵循着同一个规则来解释一个报告中所含有的数据。“报告”是主机和HID设备之间进行数据交换的最小单位。也就是说,在主机完成对设备的识别之后,在具体应用上的数据交换就得以“报告”的方式进行。“报告”的类型有三种:输入报告、输出报告和特征报告。输入报告就是设备发给主机的报告,而输出报告就是主机发给设备的报告,特征报告是主机发给设备的报告,特征报告常在自定义HID设备中被用作主机向设备发送自定义数据。通过报告,USB HOST可以分析出报告中数据所表示的含义,并通过控制输入端点0返回。另外,主机使用获取报告描述符命令来获取报告描述符。注意,该请求是发送到接口,而不是发送到设备。一个报告描述符可以描述多个报告,不同的报告通过报告ID来识别,报告ID在报告最前面,即第一个字节。当报告描述符中没有规定报告ID时,报告中就没有ID字段,而直接以数据开始。本文来自优'文*论-文.网
与HID描述符不同,主机会发出单独的请求来读取报告描述符。关于报告描述符的组成,HID设备类定义文档中明确指出,一个报告描述符必须包含但不仅限于以下数据项:输入、输出或特征(指明了报告的类型);用法;用法页(用法和用法页一起指明了数据项的用法);逻辑最小值;逻辑最大值(逻辑最小值和逻辑最大值指明了报告所使用的数据值的范围);报告大小(指明数据项的位数);报告计数(指明有多少个这样的数据项)。
报告描述符详细设计如下:
HID_REPORT_DESCRIPTOR:
DB 06H ;用法页,0xFFA006,自定义,修饰其下所有主项
DB A0H
DB FFH
DB 09H ;用法,0x0109,局部项,只修饰下面集合主项
上一页 [1] [2] [3] [4] [5] [6] [7] [8]
VC的HID人机接口设备设计+技术发展+需求分析 第8页下载如图片无法显示或论文不完整,请联系qq752018766