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

说明

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

下面是使用抓包工具查看的一个Full-Speed设备的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 PID参数如下:

Type Value
PID Type Token
PID Name SOF
PID<3:0> 0101B
PID value<7:0> 0xA5
Source host
Bus Speed high, full
Description Start-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)。帧间隔(TFRAMET_{FRAME}TFRAME​)长度定义为1.000 ms±500 ns。帧间隔(frame interval)是从一个帧的SOF令牌中的任意点到下一个帧的SOF令牌中的同一点测量的。

USB还定义了高速125µs帧时间,并具有抖动容限(jitter tolerances)的微帧(microframe)。微帧间隔(THSFRAMT_{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包。

下图显示了微帧和帧之间的关系。

高速设备(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

【USB笔记】USB 2.0 帧开始包Start-of-Frame Packets相关推荐

  1. 【USB笔记】 USB2.0 包格式 握手包Handshake Packets

    USB笔记 USB2.0 包格式Packet Formats 握手包Handshake Packets 说明 介绍的是USB 2.0协议中包格式(Packet Formats)的握手包(Handsha ...

  2. 【USB笔记】USB2.0 不同传输类型下的理论最大速率

    USB笔记 USB2.0 不同传输类型下的理论最大速率 USB2.0协议中定义了三种速率,低速(low speed),全速(full speed),高速(high speed). 最大速率如下: 最大 ...

  3. 【USB笔记】 USB1.0与USB1.1差异概述

    USB笔记 USB1.0与USB1.1差异概述 为什么写这个 之前打算整理一下不同的USB协议的差异,由于对于这些协议之间的区别不是太了解,就直接通过搜索引擎进行查找.然后看某度百科,某度知道,某乎, ...

  4. 【USB笔记】 USB设备请求USB Device Requests

    USB笔记 USB设备请求USB Device Requests 所有USB设备都会响应主机向设备默认控制管道(Control Pipe)上发送的请求(requests). 这些请求是使用控制传输(c ...

  5. 第二篇 USB2.0协议简述(包-事务-传输)

    上一篇:https://blog.csdn.net/qq_40088639/article/details/109462408 一. USB2.0通信协议简介 1. 包(Package) 包是USB传 ...

  6. 【USB笔记】端点描述符Endpoint Descriptor

    USB笔记 端点描述符 (Endpoint Descriptor) 端点描述符 (Endpoint Descriptor)描述了USB规范定义的端点信息,包含有端点的带宽等信息.每一个端点都有自己的端 ...

  7. 【USB笔记】 标准设备请求Standard Device Requests

    USB笔记 标准设备请求 Standard Device Requests 这里主要列举出所有设备定义的标准设备请求.分别概述了标准设备请求(Standard Device Requests)和给出了 ...

  8. 【USB笔记】配置描述符Configuration Descriptor

    USB笔记 配置描述符(Configuration Descriptor) 配置描述符(Configuration Descriptor)说明了一个特定配置的相关信息.取得设备描述符(Device D ...

  9. 【USB笔记】接口描述符Interface Descriptor

    USB笔记 接口描述符 (Interface Descriptor) 接口描述符(Interface Descriptor)描述了配置中一个特定的接口.配置提供了一个或多个接口,每个接口都含有类(Cl ...

最新文章

  1. 关于单CPU,多CPU上的原子操作
  2. 7-4 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
  3. 面试中的这些坑,你踩过几个?
  4. 当当网首页——CSS代码
  5. 【数据结构与算法】【算法思想】Dijkstra算法
  6. 负载均衡工具 haproxy剖析
  7. python select實現非阻塞socket
  8. 雷林鹏分享:jQuery EasyUI 数据网格 - 设置排序
  9. 加州理工学院公开课:机器学习与数据挖掘_神经网络
  10. CAS实现单点登录SSO执行原理探究超详细
  11. win7连接共享打印机时安装驱动程序出现0x00000bcb错误【解决办法】
  12. 微信小游戏3d入门视频教程
  13. matlab仿真调速,直流调速系统的MATLAB仿真参考程序
  14. ios 微信分享重新编码链接_iOS微信分享及从Safari跳转到App
  15. 人工智能数学基础--微分:定义、运算以及应用
  16. python 聚宽 对股票名称或代码进行查询
  17. linux终端设置es副本数,elasticsearch之修改shards数
  18. qcow2文件的snapshot管理
  19. 最简单Unity 连招入门--只有20行代码
  20. 北邮计科院导师简况2009-09-27 14:13:38

热门文章

  1. Python数据分析三剑客学习笔记Day3——pandas包的使用:认识series类型,DataFrame类型,读取excel表格数据及数据操作
  2. 屏幕录制方法?如何在电脑进行屏幕录制
  3. NNDL 作业3:分别使用numpy和pytorch实现FNN例题
  4. 2.css字体 文本属性
  5. HDMI设计1--HDMI 1.4b SPEC的阅读个人总结
  6. GC日志的查看(日志意思)
  7. JAVA期末大作业之学生信息管理简洁版系统
  8. 硕盟 HDMI转VGA 笔记本台式主机HDMI转VGA显示器转接头
  9. Win11 与 macOS 12 界面对比
  10. php 倒置,PHP依赖倒置案例详解