USB - 对协议的怀疑
USB - doubts about protocol
我目前正在研究 USB 的工作原理。我读到,有些交易是由较小的数据包构建的。我看了各种包。
有一件事我不明白。正如书中所说——每笔交易都包含 3 个数据包:token、数据和 hanshake.
我理解我的书的方式如下图所示。
我认为:
我觉得第一笔交易应该只有token IN和数据包,没有hanshake包(握手干什么?)
我认为,该响应应该只包含 ACK 握手数据包(数据已正确写入设备)。
请帮我正确理解一下。
此致,
汤姆.
一个事务是一系列一个或多个数据包。
没有数据的典型 IN 事务如下所示:
- 主机发送一个 IN 令牌。
- 设备发送NAK握手包,表示没有数据要发送
典型的 IN 数据交易如下所示:
- 主机发送一个 IN 令牌。
- 设备发送带有数据的 DATA0 或 DATA1 数据包。
- 主机发送ACK握手。
典型的 OUT 事务如下所示:
- 主机发送一个 OUT 令牌。
- 主机发送带有数据的DATA0或DATA1数据包。
- 设备根据是否接受数据发送 NAK 或 ACK 握手。
请注意,我只是在谈论全速 (12 Mbps) USB 2.0 设备,对于高速设备,事情可能会变得有点复杂。
请注意,由于噪声问题,这些数据包中的任何一个都可能丢失。 USB 规范特别说明了这一点,确保数据包丢失不会导致设备或主机的错误操作。
我目前正在研究 USB 的工作原理。我读到,有些交易是由较小的数据包构建的。我看了各种包。
有一件事我不明白。正如书中所说——每笔交易都包含 3 个数据包:token、数据和 hanshake.
我理解我的书的方式如下图所示。
我认为:
我觉得第一笔交易应该只有token IN和数据包,没有hanshake包(握手干什么?)
我认为,该响应应该只包含 ACK 握手数据包(数据已正确写入设备)。
请帮我正确理解一下。
此致, 汤姆.
一个事务是一系列一个或多个数据包。
没有数据的典型 IN 事务如下所示:
- 主机发送一个 IN 令牌。
- 设备发送NAK握手包,表示没有数据要发送
典型的 IN 数据交易如下所示:
- 主机发送一个 IN 令牌。
- 设备发送带有数据的 DATA0 或 DATA1 数据包。
- 主机发送ACK握手。
典型的 OUT 事务如下所示:
- 主机发送一个 OUT 令牌。
- 主机发送带有数据的DATA0或DATA1数据包。
- 设备根据是否接受数据发送 NAK 或 ACK 握手。
请注意,我只是在谈论全速 (12 Mbps) USB 2.0 设备,对于高速设备,事情可能会变得有点复杂。
请注意,由于噪声问题,这些数据包中的任何一个都可能丢失。 USB 规范特别说明了这一点,确保数据包丢失不会导致设备或主机的错误操作。