VC的HID人机接口设备设计+技术发展+需求分析 第3页
每个USB的系统有且只有一个主机,它负责管理整个USB系统,包括USB设备的连接与删除、主机与USB 设备的通信、总路线的控制等等。主机端有一个根集线器,可提供一个或多个USB下行端口。每个端口可以连接一个USB集线器或一个USB设备。以HOST-ROOT HUB为起点,最多支持7层(Tier),也就是说任何一个USB系统中最多可以允许5个USB集线器级联。一个复合设备(Compound Device)将同时占据两层或更多的层。USB集线器是用于USB端口扩展的,即USB 集线器可以将一个USB端口扩展为多个端口。图2-1中的每个功能设备(Func)就是一个USB设备,如USB键盘、USB鼠标、USB MODEM、USB硬盘等等。复合设备是指带一个集线器和一个或多个不可删除的USB设备的复合设备。一个USB系统可连接多达127个设备。
理论上,一个USB主控制器最多可接127个设备,这是由数据包中的7位地址位决定的,但是实际上不会接这么多的设备。一个USB主控制器可以连接多个USB设备,并不是直接简单的将多个设备并联或者串联,而是要由集线器负责端口扩展,才能连接更多的设备。在我们的电脑上,也有一个(或者多个,视USB主控制器的个数而定)集线器,它叫做根集线器,直接连在USB主控制器上。本文来自辣'文*论-文.网
2.1.3 USB系统分层
为了便于理解主机和USB设备间的数据传输机制,图2-2对USB系统的分层结构进行了更为详细的描述。从逻辑上看,客户软件通过一组管道来与USB设备的功能单元进行通信;USB系统软件和USB逻辑设备间的通信是通过缺省控制管道0来实现的;所有实际的USB数据传输是由主机和USB的串行接口引擎(SIE)来完成的。
各应用软件-功能设备对之间的通讯相互独立,应用软件通过USB 设备驱动程序(USBD)发起IRQ 请求,请求数据传输。主机控制器驱动程序(HCD)接收IRQ 请求,并解析成为USB传输和传输事务(Transaction),并对USB 系统中的所有传输事务进行任务排定(因为可能同时有多个应用软件发起IRQ 请求)。主机控制器(Host Controller)执行排定的传输任务,在同一条共享的USB 总线上进行数据包的传输。
图2-2 USB系统分层2.1.4 USB的编码方式
对于一个设备而言,不仅要无误的接收主机端送来的数据,更要正确的发出响应信号,因此,在D+与D-差动数据线上就必须采用一种特别的编码方式再加以传送出去,以解决在USB线缆所产生信号延迟及误差等问题。USB采用NRZI(Non return to zero invert)的编码方式,无需同步的时钟信号也能产生同步的数据存取。NRZI的编码规则是:当数据为“1”时不转换,为“0”时再作转换。图2-3是NRZI编码的一个实例。
图2-3 NRZI编码
但是NRZI编码方式容易出现“塞车”现象。所以需要执行“位填塞”工作。即连续6个“1”后填一个“0”。因此在发送端作数据传输之前,需要先执行位填塞和NRZI编码,而在接收端接收数据之前,需要先执行NRZI译码再作位反填塞。这一部分的电路会通过USB模块中的串行接口引擎(SIE)来实现。2.1.5 USB的即插即用
USB即插即用包括两方面,一是热插拔,一是自动配置。热插拔依赖于物理上的实现,自动配置则依赖于软件设计。
USB采用四线电缆来传输信号于电源,如图2-4。其中D+,D+为差分信号线,VBus和GND则提供了+5V的电源。USB正是在电缆和连接点的设计上做了处理,使得热插拔所产生的强电流可以被吸收。图2-4 USB电缆
至于自动配置,主要是指设备在插入HUB下行端口后能被主机自动识别,进行信息交换。这一功能主要依赖USB总线枚举来实现。总线枚举的具体实现在5.3节。
2.2 USB接口HID设备类毕业论文
http://www.751com.cn2.2.1 HID设备类简介
要完成一个USB设备的开发,仅了解USB协议是不够的。还需要知道USB设备类协议,USB协议与USB设备类协议是相互补充的。为了简化USB总线开发流程,USB-IF将常用的具有相同或相似功能的设备归为一类,并制定了相关的设备类规范,使得只要依照统一规范标准,不同的厂商开发的USB设备可以使用同样的驱动程序。所有的设备类都必须支持标准USB描述符和标准USB设备请求,如有必要,设备类还可自行定义其专用的描述符和设备请求,这分别被称为设备类定义描述符和设备类定义请求。另外,一个完整的设备类还将指明其接口和端点的使用方法,如接口所包含端点的个数、端点的最大数据包长度等。
USB设备分为两大类:标准型的和非标准型的。标准型的,比如音频设备、通信设备、打印机设备、存储设备和本项目采用的HID设备等。而非标准型的,比如USB/RS-232转换器等。
HID设备属于人机交互操作的设备,它既可以是低速设备,也可以是本项目采用的全速设备。其典型的数据传输类型为中断IN传输,适用于主机接收USB设备发来的少量数据。HID设备具有以下的功能特点:适用于传输少量到中量的数据;传输的数据是突发性的;有最大传输速度的限制;没有传输速度的保证。
2.2.2 HID数据传输方式本文来自辣'文*论-文.网
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.3 HID设备枚举过程(1) 主机检测到USB设备插入;
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
VC的HID人机接口设备设计+技术发展+需求分析 第3页下载如图片无法显示或论文不完整,请联系qq752018766