您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > USB3.0协议规范中文解读
USB3.0与USB2.0的特性比较3.2超速结构超速总线是一个分层的通讯结构,如下图所示:1协议层:协议层在主机和设备间定义了end-to-end通讯规则。超速协议在主机和设备端点(endpoint)之间提供应用数据信息交换。这个通讯关系叫做管道(pipe)。它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用数据传输。设备可以通过一个特定端点向主机发起异步请求服务,所以它不是一个轮询协议(USB2.0为轮询协议)。数据可以连续突发传输,提高总线效率。对某些传输类型(块传输),协议提供流控支持。SS设备可以异步发送,通知主机,设备的功能状态发生改变。而不是轮询的方式。设备端点可以通过设备异步发送的“ready”包(ERDYTP)通知主机进行数据发送与接收,主机对于“ready”通知,如果有有效的数据发送或者缓存接收数据,会添加管道。主机发送包含主机时间戳的特殊包头(ITP)到总线上,该值可以用于保持设备和主机同步(如果需要的话)。超速USB电源管理:链路电源管理的关键点是:·设备向主机发送异步“ready”通知·包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状态。·如果包送到一个处于低电源状态的端口,这个端口会切换到退出低电源状态并指示这是个切换事件。设备:·超速需要支持USB2.0对默认的控制管道的规定。HUB设备:因为USB3.0向下兼容USB2.0,为支持USB3.0双总线结构,USB3.0HUB在逻辑上是两个HUB的组合:一个USB2.0HUB和一个USB3.0HUB。连接到上游端口的电源和地线是共享的。集线器参与到一个端到端的协议中,所承当的工作:·路由选择输出的包到下游端口。·输入包混合传递到上游端口·当不在低功耗状态下时,向所有下游端口广播时间戳包(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协议。端点的属性(最大包尺寸(端点缓存大小),突发大小等)被记录在描述符中和SSEndpointCompanionDescriptor。正如在USB2.0中,端点是使用三个参数组成的地址来验证(设备地址,端点号和方向)。所有的SS设备必须起码在默认控制管道(端点0)开始执行。4.2.1管道一个超速管道是一个设备上的端点和主机软件的连接。管道代表拥有缓存空间的主机软件和设备端点之间传输数据的能力,和USB2.0有相同的过程。主要的区别在于当超速的非同步端点忙时,会返回一个没有准备好(NRDY)应答,当它想又要服务时必须发送准备好(ERDY)通知。主机在下一个传输类型限制下的有效时机中重新安排事务。4.3超速协议综述:正如在USB3.0结构总览那章中提到的,超速协议是利用双差分数据线的物理层。所有的USB2.0的类型都可以被高速协议支持。协议之间的区别在于下面要首先讨论的超速中使用的包的描述。34.3.1与USB2.0的区别:在框架上,超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同:·USB2.0的transaction有三部分(令牌(token)、数据(data)和握手(handshake)),超速也是这三部分但是用法不同(令牌包集成在头包和DPH中,各种类型的握手包都是TP包形式);对于OUT事务,令牌被合并在数据包中;对于IN事务,令牌被握手包代替。·USB2.0不支持突发(bursting),超速支持持续突发;·USB2.0是半双工(half-duplex)的广播总线,超速是dual-simplex(全双工)的非广播总线,支持同时进行IN、OUTtransaction;·USB2.0使用轮询模式,超速使用异步通知方式;·USB2.0不支持流能力,超速支持海量(bulk)端点的Stream方式;·USB2.0在同步传输(isochronous)间隔中没有进入低耗电状态的机制,超速则允许同步传输服务间隔中自动进入低耗电状态(不服务的时间段进入低功耗);SS主机在服务间隔前发送一个PING包到目标同步设备允许开始同步传输之前转变成电源活动状态。·USB2.0设备无法通知主机自己在进入低耗电状态前可容忍的延迟时间(设备通知主机自己进入低功耗状态的最长延迟时间),超速则提供LatencyTolerance消息;·USB2.0以固定的1ms/125us间隔发送帧包/小帧包(USB2.0全速和高速模式)。超速下,设备可以发送IntervalAdjustment消息给主机调整间隔125us一直到+/-13.333us;·USB2.0电源管理总是主机导向(主机初始化)的,超速链路两端都支持电源管理;因此不管何时需要空闲,需要退出,需要通信,每个链路能独立的进入低电源状态。·USB2.0仅在每个transaction进行end-to-end级别的错误检测、恢复、流控,超速在end-to-end(数据包重试)和链路级别(头包重试)分割这些功能。4.3.2比较USB2.0和超速的事务处理(Transaction)超速全双工总线物理层允许同时进行双向的通信。超速协议允许收到握手包之前发送多个数据包(突发)。对于OUT传输,包含在USB2.0令牌包中的信息(设备地址和端点信息)被合并在数据包头里面,因此不需要额外令牌包。对于输入传输IN,超速主机发送一个握手包(ACK)给设备以请求数据(和指示数据是否正确)。设备可以通过返回数据或者返回STALL握手包来应答,或者返回一个没准备好(NRDY)握手包延迟传输直到设备准备好了。USB2.0的包是广播方式,每个连接的设备解析每个包的地址、端点、方向信息来决定自己是否应该响应。超速包有路由信息,HUB决定每个包要送达哪个设备,只有一个例外,等时时间戳包(IsochronousTimestampPacket,ITP)广播到每一个设备。USB2.0的查询方式已经被异步通知代替。超速传输通过主机发出一个请求来开始传输,后面跟随着设备的应答。如果设备能接受请求,它就接收数据或者发送数据;如果端点停止了,设备应该以STALL握手包响应;如果设备由于缺少缓存空间或者没有数据而不能接受请求,应该以NRDY应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设备会主动发送一个端点准备好(ERDY)异步通知给主机然后主机会重新安排传输事务。单路传送和有限制的多点广播的包以及异步通知,都允许没有活跃传输包的链路进入一个降低功耗状态,上游和下游端口共同决定它们的链路进入一个低功耗状态,集线器会传递到上游端口。通过允许链路伙伴独立控制它们的链路电源状态,集线器将任意下游端口可见的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。4.3.1.2超速包介绍:4超速包以16字节的头部开始。一些包只包含有头部(TP,LMP,ITP)。所有的头部以用于决定包处理方式的包类型信息开始。头部有16位CRC保护,以2个字节链路控制字(linkcontrolword)结束。依赖于类型,大多数包包含有路由信息(路由字符)和一个三参数的设备地址(设备地址,端点号和方向)。路由字符给主机用来指导包被发送到被指向的拓扑路径。设备发送的包被集线器默认路由选择,集线器总是把数据从任何可见的下游端口传到上游端口(这一过程不需要路由信息)。有四种基本类型的包:(协议层)·LinkManagementPacket(LMP),只穿过一对直接连接的端口(链路两端),主要用来管理链路。·TransactionPacket(TP,事务包),穿过所有直接连接主机与设备的链路,用来控制流式数据包,配置设备和集线器等(任何传输类型的事务处理都用到)。注意一个TransactionPacket是没有数据的。(控制命令包,TP包就是一个包头(DPH))·DataPacket(DP),穿过所有直接连接主机与设备的链路,数据包有两部分组成,一个和TP包相似的数据包头(DPH)和带有数据块加上用来确保数据完整性的32位CRC的数据包(DDP)·IsochronousTimestampPacket(ITP)。它被主机用来多点广播到所有的活动的链路上。4.4对传输(transfer)的一般性描述:每一个发送给接收器的非同步数据包通过一个握手包(ACKTP)被应答(同步端点不应答,非同步端点要为每个收到的数据包进行应答,以报告是否正确传输和是否要重传),但是由于超速有独立的发送与接收路径,所以发送器不必在发送下一个包之前为每次传输的数据包等待一个握手(超速USB的一个特色:同时进行发送数据与接收应答,当设备检测到数据包错误时或者端点错误,没准备好等,都会通过在应答TP包中反应给主机,主机收到的应答TP包中记录出错的包顺序号,于是主机从错误的那个顺序号开始重新发送包)。超速保护所有的基本数据流和USB2.0定义的传输观点,包括传输类型,管道和基本数据流模式。和USB2.0的区别在这章被讨论,开始是协议层,然后是传输类型。USB2.0规范利用一系列事务处理的模式。这从本质上意味这主机是在开始下一次事务前完成这一次总线处理(令牌,数据和握手)。分离事务处理也坚持这相同模式,因为他们由完整的高速事务组成,类似所有其他事务在相同的模式下完成。超速通过实施发送与接受同步改善了USB2.0事务的协议。因此超速USB事务处理协议本质上是一个分离的事务处理协议,它允许在同一时间不止一个OUT总线事务处理(设备可以多个)和至多一个IN总线事务处理(主机只有一个)在总线上活动。设备对事务处理的应答的命令是确定在每个端点基础上(例如,如果一个端点接收三个DP包,端点必须为每一个DP包返回ACKTP告知收到DP包)。USB2.0协议要在继续下一个总线事务处理之前完成整个IN或OUT事务(令牌,数据和握手包连续传输),所有的来自主机的传输本质上是广播到USB2.0总线上的每一个活动设备,与之比较起来,超速协议不进行广播任何包(ITP除外),包只穿过需要达到目标接收方的链路,主机通过发送握手请求(ACKTP)或者发送数据(OUT)开始所有的事务,设备以数据或者握手来应答。假如设备没有有效的数据(IN)或者不能接受数据(OUT),它会以一种包(NRDY)来应答以指示不能进行此操作。之后,当设备准备好发送或者接收数据时,它会发送一个包给
本文标题:USB3.0协议规范中文解读
链接地址:https://www.777doc.com/doc-5515751 .html