USB2.0 ACK握手包
2021-06-22
4155
2
ACK握手包用于当USB数据传输的接收方正确接收到数据包时,接收方将返回 ACK 握手包。 ACK 握手包表征了一次正确的数据传输,之后才可以进行下一次事务处理。
ACK广泛用于通读协议中,一般用于确认从接收方接收到数据正确无误,特别是在TCP/IP协议栈中,ACK的使用更加让人理解深入。我们嘴里常说的三次握手,四次断开,其中包括了大量的ACK确认,有兴趣的同学可以看一看TCP/IP协议栈。当然也可以和站长进行TCP/IP协议规范的技术交流。
ACK握手包和其它握手包的格式一致,只有PID不同,格式也最简单。
PID | 含义 | 说明 |
---|---|---|
0010 | 握手ACK | 数据正确接收 |
ACK握手包的PID为8位,低4位为0010,所以高4位的补码为1101,所以其PID为0xd2。
ACK握手包抓包
如上图所示,上图为一次数据的输出事务。主机输出数据到设备,主机发起OUT令牌,指名接收数据的设备地址为15,端点地址为2,然后使用数据DATA1向设备发送了31个字节的数据。当设备接收到这些数据确认无误后,向主机发送一个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