当前位置 博文首页 > dadalaohua的博客:【USB笔记】USB 2.0 帧开始包Start-of-Frame

    dadalaohua的博客:【USB笔记】USB 2.0 帧开始包Start-of-Frame

    作者:[db:作者] 时间:2021-07-27 11:51

    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

    cs
    下一篇:没有了