老丁带你学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
老丁带你学USB-解疑2:USB协议中的ACK、NAK、STALL三种返回包含义相关推荐
- java基本数据类型_老杜带你学Java【第六课】
上期链接:老杜带你学Java[第五课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声
- java 获取ip地址_老杜带你学Java【第二课】
上期链接:老杜带你学Java[第一课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...
- java 8进制串转中文_老杜带你学Java【第六课】
上期链接:老杜带你学Java[第五课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...
- 老卫带你学---动态语言和静态语言的区别
老卫带你学-动态语言和静态语言的区别 1.基本概念 静态语言(强类型语言) 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型. 例如:C++.Java ...
- 老司机带你学爬虫——Python爬虫技术分享
什么是"爬虫"? 简单来说,写一个从web上获取需要数据并按规定格式存储的程序就叫爬虫: 爬虫理论上步骤很简单,第一步获取html源码,第二步分析html并拿到数据.但实际操作,老 ...
- 跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)
前言 对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string.hash.list.set.sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:b ...
- 老卫带你学---DDSM乳腺癌数据研究
DDSM数据库是美国的医学机构所建立的专门存放乳腺癌图像的数据库.里面存放了cancer,normal,benign,benign_without_callback四类数据.目前很多对乳腺癌的研究都是 ...
- 老卫带你学---使用cv2.imwrite保存的图像是全黑的
在使用opencv的cv.imwrite函数进行图像保存的时候,发现保存下来的图像都是全黑 cv.imwrite("gamma_enhance.jpg",out) 因为image是 ...
- 老卫带你学---CMake Error: CMake was unable to find a build program corresponding to MinGW Makefiles. CM
CMake编译OpenCV3.1.0过程中一直出错: CMake Error: CMake was unable to find a build program corresponding to &q ...
最新文章
- Spring(2)——Spring IoC 详解
- 深入vuex原理(上)
- 营销和生意人的4项基本修炼
- 使用 Async / Await 来编写简明的异步代码
- iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)
- Romantic 扩展欧几里得
- openstack configure
- Linux中创建 静态库和动态库(共享库) 本人亲测可行
- 紫鸟超级浏览器-SeleniumAPI通信
- Android Apk反编译 dex2j遇到如下问题 com.googlecode.d2j.DexException: not support version.
- 25个酷炫的Matplotlib图表,附Python源码
- 微信小程序开发(创建项目介绍)
- 发布源码及依赖到网络maven仓库
- 3款好用的文件管理软件
- java 零拷贝_牛逼哄哄的零拷贝是什么?
- 篮球架子 与 足球门
- 中文版扩散模型课程:第一单元
- 安装oracle 19c rac报错:2节点执行root.sh asm实例启动失败
- SEO不应该忽视的9个谷歌排名因素
- 企业信息化基本指标构成方案