USB 2.0规范中译本 第四章 架构概述

第四章 架构概述

本章概述了通用串行总线(USB)体系结构和关键概念。USB是一种电缆总线,支持主机和多种可同时访问的外设之间的数据交换。连接的外设通过主机调度的基于令牌的协议共享USB带宽。该总线允许在主机和其他外设运行时连接、配置、使用和拆卸外设。

后面的章节更详细地描述了USB的各种组件。

 

4.1 USB系统描述

USB系统由三个定义区域描述:

  • USB互连
  • USB设备
  • USB主机

USB互连是USB设备连接到主机并与主机通信的方式。这包括以下内容:

  • 总线拓扑:USB设备和主机之间的连接模型。
  • 层间关系:就功能堆栈而言,系统中每一层负责的USB任务。
  • 数据流模型:数据在生产者和消费者之间通过USB在系统中移动的方式。
  • USB调度:USB提供共享互连。对互连的访问进行调度,以便支持同步数据传输和消除仲裁开销。

后续章节将详细介绍USB设备和USB主机。

4.1.1 总线拓扑

USB总线连接USB设备和USB主机。USB物理互连是一种分层星形拓扑。hub位于每个星型结构的中心。每个线段都是host和hub或function之间的点对点连接,或者是hub连接到另一个hub或function。图4-1说明了USB的拓扑结构。

由于集线器和电缆传播时间的时间限制,拓扑层级允许的最大层数为七层(包括root层)。请注意,在七层中,主机和任何设备之间的通信路径最多可以支持五个非根hub。其中复合设备(见图4-1)占据两层,因此,复合设备不能位于第七层。第七层只能为function。

 4.1.1.1 USB主机

任何USB系统中只有一台主机。主机系统的USB接口称为主机控制器。主机控制器可以用硬件、固件或软件的组合来实现。根集线器集成在主机系统内,以提供一个或多个连接点。

有关主机的其他信息可在第4.9节和第10章中找到。

4.1.1.2 USB设备

USB设备可以是以下设备之一:

  • hubs,为USB提供额外的连接点
  • functions,为系统提供功能,如ISDN连接、数字操纵杆或扬声器

USB设备在以下方面提供了标准的USB接口

  • 它们对USB协议的理解
  • 它们对标准USB操作(例如配置和重置)的响应
  • 它们的标准能力描述信息

有关USB设备的更多信息,请参见第4.8节和第9章。

 

4.2 物理层

USB的物理层在总线的电气(第7章)和机械(第6章)规范中进行了描述。

4.2.1 电气

USB通过四线电缆传输信号和电源,如图4-2所示。信号两条差分信号线路发出。

有三种数据速率:

  • 高速信号传输比特率为480Mb/s
  • 全速信号传输比特率为12Mb/s
  • 能力有限的低速信令模式传输比特率为1.5 Mb/s。

USB 2.0主机控制器和集线器提供了一些功能:全速和低速数据可以在主机控制器和集线器之间高速传输,但在集线器和设备之间以全速或低速传输。这种能力将全速和低速设备对高速设备可用带宽的影响降至最低。

低速模式被定义为支持有限数量的低带宽设备,如鼠标,因为更广泛的使用会降低总线利用率。

时钟与差分数据一起传输、编码。时钟编码方案是NRZI编码,用比特填充来确保足够的电平转换。每个数据包前都有一个SYNC字段,接收器可以同步其位恢复时钟。

该电缆还在每一段上带VBUS和GND线,以向设备供电。VBUS的一般源电压为+5伏。通过选择合适的导体规格来匹配指定的IR压降和其他属性(如设备功率预算和电缆灵活性),USB允许长度可变的电缆段,最长可达几米。为了提供有保证的输入电压电平和适当的终端阻抗,在电缆的每一端都使用偏置终端(偏置电压,如上拉或者下拉)。终端还能检测每个端口的连接和分离,并区分高速/全速和低速设备。

4.2.2 机械

第6章提供了电缆和连接器的机械规格。所有设备都有上行连接。上行和下行连接器(公头和母头)在机械上不可互换,因此消除了集线器上的非法环回连接(保证公对母连接)。该电缆有四根导线:一根标准规格的双绞线和一根允许规格范围内的电源对。连接器是四位式(四个金属触点)的,具有屏蔽外壳、坚固和易于插拔的特点。

 

4.3 电源

该规范涵盖了电源的两个方面:

  • 通过USB的电源分配解决了USB设备如何消耗主机通过USB提供的电能的问题。
  • 电源管理涉及如何将USB系统软件和设备适配到基于主机的电源管理系统中。

4.3.1 电源分配

每个USB段通过电缆提供有限的电力。主机为直接连接的USB设备供电。此外,任何USB设备都可能有自己的电源。完全依靠电缆供电的USB设备称为总线供电设备。相比之下,那些有备用电源的设备被称为自供电设备。集线器还为其连接的USB设备供电。该体系结构允许总线供电的集线器在拓扑的某些约束下运行,这些约束将在第11章中讨论。

4.3.2 电源管理

一个USB主机可能有一个独立于USB总线的电源管理系统。USB系统软件与主机的电源管理系统交互,以处理系统电源事件,如暂停或恢复。此外,USB设备通常实现额外的电源管理功能,允许它们由系统软件进行电源管理。

USB的电源分配和电源管理功能允许它被设计到功耗敏感系统中,例如使用电池的笔记本电脑。

 

4.4 总线协议

USB是一种轮询总线。由主机控制器负责启动所有数据传输。

大多数总线事务涉及最多三个数据包的传输。当主机控制器按计划发送描述事务类型和方向、USB设备地址和端点号的USB数据包时,传输开始。这个包被称为“令牌包”。被寻址的USB设备通过解码令牌包的地址字段来选择自己(当地址域中的地址值与自身地址一致时)。在给定的传输中,数据或从主机传输到设备,或从设备传输到主机,数据传输的方向在令牌包中指定。然后,传输源发送一个数据包,或者表明它没有要传输的数据。一般来说,destination(数据或者命令等接收方)会以握手数据包作为响应,指示传输是否成功。

主机控制器和集线器之间的一些总线事务涉及四个数据包的传输。这些类型的事务用于管理主机和全速/低速设备之间的数据传输。

主机上的源或目标与设备上的端点之间的USB数据传输模型称为管道。有两种类型的管道:流和消息。流数据没有USB定义的结构,而消息数据有。此外,管道还关联了数据带宽、传输服务类型和端点特性,如方向性和缓冲区大小。当配置了一个USB设备时,大多数管道就出现了。一旦设备通电,就会出现一个消息管道,即默认控制管道,以提供对设备配置、状态和控制信息的访问。

事务调度允许对一些流管道进行流量控制。在硬件层面,通过使用NAK握手来抑制数据速率,从而防止缓冲区不足或溢出的情况。当收到NAK握手包时,事务在总线有效时间内重试发送数据。流量控制机制保证了灵活调度的构建,从而适应多种流管道混合的并发服务。因此,多个流管道可以以不同的间隔和不同大小的包来传输或服务。

 

4.5 稳健性

USB总线有几个属性有助于它的稳健性:

  • 使用差分驱动器、接收器和信号屏蔽来保证信号的完整性
  • 对数据和控制域进行CRC校验保证数据的正确性
  • 设备插拔检测,对资源进行系统级的配置
  • 协议中的自我修复(数据重发之类的操作),对丢失或损坏的数据包使用超时机制
  • 流数据的流量控制,以确保等时性,保障硬件缓冲管理
  • 数据管道和控制管道相互独立,防止function之间的相互影响

4.5.1 错误检测

USB介质的核心误码率期望是接近于0,任何故障都很可能是短暂的。为了提供针对这种瞬变错误的保护,每个包结构都包括错误保护字段。当需要保证数据完整性时,例如对于无损数据设备,可以在硬件或软件中调用错误恢复过程。

协议对控制字段和数据字段进行独立的CRC校验。CRC校验失败则表明这是一个损坏的数据包。CRC校验100%覆盖单比特和双比特错误。

4.5.2 错误处理

协议允许在硬件或软件中进行错误处理。硬件错误处理包括失败传输的报告和重试。在将故障通知客户端软件之前,USB主机控制器将尝试传输遇到最多三次的错误。客户端软件可以使用特定的对应方法进行恢复。

 

4.6 系统配置

USB总线支持USB设备随时从USB总线上连接(attach)或者断开(detach)。因此,系统软件必须适应物理总线拓扑的动态变化。

4.6.1 USB设备之间的连接

所有的USB设备都通过被称为hub的专用USB设备上的端口连接到USB总线。hub具有状态位,用于报告某个端口上的USB设备的连接或移除。主机查询hub以检索这些状态位。在这种连接情况下,主机使能端口,并通过设备的控制管道USB设备进行寻址(使用默认地址)。

主机为设备分配一个唯一的USB设备地址,然后确定新连接的USB设备是hub还是function。主机使用分配的USB地址和0号端点建立USB设备的控制管道终端。

如果连接的USB设备是hub,并且USB设备连接到其端口,同样对每个连接的USB设备都遵循上述步骤。

如果连接的USB设备是function,则连接信号将由适合该function的主机软件处理。

4.6.2 USB设备移除

当从hub的一个端口移除了一个USB设备时,hub将禁用该端口,并提示主机设备已经移除。移除事件将由适当的USB系统软件处理。如果卸下的USB设备是hub,USB系统软件必须处理hub和之前通过hub连接到系统的所有USB设备的移除事件。

4.6.3 总线枚举

总线枚举作用为:识别和分配唯一地址给连接到总线的设备。因为USB允许USB设备在任何时候连接到USB总线或从USB总线移除,所以总线枚举是USB系统软件的持续活动。此外,用于USB的总线枚举还包括移除的检测和处理。

 

4.7 数据流类型

USB作为单向或双向管道,支持USB主机和USB设备之间的功能数据和控制数据的交换。USB数据传输发生在主机软件和USB设备上的特定端点之间。主机软件和USB设备端点之间的这种关联称为管道。通常,在一个管道中传输的数据独立于任何其他管道中传输数据流。USB设备可能有许多管道。举个例子,USB设备可以同时具有向其他USB设备写数据的管道端点,以及从其他USB设备读数据的另一个管道端点。

USB体系结构包含四种基本类型的数据传输:

  • 控制传输:用于在连接时配置设备,或用于其他设备专有的传输,包括控制设备上的其他管道。
  • 批量传输:以相对较大的突发量生成或消耗数据,在传输的限制属性(带宽和时延等)方面具有较宽的动态范围。
  • 中断传输:用于及时且可靠地传输数据,例如,与人类进行交互的设备(鼠标、键盘等),需要及时得到处理并且反馈
  • 等时传输:占用预先协商分配好的USB带宽,传输时间间隔也是预先协商好的。(也称为流式实时传输)。

对于任何给定的设备配置,管道仅支持上述传输类型之一。USB数据流模型在第5章中有更详细的描述。

4.7.1控制传输

当设备首次连接时,USB系统软件使用控制数据来配置设备。其他驱动程序软件可以根据自身特定的实现方式使用控制传输。数据传输是无丢失的。

4.7.2 批量传输

批量数据通常由大量数据组成,例如用于打印机或扫描仪的数据。批量数据是连续的。通过在硬件中使用错误检测并在硬件中调用有限的重试次数,在硬件级别确保了可靠的数据交换。此外,大容量数据占用的带宽可能会有所不同,具体取决于其他总线活动。

4.7.3 中断传输

主机对设备读或者写操作时的有限延迟传输称为中断数据。这种数据在设备任何需要的时候进行传输,并且由USB总线以不低于设备指定的速率传送。

中断数据通常由事件通知、字符组成,或者将它们组织成一个或多个字节。中断数据的一个例子是点击类设备。虽然不需要明确的及时速率,但交互式数据可能有响应时间限制,这是USB必须支持的。

4.7.4 等时传输

等时数据在创建、交付和消费方面是连续和实时的。等时数据接收和传输的稳定速率意味着时间相关。等时数据必须以接收的速率传送,以保持其时序。除了传输速率,等时数据也可能对传输延迟敏感。对于同步管道,所需带宽通常基于相关function的采样特性决定。所需的延迟与每个端点可用的缓冲有关。

等时数据的一个经典例子是语音。如果不保持这些数据流的传输速率,如果出现缓冲区或帧 欠载或溢出,将会出现数据流的丢包。即使数据由USB硬件以适当的速率传送,由软件引入的传送延迟也可能降低需要实时周转的应用程序的性能,例如基于电话的音频会议。

以数据流中潜在的瞬时丢失为代价来确保同步数据的及时传送。换句话说,电气传输中的任何错误都不通过硬件机制(如重试)来纠正。实际上,USB的核心误码率应该足够小,不会成为问题。系统为USB同步数据流分配了专用部分的USB带宽,以确保数据能够以期望的速率传输。USB还为同步数据传输的最小延迟而设计。

4.7.5 USB带宽分配

USB带宽在管道层上分配。当管道建立时,USB为一些管道分配带宽。需要USB设备来提供一些数据缓冲。我们假定需要更多带宽的USB设备能够提供更大的缓冲区。USB架构的目标是确保缓冲引起的硬件延迟限制在几毫秒之内。

USB的带宽容量可以分配给许多不同的数据流。这使得多种设备可以连接到USB。此外,可以同时支持具有宽动态范围的不同设备比特率。

USB规范定义了每种传输类型访问总线的规则。

 

4.8 USB设备

USB设备可以分为不同的设备类别,如hub、人机交互设备、打印机、相机或大容量存储设备。hub设备类别表示一个专门的提供附加USB连接点的USB设备(参见第11章)。规范要求USB设备带有设备识别信息和通用配置。还要求它们始终符合已定义的USB设备状态。

4.8.1 设备特征

所有的USB设备都是分别通过不同的USB地址来访问的,该地址是在设备被连接和枚举时分配的。每个USB设备还支持一个或多个管道,主机可以通过这些管道与设备通信。所有的USB设备必须在零端点支持一个专门指定的管道,该管道将连接USB设备的USB控制管道。所有的USB设备都支持通过这个控制管道访问信息的通用访问机制。

与零端点的控制管道相关联的,是完整描述USB设备所需的信息。这些信息分为以下几类:

  • 标准:所有USB设备都应该有的信息,包括供应商标识、设备类别和电源管理能力等项目。设备、配置、接口和端点描述包含设备的配置相关信息。关于这些描述符的详细信息可以在第9章中找到。
  • 类别:该信息因设备类别而异。
  • USB供应商:USB设备的供应商可以在此免费提供任何所需的信息。然而,格式不是由本规范决定的。

此外,每个USB设备都携带USB控制和状态信息。

4.8.2 设备描述

设备类别有两个主要部分:hub和function。只有hub能够提供额外的USB连接点。function为主机提供了额外的功能。

4.8.2.1 Hubs

hubs是USB即插即用架构中的一个关键元素。图4-3显示了一个典型的集线器。从用户的角度来看,hub可以简化USB连接,并以相对较低的成本和复杂性提供稳健性。

hub是布线集中器,支持USB的多种连接特性。连接点被称为端口。每个集线器将一个连接点转换为多个连接点。USB架构支持多个hub的连接。

hub的上行端口将hub连接到主机。hub的每个下行端口都允许连接到另一个hub或function。hub可以检测每个下行端口的连接和移除,并向下层设备分配电力。每个下行端口可以单独启用,并连接到高速、全速或低速设备。

USB 2.0 hub由三部分组成:hub控制器、hub中继器和事务转换器。hub中继器是上行端口和下行端口之间的协议控制交换机。它还支持硬件复位和暂停/恢复信号。主机控制器提供与主机的通信。hub特定的状态和控制命令允许主机配置hub并监视和控制其端口。事务转换器提供支持连接到hub的全速/低速设备的机制,同时在主机和hub之间高速传输所有设备数据。

 

4.8.2.2 Functions

function是能够通过总线发送或接收数据或控制信息的USB设备。function通常被实现为带有电缆的独立外设,该电缆插入hub的端口。然而,一个物理包可以实现多种功能,并且一个嵌入式hub具有一根单独的USB电缆,这就是所谓的复合设备。复合设备在主机看来是一个集线器,带有一个或多个不可移除的USB设备。

每个function都包含描述其功能和资源需求的配置信息。在使用function之前,必须由主机进行配置。该配置包括分配USB带宽和选择特定function的配置选项。

function例子包括:

  • 人机交互设备,如鼠标、键盘、平板电脑或游戏控制器
  • 成像设备,如扫描仪、打印机或照相机
  • 大容量存储设备,如光盘驱动器、软盘驱动器或光盘驱动器
  •  

4.9 USB主机:硬件和软件

USB主机通过主机控制器与USB设备交互。主机负责以下事项:

  • 检测USB设备的连接和移除
  • 管理主机和USB设备之间的控制流
  • 管理主机和USB设备之间的数据流
  • 收集状态和活动数据统计
  • 为连接的USB设备供电

主机上的USB系统软件管理USB设备和基于主机的设备软件之间的交互。USB系统软件和设备软件之间有五个交互领域:

  • 设备枚举和配置
  • 同步数据传输
  • 异步数据传输
  • 电源管理
  • 设备和总线管理信息

4.10 架构扩展

USB体系结构包含主机控制器驱动程序和USB驱动程序之间接口的可扩展性。使用多个主机控制器和相关的主机控制器驱动程序的实现是可能的。

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值