课程设计基于HID的人机接口设备的设计及应用优秀Word文件下载.docx
- 文档编号:16203336
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:50
- 大小:490.88KB
课程设计基于HID的人机接口设备的设计及应用优秀Word文件下载.docx
《课程设计基于HID的人机接口设备的设计及应用优秀Word文件下载.docx》由会员分享,可在线阅读,更多相关《课程设计基于HID的人机接口设备的设计及应用优秀Word文件下载.docx(50页珍藏版)》请在冰豆网上搜索。
1.1选题背景
随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,这么多的设备,如何接入个人计算机?
为了满足用户的需求,以Intel为首的七家公司(Intel,Compaq,Microsoft,IBM,DEC,NorthernTelecom以及日本NEC)于1994年11月推出了USB(UniversalSerialBus,通用串行总线)协议的第一个草案专用于低中速的计算机外设。
USB可把多达127个外设同时连到用户的系统上,所有的外设通过协议来共享USB的带宽,其12Mbps的带宽对于键盘鼠标等低中速外设是完全足够的。
USB允许外设在主机和其它外设工作时进行连接配置使用及移除,即所谓的即插即用(Plug&
Play)。
同时USB总线的应用可以清除PC上过多的I/O端口,而以一个串行通道取代,使PC与外设之间的连接更容易。
自从1996年2月USB规范版本1.0发布,随着微软在Windows98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口逐步走进了实用阶段。
短短几年间,USB不光成为了微机主板上的标准端口,而且还成为了所有微机外设(包括键盘、鼠标、显示器、打印机、数字相机、扫描仪和游戏柄等)与主机相连的标准协议之一。
目前USB规范的主要版本是USB1.1、USB2.0、USB2.0及USB3.0,USB2.0向下兼容USB1.1。
USB1.1规定了低速1.5Mbps和全速12Mbps两种传输速率,USB2.0又增加了高速传输,最高传输速率达到480Mbps。
USB论坛把不同的USB设备进行归类并制定了相应的设备类规范,设备类规范规定了该类设备的行为和协议。
其中,人与计算机交互的设备,定义为HID类设备,用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,VCR遥控等等设备。
另外,使用HID设备的好处之一就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的上位机驱动程序,只要直接使用API调用即可完成通信。
所以很多简单的USB设备,喜欢枚举成HID设备,这样就可以不用安装驱动而直接使用。
1.2选题目标
基于HID的人机接口设备的设计及应用开发包括两个方面:
主机端与设备端。
HID设备端,即下位机方面,采用APG8021开发平台,该平台的ST221U微控制器,内置USB控制器,支持USB全速设备(12Mbps)。
在开发平台上,需要开发的驱动有USBHID驱动、键盘驱动及LCD驱动,这些是本项目的难点。
主机端,即上位机方面,设备端为USBHID设备,属于用HID类设备——USB的标准设备类之一,故而无需开发内核模块客户驱动程序,因为Win98之后的操作系统基本都提供了HID类驱动程序,故只需开发客户程序,调用HID类驱动程序提供的Win32API服务,即可实现与设备端通信。
本项目通过键盘与LCD显示功能,演示了设备端与主机端之间的通信。
1.3需求分析
1.3.1用户需求分析
随着电脑的普及,USB接口技术的飞速发展,使得越来越的外围设备都提供了USB接口。
开发一个读卡器、键盘、鼠标等等设备,提供USB接口是必不可少的。
这不仅关系到用户的使用感受,也影响了产品的易用性与方便性。
学习USB接口技术已经成为势不可挡的潮流。
USB连接的优点数不胜数,即插即用是其最大的特色,也是推动USB发展的重要因素之一。
即插即用的特性不仅为USB接口赢得了声誉,更赢得了广大消费者的青睐。
自微软提供了USB驱动以来,只要有电脑的地方,就离不开USB接口技术,足见其发展势头之强大。
不仅如此,无线USB也已悄然盛行。
这意味着,新的USB时代的即将到来。
市场价值推动技术发展,为了简化USB总线开发流程,USB-IF将常用的具有相同或相似功能的设备归为一类,并制定了相关的设备类规范,使得不同的厂商开发的USB设备可以使用同样的驱动程序。
本项目中的USBHID设备即是基于HID类开发的,定义此类设备则无须编写主机端的USB驱动程序,大大降低了开发难度。
无须安装驱动这一诱人的特性,不仅增强了其在同类产品中的竞争力,也使得用户使用起来更加方便,开发基于HID的人机接口设备有着巨大的市场价值。
1.3.2功能需求分析
(1)数据通信功能。
用户在上位机端点击“打开设备”按钮,主机端进行设备配置,为下一步的数据传输做准备。
(2)键盘功能。
设备端的按键按下,LCD显示相应的数值,主机端亦可读取相应的键值。
(3)LCD显示功能。
显示主机与设备的通信数据。
1.4主要内容
基于HID人机接口设备的设计及应用的主要内容有:
主机端的客户程序的编写;
设备端各驱动模块的开发,包括USBHID驱动、LCD驱动以及键盘驱动。
主机端方面:
客户程序是指在主机上运行的,负责与HID设备通信的应用程序。
对于USB接口的HID设备,Win98之后的操作系统都提供了HID类驱动。
不需要再编写内核模式下的驱动程序,只要调用Win32API来访问HID设备即可。
设备端方面:
采用APG8021平台,该平台的ST2211U8位集成微处理器,提供了USB控制器、SmartCard控制器,广泛应用于读卡器等消费产品。
USBHID驱动模块定义了USB接口的描述符,这些描述符定义了改HID设备的基本信息。
键盘驱动模块采用行列扫描法实现了4*5键盘。
LCD模块则通过ST7070控制器来驱动LCD显示。
USBHID驱动的开发是本项目的重点与难点。
1.5本章小结
本章主要介绍本项目的选题背景、意义,选题目标、项目需求分析以及主要内容。
开发一个人机接口设备需要做很多硬件和软件的工作,包括设计人机接口设备的硬件,编写设备协议,开发设备驱动程序等等,通过这些工作我对USB协议的整个体系有了比较清晰的认识。
2USB接口技术介绍
2.1USB接口技术
2.1.1USB简介
USB是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S。
USB支持“总线供电”和“自供电”两种供电模式。
在总线供电模式下,设备最多可以获得500mA的电流。
USB2.0被设计成为向下兼容的模式,当有全速(USB1.1)或者低速(USB1.0)设备连接到高速(USB2.0)主机时,主机可以通过分离传输来支持它们。
一条USB总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB以及USB功能设备。
2.1.2USB的总线拓扑结构
整个USB总线拓扑体系由三个元素组成:
主机(Host)、集线器(Hub)和设备(device)。
USB设备是通过USB总线连接到USB主机上的。
整个USB的物理连接是一个菊链式星型拓扑结构,如图2-1所示。
图2-1USB总线拓扑图
每个USB的系统有且只有一个主机,它负责管理整个USB系统,包括USB设备的连接与删除、主机与USB设备的通信、总路线的控制等等。
主机端有一个根集线器,可提供一个或多个USB下行端口。
每个端口可以连接一个USB集线器或一个USB设备。
以HOST-ROOTHUB为起点,最多支持7层(Tier),也就是说任何一个USB系统中最多可以允许5个USB集线器级联。
一个复合设备(CompoundDevice)将同时占据两层或更多的层。
USB集线器是用于USB端口扩展的,即USB集线器可以将一个USB端口扩展为多个端口。
图2-1中的每个功能设备(Func)就是一个USB设备,如USB键盘、USB鼠标、USBMODEM、USB硬盘等等。
复合设备是指带一个集线器和一个或多个不可删除的USB设备的复合设备。
一个USB系统可连接多达127个设备。
理论上,一个USB主控制器最多可接127个设备,这是由数据包中的7位地址位决定的,但是实际上不会接这么多的设备。
一个USB主控制器可以连接多个USB设备,并不是直接简单的将多个设备并联或者串联,而是要由集线器负责端口扩展,才能连接更多的设备。
在我们的电脑上,也有一个(或者多个,视USB主控制器的个数而定)集线器,它叫做根集线器,直接连在USB主控制器上。
2.1.3USB系统分层
为了便于理解主机和USB设备间的数据传输机制,图2-2对USB系统的分层结构进行了更为详细的描述。
从逻辑上看,客户软件通过一组管道来与USB设备的功能单元进行通信;
USB系统软件和USB逻辑设备间的通信是通过缺省控制管道0来实现的;
所有实际的USB数据传输是由主机和USB的串行接口引擎(SIE)来完成的。
各应用软件-功能设备对之间的通讯相互独立,应用软件通过USB设备驱动程序(USBD)发起IRQ请求,请求数据传输。
主机控制器驱动程序(HCD)接收IRQ请求,并解析成为USB传输和传输事务(Transaction),并对USB系统中的所有传输事务进行任务排定(因为可能同时有多个应用软件发起IRQ请求)。
主机控制器(HostController)执行排定的传输任务,在同一条共享的USB总线上进行数据包的传输。
图2-2USB系统分层
2.1.4USB的编码方式
对于一个设备而言,不仅要无误的接收主机端送来的数据,更要正确的发出响应信号,因此,在D+与D-差动数据线上就必须采用一种特别的编码方式再加以传送出去,以解决在USB线缆所产生信号延迟及误差等问题。
USB采用NRZI(Nonreturntozeroinvert)的编码方式,无需同步的时钟信号也能产生同步的数据存取。
NRZI的编码规则是:
当数据为“1”时不转换,为“0”时再作转换。
图2-3是NRZI编码的一个实例。
图2-3NRZI编码
但是NRZI编码方式容易出现“塞车”现象。
所以需要执行“位填塞”工作。
即连续6个“1”后填一个“0”。
因此在发送端作数据传输之前,需要先执行位填塞和NRZI编码,而在接收端接收数据之前,需要先执行NRZI译码再作位反填塞。
这一部分的电路会通过USB模块中的串行接口引擎(SIE)来实现。
2.1.5USB的即插即用
USB即插即用包括两方面,一是热插拔,一是自动配置。
热插拔依赖于物理上的实现,自动配置则依赖于软件设计。
USB采用四线电缆来传输信号于电源,如图2-4。
其中D+,D+为差分信号线,VBus和GND则提供了+5V的电源。
USB正是在电缆和连接点的设计上做了处理,使得热插拔所产生的强电流可以被吸收。
图2-4USB电缆
至于自动配置,主要是指设备在插入HUB下行端口后能被主机自动识别,进行信息交换。
这一功能主要依赖USB总线枚举来实现。
总线枚举的具体实现在5.3节。
2.2USB接口HID设备类
2.2.1HID设备类简介
要完成一个USB设备的开发,仅了解USB协议是不够的。
还需要知道USB设备类协议,USB协议与USB设备类协议是相互补充的。
为了简化USB总线开发流程,USB-IF将常用的具有相同或相似功能的设备归为一类,并制定了相关的设备类规范,使得只要依照统一规范标准,不同的厂商开发的USB设备可以使用同样的驱动程序。
所有的设备类都必须支持标准USB描述符和标准USB设备请求,如有必要,设备类还可自行定义其专用的描述符和设备请求,这分别被称为设备类定义描述符和设备类定义请求。
另外,一个完整的设备类还将指明其接口和端点的使用方法,如接口所包含端点的个数、端点的最大数据包长度等。
USB设备分为两大类:
标准型的和非标准型的。
标准型的,比如音频设备、通信设备、打印机设备、存储设备和本项目采用的HID设备等。
而非标准型的,比如USB/RS-232转换器等。
HID设备属于人机交互操作的设备,它既可以是低速设备,也可以是本项目采用的全速设备。
其典型的数据传输类型为中断IN传输,适用于主机接收USB设备发来的少量数据。
HID设备具有以下的功能特点:
适用于传输少量到中量的数据;
传输的数据是突发性的;
有最大传输速度的限制;
没有传输速度的保证。
2.2.2HID数据传输方式
HID设备类仅仅支持USB4种传输模式中的两种,即控制传输和中断传输。
如表2-1。
表2-1
数据传输管道
特点
HID支持程度
控制管道
利用控制传输方式,传输标准的请求命令数据,以及各种用于主机轮询设备时的消息数据
必须支持
中断输入IN管道
利用中断传输方式,把数据从设备发送给主机
中断输出OUT管道
利用USB的中断传输方式,把数据从主机发送给设备
可选
控制传输:
是USB中最重要的传输类型,只有执行控制传输后,才能够进一步执行其他的传输类型。
这种传输主要用于发送和接收与USB设备配置信息有关的数据,如设置设备地址、读取设备描述符等。
所有的USB设备必须支持控制传输,并且都将端点0构成的管道作为缺省控制管道。
当设备首次连接到主机上时,就是用缺省控制管道传输USB设备的确认信息、状态信息以及控制信息。
控制传输的优先级最高。
控制传输至少有两个事物阶段:
建立阶段和状态阶段,在两者之间可能存在数据阶段。
建立阶段,建立事物向外设的控制端点传输信息,PID是SETUP,数据的PID使用DATA0。
收到SETUP包的外设必须接收,并向主机发送ACK信号;
如果数据被损坏则将其丢掉,不返回ACK信号。
控制阶段如果存在数据阶段的话,所有的数据阶段的事物必须有相同的方向,在数据阶段中要发送的数据大小和方向在建立阶段给出。
控制传输的状态阶段是最后一个操作,并且其传输的方向总是与数据流的方向相反,其PID总是DATA1。
中断传输:
由于USB不支持硬件的中断,必须靠PC主机周期性的轮询,以便获知是否有设备需要传送数据给PC。
由此可知,中断传输仅是一种轮询的过程,而非我们过去所认知的中断功能。
轮询的周期非常的重要,太低的话,数据可能会流失,反之太高的话,会占去太多的总线带宽。
对于全速装置(12Mbps)而言,仅能设定10ms与255ms的轮询间隔,如果因为错误发生传送失败的话,可以在下一个轮询期间重新再传送一次。
2.2.3HID设备枚举过程
(1)主机检测到USB设备插入;
(2)USB设备复位,主机使用缺省地址0,向设备发送get_device_descriptor请求,来得到端点0的buffer的大小;
(3)主机发送set_address请求,分配一个地址给设备;
(4)主机再次发送get_device_descriptor请求给设备,获取设备描述符;
(5)设备发送devicedescriptor给主机;
(6)主机发送get_configuration_descriptor请求给设备,第一次发送会得到后面所有描述符的总长度;
(7)主机再次发送get_configuration_descriptor请求给设备;
(8)设备返回后面所有的描述符,包括(配置、接口、端点描述符,HID描述符)
(9)总线枚举过程结束,设备开始正常工作。
2.2.4HID设备类描述符
USB是通用串行总线,是用来传输数据的。
而描述符是为了告诉主机,设备是做什么的,实现什么功能,有哪些操作。
USB协议为USB设备定义了一套描述设备功能和属性的有固定结构的描述符,包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述。
每个USB设备仅有一个设备描述符,设备描述符可以包含一个或多个配置描述符,设备的每一张配置又可以包含一个或多个接口描述符,一个接口使用几个端点,就有几个端点描述符。
在USB主机访问USB设备的时候,是一级一级获取描述符的。
如图2-5所示。
USB设备通过这些描述符告诉主机设备的各种属性,主机通过对这些描述符的访问对设备进行类型识别、配置,并为其提供主机端的驱动程序。
图2-5HID设备描述符结构图
HID设备类除了标准描述符(包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符)外,还有自己的专有描述符:
HID描述符、报告描述符、物理描述符。
正确实现HID设备类专用描述符是主机成功识别HID设备的关键。
HID描述符和报告描述符是必须要使用的,物理描述符一般不被使用。
本项目具体的HID属性描述符将在5.2.1节进行介绍。
2.3本章小结
本章简要的介绍了USB及HID设备类的一些特性,包括USB总线拓扑结构、USB的枚举过程、USB的传输类型等。
3人机接口设备系统设计
3.1系统框架
人机接口设备系统设计包括两部分:
主机端的客户驱动程序设计和设备端各个模块驱动设计。
系统框架如图3-1所示。
主机端的客户程序是指在主机上运行的,负责与HID设备通信的应用程序。
主机要使用USBHID设备,必须要有驱动程序。
HID类驱动程序为内核模式和用户模式的程序提供了API(应用程序接口),可用来编写基于HID类的应用程序。
对于USB接口的HID设备,只需调用Win32API来编写用户模式下的应用程序,即无需编写基于类驱动程序的内核模式下的客户驱动程序。
设备端的MCU采用ST2211U8位集成微处理器,该微处理器提供了32K字节ROM、2K字节的SRAM、USB控制器、SmartCard控制器及中断控制器等,广泛应用于PDA,智能卡读卡器等消费产品。
HID驱动模块定义了USB接口的描述符,包括设备描述符、配置描述符、接口描述符、端点描述符、HID描述符及报告描述符。
这些描述符定义了HID设备的基本信息。
键盘驱动模块使用GPIO口中的PA[4:
0]为列线和PB[7:
4]为行线,采用行列扫描法实现4*5键盘驱动。
LCD模块则通过3线SPI向ST7070发送控制命令,并由ST7070控制器来驱动LCD显示。
图3-1系统框架图
3.2人机接口设备平台简介
3.2.1USB控制器方案
本系统使用的平台是由乐毅软件科技有限公司开发的APG8021平台。
该平台基于ST2211U微处理器,最高主频可达8MHz。
该平台支持人机接口,提供数位键盘和高对比度的显示屏,此显示屏可显示2行,每行16个字符;
采用智能电池管理,支持2节AAA电池(可移除),电池使用寿命长达五年;
支持SmartCard接口,能读取IS0-7816A,B,C(5V,3V,1.8V)级的卡,可应用于多种银行应用中,典型的有网上银行,电子商务,电话购物等。
图3-2为APG8201开发板平台图。
图3-2APG8201开发板平台图
在开发一个USB人机接口设备的时候,首先要根据使用要求选择合适的USB控制器。
USB控制器选择有两种方案,一种是采用外接的USB接口芯片,另一种则是带USB接口的单片机(MCU)。
纯粹的USB接口芯片仅处理USB通信,必须有一个外部的微控制器来进行协议的处理和数据的交换。
典型产品有Philips公司的PDIUSBD11(I2C接口)、PDIUSBD12(并行接口),NS公司的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 HID 人机 接口 设备 设计 应用 优秀
![提示](https://static.bdocx.com/images/bang_tan.gif)