通用串行总线
维库,知识与思想的自由文库
|
两个B型USB连接器,mini和全尺寸的,侧视图和正视图,旁边是5美分做对照
通用串行总线,Universal Serial Bus (USB) 是连接外部设备的一个串口总线标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准(On-The-Go)使其能够用于在便携设备之间直接交换数据。
[编辑] 概述USB最初是由英特尔与微软公司倡導發起,其最大的特点是支持热插拔(Hot plug)和即插即用 (Plug&Play,PnP)。当设备插入时,主机枚举(enumerate)此设备并加载所需的驱动程序,因此使用远比PCI和ISA总线方便。 USB速度比并行端口(Parellel Bus,例如EPP、LPT)與串行接口(Serial Port,例如RS-232)等傳統電腦用標準匯流排快上許多。原标准中USB 1.1 的最大傳輸頻寬為 12Mbps,USB 2.0 的最大傳輸頻寬為 480Mbps。 USB的设计为非对称式的,它由一个主机(host)控制器和若干通过hub设备以树形连接的设备组成。 一个控制器下最多可以有5级hub,包括Hub在内,最多可以连接127个设备,而一台计算机可以同时有多个控制器。 和SPI-SCSI等标准不同,USB hub不需要终结器。 USB可以连接的外设有鼠标、键盘、游戏手柄、游戏杆、扫描仪、数码相机、打印机、硬盘和网络部件。对数码相机这样的多媒体外设USB已经是缺省接口;由于大大简化了与计算机的连接,USB也逐步取代并口成为打印机的主流连接方式。2004年已经有超过1亿台USB设备;到2005年显示器和高清晰度数字视频外设是仅有的USB未能染指的外设类别,因为他们需要更高的传输速率。 现标准中将UBS统一为USB2.0,分为:
[编辑] 标准USB实装论坛 (USB Implementers Forum(USBIF))负责USB标准制订,其成员包括苹果电脑、惠普、NEC、Microsoft和Intel。 USBIF于2001年底公布了2.0规范,之前还有0.9、1.0、和1.1,他们都是完全向后兼容的。On-The-Go Supplement to the USB 2.0 Specification的当前版本是1.0a。 USB的连接器分为A、B两种,分别用于主机和设备;其各自的小型化的连接器是Mini-A和Mini-B,另外还有Mini-AB的插口。 [编辑] 技术细节[编辑] 技术指标目前USB支持3种 数据信号速率,USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。USB-IF进行设备认证并为通过兼容测试并支付许可费用的设备提供基本速率(低速和全速)和高速的特殊商标许可。
[编辑] 机械和电气标准[编辑] 标准USB接口
USB信号使用分别标记为D+和D-的双绞线传输,它们各自使用半双工差分信号并协同工作,以抵消长导线的电磁干扰, [编辑] Mini USB接口
mini USB除了第4针外,其他接口功能皆與标准USB相同。第4针成为ID,在mini-A上连接到第5针,在mini-B可以悬空亦可连接到第5针。 [编辑] 编码方式USB标准采用NRZI方式(翻转不归零制)对数据进行编码。翻转不归零制(non-return to zero,inverted),电平保持时传送逻辑1,电平翻转时传送逻辑0。 [编辑] 软件架构
PCB mounting female USB connectors
一个USB主机通过hub链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个SD卡读卡器,USB的术语中设备(device)指的是功能(functions)。集线器(hub)由于作用特殊,按照正式的观点并不认为是function。 直接连接到主机的hub是根(root)hub。 [编辑] 端点设备/功能(和集线器)与管道pipe (逻辑通道)联系在一起,管道把主机控制器和被称为端点endpoint的逻辑实体连接起来。 管道和比特流(例如UNIX的pipeline)有着相同的含义,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。 端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能最多有32个活动管道,16个进,16个出。 (出( OUT)指离开控制器,而入(IN)指进入主机控制器。) 两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是2n字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一旦设备(功能)通过总线的hub附加到主机控制器,主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量,一般是通过轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。 为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(device descriptor),而设备描述符有若干配置描述符(configuration descriptors)。这些配置一般与状态相对应,例如活跃和节能模式。 。每个配置描述符有若干接口描述符(interface setting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(default interface setting)和可能多个替代接口设置(alternate interface settings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。 [编辑] HCD包含主机控制器和根HUB的硬件为程序员提供了由硬件实现定义的接口主机控制器设备 (HCD)。而实际上它在计算机是就是端口和内存映射。 1.0和1.1的标准有两个竞争的HCD实现。康柏的 开放主机控制器接口 (OHCI)和Intel的通用主机控制器接口 (UHCI) 。VIA威盛采纳了UHCI;其他主要的芯片组多使用OHCI。它们的主要区别是UHCI更加依赖软件驱动,因此对CPU要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此 USB-IF在USB 2.0的设计阶段坚持只能有一个实现规范,这就是扩展主机控制器接口 (EHCI)。因为EHCI只支持全速传输,所以EHCI控制器包括四个虚拟的全速或者慢速控制器。这里同样是 Intel和Via使用虚拟UHCI,其他一般使用OHCI控制器。 某些版本的Windows上,打开设备管理器,如果设备说明中是否有“增强”("Enhanced"),就能够确认它是2.0版的。而在Linux系统中,命令lspci能够列出所有的PCI设备,而USB会分别命名为OHCI、UHCI或者EHCI。 列出为16位地址的为EHCI,32位的为OHCI 命令lsusb能够显示所有USB设备的信息。命令dmesg能够显示OS启动时关于USB设备的信息。 [编辑] USB 封包格式USB 的封包格式和早期的互联网封包格式非常相似,要了解USB連接原理就一定要先了解封包格式。
[编辑] 设备分类依附在总线上的设备可以是需要特定的驱动程序的完全定制的设备,也可能属于某个设备类别。这些类别定义了某种设备的行为和接口描述符,这样一个驱动程序可能用于所有此种类别的设备。一般操作系统都为支持这些设备类别,为其提供通用驱动程序。 设备分类由USB设计论坛设备工作组决定,并分配ID。 如果一个设备类型属于整个设备,该设备的描述府bDeviceClass的域保存类别ID;如果它这是设备的一个界面,其ID保存在界面描述府的;bInterfaceClass域。他们都占用一个字节,所以最多有253种设备类别。(0x00和0xFF保留)。当bDeviceClass设为0x00,操作系统会检查每个接口的bInterfaceClass以确定其类别。 每种类别可选支持子类别(SubClass)和协议子定义(Protocol subdefinition)。这样可以用于主设备类型的不断修订。 常用设备类别和ID有:
[编辑] USB接头接头是由USB协会所指定,接头的设计一方面为了支持众多USB的基本需求,另一方面也避免以往许多类似串行接头所出现的问题。
USB 1.0, 1.1和2.0规范定义了2种类型的连接器链接设备和总线:A和B。 However, the mechanical layer has changed in some examples. For example, the IBM UltraPort is a proprietary USB connector located on the top of IBM's 笔记本电脑 液晶显示器。 It uses a different mechanical connector while preserving the USB signaling and protocol. Other manufacturers of small items also developed their own small form factor connector, and a wide variety of these have appeared. For specification purposes, these devices were treated as having a captive cable. An extension to USB called USB On-The-Go allows a single port to act as either a host or a device - chosen by which end of the cable plugs into the socket on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This facility targets units such as PDAs where the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance. USB On-The-Go has therefore defined two small form factor connectors, the mini-A and mini-B, and a hermaphroditic socket (mini-AB), which should stop the proliferation of proprietary designs. USB电缆最长允许5米,更长的距离需要HUB[1]. [编辑] 電源USB 接頭提供一組5伏特的電壓,可作為相連接USB設備的電源。實際上,設備接收到的電源可能會低於5V,只略高於4V。USB規範要求在任何情形下,電壓均不能超過5.25V;在最壞情形下(經由USB供電HUB所連接的LOW POWER設備)電壓均不能低於4.375V,一般情形電壓會接近5V。 一個 USB 的根集線器最多只能提供 500 mA 的電流。如此的電流已足以驅動許多電子設備,不過連接在總線供電HUB的所有設備,需要共享 500mA 的電流額度。一個由總線供電的設備可以使用到它所連接埠上允許輸出的所有電源。 總線供電的HUB可以將電源供給連接在 HUB 上的所有設備,不過 USB 的規範只允許總線供電的 HUB 下游串接一層總線供電的設備,因此,總線供電的 HUB 下游不允許再串接另一個由總線供電的 HUB。許多 HUB 有外加電源,因此可以提供電源給下游的設備,不會消耗總線上的電源。若設備需要的電壓超過5V,或是需要電流超過500mA,都需要使用外加電源。 When USB devices (including hubs) are first connected they are interrogated by the host controller, which enquires of each their maximum power requirements. The host operating system typically keeps track of the power requirements of the USB network and may warn the computer's operator when a given segment requires more power than is available (and will generally shut down devices or hubs in order to keep power consumption within the available resource). A number of devices use this power supply without participating in a proper USB network. The typical example is a USB-powered reading light, but fans, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are available. In most cases, these items contain no electronic circuitry, and thus are not proper USB devices at all. This can cause problems with some computers—the USB specification requires that devices connect in a low-power mode (100 mA maximum) and state how much current they need, before switching, with the host's permission, into high-power mode. Some devices intended for connection to laptops draw more power than is permitted by the specification for a single USB port; to avoid requiring an exernal power supply, these devices come with dual cables, and the user is instructed that the device must be plugged-into two USB ports. On a laptop with only two ports, this means only one such device can be used at a time, unless a powered hub is added. A number of peripherals for IBM laptops (now made by Lenovo) are designed to use dual USB connections in this manner. USB-powered devices attempting to draw large currents without requesting the power will not work with certain USB controllers, and will either disrupt other devices on the bus or fail to work themselves (or both). Those problems with the abuse of the USB power supply have inspired a number of April Fool hoaxes, like the introduction of a USB-powered George Foreman iGrill [2] and a desktop USB Fondue Set [3]. 相對於之前其他溝通介面僅能傳遞訊息資料,高電壓USB插槽本身還能提供5V(伏特)的主動電壓,及0.5A(安培)的電流,因此對於一些小型設備而言,可以不必再外接電源供應裝置,就能利用來自USB插槽的電力順利運作。利用這特點,也有廠商開發出適當的排線,將USB拿來當作供電插座般使用,例如作為行動電話的充電器,或是提供小型桌燈的電力需要,反而與原本用來連接電腦用的主要用途無關。 [编辑] 同类标准比较[编辑] Storage
闪存盘,典型的USB海量存储设备
USB 使用 USB mass storage device class标准实现Storage设备的连接.它最初被用于传统的磁盘和光盘驱动,但是现在已经扩展到支持大量不同的设备.USB不能用于计算机内部存储设备的基本总线: 像 ATA (IDE), Serial ATA (SATA), 和 SCSI. 然而, USB有一个非常重要的优点,那就是它能够在不关闭计算机的情况下动态的安装和删除USB设备,这使它成为一个有用的外部设备.今天,大量的生产商提供便携式USB移动硬盘或者一个空的,能够兼容内部驱动的盒子.这些内部驱动通常提供一个转换驱动接口,用以转换IDE, ATA, SATA, ATAPI, 或者 SCSI 到USB port。对于用户来讲,就像连接了一个内部的驱动。其他的竞争标准是eSATA 以及 Firewire. [编辑] 人机接口设备(HID)USB没有完全取代AT键盘接口和PS/2键盘鼠标接口,但是事实上现在所有主板制造商都提供至少多于一个USB接口。到2004年,大多数新主板都配有多个高速USB 2.0接口,尽管有些是内置在主板上的,需要使用电缆连接到位于主机前面板或者侧面的接口。同样的对游戏操纵杆,手柄,写字板和其他人机接口设备的支持逐渐从原声卡上的“MIDI/游戏”接口和PS/2接口上转移到USB上。现在带着USB转PS/2接口转换插头的USB键盘鼠标相当普遍,他们可以使用任意2种接口之一。 使用专用键盘鼠标的苹果电脑1999年一月也开始使用USB接口。最初的IPOD只有IEEE1394接口,後來在3G的IPOD,蘋果電腦開始支持USB2.0,但是還不能用作充電,現在的IPOD,已經全面兼容USB與IEEE1394,兩者均可充電以及連接計算機。 [编辑] 历史[编辑] USB
[编辑] USB On-The-Go Supplement
[编辑] 扩展PictBridge标准可以使得消费者使用的图形设备彼此互通(例如数码相机直接通过打印机输出)。一般它使用USB做为其底层通信协议。 Microsoft's Xbox game console uses standard USB 1.1 signalling, but features a proprietary connector rather than the standard USB connector. Similarly IBM UltraPort uses standard USB signalling but provides more power to devices, and uses a proprietary connection format. [编辑] 无线USB正在开发中的一种无线数据传输标准。[4]设计标准:在3米内达到480Mbp的传输速率,在10米内达到110Mbps的传输速率。 Wireless USB is a promising future standard being developed to extend the USB standard while maintaining backwards compatibility with USB 1.1 and USB 2.0 on the protocol level. The USB Implementers Forum is working on a wireless networking standard based on the USB protocol. Wireless USB is intended as a cable-replacement technology, and will use Ultra wideband wireless technology for data rates of up to 480 Mbit/s. Wireless USB is well suited to wireless connection of PC centric devices, just as Bluetooth is now widely used for mobile phone centric personal networks (at much lower data rates). See http://www.usb.org/developers/wusb/ for more details. [编辑] 参见
[编辑] 外部链接
|



