USB系统组成及其原理
在早期的计算机系统上,常用串口或并口连接外设。每个接口都需要占用计算机的系统资源(如中断、I/O地址、DMA通道等)。无论是串口还是并口,都是点对点的连接,一个接口仅支持一个设备。因此每添加一个新的设备,就需要添加一个ISA或PCI卡来支持,同时系统需要重新启动才能驱动新的设备。 USB(universal serial bus)总线是Intel, DEC, Microsoft, IBM等公司联合推出的一种新的串行总线标准,主要用于PC与外设的互连。
1.USB总线的功能特点(1)USB减轻了各个设备(像鼠标、调制解调器、键盘和打印机等)对目前PC中所有标准端口的需求,因而降低了硬件的复杂性和对端口的占用。整个USB系统只有一个端口,使用一个中断,节省了系统资源。 (2)USB支持热插拔(hot plug)。也就是说在不关闭PC的情况下,可以安全地插上和断开USB设备,动态地加载驱动程序。 (3)USB支持即插即用(plug and play,PnP)。当插入USB设备的时候,计算机系统检测该外设,并且自动加载相关驱动程序,对该设备进行配置,使其正常工作。 (4)USB在设备供电方面提供了灵活性。USB接口不仅可以通过电缆为连接到USB集线器(hub)或主机(host)的设备供电,而且可以通过电池或者其他的电力设备为其供电,或使用两种供电方式的组合,并且支持节约能源的挂机和唤醒模式。 (5)USB提供全速12MB/s、低速1.5MB/s和高速480MB/s(USB 2.0)三种速率来适应各种不同类型的外设。 (6)为了适应各种不同类型外设的要求,USB提供了四种不同的数据传送类型。 (7)USB具有很强的连接能力,最多可以以链接形式连接127个外设到同一系统,这对一般的计算机系统已经足够了。 (8)USB具有很高的容错性能。因为在协议中规定了出错处理和差错恢复的机制,所以可以对有缺陷的设备进行认定,并对错误的数据进行恢复或报告。 总之,作为计算机外设接口技术的重要变革,USB在传统的计算机组织结构的基础上,引入网络的拓扑结构思想。其具有终端用户的易用性、广泛的应用性、带宽的动态分配、优越的容错性能、较高的性能价格比等特点,方便了外设的添加,适应了现代计算机的多媒体功能拓展,已逐步成为计算机的主流接口。 2.USB系统的拓扑结构及其硬件组成USB系统采用级联星形拓扑结构,如图8.3所示。在任何USB系统中,只能有一个主机。USB和主机系统的接口称为主机控制器(host controller),它是由硬件和软件结合实现的。集线器用来提供附加连接点。 和主控制器相连的集线器称为根集线器(root hub),一个USB系统中只能有一个根集线器。
由此可见,USB系统中包含的硬件有: (1)USB主机控制器。它在主板芯片组里,用来控制整个USB设备。 (2)USB根集线器。完成对传输的初始化和设备的接入。 (3)USB集线器和USB设备。USB集线器为所有的USB设备提供端口,是USB所有动作的分配者。集线器采用一对多的方式连接外设,这样呈发射状的连接可以保证使用127个外设,因为USB使用7bit保存地址,27共有128个,而USB主机控制器必须保留一个,因此还有127个地址可以连接USB设备。USB设备是指采用USB总线的外设,如鼠标、键盘、打印机、扬声器等,为系统提供了具体功能。USB的协议实现了系统的协调。 3.USB系统的软件结构这里所讲的软件结构是针对主机系统而言的,USB设备也需要有自己的软件。USB系统的软件是基于模块化、用面向对象方法设计的,USB软件一般由三个主要模块组成,如图8.4所示(1)通用主控制器驱动程序UHCD(USB host controller driver)。位于低层,用来管理和控制USB主控制器。USB主控制器是一个可编程硬件接口,UHCD用来实现与主控制器通信及对其控制的一些细节。 (2)USB驱动程序USBD(USB driver)。位于中间层,用来实现USB总线的驱动、带宽的分配、管道的建立和控制管道的管理等。通常操作系统已提供USBD支持。 (3)USB设备驱动程序(又称客户驱动程序或客户软件),位于最上层,用来实现对特定USB设备的管理和驱动。USB设备驱动程序是USB系统软件和USB应用程序之间的接口。 当软件采用分层结构时,位于下一层的软件应为上一层软件提供服务,确切地说,应设置一些供上一层调用的函数,这些函数的集合一般称为软件层之间的接口。 如图8.4所示,USBDI和UHCDI便是这样的接口。 4.USB物理接口 (1)USB设备 (2)USB电缆 电源分配是指USB如何分配计算机所提供的能源。需要主机提供电源的设备称为总线供能设备,如键盘、输入笔和鼠标等。而一些USB设备可能自带电源,该类设备称为自供能设备。 USB主机有与USB设备相互独立的电源管理系统,系统软件可以与主机的电源管理系统结合,共同处理各种电源事件,如挂起、唤醒等。 每个设备可以从总线上获得100mA的电流,如果有特殊情况向系统申请,最多可以获得500mA的电流,在挂机的状态下,电流只有500mA。
USB传输协议
1.总线协议USB是一种轮询方式的总线,主机控制器初始化所有的数据传输。 每个总线执行动作按照传输前制定的原则,最多传输三个数据包。每次传输开始,主机控制器发送一个描述传输动作的种类、方向、USB设备地址和端口号的数据包,这个数据包通常称为标志包PID(packet ID),USB设备从解码后的数据包中取出属于自己的数据。 传输开始时,由标志包来标志数据的传输方向,然后发送端发送数据包,接收端相应地发送一个握手的数据包,以表明传输是否成功。发送端和接收端之间的数据传输,可视为在主机和设备端口之间的一条通道中进行。 通道可分为两类:流通道和消息通道。各通道之间的数据流动是相互独立的,一个USB设备可以有几条通道。例如,一个USB设备可建立向其他设备发送数据和从其他设备接收数据的两条通道。 2.USB的传输方式为了满足不同的通信要求,USB提供了四种传输方式:控制(control)方式传输,等时(isochronous)方式传输,中断(interrupt)方式传输及批(bulk)方式传输。每种传输模式应用到具有相同名字的终端时,具有不同的性质。 (1)控制方式传输 控制传输是双向传输,数据量通常较小。控制传输类型支持外设与主机之间的控制、状态、配置等信息的传输,为外设与主机之间提供一条控制通道。每种外设都支持控制传输类型,这样,主机与外设之间就可以传输配置和命令/状态信息。 (2)等时方式传输 等时传输提供了确定的带宽和间隔时间(latency)。它用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输速率和即时应用中。 例如,在执行即时通话的网络电话应用中,使用等时传输模式是很好的选择。等时数据要求确定的带宽值和确定的最大传输次数,对于等时传输来说,即时数据传递比精度和数据的完整性更重要一些。 (3)中断方式传输 中断方式传输主要用于定时查询设备是否有中断申请。这种传输方式的典型应用是在少量的、分散的、不可预测数据的传输方面,键盘、操纵杆和鼠标等就属于这一类型。这些设备与主机间的数据传输量小、无周期性,但对响应时间敏感,要求马上响应。中断方式传输是单向的,并且对于主机来说只有输入方式。 (4)批方式传输 主要应用于大量传输数据又没有带宽和间隔时间要求的情况下,要求保证传输。打印机和扫描仪就属于这种类型,在满足带宽的情况下,才进行该类型的数据传输。 USB采用分块带宽分配方案,若外设超过当前或潜在的带宽分配要求,则主机将拒绝与外设进行数据传输。等时和中断传输类型的终端保留带宽,并保证数据按一定的速率传输,集中和控制终端按可用的最佳带宽来传输数据。但是,10%的带宽为批传输和控制传输保留,数据块传输仅在带宽满足要求的情况下才会出现。 |
|
来自: haodafeng_org > 《usb && 驱动》