【USB】
通用序列汇流排（Universal Serial Bus，缩写：USB）是连接电脑与设备的一种序列汇流排标准，也是一种输入输出(I/O) 连接埠的技术规范，广泛应用于个人电脑和行动装置等资讯通信产品，并扩展至摄影器材、数位电视（机上盒）、游戏机等其它相关领域。
多媒体电脑刚问世时，外接式装置的传输介面各不相同，如印表机只能接并行端口、数据机只能接RS232、滑鼠键盘只能接PS/2等。繁杂的介面系统，加上必须安装驱动程式并重新开机才能使用的限制，都会造成使用者的困扰。因此，创造出一个统一且支援易插拔的外接式传输介面，便成为无可避免的趋势，USB应运而生。
最新一代的USB是USB4，传输速度为40Gbit/s。物理接头USB Type-A、Type-B接头分正反面，新型USB Type-C接头不分正反面。
== 概述 ==
USB 2.0插座
两个B型USB连接器，mini和全尺寸的，侧视图和正视图，旁边是5美分做对照
USB集线器
USB最初是由英特尔与微软倡导发起，最大的特点是尽可能地实现热插拔和即插即用。当设备插入时，主机枚举到此设备并加载所需的驱动程序，因此其在使用上远比PCI和ISA等总线方便。
USB在速度上远比并行端口（例如EPP）与串行接口（例如RS-232）等传统电脑用标准汇流排快上许多。USB 1.1（Full Speed）的最大传输速率为12Mbps，USB 2.0（High Speed）为480Mbps，USB 3.0（USB 3.2 Gen 1×1） 为 5Gbps，USB 3.1 Gen2（USB 3.2 Gen 2x1） 为 10Gbps，而USB 3.2（USB 3.2 Gen 2x2）更达20Gbps，以及近期发表的USB 4.0，其速度可达40Gbps。
USB的设计为非对称式的，它由一个主机控制器和若干通过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两个。
=== 标准 ===
USB开发者论坛负责USB标准制订，其成员包括：苹果公司、惠普、NEC、微软和英特尔。
2001年底，USB-IF公布USB 2.0规范，与之前的USB 0.9、USB 1.0和USB 1.1一样，该规范完全向下兼容。随后，USB-IF公布lang|en|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型。
== 技术细节 ==
=== 技术指标 ===
从左至右：专有接口（非USB）Mini-B插头type-B插头type-A插口type-A插头
目前USB支持5种数据信号速率，USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。USB-IF进行设备认证并为通过兼容测试并支付许可费用的设备提供基本速率（低速和全速）和高速的特殊商标许可。
* 1.5 Mbps的低速速率。主要用于低速率人机接口设备，例如键盘、鼠标、游戏杆等等。
* 12 Mbps的全速速率。在USB 2.0之前是曾经是最高速率，后起的更高速率的高速接口应该兼容全速速率。多个全速设备间可以按照先到先得法则划分带宽；使用多个等时设备时会超过带宽上限也并不罕见。所有的USB连接埠支援全速速率。
* 480 Mbps的高速速率。并非所有的USB 2.0设备都是高速的。高速设备插入全速连接埠时应该与全速兼容。而高速连接埠具有所谓事务翻译器（Transaction Translator）功能，能够隔离全速、低速设备与高速之间数据流，但是不会影响供电和串联深度。
* 5Gbps的超高速速率。相较于现有USB 2.0的480Mbps最高理论速度，USB 3.0可支援到5.0Gbps，是USB 2.0的10倍。若将USB 3.0应用到外接硬碟、随身碟或蓝光烧录机等储存装置，将可大幅缩短资料传输时间。
*10Gbps的超高速速率+。USB 3.1 Gen2最高10Gbps理论速度，是USB 3.0的两倍。
=== 机械和电子标准 ===
==== 标准USB接口 ====
USB插头
标准USB线的内部结构，可以看到里面有红、白、绿、黑四根小的导线
USB信号使用分别标记为D+和D- 的双绞线传输，它们各自使用半双工的差分信号并协同工作，以抵消长导线的电磁干扰。
==== Mini USB接口 ====
Mini USB接口。左为A型；右为B型
除了第4针外，其他接口功能皆与标准USB相同。第4针成为ID，地线在mini-A上连接到第5针，在mini-B可以悬空亦可连接到第5针。
==== Micro USB接口 ====
Micro-USB插头
Micro A USB接口
Micro B USB接口
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与沃达丰。
==== 编码方式 ====
USB使用NRZI编码方式：当数据为0时，电平翻转；数据为1时，电平不翻转。为了防止出现过长时间电平不变化现象，在发送数据时采用位填充处理。具体过程如下：当遇见连续6个高电平时，就强制插入一个0。经过位填充后的数据由串行接口引擎（SIE）将数据串行化和NRZI编码后，发送到USB的差分数据线上。接收端完成的过程和发送端刚好相反。
=== 软体架构 ===
焊接在印刷电路板上的USB插座
一个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个。在管道中，数据使用不同长度的包传递，端点可以传递的包长度上限一般是字节，所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向（进／出）传输数据，自然管道也是单向的。每个USB设备至少有两个端点／管道：他们分别是进出方向的，编号为0，用于控制汇流排上的设备。按照各自的传输类型，管道被分为4类：
* 控制传输(Control)——一般用于短的、简单的对设备的命令和状态反馈，例如用于汇流排控制的0号管道。
* 同步传输(Isochronous)——按照有保障的速度（可能但不必然是尽快地）传输，可能有数据丢失，例如实时的音频、视频。
* 中断传输(Interrupt)——用于必须保证尽快反应的设备（有限延迟），例如滑鼠、键盘。
* 批量传输(Bulk)——使用余下的带宽大量地（但是没有对于延迟、连续性、带宽和速度的保证）传输数据，例如普通的文件传输。
一旦设备（功能）通过汇流排的Hub附加到主机控制器，主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量，一般是通过轮询模式，因此没有明确向主机控制器请求之前，设备不能传输数据。
为了访问端点，必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(Device Descriptor)，而设备描述符有若干配置描述符(Configuration Descriptors)。这些配置一般与状态相对应，例如活跃和节能模式。每个配置描述符有若干接口描述符(Interface Setting)，用于描述设备的一定方面，所以可以被用于不同的用途：如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(Default Interface Setting)和可能多个替代接口设置(Alternate Interface Settings)，它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。
==== HCD (Host Controller Driver) ====
包含主机控制器和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设备的讯息。
==== USB封包格式 ====
USB的封包格式和早期的网际网路封包格式非常相似，要了解USB连接原理就一定要先了解封包格式。
==== 传输协定 ====
*BOT传输协定：BOT (Bulk-Only Transport)，诞生于1999年，专为USB 1.1所设计，但至少到USB 3.1 Gen 2都可向下兼容它。在传输资料作业开始时，外接USB 3.0装置与电脑主机板（USB 3.0扩充卡）之间，在同一时间单位内，每次只传输单一指令，所以速度较UASP慢，属于「半双工传输模式」。
* UASP传输协定：UASP (USB Attached SCSI Protocol)，与USB 3.0一同诞生于2008年，USB应用者论坛（USB-IF）为改良BOT传输协定过慢的缺点，将SCSI架构改进并推出UASP，包括多命令平行处理能力、任务管理与控制等机制，也支援NCQ，速度比BOT传输模式快上许多，属于「全双工传输模式」。启动UASP虽然能提升传输效能，但也有许多限制，电脑用户必须具备支援UASP的外接USB 3.0装置内部的装置端控制器、主机板上的主机端控制器、驱动程式，三者缺一不可（有的还额外需要安装靱体）。在OS支援度上，使用Windows 7的用户若想启动UASP，必须安装相应的驱动程式，如果用户使用Windows 8/Mac OS X 10.8.3以及之后陆续推出的10.9版本，因为其已内建UASP的驱动程式，所以直接原生支援UASP，如此可省去安装驱动程式的麻烦。UASP的装置端桥接晶片有：LucidPort USB 300、祥硕科技ASMedia ASM1053/ASM1042、智微JMS 569、德州仪器TUSB9261等等。
=== 设备分类 ===
USB随身碟
依附在总线上的设备可以是需要特定的驱动程序的完全定制的设备，也可能属于某个设备类别。这些类别定义设备的行为和接口描述符，这样一个驱动程序可能用于所有此种类别的设备。一般操作系统都为支持这些设备类别，为其提供通用驱动程序。
设备分类由USB设计论坛设备工作组决定，并分配ID。
如果一个设备类型属于整个设备，该设备的描述符的bDeviceClass域保存类别ID；如果它这是设备的一个接口，其ID保存在接口描述符的bInterfaceClass域。他们都占用一个字节，所以最多有253种设备类别。（0x00和0xFF保留）。当bDeviceClass设为0x00，操作系统会检查每个接口的bInterfaceClass以确定其类别。
每种类别可选支持子类别（SubClass）和协议子定义（Protocol subdefinition）。这样可以用于主设备类型的不断修订。
常用设备类别和ID有：
=== USB接头 ===
常用的USB延长线
接头是由USB协会所指定，接头的设计一方面为了支持众多USB的基本需求，另一方面也避免以往许多类似串行接头所出现的问题。
* 接头设计的相当耐用。许多以往使用的接头较脆弱，即使受力不大，有时针脚或零件也会折弯甚至断裂。而USB接头的金属导电部份周围有塑料作为保护，而且整个连接部份被金属的保护套围住，因此USB接头不论插拔，都不容易受损。由于金属保护套和外围塑料护套的保护，需要较大的力量才能造成USB接头明显的损坏。
* 具有防呆设计，方向相反的插头不可能插到插座里，方向正反很容易感觉出来。所以不可能把USB接口插错。
* 接头能相对便宜地大量生产。
* 在USB网络中，接头被强制使用定向拓扑。USB不支持环形网络，因此不兼容的USB设备之间接口也不兼容。不像其他通讯系统（如RJ-45电缆）不能使用转换插头，防止环形USB网络产生。
* 适度的插拔力。USB电缆和小型USB设备能被插口卡住（不需要夹子、螺丝或者其他接口那样的锁扣）。只需要适当力量插拔即可连接周边设备。
* 由于接头的构造，在将USB插头插入USB座时，插头外面的金属保护套会先接触到USB座内对应的金属部份，之后插头内部的四个触点才会接触到USB座。金属保护套会连接到系统的地线，提供路径使静电可以放电，避免因静电通过电子零件而造成损坏。
* USB电缆最长允许5米，更长的距离需要HUB。
====接头一览表====
=== 电源 ===
利用USB接头供电的小型电风扇
USB接头默认提供一组5伏特的电压，可作为相连接USB设备的电源。实际上，设备接收到的电源可能会低于5V，只略高于4V。通过USB PD3.0、QC4等快速充电协议，现有USB接口的最大的可以达到20V，最低3V。
USB-IF规范1.1版定义USB埠最高供电可达到1.5A/1500mA，而最新的1.2版规范更是修正为最大5A/5000mA的供电，但是总和也不得超过5A。
一个USB的HUB最多只能提供500 mA的电流。如此的电流已足以驱动许多电子设备，不过连接在总线供电HUB的所有设备，需要共享500mA的电流额度。一个由总线供电的设备可以使用到它所连接埠上允许输出的所有电源。
总线供电的HUB可以将电源供给连接在HUB上的所有设备，不过USB的规范只允许总线供电的HUB下游串接一层总线供电的设备，因此，总线供电的HUB下游不允许再串接另一个由总线供电的HUB。许多HUB有外加电源，因此可以提供电源给下游的设备，不会消耗总线-{}-上的电源。若设备需要的电压超过5V，都需要使用外加电源。
相对于之前其他沟通介面仅能传递讯息资料，USB插槽本身还能提供5V（伏特）的主动电压，及0.5A（安培）的电流，因此对于一些小型设备而言，可以不必再外接电源供应装置，就能直接利用来自USB插槽的电力顺利运作。利用这特点，也有厂商开发出适当的排线，将USB拿来当作供电插座般使用，例如作为行动电话的充电器，或是提供小型桌灯及电风扇等的电力需要，反而与原本用来连接电脑用的主要用途无关。
== 同类标准比较 ==
=== USB大容量存储 ===
闪存盘，典型的USB大容量存储设备
USB使用USB大容量存储设备标准实现Storage设备的连接。它最初被用于传统的磁盘和光盘驱动，但是现在已经扩展到支持大量不同的设备。
USB有一个非常重要的优点，那就是它能够在不关闭电脑主机电源的情况下动态的安装和删除USB设备，这使它成为一种有用的外部设备。
在市面也可以找到USB 3.0 Dongle此类小型可插拔式的行动装置，尺寸如同随身碟一样迷你，有厂商推出USB介面的Wi-Fi/蓝牙无线Dongle，只要将此Dongle插入液晶电视上，即可透过无线连接方式，将使用者手机、平板、笔电中的影片、照片分享到液晶电视上观看，市面上已有厂商将Android作业系统直接写入Dongle，成为多功能电视棒的产品。
相关存储产品包括：主机板、磁碟阵列卡、硬碟外接盒、磁碟阵列系统、NAS网路储存设备、硬碟外接座等等。
=== 人机接口设备（HID） ===
USB没有完全取代PS/2键盘鼠标接口，但目前许多主机板都取消了PS/2接口。
使用专用键盘鼠标接口的苹果电脑1999年1月也开始使用USB接口。最初iPod只有IEEE 1394接口；后来在第三代的iPod，苹果电脑开始支持USB2.0连接，但是还不能用作充电；现在的iPod，已经全面兼容USB，抛弃IEEE 1394接口，只用USB接口充电以及连接电脑主机。
== 历史 ==
俗称「三叉戟」的USB标志，可标示在电脑、集线器及周边装置做为识别之用，不需获得认证
=== Pre-Releases ===
* USB 0.7：1994年11月发布。
* USB 0.8：1994年12月发布。
* USB 0.9：1995年4月发布。
* USB 0.99：1995年8月发布。
* USB 1.0 RC：1995年11月发布。
=== USB 1.0 ===
1996年1月发布，数据传输速率为1.5Mbit/s（Low-Speed）和12Mbit/s（Full-Speed）。无预测及通过检测功能，Full-Speed也难以达成，仅极少数出现在市场上。
=== USB 1.1 ===
1998年9月发布，修正1.0版已发现的问题，主要是关于USB Hubs及Full-Speed，最早被采用的修订版。
=== USB 2.0 ===
Hi-Speed USB徽标
* USB 2.0：2000年4月发布。增加更高的数据传输速率480Mbit/s（现在称作Hi-Speed，大约57MB/s），但受限于BOT传输协议和NRZI编码方式，实际最高传输速度只有35MByte/s左右。USB 2.0中最重要规范的ECN可以在 USB.orgdate=20060125010824 查到：
** Mini-A和Mini-B Connector ECN：2000年10月发布。规范Mini-A和Mini-B的插头及插座标准。注意不要与Micro-B插头及插座混淆。
** Errata as of December 2000：2000年12月发布。
** Pull-up/Pull-down Resistors ECN：2002年5月发布。
** Errata as of May 2002：2002年5月发布。
** Interface Associations ECN：2003年5月发布。添加新的描述符以便将多重接口关联在在单一设备功能中。
** Rounded Chamfer ECN：2003年10月发布。一项针对Mini-B接口坚固性的建议性、兼容性改进。
** Unicode ECN：2005年2月发布。这项ECN指定了字串可以使用UTF-16LE编码。USB 2.0曾指定可以使用Unicode，但没有指定编码。
** Inter-Chip USB Supplement：2006年3月发布。
** On-The-Go Supplement 1.3：2006年12月发布。USB直连（USB On-The-Go）允许两个USb设备不经独立USB主机端直接相互通讯。实际使用中，是其中一个USB设备作为其它设备的主机端。
** Battery Charging Specification 1.0：2007年3月发布。添加对充电器（有USB接口的电源适配器）的支持，当供电端（作为充电器的USB主端口）和电池连接时，它允许瞬间通过100 mA的电流。如果一个USB设备连接到专用充电器或主端口时，最大瞬间电流可达1.5 A。（该文档并未包含在USB 2.0规范中。）
** Micro-USB Cables and Connectors Specification 1.01：2007年4月发布。
** Link Power Management Addendum ECN：2007年7月释出。在启用与待机间增加新的电源模式。当设备处于这个模式时不向其发送指令以减少电源消耗。所以，在启用及睡眠模式间切换要比在启用及待机模式间切换快得多。
** High-Speed Inter-Chip USB Electrical Specification Revision 1.0：2007年9月发布。
=== USB 3.0（USB 3.1 Gen 1/USB 3.2 Gen 1×1） ===
The Super-Speed USB Logo
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则是半双工传输。
=== USB 3.1 Gen 2（USB 3.1/USB 3.2 Gen 2x1） ===
USB 3.1 Logo
USB3.0推广小组于2013年7月31日宣布USB 3.1规格，传输速度提升为10Gb/s，比USB3.0的5Gb/s快上一倍，并向下兼容USB 2.0/1.0，如果要得到10Gb/s的传输速度仍需在主机、目标端同时具备对应的晶片才能达成，电力供应可高达100瓦。
注意：在USB 3.1公布一段时间后，USB 3.0就更名为USB 3.1 Gen 1。
=== USB 3.2（USB 3.2 Gen 2x2） ===
USB 3.2 logo
USB 3.2的主要技术要点：
*在USB Type-C介面上实现双通道，USB Type-A和Type-B不支援双通道
*继续使用现有的超高速USB物理传输率和技术
*一些小的规范更新，确保单双通道无缝切换。
速度方面，使用USB 3.2主机连接USB 3.2储存设备，可以实现两条通道10Gbps的传输速度，理论上也就是相当接近于20Gbps。
USB 3.2向下兼容USB 2.0和USB 1.x。另外，从USB 3.2开始，Type-C是唯一推荐的接口方案。
====USB 3.2 Gen 1x2====
USB 3.0的双通道模式，速度可达10Gbps（每条通道5Gbps）。必须使用USB Type-C接口才能达到10Gbps的速度。
====USB 3.2 Gen 2x2====
USB 3.1 Gen 2的双通道模式，速度可达20Gbps（每条通道10Gbps）。必须使用USB Type-C接口才能达到20Gbps的速度。
=== USB4 ===
USB4 40Gbps LOGO
USB4于2019年9月3日发布。
USB4计划整合Thunderbolt 3协定，现有USB 3.2及USB 2.0也向下兼容。
USB4支援40Gbps的传输速度，但达到40Gbps的速度要求USB资料线、产品支援USB4。Type-C是唯一推荐的介面方案。
=== USB On-The-Go补充标准  ===
USB OTG LOGO
USB On-The-Go是USB2.0规格的补充标准。它可使USB装置，例如播放器或手机，从USB周边装置变为USB主机，与其他USB装置连线通讯。
=== USB Power Delivery ===
USB Power Delivery是USB开发者论坛在2012年7月5日发布的USB充电标准与技术。
== 扩展 ==
PictBridge标准可以使得消费者使用的图形设备彼此互通（例如数码相机直接通过打印机输出）。一般它使用USB做为其底层通信协议。
微软的Xbox游戏主机和IBM的UltraPort均使用自身独有的专用接口，有别于标准的USB；不同的是，前者（Xbox）使用的是标准的USB 1.1信号格式，后者则使用标准的USB信号格式，而供电能力也更强。
开源项目 USB/IP date=20220107204506 实现了USB数据包的网络传送，逻辑上将USB数据线无限延长。同时配合无线路由器等手段，可以实现无线USB传输。
=== 无线通用序列汇流排 ===
无线通用序列汇流排 LOGO
正在开发中的一种无线数据传输标准。设计标准：在3米内达到480Mbp的传输速率，在10米内达到110Mbps的传输速率。
== 参考文献 ==