1.概念

(1)USB2.0帧和微帧属于物理层时间基准的概念,低速和全速下每个帧时长为1ms,高速下每个帧又分为8个微帧,即每个微帧时长为125us。

(2)USB主机和设备控制器同步后,每个微帧起始点开始传输数据,如果没有数据,则SOF包发送完毕之后,总线进入空闲状态,一会下面看解析图。

(3)每一个帧(微帧)起始点会先发送一个SOF包(帧起始包)它以广播的形式发送,所有USB全速设备和高速设备都可以接收到SOF包。帧起始包之后可以是输出(OUT)、输入(IN)、建立(SETUP)等令牌包(核心:令牌包一定是主机发送的,后续详解),在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。

(4)再次强调,USB全速设备1ms产生一个帧,而高速设备每125us产生一个微帧。

下面我们来看看全速USB传输帧和高速USB传输微帧的解析图:

2.全速USB传输(帧)

全速USB传输每一个帧为1ms。首先我们看上一帧,首先会发送一个SOF包(帧起始包),此时USB主机检测到总线没有事务可以传输,则总线进入idel(空闲状态),这里的空闲时间996.917us,我们其实可以计算发送一个SOF包的总线有效带宽时间(1000us-996.917us),大概3us左右,大家可能会问,为什么是3us,那就给大家详细计算下。

为什么是3us,因为全速USB 12Mhz的时钟频率,SOF包长度为4字节(同步 1字节+SOF 1字节+Frame域和CRC域 2字节),4*8 = 32bit,传输时间 = 1/12M*32 + 250[EOP] = 83.3333ns*32+250ns = 2916ns = 3us,EOP是end of packet占用的时间,过瘾吧,提示大家下,包后面会详细讲解。

帧而复始,一直会这样一帧帧下去,主机就是用这种方式和各个设备数据传输的。

3.高速USB传输(微帧)

高速USB传输每一个微帧为125us,含义其实和上面的一样。首先我们看上一帧,首先会发送一个SOF包(帧起始包),此时USB主机检测到总线没有事务可以传输,则总线进入idel(空闲状态),这里的空闲时间124.804us,我们其实可以计算高速传输协议下发送一个SOF包的总线有效带宽时间(125us - 124.804us),大概0.2us左右,大家可能会问,为什么是0.2us,我只想告诉大家,高速USB传输的时钟为480Mhz,如果看到这里还不知道请百度下。

紧接着我们看下一帧,同样的首先会发送一个SOF包(帧起始包),等了17.4us后,可能有事务了,紧接着USB主机会发送一个SETUP令牌包,也就是请求哪个设备哪个端点进行传输,紧接着两个事务传输完成。我们这里一定要注意,第二个事务传输完毕之后,主机检测到没有事务了,总线同样会进入空闲状态,这里空闲了98.704us,大家自行计算。

微帧而复始,一直会这样一帧帧下去,主机就是用这种方式和各个设备数据传输的。

USB协议详解第7讲(补充-USB帧和微帧剖析)的更多相关文章

  1. bt协议详解 DHT篇(上)

    bt协议详解 DHT篇(上) 最近开发了一个免费教程的网站,突然产生了仔细了解bt协议的想法,这篇文章是bt协议详解系列的第三篇,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的 ...

  2. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  3. 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别

    高效开发之SASS篇   作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...

  4. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  5. HTTP协议详解(转)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  6. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  7. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  8. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  9. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  10. HTTP协议详解(真的很经典)

    HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...

随机推荐

  1. 再探 游戏 《 2048 》 —— AI方法—— 缘起、缘灭(1) —— Firefox浏览器下自动运行游戏篇

    四年前曾经写过一过博客: 对 游戏 < 2048 > 的一些思考 虽然过去几年了,但是这个游戏一直没有搞懂该怎么使用AI算法来进行求解,这里再次对这个问题进行一些探索. ========= ...

  2. Spring Boot 基于 SCRAM 认证集成 Kafka 的详解

    一.说明 在现代微服务架构中,Kafka 作为消息中间件被广泛使用,而安全性则是其中的一个关键因素.在本篇文章中,我们将探讨如何在 Spring Boot 应用中集成 Kafka 并使用 SCRAM ...

  3. 零基础学虚幻4(UE4):蓝图+VR 丁树凯教程

    本人正在学习中,需要资料或者讨论问题的加Q:1241642375

  4. 使用Istio服务网格进行微服务网络治理

    在Rainbond中,用户可以对不同的应用设置不同的治理模式,即用户可以通过切换应用的治理模式,来按需治理应用,这样带来的好处便是用户可以不被某一个ServiceMesh框架所绑定,且可以快速试错,能 ...

  5. 零基础学习人工智能—Python—Pytorch学习(六)

    前言 本文主要讲神经网络的上半部分. 另外,我发现我前面文章写的有歧义的地方还是挺多,虽然,已经改了一部分,但,可能还有没发现的,大家看的时候尽量多理解着看吧. 本着目的是学会使用神经网络的开发,至于 ...

  6. 细说WebService

    细说WebService 简介 WebService 是一个应用于客户端.服务端,基于http协议的web应用程序,他有一个非常重要的特点,那就是可以跨语言.跨平台进行远程调用,可应用于分布式系统中的 ...

  7. idea启动项目发现端口被占用!!!导致启动不起来

    windows端口被占用 netstat -ano |findstr 端口号 任务管理器详细信息 PID排序找到刚才查到的 右键结束 原因: idea被异常终止导致tomcat没死

  8. 互联工厂数据交换标准:IPC-CFX

    大家好,我是Edison. 全球电子制造主要集中在中国,面向未来工业4.0.中国制造2025的战略转型升级,互联互通是基础.数据是核心,如何从用户角度来定义设备加工数据的内容完整性.有效性.可扩展性将 ...

  9. 技术如何通过API接口获取自己想要同款商品的数据

    确定数据源: 首先,你需要确定哪些平台或服务提供商提供了你感兴趣的商品数据.例如,电商平台.品牌商.市场调研公司等. 了解API文档: 访问提供商的开发者门户网站,阅读API文档.文档会详细介绍如何使 ...

  10. 【Python】之pip安装报错问题:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))

    我想安装python第三方库,但是始终报安装失败 经查询得知,需要国内源,有如下地址: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https: ...