通用串行接口(USB),USB的工作原理是什么? 由于多媒体技术的发展对外设与主机之间的数据传输率有了更高的需求,因此,USB总线技术应运而生。USB(Universal Serial Bus),翻译为中文就是通用串行总线,是由Conpaq,DEC,IBM,Inter,Microsoft,NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。 USB接口的主要特点是:即插即用,可热插拔。USB连接器将各种各样的外设I/O端口合而为一,使之可热插拔,具有自动配置能力,用户只要简单地将外设插入到PC以外的总线中,PC就能自动识别和配置USB设备。而且带宽更大,增加外设时无需在PC内添加接口卡,多个USB集线器可相互传送数据,使PC可以用全新的方式控制外设。USB可以自动检测和安装外设,实现真正的即插即用。而USB的另一个显著特点是支持“热”插拔,即不需要关机断电,也可以在正运行的电脑上插入或拔除一个USB设备。随着时间的推移,USB将成为PC的标准配置。基于USB的外设将逐渐增多,现在满足USB要求的外设有:调制解调器,键盘,鼠标,光驱,游戏手柄,软驱,扫描仪等,而非独立性I/O连接的外设将逐渐减少。即主机控制式外设减少,智能控制控制外设增多。USB总线标准由1.1版升级到2.0版后,传输率由12Mbps增加到了240Mbps,更换介质后连接距离由原来的5米增加到近百米。基于这点,USB也可以做生产ISDN以及基于视频的产品。如数据手套的数字化仪提供数据接口。USB总线结构简单,信号定义仅由2条电源线,2条信号线组成。 基本特性 1.USB的硬件结构 USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游(Downstream)设备提供电源,对于高速且需要高带宽的外设,USB以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据。USB总线会根据外设情况在两种传输模式中自动地动态转换。USB是基于令牌的总线。类似于令牌环网络或FDDI基于令牌的总线。USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机(Host),集线器(Hub)和功能设备。 主机,也称为根,根结或根Hub,它做在主板上或作为适配卡安装在计算机上,主机包含有主控制器和根集线器(Root Hub),控制着USB总线上的数据和控制信息的流动,每个USB系统只能有一个根集线器,它连接在主控制器上。 集线器是USB结构中的特定成分,它提供叫做端口(Port)的点将设备连接到USB总线上,同时检测连接在总线上的设备,并为这些设备提供电源管理,负责总线的故障检测和恢复。集线可为总线提供能源,亦可为自身提供能源(从外部得到电源),自身提供能源的设备可插入总线提供能源的集线器中,但总线提供能源的设备不能插入自身提供能源的集线器或支持超过四个的下游端口中,如总线提供能源设备的需要超过100mA电源时,不能同总线提供电源的集线器连接。 功能设备通过端口与总线连接。USB同时可做Hub使用。 2.USB的软件结构 每个USB只有一个主机,它包括以下几层: (1)USB总线接口 USB总线接口处理电气层与协议层的互连。从互连的角度来看,相似的总线接口由设备及主机同时给出,例如串行接口机(SIE)。USB总线接口由主控制器实现。 (2)USB系统 USB系统用主控制器管理主机与USB设备间的数据传输。它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB系统也负责管理USB资源,例如带宽和总线能量,这使客户访问USB成为可能。USB系统还有三个基本组件: 主控制器驱动程序(HCD)这可把不同主控制器设备映射到USB系统中。HCD与USB之间的接口叫HCDI,特定的HCDI由支持不同主控制器的操作系统定义,通用主控制器驱动器(UHCD)处于软结构的最底层,由它来管理和控制主控制器。UHCD实现了与USB主控制器通信和控制USB主控制器,并且它对系统软件的其他部分是隐蔽的。系统软件中的最高层通过UHCD的软件接口与主控制器通信。 USB驱动程序(USBD)它在UHCD驱动器之上,它提供驱动器级的接口,满足现有设备驱动器设计的要求。USBD以I/O请求包(IRPs)的形式提供数据传输架构,它由通过特定管道(Pipe)传输数据的需求组成。此外,USBD使客户端出现设备的一个抽象,以便于抽象和管理。作为抽象的一部分,USBD拥有缺省的管道。通过它可以访问所有的USB设备以进行标准的USB控制。该缺省管道描述了一条USBD和USB设备间通信的逻辑通道。 主机软件 在某些操作系统中,没有提供USB系统软件。这些软件本来是用于向设备驱动程序提供配置信息和装载结构的。在这些操作系统中,设备驱动程序将应用提供的接口而不是直接访问USBDI(USB驱动程序接口)结构。 (3)USB客户软件 它是位于软件结构的最高层,负责处理特定USB设备驱动器。客户程序层描述所有直接作用于设备的软件入口。当设备被系统检测到后,这些客户程序将直接作用于外围硬件。这个共享的特性将USB系统软件置于客户和它的设备之间,这就要根据USBD在客户端形成的设备映像由客户程序对它进行处理。 主机各层有以下功能: 检测连接和移去的USB设备。 管理主机和USB设备间的数据流。 连接USB状态和活动统计。 控制主控制器和USB设备间的电气接口,包括限量能量供应。 HCD提供了主控制器的抽象和通过USB传输的数据的主控制器视角的一个抽象。USBD提供了USB设备的抽象和USBD客户与USB功能间数据传输的一个抽象。USB系统促进客户和功能间的数据传输,并作为USB设备的规范接口的一个控制点。USB系统提供缓冲区管理能力并允许数据传输同步于客户和功能的需求。 3.USB的数据流传输 主控制器负责主机和USB设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由0个或多个管道组成,它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道,当提出配置请求时,主控制器根据主机软件提供的参数提供服务。 USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输及数据块传输。每种传输模式应用到具有相同名字的终端,则具有不同的性质。 控制传输类型 支持外设与主机之间的控制,状态,配置等信息的传输,为外设与主机之间提供一个控制通道。每种外设都支持控制传输类型,这样主机与外设之间就可以传送配置和命令/状态信息。 等时(lsochronous)传输类型 支持有周期性,有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。该类型无差错校验,故不能保证正确的数据传输,支持像计算机-电话集成系统(CTI)和音频系统与主机的数据传输。 中断传输类型 支持像游戏手柄,鼠标和键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但对响应时间敏感,要求马上响应。 数据块(Bulk)传输类型 支持打印机,扫描仪,数码相机等外设,这些外设与主机间传输的数据量大,USB在满足带宽的情况下才进行该类型的数据传输。 USB采用分块带宽分配方案,若外设超过当前带宽分配或潜在的要求,则不能进入该设备。同步和中断传输类型的终端保留带宽,并保证数据按一定的速率传送。集中和控制终端按可用的最佳带宽来传输传输数据。 USB应用 USB连接器可以轻松地为计算机添加设备,同时不占用计算机的并口和串口。只要将设备一插就可以使用了。但它有时也难以使用。 让计算机支持USB 现在大部分的计算机都有USB端口。而一些老式的计算机则没有USB端口的,只有USB连接器,但它是不起作用的,你可以在启动计算机时查看BIOS,确定它是否支持USB。你可选择USB Legacy支持选项(如果有该选项的话)。如果你的老式主板真的不支持USB设备,你只有去买一块USB连接卡,这就可以把USB设备添加到你的计算机里了。 让WINDOWS操作系统支持USB 现在的WINDOWS 98对很多外设都提供了全面的支持。只有WINDOWS 3.X及更早版本的WINDOWS及WINDOWS NT都不支持USB,如果你想查看你的计算机是否安装了USB控制器,可进入“控制面板”,双击其中的“系统”图标,然后选择“设备管理器”选项卡。你就会看到“通用串口总线控制器”点击该控制器,你会看到两个项目:Universal Host Controller和Unicersal Root Hub。如果你还没有安装USB的驱动程序,则从你的WINDOWS安装光盘的\OTHER\USB文件夹中找到这些项目,双击Usbsupp.exe即可安装USB驱动程序。 让计算机连接更多的USB设备 一般的计算机只有两个USB端口,如果你想连接更多的USB外设,则利用USB集线器,该集线器可提供多个USB端口,你只要将该集线器直接插入你的计算机即可。有了足够的USB端口,你就可以最多连入127个USB设备。 USB为计算机外设输入输出提供了新的接口标准。它使设备具有热插拔,即插即用,自动配置的能力,并标准化设备连接。USB的级联星型拓扑结构大大扩充了外设数量,使增加,使用外设更加便捷,快速。而新提出的USB2.0标准更是将数据传输速率提高到了一个新的高度,这是具有美好的应用前景。 如今,人们购买的所有计算机的后面几乎都配有一个或多个通用串行总线接口。通过这些USB接口,您可以将从鼠标到打印机的各种设备连接到计算机上,既方便又快捷。此外,操作系统也支持USB,这使设备驱动程序的安装变得快捷而简单。与其他将设备与计算机相连的方式相比(包括并行接口、串行接口以及您在计算机机箱内安装的特殊卡),USB设备真是简单至极! 在本文中,我们将从用户和技术这两个角度来介绍USB接口。您将了解到USB系统为何如此灵活,它如何能够支持如此多的设备。您将会切实感受到,这真是一种神奇的系统! 如果您使用计算机已有两三年时间,那么一定知道,过去将设备连接到计算机上是一件让人十分头痛的事情,而这也正是通用串行接口在努力解决的问题。 过去,打印机都是连接到并行打印接口,而大多数计算机只有一个接口。诸如Zip驱动器之类的装置需要与计算机建立高速连接,它们也要使用并行接口,但通常成功率很低,且速度不快。 调制解调器使用的是串行接口,而一些打印机以及诸如掌上电脑和数码相机等的特殊设备也使用串行接口。大多数计算机最多有两个串行接口,而且在多数情况下它们的速度都很慢。 那些需要高速数据传输的设备会被制成专用硬卡,这就需要将它们装在计算机机箱的卡槽中。遗憾的是,这些卡槽的数目也是有限的,而且为某些硬卡安装驱动程序非常复杂,您恐怕需要请一位专家帮忙才能搞定。 USB的目标就是结束这些令人头痛的麻烦。通用串行总线提供的方法单一、规范且易于使用,它可以将多达127台设备连接到计算机上。 如今生产的所有外设几乎都配有USB端口。下面列举了一些现在可以买到的USB设备: 打印机 扫描仪 鼠标 操纵杆 模拟飞行操纵杆 数码相机 网络摄像机 科学数据采集设备 调制解调器 扬声器 电话 视频电话 存储设备,如Zip驱动器 网络连接 将USB设备连接到计算机上非常简单——您只需在计算机上找到USB接口,然后插入USB接头即可。 如果是一个新设备,操作系统会自动检测到它,并寻找驱动程序。如果设备已经安装,则计算机会激活该设备,并开始与之对话。此后,您便可以随时连接和断开USB设备了。 许多USB设备都自带内置线缆,线缆上配有“A”接口。如果未提供内置线缆,则设备上会有一个用于插入USB“B”接头的插孔。 USB标准使用“A”和“B”两种接头以避免产生混淆: “A”接头表示“向上”连接至计算机。 “B”接头表示“向下”连接到各个设备。 通过在上端和下端分别使用不同的接头,就不会产生混淆了。您只需将USB线缆的“B”接头连接到某台设备,而将“A”接头插入“A”插孔就行了。 如今出售的大部分计算机都会提供一到两个USB插孔。目前市场上提供的USB设备很多,计算机上的插孔很快就会被用光了。比如在一台计算机上,有一台USB打印机、一台USB扫描仪、一个USB网络摄像机和一个USB网络连接。但这台计算机上只有一个USB接口。很明显,现在的问题是“应该如何将这些设备都连接到计算机上”? 解决问题的简单办法就是购买一个价格不高的USB集线器。USB标准可支持多达127台设备,而USB集线器也属于该标准的一部分。 集线器通常具有4个新端口,但也可能更多。您需要将集线器插入计算机,然后将设备(或其他集线器)插入集线器。通过将集线器串连在一起,您可以在一台计算机上建立数十个可用的USB端口。 集线器有的带电源,也有些不带电源。正如您将在下一页所看到的那样,USB标准允许设备从它们的USB连接中获取电能。显而易见,打印机或扫描仪这样的高功率设备将配有自己的电源,而像鼠标和数码相机这样的低功率设备则会靠总线供电,以简化自身的构造。这些电能(5伏电压可提供高达500毫安的电流)都来自计算机。如果您拥有许多自已供电的设备(如打印机和扫描仪),那么就不需要为集线器提供电源了——由于任何连接到该集线器的设备都不再需要额外电源,因而计算机自身便足以满足集线器的需要了。反之,如果您有许多像鼠标和摄像机之类本身不提供电源的设备,则可能需要一个有电源的集线器。集线器配有自己的变压器,它会为总线提供电源,以使设备不会加重计算机供电的负担。 启动主机后,它会查询所有与总线相连的设备,并为每个设备分配一个地址。这个过程称为枚举——在将设备连接到总线时,主机也会枚举它们。此外,主机还会查出每台设备要执行的数据传输类型。 中断 ——鼠标或键盘等设备发送的数据非常少,它们会选择中断模式。 批量 ——打印机等设备接收的数据包含在一个大的数据包中,它们会使用批量传输模式。这种模式会将大块数据发送到打印机(块的大小为64个字节),并对这些数据进行验证,以确保它们的正确性。 同步 ——流式设备(如扬声器)都使用同步模式。在这种模式下,设备与主机之间的数据是实时传输的,其间没有数据纠正过程。 此外,主机还可以通过 控制数据包 发送命令或查询参数。 列举设备时,主机会一直跟踪所有同步和中断设备所请求的总带宽情况。如果总带宽为480Mbps(兆比特每秒),这些设备最多可占用90%的带宽。在用完这部分带宽后,主机就会拒绝访问任何其他同步或中断设备,控制数据包和用于批量传输的数据包将使用剩下的带宽(至少有10%)。 通用串行总线会将可用带宽分成多个帧,而主机则控制着这些帧。每个帧包含1,500个字节的数据,每隔一毫秒就会启动一个新帧。在形成帧的过程中,将为同步和中断设备分配一个槽,以便保证它们得到所需要的带宽。批量和控制传输将使用剩下的空间来传输数据。如果想了解更多信息,您可以查看本文末尾的技术链接,它们提供了大量的详细信息。 USB性能特点 通用串行总线具有以下性能特点: 计算机可以充当主机 。 主机上可以连接多达 127台设备 (可直接连接,也可以通过USB集线器连接)。 单根USB线缆可达5米之长;使用集线器后,设备最多可以在远离主机30米的地方工作,这相当于六根线缆的长度。 使用USB 2.0时,总线的最大数据传输速率可达到 每秒480兆比特 。 USB线缆包含两根电源线(一根电压为5伏的电线,另一根是地线)和一对用来承载数据的双绞线。 在电源线上,计算机在5伏电压下可提供高达500毫安的电流。 低功率设备(如鼠标)可以直接使用总线中的电流。高功率设备(如打印机)则配有自己的电源,总线只向它们提供很少一部分电能。集线器也自己有电源,能够直接为与之相连的设备供电。 USB设备都是 热插拔型的 ,这表示您随时都可以将它们插入总线和拔掉它们。 当计算机进入省电模式时,主计算机可以将许多USB设备置于 睡眠状态 。 与USB端口相连的设备依靠USB线缆来承载电源和数据。 USB线缆的内部构成:两根电源线,其中一根是电压为5伏的电线(红色),另一根是地线(棕色);一对用来承载数据的双绞线(黄色和蓝色)。该线缆还是屏蔽电缆。 USB 2.0 USB 2.0标准是USB 1.1的升级版本,于2000年4月推出。 USB 2.0( 高速USB )为多媒体和存储应用程序提供了额外带宽,其数据传输速度比USB 1.1快40倍。为了让消费者和制造商顺利实现这一过渡,USB 2.0具有完全的向前和向后兼容性,它不仅可以用于原来的USB设备,而且还能使用之前USB制造的线缆和接口。 USB 2.0支持三种速度模式(每秒1.5、12和480兆比特),这样它既可支持键盘和鼠标等低带宽设备,也可支持高分辨率的网络摄像机、扫描仪、打印机和高容量的存储系统等高带宽设备。随着USB 2.0的广泛应用,个人计算机(PC)领域的领导者可以加快新一代PC外设的开发,以跟上现有高性能PC的发展步伐。USB 2.0的传输速度也促进了新一代PC和应用程序的发展。除了改进功能和鼓励创新外,USB 2.0还提高了用户应用程序的效率,用户可以同时运行多个PC应用程序或高性能外设。