老丁带你学USB-解疑2:USB协议中的ACK、NAK、STALL三种返回包含义

三种返回确认信息

ACK 、NAK 、STALL

【ACK 包】

ACK(确认) 表示 主机和设备已经收到数据,没有出现错误。设备必须在Setup 事务的交换包中返回ACK,设备也必须在OUT事务的交换中返回ACK。

主机在IN事务的交换包中返回ACK。

【NAK 包】(NAK包只能从设备发向主机)

NAK(未确认) 表示设备正忙或没有数据要返回。如果主机在设备太忙而不能接受数据时发送数据,

则设备在交换包中发出NAK。如果主机在设备没有数据可发送时向设备请求数据,则设备在数据包

中发出NAK。在上述两种情况的任何一种下,NAK表示一个暂时的状况,而主机会在以后重试。

【STALL包】

不支持的控制请求,控制请求失败或终端失败

当一个设备接收到一个终端不支持的控制传输请求,那么这个设备返回一个STALL 给主机。设备

在它支持这个请求但是由于某些原因不能采取请求的动作时,也会发出STALL给主机。

STALL 的另一个用途是在终端暂停特性设置的情况下来响应传输请求,表示终端根本不能发送

或接收数据。规范称这个类型的延迟为功能延迟。

批量和中断终端必须支持功能延迟。

在接收到一个功能STALL后,主机停止所有与设备悬而未决的请求,并且不会恢复通信直到它

已经发送一个成功的请求来清除设备的暂停特性。

主机绝不会发送STALL

 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值