USB超高速 同步传输
正如USB2.0一样,超速同步传输类型是用来支持想要能容忍错误,周期性的轮询服务的传输流。超速跟USB2.0一样不发送起始帧,但是时序信息要通过同步时间戳包(ITP)被发送给设备。这个规格的协议层章详细描述了用来完成同步传输的包,总线事务和事务处理流程。也描述了怎么样传送时序信息给设备。超速同步传输类型提供下面的:
- 保证在超速总线上一定范围延迟尝试事务处理的带宽
- 只要数据被提供给管道,保证通过管道的数据率
同步事务处理在每个服务周期在同步端点上被尝试。超速总线上承认的同步端点被保证它们需要的总线带宽。主机在对设备的特殊端点进行轮询服务间隔的任何时候都能请求来自设备的数据或者发给设备数据。被要求的端点轮询服务周期在端点描述符中被定义。超速同步传输是用来支持一个以相同平均速率产生和消耗数据的发送器/接受器。
超速同步管道是一种流管道,总是单向的管道。端点描述符确定被给定的同步管道通信流是流向主机还是流出主机。如果设备需要双向的同步通信流,则要使用两个同步管道,一个输入,一个输出。
无论任何时候当同步传输需要穿过非活动链接, 超速电源管理都会妨碍到同步传输。结果延迟会导致数据在服务周期内没有到达。为防止这种情况,超速定义了PING和PING_RESPONSE机理(参考8.5.7),开始一次同步传输之前,主机可以发送一个PING包给设备,设备以PING_RESPONSE包应答通知主机所有连到设备的链路在活动状态。
同步传输包大小
同步传输端点指定了端点在总线上能够接收/发送的最大数据包大小。对于支持突发尺寸大于1的同步端点,允许的最大数据包大小只能为1024字节;对于支持突发尺寸等于1的同步端点,最大数据包大小可为0到1024之间的任何值。同步端点允许的最大突发尺寸为16.但是同步端点能在同一个服务周期中请求3次突发事务处理。
超速协议不要求同步数据包一定要为最大数据包大小,但是如果传输的数据量比最大数据包尺寸小的话,数据包不被填满。
主机应该支持超速同步端点所有的同步数据包大小和突发大小。主机应该确保发送到端点的数据包量小于端点描述符中定义的最大数据包大小,还要确保突发事务处理中的数据包量不能超过端点的最大突发大小。
同步端点应该总是发送数据域小于等于端点的最大数据包大小的数据包。如果同步传输对端点最大包大小有充足的信息,突发事务处理中的所有数据都要求为最大数据包大小,除非突发事务中最后一次数据包,即包含了剩下的数据。同步传输能进行几次突发事务处理。
同步传输带宽需求
周期性端点(中断和同步传输)能分配到80%的有效超速总线带宽。同步管道的端点通过端点描述符指定它想要的轮询间隔。同步端点能指定想要的周期2(bInterval-1) x 125 μs。bInterval的范围是1-16. 系统软件将在配置时候使用这个信息决定端点是否能被主机安排。注意总线错误能阻止同步事务在总线上的的成功进行。
超速同步端点在每个服务周期能进行3次最大突发大小为16的事务处理的数据包传输(3x16x1024bytes)。主机会在每个服务周期发送数据到端点或者从端点请求数据。注意,如果端点没有同步数据发送而被主机访问请求数据,则会发送一个0长度包作为数据请求的应答。
主机可以在合适的服务间隔的任何时刻访问端点。同步传输端点不应该尝试在事务处理之间假定一个固定空间(两次事务处理间相隔的时间不固定?),同步端点只能假定它在服务周期会收到一次事务处理的尝试。轮询服务周期发生的错误可以阻止数据的成功传输。但是由于同步事务处理中的包没有应答,主机没有方法知道包是否成功传输,因此不会重试包传输。
同步传输数据流程
同步端点总是在轮询服务周期中从包顺序号0开始发送数据包。每个在轮询服务间隔中被依次连续发送的的数据包都带有下一个递增的顺序号。顺序号应该从0到31循环。当发送了32个包后,又从0开始发送。同步端点不支持重试,不能应答流控制。
设备告知(非管道模式)
设备告知是一种为设备向主机进行设备级和总线级的事件通知的异步通信标准方式。这个特色没有映射到为标准传输类型定义的管道模式。设备告知总是由设备开始。数据流通知总是从设备到主机。