2.1.2 USB 的总线拓扑结构
整个USB总线拓扑体系由三个元素组成:主机(Host)、集线器(Hub)和设备(device)。USB设备是通过USB总线连接到USB主机上的。整个USB的物理连接是一个菊链式星型拓扑结构,如图2-1所示。图2-1 USB总线拓扑图
VC的HID人机接口设备设计+技术发展+需求分析
每个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编码,而在
相关热词:VC HID 人机 接口 设备 设计 技术 发展 需求 分析