USB2.0 OUT事务
2021-11-30
2776
20
OUT事务和其它事务一样,也包含三个包,分别为OUT令牌包,数据包(输出)和握手包(成功时为ACK)。
OUT事务用于由USB主机发送数据,所以在数据包之前发送为的OUT令牌包,
- 如果USB设备确认数据正确无误的接收时,给主机返回ACK握手包。
- 如果USB设备由于其自身资源不足(如内存)等自身原因无法接收该数据时,给主机返回NAK握手包。
- 如果USB设备虽然收到了该数据,但是数据的端点已经被停止(HALT),则给主机返回STALL握手包。
- 如果OUT令牌包或者数据包发生错误,USB设备不做任何握手包。
- 高速模式下的设备在批量传输或者控制传输时,如果成功接收到了该包但无法接收下一个数据时,给主机返回NYET握手包。
- 如果USB主机收不到USB设备返回的任何握手包,USB主机会等待一段时间直到超时,重传该OUT事务。
如果设备工作在低速或者全速模式下,USB设备返回NAK握手包,USB主机会进行OUT事务重传,如果设备工作在高速模式下,USB主机会使用高速模式特有的PING事务。
OUT事务的数据长度不能大于端点所支持的最大包长度(超过时使用多事务传输)
OUT事务的处理机制
USB2.0 OUT事务的处理机制如图所示:
- 无论是OUT令牌或者是数据包在发向主机的传输过程中,如果出现发送错误或者超时,USB设备均不向主机返回任保握手包。
- 当USB主机发送OUT令牌和数据包后,在规定的超时时间内并没有收到设备返回的握手ACK时,则重传该事务。、
握手包三种状态:
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936