Transaction
USB Transactions 主要由四种 Packet 组成: Token Packet 、 Data
Packet 、 Handshake Packet 和 Special
Packet 。但通常的一次 Transaction 由 3 个 Packets 组成:
Token -> Data -> Handshake。

IN/Read/Upstream Transaction

IN Transaction 主要用于 Device 向 Host 发送数据。
-
Host 向 Deivce 发送一个
IN Token Packet -
Device 如果忙,则回复
NAK Packet, Host 在收到NAK Pakcet之后则持续向 Device 发送IN Token Packet。 -
当 Device 准备好时,回复
Data Packet, Host 在收到Data packet之后回复一个ACK handshake。
OUT/Write/Downstream Transaction

OUT Transaction 主要用于 Host 向 Device 发送数据。
-
Host 向 Deivce 发送一个
OUT Token Packet和一个DATA Packet。 -
Device 忙,则回
NAK, Host 则会复发OUT和DATA -
Device 在成功收到数据后,回
ACK handshake packet。
Control Transaction
Control Transaction 最多由 3 个 Stage 组成: Setup stage 、
Data stage 、 Status stage 。其中 Data
stage 不是必需的,有的 control transaction 没有 data
stage 。
- Setup Stage (
Transaction)Setup stage 中的 setup packet 只会出现在 control transaction 中,Device 必须回 ACK, 不能回 NAK。

- Data Stage (
Transaction)Data Stage 可以有若干的 Data transaction。这个 stage 只有在 Host 和 Device 需要 data 传输时才会存在,通常 setup stage 的 payload 可以 cover , 这个时候就不需要 data stage。

- Status Stage (
Transaction)以下是 control read transaction 和 control write tranasaction 分别对应的 status stage。

