【USB笔记】USB 2.0 帧开始包Start-of-Frame Packets

本文详细介绍了USB2.0协议中的帧开始包(SOF)及其作用。SOF包由主机发出,用于标记帧开始和传递帧号,全速总线的间隔为1.00ms,高速总线为125µs。SOF包不引起响应,帧号每帧递增并在达到最大值后翻转。设备可利用SOF包的定时信息和帧号进行同步和状态管理,防止在无通信时进入低功耗模式。高速设备在每个1ms周期内会接收到8个SOF包,通过帧号变化确定微帧位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

USB笔记 USB 2.0 帧开始包Start-of-Frame Packets (SOF包SOF Packets)

说明

介绍的是USB 2.0协议中的帧开始包(Start-of-Frame Packets),通常简写为SOF包(SOF packets)。

下面是使用抓包工具查看的一个Full-Speed设备的SOF包示例:
使用抓包工具看到的SOF包

介绍

帧开始包Start-of-Frame (SOF) packets用于SOF标记和帧号。

帧开始包Start-of-Frame (SOF) packets由主机(host)发出,对于全速总线(full-speed bus),标称速率为1.00 ms±0.0005 ms,对于高速总线(high-speed bus),标称速率为125 µs±0.0625 µs。

SOF包(SOF packets)包含一个表示包类型的PID,然后是一个11位的帧号(frame number)字段,如下图所示。

SOF Packet

SOF PID参数如下:

TypeValue
PID TypeToken
PID NameSOF
PID<3:0>0101B
PID value<7:0>0xA5
Sourcehost
Bus Speedhigh, full
DescriptionStart-of-Frame marker and frame number

SOF令牌(SOF token)的组成只有令牌事务,该事务以精确的时间间隔分发与每一帧开始相对应的SOF标记和帧号。所有高速和全速设备(包括集线器)都会接收SOF包。

SOF令牌不会使任何接收的设备产生返回包;因此,不能保证SOF包成功发送到任何指定的设备。

SOF包的帧号(frame number),帧号每帧递增,在达到其最大值7FFH时会翻转,开始重新计数。

SOF包提供了两个定时信息。当设备检测到SOF PID时,就会知道产生了一个SOF。对帧时序敏感的设备,如果不需要跟踪帧号(如全速运行的集线器),只需要解码SOF PID,它们可以忽略帧号及其CRC。如果一个设备需要跟踪帧号,它必须同时解析PID和时间戳。对总线时序(bus timing)信息没有特别需求的全速设备(full-speed devices)可以忽略SOF包。

SOF标记还可以防止设备在总线没有其他USB通信时进入低功耗挂起状态。

USB帧和微帧USB Frames and Microframes

USB定义了一个全速1ms帧时间,由帧开始包Start-of-Frame (SOF) packets指示,每1ms一个周期,具有定义的抖动容限(jitter tolerances)。帧间隔( T F R A M E T_{FRAME} TFRAME)长度定义为1.000 ms±500 ns。帧间隔(frame interval)是从一个帧的SOF令牌中的任意点到下一个帧的SOF令牌中的同一点测量的。

USB还定义了高速125µs帧时间,并具有抖动容限(jitter tolerances)的微帧(microframe)。微帧间隔( T H S F R A M T_{HSFRAM} THSFRAM)长度定义为125.0µs±62.5 ns。微帧间隔(microframe interval)是从一个微帧的SOF令牌中的任意一点到下一个微帧的SOF令牌中的同一点进行测量的。

对于全速链路(full-speed links),SOF包由主机控制器(host controller)或集线器事务转换器(hub transaction translator)每1ms生成一次。对于高速链路(high-speed links),则是会在每8个125µs周期之后生成SOF包。

下图显示了微帧和帧之间的关系。
Relationship between Frames and Microframes

高速设备(high-speed devices)在每1 ms的周期内,会看到具有相同帧号的SOF包8次(每125 µs)。如果需要,高速设备可以通过检测具有与前一个SOF不同的帧号的SOF,并将其作为第0个微帧,以此来确定特定的微帧 “编号”。接下来的7个具有相同帧号的SOF可以视为第1至第7个微帧。


参考资料

Universal Serial Bus Specification Revision 2.0

USB Complete, 5th Edition


本文链接:https://blog.csdn.net/u012028275/article/details/113819250

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值