控制传输事务( Control Transfers)
控制传输称为transfers,而不是transaction,原因是控制传输其实是包含多个transaction。一般来说控制传输分为建立阶段(Setup stage)、数据阶段(Data stage)、 状态阶段(Status stage)三个过程(这里要区分清楚控制传输的三个阶段,是包含多个事务(transaction),而每个事务又包含令牌包(Token)、数据(Data)、握手(Handshake)三个阶段),但也存在没有数据阶段的情况,所以可以这么说,控制传输至少包含setup和status两个阶段(stage)。控制传输流程如下图(摘自usb20 specification 8.5.3):

其实,这个图只是setup transaction的流程。

这个图是完整控制传输的时序。
控制传输特点:
1、建立事务(setup transaction):device收到setup command必须回复ACK,如果收到的数据异常,则直接丢弃,且不需要握手回复(handshake)。
2、setup事务的数据包PID必须为DATA0。
3、数据阶段(data transaction)(如果有的话),和主机setup命令相关,分为Data OUT或者Data IN事务两种,分别和批量传输(Bulk)的OUT和IN事务一样,数据阶段也可以进行多次Data


4371

被折叠的 条评论
为什么被折叠?



