通用串行总线 (USB) 外设接口已广泛应用于所有个人计算平台及众多工业和基础设施平台。不过,与此同时,人们对给定应用适用的 USB 版本,如 USB 1.0、USB 1.1、USB 2.0、On-the-Go (OTG)、无线 USB (WUSB) 等的规范还不太清楚。随着 USB 1.1 规范的发布,以及 Microsoft 操作系统为这一标准提供原生支持,这促使 USB 主机接口在 PC 中快速普及,同时也推动众多传统接口,如串行 (RS-232)、鼠标和键盘 (PS-2) 及并行端口(打印机使用的Centronix 与 IEEE-1284)等,向这种新型通用接口标准过渡。随着可支持更高速度连接的 USB 2.0 规范的发布,USB外设的数量出现激增,从而大幅改善了用户的使用体验。本文的上半部分将讲述 USB 标准的发展过程,下半部分则将探讨其常见的应用,并介绍给定应用采用哪种 USB 标准最好。
为了充分了解为什么 USB 已成为我们所不可或缺的通用接口,我们就必须回过头来了解个人电脑早期的发展情况,即上世纪 80 年代的情况。对我们这些上了一定年纪的人来说,应该还记得当时最早的 PC 和 DOS 操作系统,既没有图形用户接口 (GUI),也没有万维网的存在。这种系统架构和使用模式仅支持很有限的“外设”。大多数计算机都不自带硬盘驱动器,更别说支持什么外部存储设备了。外部网络连接也不存在,甚至根本不知道什么是网络。唯一所需的人机接口设备就是键盘,而键盘有自己专用的连接端口;当时唯一常见的其它外设就是打印机,通常采用某种并行端口连接。随着 Windows? 操作系统 GUI 的推出,人们需要另一种输入设备,也就是 MAC 操作系统已经使用的那种设备。这种最常见的人机互动应用点击设备就是鼠标。随着新的连接技术的出现,以及用户联网的要求,推动 PC 开始采用新的连接端口,即通常所说的串行端口或 COM 端口。随着时间的推移,大多数 PC 都针对键盘和鼠标提供专门的接口,即 P/S-2 端口。
并行、串行及 P/S-2 等上述常见的外设端口存在三大不足之处。图 1.1 (PS/2 与 COM 断口)和图 2.1 (打印机)显示了机箱背后各种端口的典型特性。首先,这些端口不支持端口扩展,这限制了接入 PC 的外设数量。在使用这些端口的情况下,为了增加连接点,最终用户一是要购买支持所需端口的插卡;二是要打开机箱;三是要安装插卡;四是要关闭机箱;五是要重新配置系统,让系统识别新增的端口,避免出现冲突。其次,每种端口的性能有限。表 1.1 总结了上述每种端口的性能。第三大不足则在于缺乏标准连接方法。不同的外设制造商必须自己决定到底使用哪种端口,还要提供相应的驱动程序,确保硬件能在 PC 系统中使用,这也会让最终用户头疼。

图 1.1:机箱背面的 PS/2 与 COM 端口

图 2.1:机箱背面的并行端口
|
连接/端口 |
最高速度 |
接头引脚 |
|
标准并行端口 |
0.115 MBps |
25 |
|
增强型并行端口 |
3.0 Mbps |
25 |
|
扩展功能端口 |
3.0 Mbps |
25 |
|
标准 RS-232 COM 端口 |
.03 Mbps |
9 |
|
PS-2 端口 |
6 | |
|
USB 2.0 |
60 Mbps |
4 |
表 1.1:不同端口功能总结
我们将时间快进到上世纪 90 年代的初中期,越来越多的用户希望增加 PC 的外设。在端口选择方面,如上所述,用户遇到了不少问题。此外,外设连接多种多样,这也给普通用户制造了麻烦。大多数人不知道使用哪种端口,也不了解各端口性能的局限性。在此情况下,部分业界领先企业在Intel 的带领下开始一起定义新的通用 PC 外设连接标准,旨在取代所有传统连接标准,解决以上不足问题。
他们定义了一种简单的四线接口,其主要目的就是简化 PC 用户的使用。这种标准定义了一种点对点、主机到目标的架构。在规范中还包括了 USB 集线器设备的定义,这样就能支持总线扩展,能连接到更多的 USB 目标设备。这一标准制定的目的,就是简化外设与 PC 的连接,增加 PC 支持的外设数量,同时确保用户根本不必考虑到底该使用什么接口。此外,通过定义主机到目标的架构,目标实施的成本也能降低,因为大多数连接处理工作都由主机来完成,即通常用PC中的 CPU 控制进行。
如前所述,USB 是一种以主机为中心的总线,换言之,主机必须启动包括接收和发送在内的所有传输。该规范定义了三种基本的设备类型:一是主机控制器;二是集线器;三是功能设备(也称作外设或目标设备)。以下我们将详细介绍这三类设备。除了这三种基本类型之外,我们还定义了另外两类设备。一是复合设备,即同时包括集线器和集成式外设的设备;二是组合设备,即同一设备集成多种类型外设功能的设备。
物理互连采用多层星形拓扑(见图 3.1),集线器位于每个星形连接的中心。每个连线段(wire segment)是主机到集线器、主机到功能设备、集线器到集线器、集线器到功能设备间的点对点连接。由于集线器时序限制和线缆传输时间,因此所允许的层数最多为 7 层(包括根层(root tier))。请注意,在 7 层中,主机到任何设备的通信路径内只能支持 5 个非根层集线器。复合设备(见图 4.1)包括两层,因此如果它连接在第 7 层上就不能工作。只有功能设备能在第 7 层上工作。USB 系统中设备所用的寻址技术使一台主机最多可连接 127 台设备。这 127 台设备可采用任意集线器或外设组合。这 127 台设备中包括两台或更多复合设备或组合设备。

图 3.1:多层星形拓扑的物理互连
在制定规范时,我们应确保任何 USB 系统中只有一台主机。USB 规范不旨在作为一种网络架构,它的目的就是实现外设到 PC 的简单互连。主机可以是硬件、固件或软件的组合。目前电脑中最常见的 USB 主机实施方案是所谓核心逻辑芯片组的一部分。这种主机控制器设备采用 PC CPU 的计算功能,用系统存储器支持数据存储与移动,并通过 PC 操作系统实现整体实施。所有主机都必须在系统中集成根集线器。主机主要负责以下工作:
大多数操作系统现在还包括一系列“类驱动程序”,可便于外设的连接。类驱动程序使外设厂商能提供操作系统软件原生支持的产品,这样就节约了开发驱动程序的成本,并能为新的主机系统提供驱动程序,而且新的存储设备推出后,外设直接就能支持驱动程序。大多数操作系统支持的一些常见的类驱动程序,其中包括音频类、人机接口设备 (HID) 类、影像类、海量存储类、打印机类以及视频类等。目前许多厂商都利用上述类驱动程序来实现产品功能,不过他们同时也提供定制驱动程序或应用软件,以支持类驱动程序规范之外的更多功能。
最简单的方法,就是将 USB 集线器设想为一种分离器和中继器的统一体。集线器提供USB 设备与主机之间的电子接口。集线器直接负责支持 USB 的众多属性,给用户提供友好的界面并避免遇到复杂的使用问题。除为主机实施提供接口外,集线器还能够提供更多接口(充分发挥分离器功能),而且还能将上游端口(连接到主机)上的数据传输到下游端口(连接到目标设备),从而发挥中继器的作用。集线器负责检测下游端口上的连接和断连事件,并向主机报告有关信息。集线器必须能支持下游端口上连接的任何速度规范的各类 USB 外设(详见以下有关内容)。集线器还必须能够检测并恢复由于目标设备错误状态(error condition)造成的任何总线故障。
此外,集线器还负责管理下游端口的供电,向主机报告供电问题,并向用户发出通知。有关规范制定了两种集线器供电类型,一种是总线供电;一种是自供电。
总线供电集线器从上游端口获得所有电力,不过加电时只能从上游连接获得最大 100mA 的电流,经过配置,最终获得的电流不超过 500mA。全面配置后,要在集线器、不可移除的功能设备(复合设备)及外部端口间分配电力。总线供电集线器需要为每个下游端口提供 100mA的电流,这样,在总线供电集线器上,能给下游供电的外部(用户可以直接使用的)端口不能超过 4 个。由于每个端口电流为 100mA,共有四个端口,那么下游连接的可用电流就是 400mA。要是再增加第五个下游端口的话,这个端口也需要100mA的电流,这就造成集线器本身没有电流可用了。总线供电集线器可以提供 4 个外部下游端口以及一个或更多内部端口,但前提是集线器本身以及连接到内部端口上的所有功能设备的耗电总和不到100mA。
自供电集线器从局部电源获得电力,比如墙上变压器或其它局部电源。其电力并不来自上游连接。自供电集线器可从上游端口获得最高 100mA 的电流,这样在集线器其它部分断电时,该端口也能发挥作用。自供电集线器应为每个下游端口提供 500mA 的电流。尽管规范并没有限定自动电集线器可支持的下游端口数量,但在实践中,通常不超过7个端口,这主要是出于供电方面的考虑。7 端口集线器的电源电流必须超过3.5A(共 7 个端口,每个端口电流500mA)才能确保集线器正常工作。
我们大多数人都是通过 USB 外设熟悉 USB 的。目前常见的 USB 外设包括键盘、鼠标、打印机、闪存棒、外部驱动、便携式音频播放器和数码相机 (DSC) 等。就规范而言,外设可分为执行特定功能的逻辑或物理外设。从最基本的角度说,外设可以看作是单个的硬件组件,如闪存设备。从高级角度说,外设可以是执行功能的一系列硬件组件,如包括键盘、生物识别指纹读取器和滚动设备在内的人机接口设备。
规范定义了外设支持的四种数据传输。控制传输用于为主机提供有关外接设备类型与功能的信息。所有设备都必须支持控制传输。另外三种传输类型分别为中断传输、批量传输及同步传输,可根据应用的数据处理方式进行选择。如果外设需要被主机定期轮询,检查是否需向主机发送数据,那么就应采用中断传输。键盘、鼠标和游戏杆就是采用中断传输的典型设备;如果数据完整性非常重要,而不太在意数据时延,那么就要用批量传输在主机系统与外设之间传输数据。此外,这种传输还支持纠错功能,在检查到错误时可以重新传输。打印机、扫描仪和存储设备都是采用批量传输机制的典型设备;同步传输用于“实时”数据的转移。在这种情况下,数据流比数据的准确性更为重要,同步传输不支持纠错和重新传输功能。网络摄像头、扬声器和扩音器等是采用同步传输机制的典型应用。
与集线器一样,这种规范也定义了两种通用外设电源类,分别为总线供电外设和自供电外设。总线供电外设进一步分为低功耗总线供电功能设备和高功耗总线供电功能设备。在两种情况下,设备所有用电均来自上游连接。低功耗总线供电设备随时都会获得 100mA 电流,而高功耗总线供电设备可在配置前获得 100mA电流,在工作期间则能得到规范要求的最大 500mA 电流。自供电功能设备的条件限制与自供电集线器一样,其电力并不来自上游连接。自供电功能设备可从上游端口获得最高 100mA 的电流,这样在功能外设其它部分断电时,该USB 接口也能发挥作用。所有其它电力都用外部电源提供。此外,外设必须支持低功耗休眠模式,使电流消耗低于 500uA,这样计算机就能将设备从挂休眠模式中唤醒。
近期,支持 USB 功能的电池供电设备广泛推广,主要是便携式媒体播放器大幅流行,这就向 USB电源管理提出了新的挑战。如果设备通过 USB 连接充电的话,那么这一问题就会变得尤其突出。电池供电设备必须遵循标准外设的规则。这种设备如何报告自己,将决定它们能从上游连接获得多少充电电流,也包括能否支持休眠模式。这方面的技术挑战甚至高过电池完全放电后的设备需要高电流来启动充电方面的难题。
现在,您已经了解了USB规范发展的一些历史背景,接下来我们不妨来看看该技术目前的发展状况。目前常用的标准为USB 1.1、USB 2.0、USB-OTG、WUSB 和 OTG。在许多情况下,这些不同标准会使工程师和最终用户产生混淆。最早的 USB 1.0 规范发布于 1996 年 1 月,定义了两种设备速度,即 1.5 Mbps 的低速 (LS) 和 12 Mbps 的全速 (FS)。该规范在 1998 年 7 月经过修订,随后发布了 USB 1.1 规范,实现了较大升级改进。2000 年 4 月,该规范又进行了大规模更新,随后发布了 USB 2.0。这一版本也是现行版本,全面超越了 USB 1.1。USB 2.0 的优势在于,它能全面向后兼容于 USB 1.1 设备,同时它也增加了需求极高的第三种设备速度,即480 Mbps的高速,同时也能继续支持低速和全速模式。2003 年 7月,USB OTG 文件发布,定义了面向便携式电池供电设备的新一类设备。最后,于 2005 年 5 月,发布了 Wireless USB 规范。
USB 应用厂商论坛 (USB-IF) 建立了认证徽标许可证计划(Certified Logo License Program),确保提高最终用户的使用体验。为了有权使用认证徽标,设备必须通过 USB-IF 的认证测试,其中包括规范兼容性测试和操作性测试。对标准的 USB 设备来说,共有两种认证徽标,第一种(见图4.1)用于最高数据传输速度支持低速或全速标准的设备;第二种(见图 5.1)用于最高数据传输速度支持高速标准的设备。

图 4.1:最高数据传输速度支持低速或全速标准设备的认证徽标

图 5.1:最高数据传输速度支持高速标准设备的认证徽标
USB OTG 是 USB 2.0 规范的补充标准,定义了一种新的设备类型。这类设备旨在扩展外设产品的功能,增加了有限的主机功能。如这一标准的名称所示,该规范的最初目标就是面向便携式设备,让最终用户在没有电脑的时候也能实现数据共享。比方说,在两部 PDA 或手机间共享联系人信息,在 DSC 和拍照手机之间共享照片,或者直接从 DSC 或 PDA 进行打印。
和标准的 USB 一样,OTG 也是一种点对点、以主机为中心的总线,不旨在成为一种点对点网络连接。OTG 产品连接到 PC 等标准的 USB 主机时,必须作为标准的外设工作。OTG 补充标准要解决的主要问题,就是设备在作为主机时能发挥什么作用。就像标准的 USB 主机端口(或下游集线器端口)一样,OTG 主机必须提供电力。不过,所需的供电电流仅限于 8 mA。与 PC 中的标准 USB 主机不同,OTG 设备不能为未识别设备简单添加驱动程序。因此,OTG 设备必须提供所谓的目标外设表,这样,设备制造商就能明确到底支持哪些设备。该规范还要求提供某种消息显示功能,这样就能告诉最终用户是否插入了不能支持的设备,该设备不能工作。这种消息可以通过简单的 LED 显示,也能以复杂的文本方式显示。此外,OTG 补充标准还定义了两种新协议。主机交流协议 (HNP) 定义了主机和设备角色间动态转换的方法,而会话请求协议 (SRP) 则提供了主机设备自行决定总线供电开关的方法。
与标准的 USB 一样,USB-IF 也为 OTG 设备提供了认证徽标许可证计划 (Certified Logo License Program)。图 6.1 显示了最高数据传输速度支持低速或全速标准的 OTG 设备认证徽标,而图 7.1 则显示了支持高速 OTG 连接的设备认证徽标。

图 5.1:OTG 设备的认证徽标许可证计划

图 6.1:高速设备的认证徽标许可证计划
Certified WUSB是 USB 规范的最新版本。它定义了一种无线接口,可以将有线 USB 连接技术的高速和安全性与无线技术的易用性相结合。Certified WUSB 将通过 WiMedia Alliance 开发的常见的 WiMedia MB-OFDM 超宽带 (UWB) 无线电平台来支持稳健的高速无线连接。过去几年来,已经推出了一些 WUSB 设备,他们采用专有的低带宽连接方式,主要面向键盘和鼠标等 HID 设备。这种连接与 USB-IF 开发和推广的 Certified WUSB 规范并不相同。此外,近期媒体还介绍了一种极具竞争力的 UWB 技术,正作为无线缆 USB 技术得到推广宣传。不过,这种技术也和 Certified WUSB 不同,需要采用一种极具竞争力的无线电技术。这两种实施方案互相之间并不兼容。UWB 技术提供了一种高带宽、低成本、低功耗的解决方案,设备能够实现小型化。Certified WUSB 的优势则在于:
USB-IF 也提出了 Certified WUSB 产品的认证徽标许可证计划,最终用户通过该徽标可识别出通过互操作性和兼容性认证的产品。图 7.1为 WUSB 徽标。

图 7.1:WUSB 徽标
至此,本文回顾了 PC 外设发展的简史、对通用接口的需求以及 USB 规范的演进。我们还讨论了 USB 规范本身及其对最终用户使用体验的影响。最后,我们还回顾了USB 规范发展的过程,并介绍了目前普遍使用的几种不同的 USB 版本。在第二部分中,我们将探讨几种常见应用,并介绍各个应用最适合采用哪种版本的 USB。
Dan Harmon 过去六年来一直担任德州仪器 (TI) 通用接口连接产品部的产品线市场营销经理。其在 TI 工作的 20 年间,成功设计了夜视 FLIR 系统,并曾担任 CCD 影象产品部的相机设计工程师,随后成为 CCD 产品市场营销工程师。Dan Harmon 自代顿大学(University of Dayton)获得电子工程学士(BSEE)学位,并自得克萨斯大学阿灵顿分校(University of Texas in Arlington)获得电子工程硕士(MSEE)学位。Dan 的电子邮件为:dharmon@ti.com。
TM — 所有商标均为其各自所有者的财产。
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。