USB2.0规范(2) 结构总览
USB 结构总览
USB 系统描述
USB系统由三个维度描述:
- USB host
- USB devices
- USB 互连(interconnect)
USB互连指 host 与 devices 连接和通信的方式, 包括:- 总线拓扑:USB 设备与主机之间的连接结构。
- 层间关系:USB 系统中,每一层技术栈的功能。
- 数据流模型:USB 系统中,数据在生产者和消费者之间移动的方式。
- USB调度:USB提供了共享互连。互连访问以调度的方式实现来支持等时数据传输并消除仲裁开销。
总线拓扑(Bus Topology)
USB 物理互联结构为星型分层拓扑。其根节点为 Host 。由于集线器(hub)和电缆传输的时间消耗限制,最多为七层。

USB Host
在任一USB系统中有且只有一个主机(Host)。主机集成了控制器(Host Controller)以及一个根集线器。详见。
挂载结构: CPU --> PCIE --> USBHost(Controller -> RootHub) --> OtherDevices
比较有趣的的是笔者的一个拓展坞被挂载到了不同主机上,RJ45挂载在了第一个主机的4号口上,标识为3.2Gen1Hub;而其余部分则挂载在了第三个主机的5号口上,标识为2.1Hub。
G502 接收器则枚举出了一大堆设备。
USB Devices
USB 设备应满足下列要求之一
- Hub, 提供 USB 的接入点
- Function, 对系统提供某种能力
详见。
物理接口
电气特性
各模式下信号速率如下:
- 高速模式下比特率为 480Mbit/s
- 全速模式下比特率为 12Mbit/s
- 低速模式下比特率我 1.5Mbit/s
USB 2.0 主机控制器支持在设备与hub之通信协议为全速或低速时,hub与主机仍为高速协议。

机械特性
USB 2.0 规范使用四芯电缆,电缆包含四根导线:一根标准规格的信号双绞线和一根符合规格要求的电源线。
上游(upstream connector)和下游(downstream connector)连接器在机械结构上不兼容,从而避免了在集线器上出现非法环回连接。所有设备均配备上游连接端口。
这里的 upstream connector 应该是指公头; downstream connector 则是母头。
功率
功率分配(Power Distribution)
功率分配解决的问题是设备怎样使用主机提供的功率。
根据供电方式的不同可分为总线供电设备与自供电设备。
功率管理(Power Management)
电源管理则聚焦于USB系统软件和设备如何与主机上的电源管理系统协同工作。
总线协议
USB 是轮询总线,所有的传输由主机发起。
鲁棒性
USB 使用下列特性增强鲁棒性:
- 使用差分信号和屏蔽
- 使用 CRC 校验
- 连接/断开的识别以及系统级资源配置
- 对丢失或损坏的数据包使用超时机制以实现的自恢复机制
- 使用数据流控以确保数据传输同步性和硬件缓冲区管理
- 使用数据和控制通道结构以避免各 function 之间的不利影响
错误识别
USB误码率将接近背板,并且任何故障在本质上很可能是短暂的。为了防止此类瞬变,每个数据包都包含错误保护字段。当需要数据完整性(例如无损数据设备)时,可以在硬件或软件中调用错误恢复过程。
该协议包括每个数据包的控制和数据字段的单独的CRC。失败的CRC被认为表示损坏的数据包。 CRC对单次双位错误的覆盖率为100%。
错误处理
该协议允许错误处理在硬件或软件中进行。
硬件错误处理包括报告和失败传输地重试。如果发生错误硬件将自动重试,若三次重试均失败则会向客户端报告错误。
太墨迹了,没干货,下面全是机翻。
系统配置
USB 支持热插拔,系统软件必须适应物理总线拓扑的动态变化。
USB设备的连接
所有USB设备都通过专用USB设备(称为枢纽)的端口连接到USB。集线器具有用于报告其在其一个端口之一的附件或删除USB设备的附件的状态位。主机查询轮毂以检索这些位。在附件的情况下,主机可以通过默认地址在设备的控制管中启用端口并通过设备的控制管来解决USB设备。主机将唯一的USB地址分配给设备,然后确定新附加的USB设备是集线器还是功能。主机使用分配的USB地址和端点编号为零,为USB设备建立了控制管的末端。如果连接的USB设备是轮毂,并且将USB设备连接到其端口,则每个附件的USB设备都遵循上述过程。如果连接的USB设备是一个函数,则将通过适合该功能的主机软件来处理附件通知。
USB设备的移除
当从一个集线器的端口之一中卸下USB设备时,集线器会禁用该端口,并提供了拆卸设备的指示。然后,通过适当的USB系统软件来处理删除指示。如果已删除的USB设备是集线器,则USB系统软件必须处理以前通过集线器附加到系统的所有USB设备的删除。
总线枚举
总线枚举是标识并将唯一地址分配给附加到总线上的设备的活动。由于USB允许USB设备随时连接或脱离USB,因此总线枚举是USB系统软件的持续活动。此外,USB的总线枚举还包括检测和处理拆卸。
数据流类型
USB 支持 USB 主机和 USB 设备之间的功能数据和控制交换,作为一组单向或双向管道。 USB数据传输在主机软件和USB设备上的特定端点之间进行。主机软件和USB设备端点之间的此类关联称为管道。通常,数据移动虽然一个管道独立于任何其他管道中的数据流。给定的USB设备可能有很多管道。例如,给定的USB设备可以具有一个端点,该端点支持将数据传输到USB设备的管道和另一个端点,该管道支持用于从USB设备传输数据的管道。 USB体系结构理解了数据传输的四种基本类型:
•控制传输:用于在附加时间配置设备,可用于其他特定于设备的目的,包括对设备上其他管道的控制。
•批量数据传输:以相对较大和爆发的数量生成或消耗,并且在传输约束中具有广泛的动态纬度。
•中断数据传输:用于及时但可靠的数据传递,例如,字符或具有人体易感回声或反馈响应特征的坐标。
•等电数据传输:占据具有预加工延迟的预订量的USB带宽。 (也称为流媒体实时传输)。管道仅支持上述任何给定设备配置的转移类型之一。 USB数据流模型在第5章中更详细地描述。
Control Transfers
控制传输
USB系统软件使用控制数据在首次附加时配置设备。其他驱动程序软件可以选择以特定于实现的方式使用控制传输。数据传输是无损的。
Bulk Transfers
大量传输
批量数据通常由大量数据组成,例如用于打印机或扫描仪的数据。批量数据是顺序的。通过在硬件中使用错误检测并调用硬件中有限的重试,可以在硬件级别上确保可靠的数据交换。此外,根据其他公交活动,批量数据占据的带宽可能会有所不同。
Interrupt Transfers
中断传输
对设备的有限延迟传输称为中断数据。可以在任何时候通过设备传输此类数据,并由USB以不得慢于设备指定的速度传递。中断数据通常由事件通知,字符或坐标组成,这些事件是一个或多个字节。中断数据的一个示例是指向设备的坐标。尽管不需要明确的时序率,但是交互式数据可能具有USB必须支持的响应时间范围。
Isochronous Transfers
等时传输
等级数据在创建,交付和消费方面是连续且实时的。与时机相关的信息隐含了接收和传输同调数据的稳定速率。等级数据必须以维持其时间的收到的速率传递。除交付速率外,等初步数据也可能对交付延迟敏感。对于等应管,所需的带宽通常基于相关函数的采样特征。所需的延迟与每个端点的可用缓冲有关。等效数据的一个典型示例是语音。如果这些数据流的交付率不保持,则由于缓冲区或框架底底或超支,数据流中的辍学率将发生。即使USB硬件以适当的速度传递数据,软件引入的交付延迟可能会降低需要实时转机的应用程序,例如基于电话的音频会议。及时交付等于数据的数据是以数据流中潜在的瞬态损失为代价的。换句话说,电气传输中的任何错误均未通过诸如检索之类的硬件机制来纠正。实际上,USB的核心位错误率预计将足够小,而不是问题。 USB等级数据流分配了USB带宽的专用部分,以确保可以以所需的速率传输数据。 USB还设计用于等距数据传输的最小延迟。
带宽分配
USB带宽分配在管道之间。建立管道时,USB分配了一些管道的带宽。 USB设备需要提供一些数据缓冲。假定需要更多带宽的USB设备能够提供更大的缓冲区。 USB体系结构的目标是确保缓冲引起的硬件延迟限制为几毫秒内。 USB的带宽容量可以在许多不同的数据流中分配。这允许将广泛的设备连接到USB上。此外,可以同时支持具有广泛动态范围的不同设备比特速率。 USB规范定义了如何允许每个传输类型访问总线的规则。
USB Devices
特性
USB设备分为设备类,例如集线器,人界面,打印机,成像或质量存储设备。集线器设备类指示特殊指定的USB设备,可提供其他USB附件点(请参阅第11章)。 USB设备需要携带信息以进行自我识别和通用配置。它们也始终需要显示与已定义的USB设备状态一致的行为。
描述
设备类别的两个主要部门存在:集线器和功能。只有枢纽有能力提供额外的USB附件点。功能为主机提供了其他功能。
Hubs
集线器是USB插件体系结构中的关键元素。图4-3显示了一个典型的集线器。枢纽可以从用户的角度简化USB连接,并以相对较低的成本和复杂性提供鲁棒性。集线器是接线浓缩器,并启用USB的多重附件特性。附件点称为端口。每个集线器将单个附件转换为多个附件点。该体系结构支持多个集线器的串联。轮毂的上游端口将轮毂连接到主机。集线器的每个下游端口允许连接到另一个集线器或功能。集线器可以检测到每个下游端口的附件和分离,并使下游设备的电源分布。每个下游端口都可以单独启用并连接到高,富勒低速设备上。 USB 2.0集线器由三个部分组成:集线器控制器,集线器中继器和交易转换器。集线器中继器是上游端口和下游端口之间的协议控制开关。它还具有用于重置和悬挂/恢复信号的硬件支持。主机控制器提供了与主机的通信。集线器特定的状态和控制命令允许主机配置集线器并监视和控制其端口。交易转换器提供了支持集线器后面全/低速设备的机制,同时在高速下将所有设备数据传输到主机和集线器之间。
Functions
函数是能够通过总线传输或接收数据或控制信息的USB设备。通常将功能实现为带有电缆的单独的外围设备,该设备可插入轮毂上的端口。但是,物理软件包可以实现多个功能和带有单个USB电缆的嵌入式集线器。这被称为复合设备。主机作为带有一个或多个不可易换USB设备的集线器显示出一个复合设备。每个功能都包含描述其功能和资源需求的配置信息。在使用函数之前,必须由主机配置。此配置包括分配USB带宽和选择特定功能的配置选项。函数的示例包括以下内容:•诸如鼠标,键盘,平板电脑或游戏控制器之类的人接口设备•扫描仪,打印机或相机等成像设备•质量存储设备,例如CD-ROM驱动器,软盘驱动器或DVD驱动器
USB Host
USB主机通过主机控制器与USB设备进行交互。主机负责以下责任:•检测USB设备的附件和删除•管理主机和USB设备之间的控制流•管理主机和USB设备之间的数据流•收集状态和活动统计信息•为附加的USB设备提供电源,USB设备在USB设备上的主机在USB设备上进行了USB设备和基于主机的设备之间的交互。 USB系统软件和设备软件之间有五个相互作用的领域:•设备枚举和配置•等级数据传输•异步数据传输•电源管理•设备和总线管理信息
结构拓展
USB体系结构理解了主机控制器驱动程序和USB驱动程序之间接口的可扩展性。具有多个主机控制器和关联的主机控制器驱动程序的实现是可能的。
