当来自设备的 NAK 数据包可以简单地避免下一次交易时,NYET 有什么特殊用途?
问问题
1213 次
1 回答
1
引入 NYET 握手包的原因是带宽利用效率的考虑。
如果设备以 NYET 响应,则主机知道该设备很可能不接受下一个 OUT 事务,这意味着正在传输数据的整个帧时间都被浪费了:必须再次发送完全相同的数据。
这就是为什么对 OUT 事务进行 NAK 会浪费大量帧时间的原因,因为 OUT 事务会毫无目的地占用总线,并且它还与其他事务/设备竞争,从它们那里占用帧时间。
想象一下没有 NYET 握手的协议:每次设备 NAK 时,主机都必须发送相同的整个数据块(即批量端点最多 512 个字节),以查询设备是否准备好。
如果主机收到 NYET,它将开始 PING 设备,询问设备是否准备好接收更多数据。与大数据 OUT 事务相比,PING 事务非常短。因此,如果设备不接受 PING,主机可以将帧的其余部分用于其他事务,从而更好地利用总线。
于 2017-02-17T13:53:15.647 回答