USB 3.0规范中译本 第3章 USB 3.0体系结构概览

2023-10-29 14:40

本文主要是介绍USB 3.0规范中译本 第3章 USB 3.0体系结构概览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:http://www.cnblogs.com/coryxie/p/3956220.html

本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com

本章呈现USB 3.0体系结构和关键概念的概览。USB 3.0与前面版本的USB类似,因为它是线缆总线,支持在主机计算机和广大范围的可同时访问的外围设备之间进行数据交换。所附着的设备通过主机调度协议来共享带宽。总线允许设备在主机和其他外设的操作过程中被挂上(attached),配置(configured),使用(used),以及拔出(detached)。USB 3.0使用双总线架构(dual-bus architecture),提供了对USB 2.0的后向兼容性。它提供超高速(SuperSpeed)和非超高速(non-SuperSpeed)(USB 2.0速度)的同时操作。本章组织成两个关注领域。首先关注跨越双总线(span the dual buses)相关的元素的体系结构和概念。其次关注超高速(SuperSpeed)特定的体系结构和概念。

后面的章节以更多的细节来描述超高速(SuperSpeedUSB的不同组件和特定要求。期望读者具有对USB 2.0体系结构和概念的基本理解。参考的Universal Serial Bus Specification, Revision 2.0完整细节。

3.1 USB 3.0 系统描述

USB 3.0是一个物理超高速总线与一个物理USB 2.0总线并行组合而成(见图3-1)。 它具有与USB 2.0类似的体系结构组件,也就是:

• USB 3.0 互连(interconnect

• USB 3.0 设备(devices

• USB 3.0 主机(host

USB 3.0 interconnectUSB 3.0USB 2.0设备连接并与USB 3.0主机通信的方式。USB 3.0 interconnectUSB 2.0继承了核心的体系结构元素,尽管好些都被修改以容纳双总线架构。

基线结构拓扑与USB 2.0一样。它包含一个分层的星形拓扑,其中有一个主机在第1层,而集线器在更低的层级中,提供对设备的总线连接。

USB 3.0连接模型可容纳后向和前向兼容性,以连接USB 3.0或者USB 2.0设备到USB 3.0总线上。类似的,USB 3.0设备可以连入到USB 2.0总线上。USB 3.0的机械和电气后向/前向兼容性是通过形成该双总线架构的复合线缆以及相关连接器组件(composite cable and associated connector assemblies)而实现的。USB 3.0设备通过同时包括超高速(SuperSpeed)和非超高速(non-SuperSpeed)总线接口来完成后向兼容性。USB 3.0主机也包括超高速(SuperSpeed)和非超高速(non-SuperSpeed)总线接口,它们本质上是并行的总线,可以同时活跃。

USB 3.0连接模型允许根据设备支持的最高信号速度,主机和设备之间所有集线器的最高速度,以及当前主机能力和配置,来发现和配置USB设备。

USB 3.0 集线器是一类特定的USB设备,其目的是给总线提供主机控制器所提供的连接之外的更多连接点。在本规范中,非集线器设备被称为外围设备(peripheral devices),以便区分于集线器设备(hub devices)。此外,在USB 2.0中,术语"功能(function)"有时被与"设备(device)"互用(used interchangeably with device)。在本规范中,功能是设备中的一个逻辑实体,见图3-3

3.2中将会详细描述超高速(SuperSpeed)在主机和设备方面的体系架构涵义(architectural implications)。

3.1.1 USB 3.0 物理接口

USB 3.0物理接口由USB 2.0电气规范(USB 2.0规范第7章),机械规范(第5章),以及超高速(SuperSpeed)物理规范(第6章)所组成。超高速(SuperSpeed)物理层在第3.2.1节描述。

3.1.1.1 USB 3.0 机械规范

USB 3.0线缆和连接器组件的机械规范在第5章中提供。主机和集线器(定义在下面)有一个或者多个下游连接。上游和下游连接器机械上不可互换,因此排除了在集线器上的非法回环连接(loopback connections)

USB 3.0 线缆具有8个主要的传导体(conductors):3个双绞信号对用于USB数据通路,以及一对用于电源。图3-2显示了USB 3.0线缆的基本信号安排。除了USB 2.0 数据通路所需的双绞信号对之外,还有两个双绞信号对用来提供超高速(SuperSpeed)数据通路,一个用于传送(transmit)路径,另一个用于接收(receive)路径。

 

USB 3.0插座(receptacles)(包括上游和下游)都后向兼容于USB 2.0的连接插头(plugs)。USB 3.0的线缆和插头并没有意图要保持与USB 2.0 的上游插座兼容。作为对用户的帮助,USB 3.0 USB 3.0的插头和插座强制要求标准着色(mandates standard coloring)。

USB 3.0电气性能(插入损耗(insertion loss),回波损耗(return loss),串扰(crosstalk),等)是针对于原始电缆(raw cables),成对连接器(mated connectors)以及成对线缆组件(mated cable assemblies)而定义的,并且针对后面两类建立了基于工业测试规范的兼容性要求。类似地,也定义有关于机械方面(插入/拔出力量(insertion/extraction forces),耐久性(durability),等)和环境方面(温度寿命(temperature life),混合流动气体(mixed flowing gas),等)的要求,并通过公认的工业测试规范建立了兼容性要求。

3.1.2 USB 3.0 电源

本规范覆盖电源相关的两方面:

• USB总线上的电源分布(Power distribution)涉及关于USB设备如何消耗它们所连接的下游端口所提供的电源方面的问题。USB 3.0的电源分布于USB 2.0类似,只是对于在超高速(SuperSpeed)下操作的设备增加了供给预量(supply budgets)。

• 电源管理(Power management)涉及主机,设备,集线器,以及USB系统软件如何交互,以在总线上提供电源有效的操作(power efficient operation)。USB 2.0总线部分的电源管理没有改变。在附录C中描述了超高速(SuperSpeed)总线的电源管理使用模型。

3.1.3 USB 3.0 系统配置

USB 3.0 支持USB设备(所有速度)随时连入 (attaching) 和拔出 (detaching) USB 3.0。结果,系统软件必须容许物理总线拓扑的动态改变。USB 3.0上有关发现设备连入(attachment)和删除(removal)的体系结构元素(architectural elements)与USB 2.0相同。提供了一些增强,用于管理超高速(SuperSpeed)总线的配置和电源管理的特定方面(specifics)。

独立的双总线架构允许单独激活每条总线,并支持将USB设备连入到对于设备可用的最高速度总线上。

3.1.4 USB 3.0 体系结构总结

USB 3.0是一个双总线(dual-bus)架构,集成了USB 2.0和超高速(SuperSpeed)总线。 3-1总结了在SuperSpeed USB USB 2.0之间关键的体系结构方面的不同。

3-1. 比较 SuperSpeed  USB 2.0

特性

SuperSpeed USB

USB 2.0

数据速率(Data Rate

超高速(SuperSpeed (5.0 Gbps)

低速 (1.5 Mbps), 全速 (12 Mbps),以及高速 (480 Mbps)

数据接口(Data Interface

-单工(Dual-simplex),四线差分信号,与USB 2.0信号分离;

同时(Simultaneous)双向数据流

半双工(Half-duplex),二线差分信号;

单向数据流,具有协商方向总线事务

线缆信号数(Cable signal count

6个:4个超高速(SuperSpeed)数据通路;2个非超高速(non-SuperSpeed)数据通路

2个:2个都用于低速/全速/高速数据通路

总线事务协议(Bus transaction protocol

主机引导(Host directed),异步通信流;包交换(Packet traffic)是被明确的路由的。

主机引导(Host directed),轮询式通信流;包交换(Packet traffic)是广播给所有设备。

电源管理(Power management

多级链路电源管理,支持空闲(idle),睡眠(sleep),以及挂起(suspend)状态。链路(Link),设备(Device),以及功能(Function)层级的电源管理。

端口级挂起,具有两级进入/退出时延(entry/exit

latency);设备电源管理。

总线电源(Bus power

USB 2.0相同,但是对unconfigured power50%增加,而对configured power80%的增加。

对低/高的总线供电的设备(low/high bus-powered devices),在un-configured suspended 时具有更低的电源限制。

端口状态(Port State

端口硬件检测连接事件,并将端口带入可操作状态,准备好进行超高速(SuperSpeed)数据通信。

端口硬件检测连接事件。系统软件使用端口命令来将端口转换进入使能(enabled)状态(也就是,可以进行USB数据通信流)。

数据传输类型(Data transfer types

具有超高速限制(SuperSpeed constraints)的USB 2.0类型。Bulk具有流能力(streams capability)(参见第3.2.8节)。

4种数据传输类型:控制,批量,中断,等时

 

3.2 超高速(SuperSpeed)体系结构

超高速(SuperSpeed)总线是一个分层通信架构,有下列元素组成:

• 超高速互连SuperSpeed Interconnect)。超高速互连(SuperSpeed interconnect)是设备连接到主机并与之通过超高速总线通信的方式。这包括设备连接到总线的拓扑,通信层次,它们之间的关系,以及它们如何互相交互来完成主机和设备间的信息交互。

• 设备Devices)。超高速(SuperSpeed)设备是信息交换的源头(sources)或目的(sinks)。它们实现必要的设备端超高速通信层来完成在主机端的驱动和设备端的逻辑功能之间的信息交换。

• 主机Host)。超高速(SuperSpeed)主机是信息交换的源头(source)或目的(sink)。它实现必要的主机端超高速通信层来完成通过总线的信息交换。它拥有超高速数据活动性调度(SuperSpeed data activity schedule)以及对超高速(SuperSpeed)总线和连接其上的所有设备的管理。

3-3展示了一个超高速互连(SuperSpeed interconnect)的参考图,通过主机,05级集线器,以及设备构成的拓扑结构所呈现的通信层次。

图中的各行(设备或者主机,协议,链路,物理层)实现超高速互连(SuperSpeed interconnect)的通信层次。第3.2.13.2.3节提供了对每个通信层次的体系结构的概览。三个最左边的列(主机,集线器和设备)展示了连接到超高速总线上的设备之间的拓扑关系。参考3.2.63.2.7之间的概览章节。最右边一列展示了各通信层次受电源管理机制的影响;参考3.2.5节。

3.2.1 物理层(Physical Layer)

6章详细描述超高速(SuperSpeed)物理层规范。物理层定义端口的PHY部分,以及下游面端口(在主机或集线器上)和设备上的上游面端口之间的物理连接。超高速物理连接包括两个差分数据对,一个传输路径以及一个接收路径(见图3-2)。标称信号数据率是5 Gbps

电气方面,每条路径是以发送器(transmitter),通道(channel),以及接收器(receiver)为特点的。这些联合起来代表一条单向差分链路。每条差分链路都与在差分链路的发送器一端的电容作交流耦合(AC-coupled)。通道(channel)包括线缆和连接器的电气特性。

在电气层次上,每条差分链路都是通过使能接收器终端阻抗(receiver termination)而被初始化的。发送器负责检测远端接收器终端阻抗(far end receiver termination),作为总线连接的指示,并通知链路层,从而连接状态可以被纳入(be factored into)链路操作和管理。

当有接收器终端阻抗(receiver termination)但差分链路上没有信号发生时,认为处于电气空闲状态(electrical idle state)。当处于这个状态时,低频周期信号(LFPS)被用于指示初始化和电源管理信息。LFPS相对容易生成和检测,且使用很少电源。

每个PHY都有其自己的时钟域(clock domain),使用扩频时钟调制【Spread Spectrum Clocking (SSC) modulation】。USB 3.0线缆不包括参考时钟(reference clock),因此物理连接两端的时钟域没有被明确连接。比特层(Bit-level)的时序同步(timing synchronization)依赖于通过锁相(phase-locking)所接收到的比特流(bit stream)中的信号转换(signal transitions),实现本地接收器的bit恢复时钟与远端发送器的时钟对齐。

接收器需要足够的转换(transitions)来从比特流(bit stream)中可靠地恢复时钟和数据。为了确保比特流中有足够的转换,而不依赖于被传输的数据内容,发送器(transmitter)使用8b/10b码(8b/10b code)来将数据和控制字符编码成符号(symbols)。控制符号用于完成字节对齐,并被用于分帧(framing)数据以及管理链路。特殊的特性使得控制符号可以从数据符号中唯一识别。好几个技术都被用来增强通道性能。例如,为了避免驱动过度(overdriving)并增强接收器端的眼图边界(eye margin),当多个具有相同极性的比特位被发送时,可以应用发送器信号弱化(transmitter de-emphasis)。同样,可以在接收器端使用均衡(equalization),其中均衡剖面(equalization profile)的特性是在链路训练(link training)的过程中自适应地建立起来的。超高速链路的信号(时序(timing),抖动容忍性(jitter tolerance),等)以及电气(直流特性(DC characteristics),通道容性(channel capacitance),等)性能的定义在发送和接收信号的眼图(transmit and receive signaling eyes)方面具有兼容性要求。

物理层从链路层接收8位数据,并将数据加扰(scrambles)以降低EMI的放射(emissions)。接着将加扰过的8位数据编码成10位符号,用于通过物理链路传输。结果的数据被以扩频速率(at a rate that includes spread spectrum)来发送,以进一步降低EMI的放射。比特流被接收器从差分链路恢复,组装成10位符号,解码并解扰(decoded and descrambled),生成8位数据,并进一步被送给链路层进行进一步处理。

3.2.2 链路层(Link Layer)

7章定义超高速(SuperSpeed)链路层规范。超高速链路(SuperSpeed link)是两个端口的逻辑和物理连接。被连接的端口(connected ports)被称为链路伙伴(link partners)。一个端口具有物理部分(参考3.2.1节)和逻辑部分。链路层定义了端口的逻辑部分以及链路伙伴之间的通信。

端口的逻辑部分具有:

• 用于管理它这一端的物理连接的状态机(State machines)。这些包括物理层的初始化(initialization)以及事件管理(event management),也即,连接(connect),删除(removal),以及电源管理(power management)。

• 用于管理与链路伙伴进行信息交换的状态机(State machines)和缓冲机制(buffering)。它实现协议,以用于流控制(flow control),包头的可靠交付(reliable delivery)(端口到端口),以及链路电源管理。不同的包类型定义在第7章。

• 用于数据和协议层信息元素的缓冲机制(Buffering)。

端口的逻辑部分还完成:

• 在发送过程中,将一序列字节正确地分帧成包(correct framing of sequences of bytes into packets);例如,插入包分隔符(delimiters)。

• 检测接收到的包,包括对接收到的头包进行包分隔符以及错误的检查(为了可靠交付)。

• 向协议层提供了一个恰当的接口,用于协议层包信息交换的穿过(pass-through)。

物理层向逻辑端口提供了一个接口,通过该接口可以:

• 管理PHY的状态(即,它这端的物理连接),包括电源管理以及事件(连接(connection),删除(removal),和唤醒(wake))。

• 发送(Transmit)和接收(receive)字节流,其中具有附加的信号,用于限定(qualify)字节流是控制序列(control sequences)还是数据。物理层包括离散的(discrete)发送和接收物理链路,因此,端口可以同时发送和接收控制和数据信息。

链路伙伴之间的协议使用特定编码的控制序列(specific encoded control sequences)。注意,控制序列被编码成可以容许单个比特错误(single bit error)。控制序列用于端口到端口的命令协议,包的分帧(framing)(包分隔符),等等。有一个用于电源管理的链路伙伴协议,使用了包头。

3.2.3 协议层(Protocol Layer)

8章详细描述超高速(SuperSpeed)协议层规范。这个协议层定义了在主机和设备之间"端到端(end-to-end)"的通信规则(间图3-3)。超高速协议为主机和设备端点之间提供应用数据信息交换。这个通信关系被称为管道(pipe)。这是由主机导向的协议(host-directed protocol),意味着主机决定何时应用数据在主机和设备之间被传送。超高速(SuperSpeed)不是轮询协议(polled protocol),因为设备能够代表特定的端点异步地向主机请求服务。

所有的协议层通信都是通过包的交换(exchange of packets)来完成的。包(Packets)是数据字节序列,具有特定的控制序列(作为分隔符由链路层管理)。主机发送的协议包被中间集线器(intervening hubs)直接路由给外围设备。它们不会穿越不在主机和目标设备直接路径上的总线路径。外围设备期望自己已经被当做接收到的包的目标。设备发送的协议包只是简单地通过集线器向上流向主机。

包头(Packet headers)是协议层的构件块(building block)。 它们是固定大小的包,具有类型(type)和子类型(subtype)字段编码,用于特定的目的。包头(packet header)中的一个小记录被用于链路层(端口到端口),来管理从端口到端口包的流向(flow of the packet from port to port)。包头(Packet headers)被通过链路层(端口到端口)可靠地传送。剩余的字段被用于端到端(end-to-end)协议。

应用数据(Application data)在数据包负载(data packet payloads)中传送。协议中,数据包负载(data packet payloads)在前面(preceded)被加上了特殊编码的数据包头(data packet headers)。数据包负载(data packet payloads)在链路层不是被可靠传输的(但是,伴随的数据包头是被可靠传输的)。协议层支持的可靠数据包传送是通过明确的确认包(包头)以及在丢失或者数据损坏时的重传来实现的。不是所有的数据信息交换都使用数据确认。

数据可以以背靠背序列的数据包(back-to-back sequences of data packets)的突发形式(in bursts)被发送(依赖于主机的调度)。协议允许通过同时在链路上发送和接收来实现总线的有效利用。例如,发射器(主机或设备)可以背靠背地突发多个包,同时接收器可以发送数据的确认而不中断数据的突发。在一个特定的突发中有多少个数据包是由主机来调度的。进一步,在一个IN突发进行的时候,主机可以同时调度多个OUT突发活跃起来。

协议对一些传输类型提供了流控(flow control)支持。设备发起的流控是由设备通过已定义好的协议包来示意的(signaled)。主机发起的流控事件是通过主机调度实现的(主机将会不向管道调度信息流,除非其有数据或者缓冲可用)。在接收到流控事件的时候,主机会将管道从其调度中删除。对管道的调度信息流(scheduling information flows)的恢复可以被主机或者设备发起。设备端点会通过一个异步传输的"准备好(ready)"包来通知主机它已经准备好(readiness)(来发送(source)或者接收(sink)数据)。在接收到"准备好(ready)"通知时,主机会将管道加入到它的调度中,假设其仍然具有数据或者缓冲区可用。

在批量传输类型上,可以明确地描绘(delineated)和多路复用(multiplexed)独立的信息流(Independent information streams)。这意味着,通过一个管道实例,源端(source)可以标记(tagged)多于一个的数据流(data stream),并被接收端(sink)识别出来。协议提供让设备引导(direct)在管道上哪一个数据流活跃的能力。

设备可以异步(asynchronously)传送通知给主机。这些通知用于传达设备或者功能状态的改变。

主机发送一个特殊的包含了主机的时间戳(timestamp)的包头到总线。在这个包中的值被用来保持设备(那些有此必要的)与主机同步。与其他包对比,时间戳包(timestamp packet)被向下转发给不处于低功耗状态的所有路径。时间戳包(timestamp packet)的发送是被主机以规范定义的周期来调度的。

3.2.4 健壮性(Robustness)

超高速(SuperSpeed USB的好几个属性都有助于其健壮性:

• 用差分驱动器(drivers),接收器(receivers),以及屏蔽(shielding)来保证信号完整性(Signal integrity)。

• 对于包头和数据包的CRC保护(CRC protection for header and data packets)。

• 链路层头包重试(header packet retries)以确保他们的可靠递送(reliable delivery)。

• 对数据包的端到端协议重试(End-to-end protocol retries)以确保他们的可靠递送(reliable delivery)。

• 对连入(attach)和拔出(detach)的检测以及系统级别的资源配置。

• 用于确保独立性(independence)以免受功能(Functions)之间不利的交互(adverse interactions)所采用的数据和控制管道的构件(Data and control pipe constructs)。

3.2.4.1 错误检测(Error Detection)

超高速物理层比特误差率(bit error rate)被期望可以低于每10^12个比特出现1个错误。为了针对偶然的误差提供保护,包分帧(packet framing)以及链路命令(link commands)都具有足够的冗余信息来容忍单个比特错误(single-bit errors)。每个包都包含有CRC,用于提供对多个比特出错的检测。当需要数据完整性(data integrity)时,可以调用硬件或者软件的出错恢复过程。

对于包头(headers)和数据包负载(data packet payloads),协议包含独立的CRC。此外,(每个包头中的)链路控制字(link control word)都有其自己的CRC。包头或者链路控制字中(link control word)的失败CRC都被认为是严重错误,将会导致链路层重试,以从错误中恢复。数据包负载(data packet payloads)中的失败CRC被认为是指示毁坏的数据,并可以被协议层请求重传(resend)数据包来处理。

链路和物理层携手,提供可靠的包头传输(reliable packet header transmission)。物理层提供(平均地)每10^12个比特不超过1个错误比特的出错率。链路层使用出错校验来捕捉错误,并且包头的重传(retransmission of the packet header)进一步降低了包头的出错率(packet header error rate)。

3.2.4.2 错误处理(Error Handling)

错误可以被硬件或者软件处理。硬件的出错处理包括报告以及重传失败的头包(failed header packets)。在通知客户端软件传输失败之前,USB主机控制器会尝试重传遇到错误的传输多达3次。客户软件可以以实现特定的方式恢复。

3.2.5 超高速(SuperSpeed)电源管理

超高速(SuperSpeed)在总线架构(bus architecture),链路(link),设备(device)以及功能(function)不同的领域都提供了对电源管理的支持(参考图3-3)。 这些电源管理领域并不是紧耦合的,但是的确存在相互依赖关系。他们大多是基于对链路(links),设备(devices)以及功能(functions)的电源状态(power states)的依赖关系,来处理可允许的电源状态转换(allowable power state transitions)。

链路电源管理(Link power management)在互连的层级(connected hierarchy)中的各个链路上异步(asynchronously)发生(即,链路本地发生)。 链路电源状态(link power state)可以由设备所驱动,或者由下游端口上的可被主机软件编程的不活动定时器所驱动。链路电源状态(link power states)由集线器向上传导(propagated upwards)(例如,当所有下游端口都处于低功耗状态时,要求集线器将其上游端口也转换到低功耗状态)。改变链路电源状态的决定是在本地(locally)做出的。主机并不直接跟踪单个链路的电源状态。在给定的数据交换中,由于只涉及那些在主机和设备之间的链路,那些没有被使用来做数据通信的链路可以被置于低功耗状态。

主机对单个链路的电源状态并不直接控制,也没有可见性。这就暗含当主机在总线上发起一次通信时,在主机和设备之间的路径上的一段或者多段链路可能正处于降低功耗状态(reduced power state)。具有带内的(in-band)协议机制可以强制这些链路转换到可操作的电源状态,并通知主机转换已经发生。通过这些机制,主机知道(可以计算)将到任何特定设备的路径带回到活跃的,准备好的状态所需要的最差转换时间(worst-case transition time)。类似地,当其上游链路处于降低功耗状态(reduced power state)的设备要发起一次通信时,将会将其链路转换进可操作状态,这就会将在它和主机之间的所有链路进入可操作状态。

链路电源管理的关键点在于:

• 设备发送异步"准备好"通知给主机。

• 包被路由(routed),允许未涉及数据通信的链路转换进入或者保持在低功耗状态。

• 遇到处于低功耗状态的端口的包,会导致这些端口转换出低功耗状态,并具有转换事件的指示。

• 多个主机或者设备驱动的链路状态,具有渐进的更低功耗(progressively lower power),且增加的退出时延(at increased exit latencies)。

就像USB 2.0总线一样,通过类似的端口挂起(port-suspend)机制,设备可以被明确地挂起。这将把链路设置到最低链路电源状态,并且对设备的电源汲取要求(power draw requirement)设置限度。

除了设备电源管理外,超高速(SuperSpeed)还提供对功能电源管理(function power management)的支持。 对于多功能的复合设备【multi-function (composite) devices】,每个功能都可以被独立地置于更低功耗状态。注意,当被主机通过端口命令(port command)控制时,设备会转换进入被挂起(suspended)状态。当设备内所有独立的功能都被挂起时,设备并不会自动转换进入被挂起状态。

设备的功能可以具有作为远程唤醒源(remote wake sources)的能力。功能的远程唤醒特性(remote-wake feature)必须被主机明确地使能。类似地,有协议通知(protocol notification)可用来供相关的唤醒源功能(source function)发起远程唤醒事件(remote wake event)。所有的远程唤醒通知(remote wake notifications),对于设备和主机之间的所有可能的独立链路电源状态的组合(all possible combinations of individual link power states)都是可工作的(functional)。

3.2.6 设备(Devices)

所有的超高速(SuperSpeed)设备与USB 2.0共享基本的体系结构。它们被要求携带用于自我标识(self-identification)的信息和通用的配置。它们也被要求呈现与定义的超高速设备状态(SuperSpeed Device States)一致的行为。

所有的设备都被主机在枚举时赋予一个USB地址。每个设备都支持一个或者多个管道(pipes),通过这些管道主机可以与设备通信。所有的设备都必须在端点0上支持一个特定的管道(designated pipe),设备的默认控制管道(Default Control Pipe)就附着于此。所有的设备都支持一个共通的访问机制,用于通过这个控制管道访问信息。参见第9章中关于控制管道完整的定义。

超高速(SuperSpeed)继承了USB 2.0的默认控制管道所支持的信息类别(categories)。

USB 3.0规范定义了两组设备可以连接到超高速(SuperSpeed)主机上。 他们在下面被简要描述。

3.2.6.1 外围设备(Peripheral Devices)

USB 3.0外围设备(peripheral device)必须对超高速(SuperSpeed)和非超高速(non-SuperSpeed)都提供支持。对非超高速(non-SuperSpeed)的最低要求是,设备在USB 2.0主机上能被检测到,并允许系统软件引导用户将设备连入可支持超高速的端口(SuperSpeed capable port)。当操作在非超高速(non-SuperSpeed)时,设备的实现可以提供恰当地全功能支持。对于外围设备,不允许超高速(SuperSpeed)和非超高速(non-SuperSpeed)同时操作。

位于单个物理封装(single physical package)(例如,单个外设)内的USB 3.0设备可以由许多功能拓扑(functional topologies)组成,包括单个功能(single function), 单个外围设备上的多个功能(multiple functions)(复合设备(composite device)),以及在集成的集线器(integrated hub)后面永久连入的外围设备(permanently attached peripheral devices)(参见图3-4)。

3.2.6.2 集线器(Hubs)

USB 3.0 集线器的超高速部分(SuperSpeed portion)的规范在第10章详细描述。集线器一直以来都是USB的即插即用(plug-and-play)架构的关键元素。主机提供实现特定(implementation-specific)个数的下游端口,设备可以连入其中。集线器提供了更多的下游端口,因此它们为用户提供了简单地连接性扩展机制,用于更多设备的连入。

为了支持USB 3.0的双总线架构,USB 3.0集线器在逻辑上是两个集线器的组合:一个USB 2.0集线器和一个超高速(SuperSpeed)集线器(参见图3-1中的集线器)。在USB 3.0集线器内部,连接到上游端口的线缆的电源和地线(power and ground)在两个单元之间共享。USB 2.0集线器单元连接到USB 2.0数据线,而超高速(SuperSpeed)集线器单元连接到超高速(SuperSpeed)数据线。USB 3.0集线器作为两个设备连接到上游,一个超高速总线上的超高速(SuperSpeed)集线器,以及一个USB 2.0总线上的USB 2.0集线器。

超高速(SuperSpeed)集线器管理下游端口的超高速部分(SuperSpeed portions),USB 2.0集线器管理下游端口的USB 2.0部分。每个物理端口具有总线特定的控制/状态寄存器。参考Universal Serial Bus Specification, Revision 2.0中关于USB 2.0集线器的详情。集线器检测下游端口上的设备连入(attach),删除(removal),以及远程唤醒(remote-wake)事件,并使能到下游设备的电源分布。

超高速(SuperSpeed)集线器有两个连接组件组成:超高速集线器控制器(SuperSpeed hub controller)以及超高速中继器/转发器(SuperSpeed repeater/forwarder)。集线器中继器/转发器(hub repeater/forwarder)是一个处于超高速上游端口和下游端口之间的,由协议控制的路由器(protocol-controlled router)。它也有对复位(reset)以及挂起/恢复(suspend/resume)信号的硬件支持。超高速控制器响应标准的,集线器特定的状态/控制命令(status/control commands),由主机来配置集线器,并监视和控制其端口。

超高速集线器以几种方式积极地参与到(端到端的)协议中,包括:

• 路由出向(out-bound)的包到明确的下游端口。

• 聚集入向in-bound)的包到上游端口。

• 传导时间戳包(timestamp packet)到所有的不处于低功耗状态的端口。

• 检测何时包遇到处于低功耗状态的端口。集线器将目标端口转换出低功耗状态,并把该包遇到处于低功耗状态的端口这一情形通知主机和设备(入向(in-band))。

3.2.7 主机(Hosts)

USB 3.0主机通过一个主机控制器与USB设备交互。为了支持USB 3.0的双总线架构,主机控制器必须同时包含超高速和USB 2.0元素,可以同时在每条总线上管理主机和设备之间的控制,状态以及信息交换。

主机包括一个实现特定的个数的根下游端口,用于超高速和USB 2.0。通过这些端口,主机:

• 检测USB设备的连入(attachment)和移除(removal)。

• 管理主机和USB设备之间的控制流。

• 管理主机和USB设备之间的数据流。

• 收集状态和活动性统计。

• 提供电源给连入的设备。

USB系统软件从USB 2.0中继承其体系结构方面的要求,包括:

• 设备枚举和配置(Device enumeration and configuration

• 调度周期和一部数据传输(Scheduling of periodic and asynchronous data transfers

• 设备和功能电源管理(Device and function power management

• 设备和总线管理信息(Device and bus management information

3.2.8 数据流模型(Data Flow Models)

4章描述超高速(SuperSpeed)数据流模型。超高速(SuperSpeedUSBUSB 2.0继承数据流模型,包括:

• 主机和设备之间的数据和控制交换是通过一组单向或者双向管道来完成的。

• 数据传输在主机软件和特定的设备端点之间发生。端点和设备上的特定功能(function)相关。这些在主机软件到特定的功能相关的端点之间的相关性被称为管道(pipes)。设备可以具有多于一个活跃的管道。具有两种管道:流式(stream)和消息式(message)。流数据(Stream data)没有USB定义的结构,而消息有。管道在数据带宽,传输服务类型(见下),以及端点特性(如方向和缓冲大小)方面具有关联。

• 大多数管道是在设备被系统软件配置之后才开始存在(come into existence)。但是,有一个消息管道,即默认控制管道(Default Control Pipe),一旦设备被加电并进入默认状态就一直存在,用来提供对设备配置,状态,控制信息的访问。

• 管道提供4种USB 2.0种定义的传输类型中的一种(bulk, control, interrupt, 以及isochronous)。这些传输类型的基本的体系结构元素相比USB 2.0没有改变。

• 超高速(SuperSpeed)对于批量(bulk)传输类型具有一个扩展,称为流(Streams)。流(Streams)通过一个标准的批量管道(bulk pipe),为复用多个独立的逻辑数据流(multiplexing multiple independent logical data streams),提供了内(in band)的协议层支持。


这篇关于USB 3.0规范中译本 第3章 USB 3.0体系结构概览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301324

相关文章

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

JavaEE7 Servlet 3.1(JSR 340)规范中文版

http://www.iteye.com/news/27727-jinnianshilongnian     Jave EE 7中的部分规范已正式获得批准通过,其中包括JSR340 Java Servlet 3.1规范,去年翻译了该规范,在此分享出来,希望对某些朋友有所帮助,不足之处请指正。   点击直接下载    在线版目录   Servlet3.1规范翻译

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

Usb Audio Device Descriptor(10) Hid Device

对于 Standard Interface Descriptor, 当 bInterfaceClass=0x03时,即为HID设备。Standard Interface Descriptor如下 struct usb_standard_interface_descriptor{U8 bLength; /*Size of this descriptor in bytes*/U8 bDescrip

Android rk3399 UAC(USB Audio)开发笔记

一、UAC有1.0和2.0,因Windows对2.0支持不好,我使用的是UAC1.0驱动 内核配置:CONFIG_USB_CONFIGFS_F_UAC1          ---这个宏配置无需物理codec,使用虚拟 alsa codec  驱动路径:"kernel\drivers\usb\gadget\function\f_uac1.c" 内核配置:CONFIG_USB_CONFIGFS_

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

三维布尔运算对不规范几何数据的兼容处理

1.前言 上一篇文章谈过八叉树布尔运算,对于规范几何数据的情况是没有问题的。 在实际情况中,由于几何数据来源不一,处理和生成方式不一,我们无法保证进行布尔运算的几何数据都是规范的,对于不规范情况有时候也有需求,这就需要兼容不规范数据情况,当然这种兼容不是一味的让步,而是对于存在有限的不规范数据的兼容处理。 2.原始数据示例 下图是一个大坝模型和之上要对其进行布尔运算的立方体。 大坝模型由

【C/C++】变量命名规范

在 C++ 中,为 bool 类型的变量命名时,通常遵循以下命名规范,以确保代码的可读性和一致性: 表示状态或条件: 使用 is 前缀表示某个状态或条件,例如 isReady、isValid。使用 has 前缀表示是否拥有某个属性,例如 hasData、hasError。使用 can 前缀表示是否具备某种能力,例如 canExecute、canRead。使用 should 前缀表示是否应该执行