若要实现真正的USB高速传输,一定要2.0主机与2.0集线器连接。但是如果中间插上了一台1.1集线器,就无法达到这个高速传输的效果。此外,当低速或是全速设各被连接至2.0集线器后,这个集线器会转换两者所需的速度。但是这种速度的转换并不是集线器的工作,它还要管理多个速度。而高速比全速快了40倍,又比低速快了320倍。若当集线器在与设各交换低速或高速数据时,要整个总线去等待是没有意义的。因此,这个解决方案即是分割数据交易。当2.0主机要在高速总线上与低速或是全速来作通信时,即会使用分割交易的程序。低速或全速的一个单一数据交易通常需要两种类型的分割数据交易,其中,一个或是更多地起始分割数据交易(start-SplittransactIons)来送出信息给设备,或是更多地完成分割数据交易(complete-split transactions),如图1所示。其中,可以看到不论是起始分割数据交易去送出信息给设各,或是更多地完成分割数据交易,而其后都跟随着一般的令牌和数据封包等。

图1 起始分割数据交易与完成分割数据交易的示意图
但其中,有一个例外的是,快速等时OUT数据交易。这是因其无须回传任何值,所以不必使用完全分割数据交易。而即使用户需要包含更多的数据交易来实现一个传输的工作,但分割数据交易的程序将会使得总线的时间有较佳的使用性。这是因为它们将会缩小对于低速或是全速设备用来响应所需花费的总线等待时间量。
如图1所示,在起始分割数据交易中,2.0主机会送出至起始分割令牌封包(Start-Split Token Packet,SSPLIT),其后再跟随一般的低速或是全速令牌封包(在令牌阶段中,包含2个令牌封包,SSPLIT(起始令牌)+令牌),以及指定此设备的数据封包。此时,若设各所连接的2.0集线器回传ACK或是NAK,主机就可以针对别的数据交易很自由地使用整个总线的带宽。而设各也知道至今仍未有任何的数据存在。
为了更清楚了解整个起始分割数据交易与完成分割数据交易的过程,读者可以比对图2与图3,分割数据交易IN与OUT的过程示意图。在这两个图中,包含了3个主要的传输部分,2.0主机、2.0集线器与低速或是全速的设各。因此,读者可以从这3个主要的部分来加以分析,且以图2与3所示之3个步骤来加以了解。

图2 分割数据交易(IN)过程示意图
如图2所示的第1步中,2.0主机先送出SSPLIT与IN令牌。第2步,集线器就会转换主机接收到的封包或多 个封包为适当的速度,然后将它们送至设备,以及存储如果设备有的任何响应。根据数据交易类型,设各可以回传数据、握手或是没有任何动作。对于设备部分来说,这个数据已经是以预期的低速或是全速来处理的,且不知这是已被分割过的数据交易。此时,主机仍未收到任何设备的响应。当集线器已经完成了与设各的数据交易的工作后,紧接着,主机可以开始另外的总线传输工作。同时,该集线器也必须加以处理。
此时对主机来说,当其认为集线器已经有足够的时间来完成与设各的数据交易后,就开始与集线器进行完成分割数据的步骤,这即是步骤3(注意到这个动作在数据交易OUT,是不需要的)。
在第3步中的完成分割数据交易中,主机会送出完成分割数据交易,其后一般再跟随低速或全速令牌封包(在令牌阶段中,包含2个令牌封包,CSPLIT(完成令牌)+令牌),来要求集线器已经从设各收到的数据或状态信息。这也可参考图2所示的下半部。集线器就会回传所要求的数据或是状态码。这将是完成数据交易的动作。如果集线器并没有准备好可以送出封包,它将会回传NYET状态码,而且主机还会再试。
中断与等时传输的分割数据交易的程序是类似的,但更严谨地定义其时序。而这个目标即是在设各有可使用的数据后,会尽可能立即去传输数据给主机,或是设备已经准备好新的数据之前,主机能传输数据给设各。为了达到这个目标,具有大量封包的等时数据交易可以使用多个起始分割或完成分割数据交易,来每传输一部分数据。
不像批量或控制传输,在中断与等时传输的起始分割数据交易不含有握手阶段。反而是在其后跟随IN、OUT或SETUP封包,以及若是OUT或SETUP封包,应再加上数据封包。
在此,对数据交易的起始分割与完成分割做个小结论(参考图2)。
·仍然包含3个(或是更少)的数据交易层(令牌、数据与握手);
·令牌阶段具有2个封包:SPLIT令牌封包与一般令牌封包;
·Start-OUT:SSPLIT(起始令牌)+令牌,数据,(握手);
·Start IN:SSPLIT(起始令牌)+令牌,(握手);
·Complete OUT:CSPLIT(完成令牌)+令牌,握手;
·Complete IN:CSPLIT(完成令牌)+令牌,{数据),握手。
如图2所示,在等时IN数据交易中,当主机知道设各将会有部分数据要回传时,就会在每一个微帧安排完成分割数据交易的工作。这种以较小量来要求数据的方式,可以确保主机尽可能快速地接收到数据。这样主机就不必等待从设备以全速传输的所有数据。
此外,如图3所示,在等时OUT数据交易中,主机会以一个或是更多的起始分割数据交易来送出数据。主机会安排这些数据交易的程序,如此集线器的缓冲区将不曾是空的,且会尽可能包含一些字节。在每一个SPLIT封包中,包含了用来表示其在低速或全速数据封包的数据位置的许多位。读者也可以发现这个OUT数据交易不含完成分割数据交易的程序。

图3 分割数据交易(OUT)过程示意图
表比较了在不同的总线速度下,低速与全速设各所具有的数据交易的结构与内容。其中,列出了当低速或全速设各在高速总线上有一个数据交易,且主机在这些设各与USB 2.0主机集线器之间使用了起始分割数据交易(SSPLIT)以及完成分割数据交易(CSPLIT)时,中间的集线器就负责将低速或全速加以完成分割,并且回报给主机。
表 不同的总线下,低速与全速设备所具有的数据交易的结构与内容

欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。