热度 1| |
在USB3.0中,增加了Flow Control的机制。分别在Link层和Transaction层增加了flow control。
对于Transaction层的flow control,描述如下:
1. 仅仅Bulk, Control, Interrtupt Endpoint能够进行flow control, isochronous Endpoints不支持flow control.因为isochronous Pipe是实时应用的。
2. 对于IN EndPoint, 当收到host的ACK之后,以下两种情况代表进入了flow control.
(1) EP回复NRDY TP,表示device暂时没有准备好数据。
(2) EP回复带有EOB=1的DP. 表示transfer结束。如果新的transfer要继续,需要flow control.
3. 对于Out EP, 下面两种情况进入flow control状态
(1) EP回复NRDY TP给host, 表示不能接收数据。
(2) EP回复ACK TP给host, 其中NumP=0, 表示device需要的数据都接受完毕,transfer结束。
注意:
(1)当EP进入flow control状态,必须通过发送ERDY TP给host来结束flow control状态,进入正常模式。
(2)对于IN EP, 在发送ERDY TP之前,必须保证自己最后发送的DP, 被host 通过ACK TP回复。
(3)EP如果不再flow control状态下,除非是支持stream的bulk EP,否则不能发送ERDY TP.
(4)Host有可能在EP处于flow control的状态下,继续transaction。