目前USB支持3种数据信号速率,USB设备应该在其外壳或者有时是自身上正确标明其使用的速率。USB-IF进行设备认证并为通过
兼容测试并支付许可费用的设备提供基本速率(低速和全速)和高速的特殊商标许可。
通用串行总线
⒈5 Mbit/s (183 KByte/s) 的低速速率,主要用于人机接口设备(Human Interface Devices ,HID)例如
键盘、
鼠标、游戏杆。
12 Mbit/s (1.4 MByte/s)的全速速率, 在USB 2.0之前是曾经是最高速率,后起的更高速率的高速接口应该兼容全速速率。多个全速
设备间可以按照先到先得法则划分
带宽;使用多个等时设备时会超过带宽上限也并不罕见。所有的USB Hub支持全速速率。
480 Mbit/s (57 MByte/s)的高速速率。并非所有的USB 2.0设备都是高速的。高速设备插入全速hub时应该与全速兼容。而高速hub具有所谓Transaction Translator(事务翻译器)功能,能够隔离全速、低速设备与高速之间数据流,但是不会影响供电和串联深度。
标准接口
1 VBUS (4.75-5.25 V) VBUS (4.4-5.25 V)
2 D- D-
3 D+ D+
4 接地 接地
USB信号使用分别标记为D+和D-的双绞线传输,它们各自使用半双工差分信号并
协同工作,以抵消长导线的电磁干扰。
Mini接口
触点 功能
1 VBUS (4.4–5.25 V)
通用串行总线
2 D−
3 D+
4 ID
5 接地
mini USB除了第4针外,其他接口功能皆与标准USB相同。第4针成为ID,在mini-A上连接到第5针,在mini-B可以悬空亦可连接到第5针。
编码方式
USB标准采用NRZI方式(翻转
不归零制)对数据进行编码。翻转
不归零制(non-return to zero,inverted),电平保持时传送逻辑1,电平翻转时传送逻辑0。
软件架构
一个USB主机通过hub链可以连接多个设备。由于理论上一个
物理设备可以承担多种功能,例如
路由器同时也可以是一个SD卡读卡器,USB的术语中设备(device)指的是功能(functions)。
集线器(hub)由于作用特殊,按照正式的观点并不认为是function。直接连接到主机的hub是根(root)hub。
端点
设备/功能(和
集线器)与管道pipe (逻辑通道)联系在一起,管道把
主机控制器和被称为端点endpoint的逻辑实体连接起来。管道和比特流(例如UNⅨ的pipeline)有着相同的含义,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。
端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能最多有32个活动管道,16个进,16个出。(出(OUT)指离开控制器,而入(IN)指进入主机控制器。) 两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是<math>2^n</math>;字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个USB设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于
控制总线上的设备。按照各自的传输类型,管道被分为4类:
控制传输——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的0号管道。
等时传输——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。
通用串行总线
中断传输——用于必须保证尽快反应的设备(有限延迟),例如
鼠标、
键盘。
批量传输——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的
文件传输。
一旦设备(功能)通过总线的hub附加到主机控制器,主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量,一般是通过
轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。
为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(device descriptor),而设备描述符有若干配置描述符(configuration descriptors)。这些配置一般与状态相对应,例如活跃和节能模式。每个配置描述符有若干接口描述符(interface setting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(default interface setting)和可能多个替代接口设置(alternate interface settings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。
HCD
包含主机控制器和根HUB的硬件为程序员提供了由硬件实现定义的接口主机控制器设备 (HCD)。而实际上它在
计算机是就是端口和内存映射。
⒈0和1.1的标准有两个竞争的HCD实现。
康柏的 开放主机控制器接口 (OHCI)和Intel的通用主机控制器接口 (UHCI)。ⅥA威盛采纳了UHCI;其他主要的
芯片组多使用OHCI。它们的主要区别是UHCI更加依赖软件驱动,因此对CPU要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此 USB-IF在USB 2.0的设计阶段坚持只能有一个实现规范,这就是扩展主机控制器接口 (EHCI)。因为EHCI只支持全速传输,所以EHCI控制器包括四个虚拟的全速或者慢速控制器。这里同样是 Intel和Via使用虚拟UHCI,其他一般使用OHCI控制器。
接头
接头是由USB协会所指定,接头的设计一方面为了支持众多USB的基本需求,另一方面也避免以往许多类似串行接头所出现的问题。
电源
USB 接头提供一组5伏特的电压,可作为相连接USB设备的电源。实际上,设备接收到的电源可能会低于5V,只略高于4V。USB规范要求在任何情形下,电压均不能超过5.25V;在最坏情形下(经由USB供电HUB所连接的LOW POWER设备)电压均不能低于4.375V,一般情形电压会接近5V。