当NAK完成相同目的时,USB 2.0 HS中的NYET数据包的目的

时间:2016-08-02 08:56:48

标签: usb peripherals

Depiction of state transitions with NYET, NAK and PING packets

当设备的NAK数据包可以简单地避免下一次交易时,NYET会有什么特殊用途呢?

1 个答案:

答案 0 :(得分:0)

引入NYET握手数据包的原因是考虑带宽利用效率。

如果设备以NYET响应,主机知道设备很可能NAK下一个OUT事务,这意味着数据传输的整个帧时间被浪费:完全相同的数据将不得不再次发送。

这就是为什么NA​​K OUT事务浪费了大量的帧时间,因为OUT事务没有目的地占用总线,并且它也与其他事务/设备竞争,从而花费时间。

想象一下没有NYET握手的协议:每次设备NAK只是询问设备是否就绪时,主机必须发送相同的整个数据块(即批量端点最多512字节)。

如果主机改为使用NYET,它将开始PINGing设备,询问设备是否已准备好接收更多数据。与大数据OUT事务相比,PING事务非常短。因此,如果设备NAK的PING,主机可以使用帧的其余部分进行其他交易,这样可以更好地利用总线。