目录
1.前言
前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了批量传输细节及事务组成,今天我们主要讲解中断传输及事务组成。
中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。对于全速端点,中断传输的时间间隔在1ms到255ms之间,对于低速端点,时间间隔限制在10ms到255ma之间,对于高速端点,时间间隔为2^(bInterval-1) x 125us,bInterval的值在1-16之间。
中断传输主要包括中断读传输、中断写传输两种,传输事务如下图。
2.中断传输的结构
中断传输的事务只有1个阶段,数据阶段。
主机如果是中断读数据请求,则数据阶段为一个IN事务;
主机如果是中断写数据请求,则数据阶段为一个OUT事务。
3.抓包分析
3.1中断读传输抓包分析
因为是设备给主机传输数据,所以是数据阶段是IN事务。
3.2中断写传输抓包分析
因为是主机给设备传输数据,所以是数据阶段是OUT事务,不在贴图。
4.中断传输各速率下支持最大包长度
中断传输中,低速传输一个事务最大传输8字节,全速传输一个事务最大传输64字节,高速传输一个事务最大传输1024字节。
5.中断传输事务组成
6.传输、事务、包组成学习架构图
本架构图后期再学习中会一步一步更新,每一节之后也会逐步完善并更新,最后会完整的展示出来传输、事务、包的结构,让大家在学习过程中对协议框架不混乱。
1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。
2.未经原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。