USB

title: 概述.
content: USB最初是由英特尔与微软倡导发起,最大的特点是尽可能得实现热插拔和即插即用。当设备插入时,主机枚举到此设备并加载所需的驱动程序,因此其在使用上远比PCI和ISA等总线方便。  USB在速度上远比并行端口(例如EPP、LPT)与串行接口(例如RS-232)等传统电脑用标准总线快上许多。USB 1.1(USB 2.0 FullSpeed)的最大传输速率为12Mbps,USB 2.0(USB 2.0 HiSpeed)为480Mbps,USB 3.0(USB 3.2 Gen1) 为 5Gbps,USB 3.1(USB 3.2 Gen2x1) 为 10Gbps,而USB 3.2(USB 3.2 Gen2x2)更达20Gbps,以及近期发表的USB 4.0其速度可达40Gbps。  USB的设计为非对称式的,它由一个主机控制器和若干通过集线器设备以树形连接的设备组成。一个控制器下最多可以有5级Hub,包括Hub在内,最多可以连接128个设备,因为在设计时是使用7位元寻址字段,二的七次方就等于128,一般人说USB连接127个是指连接(某一设备)时需扣除一个连接主机的USB接头,而一台计算机可以同时有多个控制器。和SPI-SCSI等标准不同,USB集线器不需要终结器。  USB可以连接的外设有鼠标、键盘、游戏手柄、游戏杆、扫描仪、数码相机、打印机、硬盘和网络等部件。对数码相机这样的多媒体外设USB已经是缺省接口;由于大大简化与计算机的连接,USB也逐步取代并行接口成为打印机的主流连接方式之一。2004年已经有超过1亿台USB设备;到2007年时,高清晰度数字视频外设是仅有的USB未能染指的外设类别,因为他需要更高的传输速率,不过USB3.1和2019年USB4的问世,高分辨率数码影片外设和外接式显卡也能在USB播放。  现USB标准中,按照速度等级和连接方式分为以下七种版本。注意USB-IF目前正式的主版本号只有USB 2.0和USB 3.2两个。
title: 标准.
content: USB开发者论坛负责USB标准制订,其成员包括:苹果电脑、惠普、NEC、微软和英特尔。  2001年底,英语:USB-IF公布英语:USB 2.0规范,与之前的英语:USB 0.9、英语:USB 1.0和英语:USB 1.1一样,该规范完全向下兼容。随后,英语:USB-IF公布英语:USB On-The-Go(英语:USB OTG,当前版本:英语:1.0a)作为英语:USB 2.0规范的补充标准,使其能够用于在便携设备之间直接交换数据。  USB的连接器分为A、B两种,分别用于主机和设备;其各自的小型化的连接器是英语:Mini-A, 英语:Mini-B 和 英语:Micro-A, 英语:Micro-B,另外还有英语:Mini-AB(可同时支持英语:Mini-A及英语:Mini-B)的插口。USB 3.1版本中引入了支持正反面不区分插入的C型。
title: 技术细节.
title: 技术指标.
content: 目前USB支持5种数据信号速率,USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。USB-IF进行设备认证并为通过兼容测试并支付许可费用的设备提供基本速率(低速和全速)和高速的特殊商标许可。
title: 机械和电子标准.
title: 标准USB接口.
content: USB信号使用分别标记为D+和D- 的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。
title: Mini USB接口.
content: 英语:Mini USB除了第4针外,其他接口功能皆与标准USB相同。第4针成为ID,地线在mini-A上连接到第5针,在mini-B可以悬空亦可连接到第5针。
title: Micro USB接口.
content: 2007年1月4日,USB实装论坛颁布英语:Micro-USB的插头标准。该标准将在许多新型智能手机和PDA上替代英语:Mini-USB。英语:Micro-USB插头的插拔寿命为10,000次,比英语:Mini-USB插头高度减半,宽度相差无几。OMTP组织最近宣布,英语:Micro-USB将成为移动设备数据和电源的标准接口。  2009年2月17日,全球行动通讯联盟协会宣布在2012年前将使用英语:Micro-USB作为全球统一的标准充电器规格。首批签署协议的厂商包括:诺基亚、乐金、摩托罗拉、三星、索尼移动、美国电话电报公司、法国电信、西班牙电信、T-Mobile与沃达丰。
title: 编码方式.
content: USB使用NRZI编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转。为了防止出现过长时间电平不变化现象,在发送数据时采用位填充处理。具体过程如下:当遇见连续6个高电平时,就强制插入一个0。经过位填充后的数据由串行接口引擎(SIE)将数据串行化和NRZI编码后,发送到USB的差分数据线上。接收端完成的过程和发送端刚好相反。
title: 软件架构.
content: 一个USB主机通过Hub链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个SD卡读卡器,USB的术语中设备(Device)指的是功能(Functions)。集线器(Hub)由于作用特殊,按照正式的观点并不认为是Function。直接连接到主机的Hub是根(root)Hub。
title: 端点.
content: 设备/功能(和集线器)与管道Pipe(逻辑通道)联系在一起,管道把主机控制器和被称为端点Endpoint的逻辑实体连结起来。管道和比特流(例如UNIX的Pipeline)有着相同的含意,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。  端点(和各自的管道)在每个方向上按照0-15编号,因此一格设备/功能最多有32个活动管道,16个进,16个出。(出(OUT)指离开控制器,而入(IN)指进入主机控制器。)两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是formula_1字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。  一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个USB设备至少有两个端点/管道:他们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为4类:  一旦设备(功能)通过总线的Hub附加到主机控制器,主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量,一般是通过轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。  为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(Device Descriptor),而设备描述符有若干配置描述符(Configuration Descriptors)。这些配置一般与状态相对应,例如活跃和节能模式。每个配置描述符有若干接口描述符(Interface Setting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(Default Interface Setting)和可能多个替代接口设置(Alternate Interface Settings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。
title: HCD (Host Controller Driver).
content: 包含主机控制器和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,列出为32位地址的为EHCI,16位的为OHCI。命令lsusb能够显示所有USB设备的讯息。命令dmesg能够显示OS启动时关于USB设备的讯息。
title: USB封包格式.
content: USB的封包格式和早期的因特网封包格式非常相似,要了解USB连接原理就一定要先了解封包格式。
title: 设备分类.
content: 依附在总线上的设备可以是需要特定的驱动程序的完全定制的设备,也可能属于某个设备类别。这些类别定义设备的行为和接口描述符,这样一个驱动程序可能用于所有此种类别的设备。一般操作系统都为支持这些设备类别,为其提供通用驱动程序。  设备分类由USB设计论坛设备工作组决定,并分配ID。  如果一个设备类型属于整个设备,该设备的描述符的bDeviceClass域保存类别ID;如果它这是设备的一个接口,其ID保存在接口描述符的bInterfaceClass域。他们都占用一个字节,所以最多有253种设备类别。(0x00和0xFF保留)。当bDeviceClass设为0x00,操作系统会检查每个接口的bInterfaceClass以确定其类别。  每种类别可选支持子类别(SubClass)和协议子定义(Protocol subdefinition)。这样可以用于主设备类型的不断修订。  常用设备类别和ID有:
title: USB接头.
content: 接头是由USB协会所指定,接头的设计一方面为了支持众多USB的基本需求,另一方面也避免以往许多类似串行接头所出现的问题。
title: 电源.
content: USB接头默认提供一组5伏特的电压,可作为相连接USB设备的电源。实际上,设备接收到的电源可能会低于5V,只略高于4V。通过USB PD3.0、QC4等快速充电协议,现有USB接口的最大的可以达到20V,最低3V。  一个USB的HUB最多只能提供500 mA的电流。如此的电流已足以驱动许多电子设备,不过连接在总线供电HUB的所有设备,需要共享500mA的电流额度。一个由总线供电的设备可以使用到它所连接埠上允许输出的所有电源。  USB-IF规范1.1版定义USB埠最高供电可达到1.5A/1500mA,而最新的1.2版规范更是修正为最大5A/5000mA的供电,但是总和也不得超过5A。  总线供电的HUB可以将电源供给连接在HUB上的所有设备,不过USB的规范只允许总线供电的HUB下游串接一层总线供电的设备,因此,总线供电的HUB下游不允许再串接另一个由总线供电的HUB。许多HUB有外加电源,因此可以提供电源给下游的设备,不会消耗总线上的电源。若设备需要的电压超过5V,都需要使用外加电源。  相对于之前其他沟通接口仅能传递讯息资料,高电压USB插槽本身还能提供5V(伏特)的主动电压,及0.5A(安培)的电流,因此对于一些小型设备而言,可以不必再外接电源供应装置,就能利用来自USB插槽的电力顺利运作。利用这特点,也有厂商开发出适当的排线,将USB拿来当作供电插座般使用,例如作为移动电话的充电器,或是提供小型桌灯及电风扇等的电力需要,反而与原本用来连接电脑用的主要用途无关。
title: 同类标准比较.
title: USB大容量存储.
content: USB使用USB大容量存储设备标准实现Storage设备的连接。它最初被用于传统的磁盘和光盘驱动,但是现在已经扩展到支持大量不同的设备。  USB有一个非常重要的优点,那就是它能够在不关闭电脑主机电源的情况下动态的安装和删除USB设备,这使它成为一种有用的外部设备。  在市面也可以找到USB 3.0 Dongle此类小型可插拔式的移动设备,尺寸如同随身碟一样迷你,有厂商推出USB接口的Wi-Fi/蓝牙无线Dongle,只要将此Dongle插入液晶电视上,即可透过无线连接方式,将使用者手机、平板、笔电中的影片、照片分享到液晶电视上观看,市面上已有厂商将Android操作系统直接写入Dongle,成为多功能电视棒的产品。  相关存储产品包括:主机板、磁盘阵列卡、硬盘外接盒、磁盘阵列系统、NAS网路储存设备、硬盘外接座等等。
title: 人机接口设备(HID).
content: USB没有完全取代PS/2键盘鼠标接口,但目前许多主板都取消了PS/2接口。  使用专用键盘鼠标接口的苹果电脑1999年1月也开始使用USB接口。最初iPod只有IEEE 1394接口;后来在第三代的iPod,苹果电脑开始支持USB2.0连接,但是还不能用作充电;现在的iPod,已经全面兼容USB,抛弃IEEE 1394接口,只用USB接口充电以及连接电脑主机。
title: 历史.
title: USB 1.0.
content: 1996年1月发布,数据传输速率为1.5Mbit/s(Low-Speed)。无预测及通过检测功能。仅极少数出现在市场上。
title: USB 1.1.
content: 1998年9月发布,修正1.0版已发现的问题,大部分是关于USB Hubs。最早被采用的修订版。数据传输速率为12Mbit/s(Full-Speed)。
title: USB 3.0(USB 3.1 Gen1/USB 3.2 Gen1).
content: USB 3.0于2008年11月发布,速度由480Mbps大幅提升到5Gbps。USB 3.0插座通常是蓝色的,并向下兼容USB 2.0和USB 1.x。USB 3.0引入了全双工传输,USB 1.x和USB 2.0则是半双工传输。
title: USB 3.1(USB 3.1 Gen2/USB 3.2 Gen2x1).
content: USB3.0推广小组于2013年7月31日宣布USB 3.1规格,传输速度提升为10Gb/s,比USB3.0的5Gb/s快上一倍,并向下兼容USB 2.0/1.0,如果要得到10Gb/s的传输速度仍需在主机、目标端同时具备对应的芯片才能达成,电力供应可高达100瓦。
title: USB 3.2(USB 3.2 Gen2x2).
content: USB 3.2的主要技术要点:  速度方面,使用USB 3.2主机连接USB 3.2储存设备,可以实现两条通道10Gb/s的传输速度,理论上也就是相当接近于20Gb/s。  USB 3.2向下兼容USB 2.0和USB 1.x。另外,从USB 3.2开始,Type-C是唯一推荐的接口方案。
title: USB 3.2 Gen 1x2.
content: USB 3.0(USB 3.1 Gen1)的双通道模式,速度可达10Gbps(每条通道5Gbps)。必须使用USB Type-C接口才能达到10Gbps的速度。
title: USB 3.2 Gen 2x2.
content: USB 3.1 Gen2的双通道模式,速度可达20Gbps(每条通道10Gbps)。必须使用USB Type-C接口才能达到20Gbps的速度。
title: USB4.
content: USB4于2019年9月3日发布。  USB4计划整合Thunderbolt 3协定,现有USB 3.2及USB 2.0也向下兼容。  USB4支援40Gb/s的传输速度,但达到40Gb/s的速度要求USB资料线、产品支援USB4。Type-C是唯一推荐的接口方案。
title: USB On-The-Go补充标准.
content: USB On-The-Go是USB2.0规格的补充标准。它可使USB装置,例如播放器或手机,从USB周边装置变为USB主机,与其他USB装置连线通讯。
title: USB Power Delivery.
content: USB Power Delivery是USB开发者论坛在2012年7月5日发布的USB充电标准与技术。
title: 扩展.
content: PictBridge标准可以使得消费者使用的图形设备彼此互通(例如数码相机直接通过打印机输出)。一般它使用USB做为其底层通信协议。  微软的Xbox游戏主机和IBM的UltraPort均使用自身独有的专用接口,有别于标准的USB;不同的是,前者(Xbox)使用的是标准的USB 1.1信号格式,后者则使用标准的USB信号格式,而供电能力也更强。  开源项目USB/IP实现了USB数据包的网络传送,逻辑上将USB数据线无限延长。同时配合无线路由器等手段,可以实现无线USB传输。

Summary: 通用串行总线(英语:Universal Serial Bus,缩写:英语:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。