USB2.0 握手包

USB2.0 握手包

2021-11-29

3587

1

握手包跟随在令牌包或者数据包之后,组成一个完整的事务,是对一次事务完成的确认。USB主机或者USB设备会根据事务的完成状态返回相应的握手包。

握手包由8位的PID构成,用于数据传输的末位报告本次数据传输的状态。握手包之后使是整个事务处理的结束信号EOP.

握手包根据PID的不同,可分为:

PID

含义

说明

0010

握手ACK

数据正确接收

1010

握手NAK

数据未正确接收

1110

握手STALL

使用的端点被挂起

0110

握手NYET

接收方没有响应

1100

特殊用途ERR

SPLIT事务中表示出现错误

USB规范定义了以下几个响应:

1 . ACK 握手包当 USB 数据传输的接收方正确接收到数据包时,接收方将返回 ACK 握手包。 ACK 握手包表征了一次正确的数据传输,之后才可以进行下一次事务处理。

2 . NAK 握手包NAK 握手包一般由 USB 功能设备发出。对于IN数据传输,表示 USB 设备没有计划向 USB 主机发送数据;对于 OUT 数据传输,表示 USB 设备无法接收 USB 主机发送的数据。

3 . STALL 握手包STALL 握手包一般由 USB 功能设备发送,表示该 USB 功能设备不支持这个请求,或者无法发送和接收数据。 STALL 握手包分为以下两种情况。

协议 STA LL 握手包:在控制传输中使用。协议 STALL 握手包表明了该 USB 功能设备不支持这个请求协议。功能 STALL 握手包:表明该 USB 功能设备的相应端点已经停止,而无法完成发送数据或者接收数据的操作。

4 . NYET 握手包在 SPLIT 令牌包事务处理中,如果 USB 集线器无法正常处理 SPLIT 请求,则 USB 集线器向 USB 主机返回 NYET 握手包。 NYET 握手包一般只发生在高速数据传输过程中。在USB2.0高速设备OUT事务中使用,它表示设备本次数据成功接收,但是没有足够的空间来接收下一次数据。主机在下一次输出数据时,将先使用PING命令牌包来探测设备是否有足够的空间接收数据,一面不必要的带宽浪费。

5 . ERR 握手包ERR 握手包用于表示总线数据传输发生错误,其一般发生在高速数据传输过程中。其功能是由USB集线器HUB向主机报告挂载其上的低速或全速设备错误。

¥打赏

随手分享,手有余香

HID人机交互QQ群:564808376

UAC音频QQ群:218581009

UVC相机QQ群:331552032

BOT&UASP大容量存储QQ群:258159197

STC-USB单片机QQ群:315457461

USB技术交流QQ群2:580684376

USB技术交流QQ群:952873936

热门