USB协议详解第25讲(USB包-同步传输包详解)

目录

1.同步传输包结构

2.同步传输DATAx数据包核心要点

3.同步传输包详解

3.1同步读包结构

3.1.1全速设备传输小于等于1023字节包结构

3.1.2全速设备传输大于1023字节包结构

3.1.3 IN令牌包波形

3.1.4 数据包波形

3.2同步写包结构实例


1.同步传输包结构

同步传输由一个或多个同步事务组成,每一个同步事务具有令牌包、数据包,没有握手包,如图下所示。 主机发出IN或OUT令牌包,如果是IN令牌,设备会发送数据包给主机,如果是OUT令牌,主机会发送数据包给设备。 同步传输没有握手包或重试功能

2.同步传输DATAx数据包核心要点

同步传输DATAx数据包应该注意以下5点(官方文档):

(1)全速设备或主机控制器能够接受PID 为DATA0或DATA1的数据包。

(2)全速设备或主机控制器只能发送PID为DATA0的数据包。

(3)高速主机控制器必须能够接受和发送 PID为DATA0、DATA1、DATA2或MDATA的数据包。

(4)高速设备,每个微帧最多有一个事务,必须只能发送PID为DATA0的数据包。

(5)高速高带宽端点一个微帧可以接收或者发送多个PID为DATA0、DATA1、DATA2或MDATA的数据包。

3.同步传输包详解

首先介绍下同步传输低速、全速、高速数据包最大长度大小,如下图。

3.1同步读包结构

3.1.1全速设备传输小于等于1023字节包结构

同步读传输抓包如下图,因为下图是对FS(Full Speed)设备抓包,所以传输1023字节的数据只需要使用一个同步事务即可,如果大于1023,会分成多个相同的同步事务进行传输,这里只有一个事务的抓包图。主机会先发送一个IN令牌包给设备,设备正常收到令牌包后会发送一个DATA0数据包给主机,此数据包包含1023个字节数据,因为全速设备同步传输最大包长度为1023,同步事务不存在应答包

3.1.2全速设备传输大于1023字节包结构

如果一次读传输大于1023字节字节,比如为1023*2+80字节,则会分3个IN同步事务进行传输,传输包结构实例如下。

3.1.3 IN令牌包波形

3.1.4 数据包波形

3.2同步写包结构实例

这里不再列举抓包图,和同步读刚好相反,并且使用OUT令牌包。

如果一次写传输大于1023字节字节,比如为1023*2+80字节,则会分3个OUT同步事务进行传输,传输包结构如下。


1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个早起的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值