USB - 对协议的怀疑

时间:2015-01-06 22:09:27

标签: usb protocols transfer data-transfer

我目前正在研究USB的工作原理。我读过,有些事务是从较小的部分构建的 - 数据包。我读到了各种数据包。

我无法理解一件事。正如本书所说 - 每笔交易都包含 3个数据包令牌,数据和hanshake

我理解我的书的方式如下图所示。

enter image description here

在我看来:

我认为第一个事务应该只包含令牌IN和数据包,但没有hanshake数据包(握手为什么?)。

我认为,该响应应该只包含ACK hanshake数据包(数据被正确写入设备)。

请帮助我以正确的方式理解它。

祝你好运, 汤姆。

1 个答案:

答案 0 :(得分:1)

交易是一系列一个或多个数据包。

没有数据的典型IN事务如下所示:

  • 主机发送IN令牌。
  • 设备发送NAK握手数据包,这意味着它没有任何数据要发送。

具有数据的典型IN事务如下所示:

  • 主机发送IN令牌。
  • 设备发送带有数据的DATA0或DATA1数据包。
  • 主机发送ACK握手。

典型的OUT事务如下所示:

  • 主机发送OUT令牌。
  • 主机发送带有数据的DATA0或DATA1数据包。
  • 设备根据是否接受数据发送NAK或ACK握手。

请注意,我只是谈论全速(12 Mbps)USB 2.0设备,对于更高速的设备来说,事情会变得更加复杂。

请注意,由于噪音问题,这些数据包中的任何一个都可能丢失。 USB规范专门解决了这个问题,确保数据包丢失不会导致设备或主机的错误操作。

相关问题