USB3.0接口系列:
USB3.0接口——(1)基础知识
USB3.0接口——(2)数据结构
USB3.0接口——(3)协议层(包格式)
USB3.0接口——(4)生产消费者模型
USB3.0接口——(5)Host数据传输模型
USB3.0接口——(6)Device数据传输模型
…
1.Host数据传输模型
1.1控制传输
控制端点(Control)的一些功能要求与其他USB端点类型的处理方式不同。特别是,控制端点定义了消息管道(Message pipes),而其他所有端点类型都是流管道(Stream pipes)。
一个USB消息管道是双向的并且使用USB setup/data/status阶段范例传输数据。这些数据具有强加的结构,可以可靠地识别和传达请求。USB流管道(Isoch,Interrupt和Bulk端点)将数据作为没有定义USB结构的样本流进行传输。
USB控制传输最少有两个事务阶段:Setup和Status
。一个控制传输可以选择在Setup和Status stages之间包含一个Data stage。xHC定义有三种类型的TDs:Setup Stage,Data Stage和Status Stage TDs,都对应USB控制传输的各个阶段。
1.1.1.Setup Stage
软件“constructs”在门铃响起(Ringing the doorbell)之前,软件通过在传输环上放置两个(设置阶段和状态阶段)或三个(设置阶段,数据阶段和状态阶段)TD来“构建”控制传输
一个Setup Stage TD生成一个USB的Setup Transaction,用来向USB设备的控制端点传输信息。一个Setup Stage TD总是由单个Setup Stage TRB组成
,这个TRB包含了8byte Setup Data。
1.1.2.Data Stage
软件负责与数据阶段TD一起传输的数据量,其方向与设置阶段TRB中的设置数据指定的长度和方向一致。
数据阶段TD包含一个数据阶段TRB(Data Stage TRB),后跟零个或多个正常TRB(Normal TRBs)
。如果数据在物理上不连续,则正常TRB可以链接到数据阶段TRB。Data stage TD中定义的所有TRBs都在相同方向上传输数据,(即所有IN或所有OUT)。
1.1.3.Status Stage
Status Stage TD需要完成控制传输,通过从USB设备检索USB SETUP事务的完成状态。状态阶段TD(Status Stage TD)始终是控制传输序列中的最后一个TD。状态阶段TD始终由单个状态阶段TRB组成,并且可能包括事件数据TRB。
1.2块传输
Bulk传输描述符使用普通的TRBs,并且根据数据缓冲区的需求,能够使用一个或多个chained Normal TRBs来形成一个TD。
1.3中断传输
Interrupt传输描述符使用普通的TRBs,并且根据数据缓冲区的需求,能够使用一个或多个chained Normal TRBs来形成一个TD。
字段描述同块传输。
1.4同步传输
同步传输使用Isoch TRB进行同步传输。