《圈圈教你玩 USB》学习笔记-控制传输

控制传输分为三个过程:建立过程、可选的数据过程和状态过程

1、建立过程

建立过程使用一个建立事务,建立事务是一个输出数据的过程,与批量传输的输出事务相比,有几处不一样:

首先是令牌包不一样,建立过程使用 SETUP 令牌包

其次是数据包类型,SETUP 只能使用 DATA0 包

最后是握手包,设备只能使用 ACK 来应答(除非出错了,不应答),而不能使用 NAK 或者 STALL 来应答,即设备必须要接收建立事务的数据

2、可选的数据过程

一个控制传输可能没有数据过程。如果有,一个数据过程可以包含一笔或者多笔数据事务。控制传输所使用的数据事务与批量传输传输中的批量事务是一样的。需要注意的是,在数据过程中,所有的数据事务必须是同一个传输方向的,一旦数据传输方向发生改变,就会认为进入到了状态过程。数据过程的第一个数据包必须是 DATA1 包,然后每次正确传输一个数据包后就在 DATA0 和 DATA1 之间交替

3、状态过程

状态过程也是一笔批量事务,它的传输方向刚好和前面的数据阶段相反。状态过程只使用 DATA1 包

4、几种控制传输的示例

扫描二维码关注公众号,回复: 8606748 查看本文章

发布了124 篇原创文章 · 获赞 21 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/tyustli/article/details/103975462