USB3.0协议(中文) 下载本文

USB3.0 与USB2.0的特性比较

3.2 超速结构

超速总线是一个分层的通讯结构,如下图所示:

1

协议层:

协议层在主机和设备间定义了end-to-end(端到端)通讯规则。超速协议在主机和设备端点(endpoint)之间提供应用数据信息交换。这个通讯关系叫做管道(pipe)。

它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用数据传输。设备可以通过一个特定端点向主机发起异步请求服务,所以它不是一个轮询协议(USB2.0为轮询协议)。

数据可以连续突发传输,提高总线效率。 对某些传输类型(块传输),协议提供流控支持。

SS设备可以异步发送,通知主机,设备的功能状态发生改变。而不是轮询的方式。设备端点可以通过设备异步发送的“ready”包(ERDY TP)通知主机进行数据发送与接收,主机对于“ready”通知,如果有有效的数据发送或者缓存接收数据,会添加管道。

主机发送包含主机时间戳的特殊包头(ITP)到总线上,该值可以用于保持设备和主机同步(如果需要的话)。

超速USB电源管理:

链路电源管理的关键点是:

·设备向主机发送异步“ready”通知

· 包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状态。

· 如果包送到一个处于低电源状态的端口,这个端口会切换到退出低电源状态并指示这是个切换事件。

设备:

·超速需要支持USB2.0对默认的控制管道的规定。

HUB设备:

因为USB3.0向下兼容USB2.0,为支持USB3.0双总线结构,USB3.0 HUB在逻辑上是两个HUB的组合:一个USB2.0 HUB和一个USB3.0 HUB。连接到上游端口的电源和地线是共享的。

集线器(HUB)参与到一个端到端的协议中,所承当的工作: ·路由选择输出的包到下游端口。 ·输入包混合传递到上游端口 ·当不在低功耗状态下时,向所有下游端口广播时间戳包(ITP),即为同步时间信息包。 ·当在一个低功耗状态的端口检测到包时,集线器将目标端口转变成退出低功耗状态,通知主机和设备(带内)包遭遇到了一个在低功耗状态的端口。

主机(Hosts):

一个USB3.0主机通过主控器和USB设备互连。为了支持USB3.0双总线结构,USB3.0主控器必须包括超速(USB3.0)和USB2.0部分,这样可以同时管理每一个总线上主机和设

2

备间的控制、状态和信息交换。

主机含有几个根下行端口实现超速USB和USB2.0,主机通过这些端口:

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

USB系统软件继承了USB2.0的结构,包括:

·设备枚举和配置;

·规划周期性和异步数据传输; ·设备和功能电源管理; ·设备和总线管理信息。

数据流模型:

超速USB集成了USB2.0的数据流模型,包括:

·主机和设备间的数据和控制交换通过管道(pipe)进行 ,数据传输在主机软件和指定的设备端点间进行。

·设备可以有不止一个的活动管道,有两种类型的管道:流式管道(数据)和消息管道(控制),流式管道没有USB2.0定义的结构,消息管道有指定的结构(请求的结构)。管道相关联的是数据带宽,传输类型(见下面描述),端点属性,如传输方向与缓冲大小。

·大多数管道在系统软件对设备进行配置后才存在,但是当设备上电在默认的状态后,一个消息管道即默认的控制管道总是存在的。提供权限访问设备的配置,状态和控制信息。

·一个管道支持USB2.0定义的四种传输类型的一种(管道和端点属性一致)。 ·海量传输类型(bulk)在超速中进行了扩展,叫做流(stream)。流式提供在协议级支持在标准块传输管道中多路传输多个独立的逻辑数据流。

第四章 超速数据流模型

4.2超速通信流

SS保持相似的观念和机理,支持端点,管道和传输类型。参考USB2.0协议。 端点的属性(最大包尺寸(端点缓存大小),突发大小等)被记录在描述符中和SS Endpoint Companion Descriptor。正如在USB2.0中,端点是使用三个参数组成的地址来验证(设备地址,端点号和方向)。所有的SS设备必须起码在默认控制管道(端点0)开始执行。

4.2.1 管道

一个超速管道是一个设备上的端点和主机软件的连接。管道代表拥有缓存空间的主机软件和设备端点之间传输数据的能力,和USB2.0有相同的过程。主要的区别在于当超速的非同步端点忙时,会返回一个没有准备好(NRDY)应答,当它想又要服务时必须发送准备好(ERDY)通知。主机在下一个传输类型限制下的有效时机中重新安排事务。

4.3超速协议综述:

正如在USB3.0结构总览那章中提到的,超速协议是利用双差分数据线的物理层。所有的USB2.0的类型都可以被高速协议支持。协议之间的区别在于下面要首先讨论的超速中使用的包的描述。

3