从零开始学USB(十四、USB数据传输的组织形式)

在前面的十一节中,学习了USB中传输中一个包是由多个域组成

https://blog.csdn.net/qq_16777851/article/details/85226005

在前面的十二节中,学习了USB传输中学习了包的形式有哪些(令牌包、数据包、应答包等),以及各自的特点和功能。

https://blog.csdn.net/qq_16777851/article/details/85385889

在前面的十三节中,学习了USB的一个事务是由多个包组成的(IN、OUT、SETUP事务等),以及四种传输类型,具体怎么组织事务(一个传输是由多个包组成)。

https://blog.csdn.net/qq_16777851/article/details/85463744

本节就站在传输的角度来总结一下几个的关系。

控制传输

上面这个例子中,一个控制传输是由一个SETUP事务(建立),一个IN事务(数据),一个OUT事务(状态)构成。

同时三种事务的格式都是有,分为三个阶段,即令牌阶段、数据传输阶段、握手阶段。

每种包中,不同的域,上图已经用不同的颜色表明了出来。

上一节也说了,有的控制传输中无数据,则在SETUP事务后面跟一个IN状态事务就可以。

批量传输

上面列出了一个批量写传输和批量的读传输。

和控制传输相比就简单很多了,只有数据传输,没有SETUP事务和状态事务。

在事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段。

当然,上面这两个个批量传输的数据很少分别是31和36个字节,一个传输就传完了。

下面这个全速设备,每次最多传输64字节,传输4096个字节,就需要很多个传输了。

 

中断传输

上图给出了中断IN传输的数据过程。

在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段(有则返回数据,没准备好则不返回数据)、握手阶段(从机正常返回数据,主机解析成功,则主机给从机应答。从机没准备好数据,则从机给主机返回NAK)。

可以看到主机对设备进行定期查询。

如果设备有数据,则对IN事务进行响应,返回数据,主机解析成功数据,返回ACK应答。

如果设备没数据,则返回NAK表示没准备好数据。

等时传输

暂时没等时传输的抓包信息,就不分析了。只需要知道等时传输是没应答包的。其它和上面几种没大的差异。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_16777851/article/details/85475062

发布了47 篇原创文章 · 获赞 9 · 访问量 1万+

在前面的十一节中,学习了USB中传输中一个包是由多个域组成

猜你喜欢

转载自blog.csdn.net/u013836909/article/details/104902215