0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从系统标准层面梳理USB标准之架构

Q4MP_gh_c472c21 来源:嵌入式客栈 作者:逸珺 2021-09-24 14:16 次阅读

[导读] 大家好,我是逸珺。

前面写了一些SPI/I2C/RS-485之类的文章,有朋友留言希望能分享一些USB方面的梳理总结,今天就从系统标准层面先来梳理一下。看看有没有朋友喜欢。先从系统层面来梳理。个人学习,习惯于先从整体上摸个大概,然后再对感兴趣的细节逐渐深入。

USB是比较复杂的协议栈,如果发现文章中有错误,请帮忙指正。

注:本文主要参考USB2.0规范第4章,将标准中个人认为比较重要的一些点尽量条理清晰的总结出来。我感觉很多朋友可能对于阅读英文标准有点轻度抗拒,所以整理此文这也是一个起因,希望对朋友们有所帮助。

总线拓扑说到总线拓扑,这张图大家一定都见过:

USB标准上说USB总线拓扑是一种分层星形结构,这张拓扑图延申出来的一些要点:

所谓星型是针对Hub而言的,一个Hub下面可以挂Hub或者设备,最顶层就是USB主机控制器

USB主机控制器一般都伴随有一个根集线器Root Hub。

Hub级联最多5层

总线上理论最大允许连接127个设备。

Hub级联遵循向下兼容,USB2.0主机或者高速Hub可以连接USB1.1Hub。

一个USB分层星型结构有且仅有一个USB主机控制器

线缆最长不超过5米

这个最大7层星形结构,代表的是一条USB总线,一个USB分层星型结构有且仅有一个USB主机控制器,但并不是说一台计算机就只有一个USB总线,比如我的计算机内部就是2个USB主控制器+Root Hub,从Windows设备管理器可以看到:

7层拓扑图中的第2层只画了一个Hub,并不意味真正的第2层就只能有一个Hub,但这个图无法显示出更为详细的总线连接关系,用USBTrace软件来看看:

第1条总线有4个端口,第2条总线的根集线器具有18个端口,其中8、9、10为计算机内部的USB设备占用了。我这台笔记本对外有两个USB接口,通过分别将U盘插入这两个端口,再利用USBTrace探测可以推断出这两个端口都属于第2条总线的Port 3以及Port 4:

那么Hub长什么样呢?比如下面是一个7口的USB Hub示意图,来源于USB2.0标准:

物理接口电气概览USB 通过四线电缆传输信号电源。信令发生在每个点对点网段上的两条线上。

VBUS/GND:供电

D+/D-:USB差分信号线。

具有三种数据速率:

高速模式 high-speed:480 Mb/s,常缩写为HS模式

全速模式 full-speed:12 Mb/s,常缩写为FS模式

低速模式 low-speed:1.5 Mb/s,常缩写为LS模式

至于数据编码模式,这里先不管它。

机械概览机械部分主要定义USB采用什么尺寸的接插件,线缆的颜色定义、线号。线缆的抗拉强度等。主要从以下几个方面去标准化:

主要连接器类型规范,主要分A、B系列。定义了公头、母头。

线缆规范。高速/全速电缆由信号双绞线、VBUS、GND 和整体屏蔽组成。当高速/全速电缆与低速设备一起使用时,电缆必须满足所有低速设备要求。低速设备可以不使用双绞线。双绞线可有效抵抗共模噪声。

连接器机械尺寸及材料要求。

连接器脚号信号名线芯颜色

1VBUS红色

2D-白色

3D+绿色

4GND黑色

外壳屏蔽屏蔽层

A/B系列插座规范

A/B系列插头规范

电缆尺寸材料规范,这里就不罗列了,知道在哪里查就可以了。

电气、机械和环境合规性标准

接地规范,屏蔽层一定要焊接在插头的外壳接地点。

插座PCB尺寸规范。所以对于有绘制接插件需要的,可以参考6.9节的尺寸。

Logo位置

线芯颜色规范。

USB Logo尺寸规范。

协议概述USB采用主从通讯模式,是一种轮询总线。所有数据传输都由主机控制器发起。这是USB标准中最难啃的部分,这里先不总结。

健壮设计标准关于协议健壮性,又称鲁棒性,做了这几个方面的设计:

从信号完整性角度:使用差分驱动器、差分接收器和以及对信号线缆的屏蔽处理。差分收发策略主要在抵抗共模干扰方面效果显著,而屏蔽层则有两方面的作用:其一,有效降低USB线通过无线电波对外界干扰;其二、能有效隔断外界无线干扰对USB信号线、电源线的干扰。

CRC报文校验。报文中数据如果出错,可以检测出来,可以做相应的处置。

热插拔检测及对相应硬件设备的系统配置管理。这个设计有助于提升用户体验,用户随用随插,而无需关机插拔。

利用对数据丢失或数据损坏超时检测实现通讯自恢复机制,以增强协议的健壮性。

对流数据的进行流量控制以确保同步以及底层收发硬件缓冲区管理。

数据管道和控制管道分离

配置管理USB支持热插拔,所谓热插拔就是,设备插入,系统需要正确识别设备加载驱动程序,断开后,系统需要从软件层面识别到设备已经从总线上移除了。这里所谓的系统,有可能是带操作系统的计算机,也有可能是不带操作系统的嵌入式设备。

比如下面这个U盘插入移除的过程:

连接检测所有的USB设备都必须经过集线器上的USB端口连接到总线。从总线拓扑图可以看出,总线上有一个主控制器,位于金字塔的顶端。上面动图中也可以看出,即便是计算机内部USB设备也是经由Hub的端口连接到总线的,现在的计算机内部很多设备也会采用USB总线进行互联,比如内置的蓝牙设备。

主机控制器位于顶端,设备是经过集线器的端口连接到总线,那么主控制器怎么知道设备插入呢?这是由于集线器具有用于报告USB设备在其端口之一上的连接或移除的状态位。主控制器查询集线器检索这些状态位。在设备插入时,主控制器启用端口并通过设备的控制管道在默认地址对USB设备进行寻址。主机为设备分配一个唯一的USB地址,然后确定新连接的USB设备是集线器还是功能设备。主机使用分配的USB地址和端点编号0为USB设备建立其控制管道的端点。

如果新连接的USB设备是集线器,如果这个新连接的集线器的端口上有USB 设备,则对每个连接的USB设备执行上述识别操作。

如果连接的USB设备是一个功能设备,则连接通知将由适用于该功能的主机软件处理。如果是基于通用操作系统的计算机系统,则由一般驱动程序处理,如果主机控制器是单片机类嵌入式设备,则由单片机程序负责处理。

断开检测同样移除时,从标准设计角度来看,也需要考虑两种情况。

如果是设备从集线器移除,集线器会禁用该端口并向主机提供设备移除的指示。然后主机控制器从软件层面做相应的移除处理。

如果是集线器移除,需要从软件层面移除该集线器所有端口的USB设备或级联集线器,当然如果集线器又连集线器,则有点递归的意思。

总线枚举总线枚举是主控制器识别连接到总线的设备并为该设备分配唯一地址的活动。由于USB允许USB设备随时连接到USB总线或从USB总线断开,因此总线枚举是 USB系统软件的持续进行的过程。USB总线枚举还包括移除的检测和处理。

传输模式USB利用单向或双向管道在USB主机控制器和USB设备之间进行应用数据和功能数据传输。管道Pipe是一个底层软件及硬件逻辑概念,数据就像水一样从管道中的一侧流向另一侧,就对应着主机控制器与设备的两个端点endpoint。endpoint就像管道的两头,也是软件逻辑概念。将主机与设备侧的端点逻辑关联起来,就是所谓的管道了。当然这管道之所以能传输数据,是因为主端、设备端两侧相应的代码配合芯片内部硬件实现的。

数据流经由一侧的端点通过逻辑管道传输到另一侧端点,USB架构包含四种基本类型的数据传输:

控制传输

批量传输

中断传输

同步传输

下表是这四类传输在不同速度模式下支持的最大包长度,放在这里有一个整体概念:

速度模式低速全速高速

控制传输88/16/32/6464

同步传输不支持10231024

中断传输0~80~640~1024

批量传输不支持8/16/32/64512

控制传输控制传输,主要用于在设备首次连接时配置设备;并可用于其他设备自定义的传输目的,比如控制设备上的其他管道。

USB系统软件在设备首次连接时使用控制传输进行设备配置。其他驱动程序软件也可以选择以自定义方式使用控制传输。控制传输主要使用管道0,数据传输是无损的。

每个USB设备都必须有控制端点,支持控制传输来进行命令和状态的传输。此外,控制传输是双向传输。

批量传输批量传输Bulk Transfer就像其名字一样,数据量相对较大,具有突发性。这种突发性可能来源于用户对USB设备的操作,比如对U盘的读写操作就会触发批量传输。批量传输这种突发性也就意味着是非周期性的,一般用于没有实时性要求、数据量比较大设备。比如用于打印机或扫描仪的数据。批量传输数据是连续的。通过在硬件中使用错误检测并采用前面所说的错误重传机制,可以在硬件级别确保可靠的数据交换。此外,大量数据占用的带宽可能会有所不同,具体取决于其他总线活动,这是由主机控制器动态仲裁管理的。

批量传输是单向的,使用单向大容量端点来实现。

中断传输一般用于需要实时可靠的传输场景。此类数据可随时由设备传输,并以不低于设备指定的速率进行传输。中断数据通常由一个或多个字节的事件通知、字符或坐标组成。比如USB鼠标就是一个采用中断传输的实例。

同步传输占用预先约定好的USB带宽以及传输延迟,也称为流式实时传输。所需要的带宽以及延迟要求,与特定设备的相关数据吞吐率以及端点的缓冲管理有关,比如用于音频会议USB耳麦,对于音频的采样率是有参数要求的。

带宽分配USB标准定义了如何允许每种传输类型访问总线的规则。带宽分配主要在从两个方面进行规定:

带宽在管道之间分配。当管道建立时,USB会为一些管道分配带宽。USB底层软硬件需要提供数据缓冲,带宽需求大的场景需要提供更大的缓冲区。

带宽可以在许多不同的数据流之间分配。从而能实现将各种设备连接到USB总线。此外,可以同时支持具有宽动态范围的不同设备比特率需求。所谓宽动态范围是指其带宽需求是随着使用场景在动态变化的。

好了,先总结这么多,继续慢慢啃~。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16308

    浏览量

    177783
  • usb
    usb
    +关注

    关注

    60

    文章

    7933

    浏览量

    264409
  • 信号
    +关注

    关注

    11

    文章

    2789

    浏览量

    76722

原文标题:USB标准之架构最强梳理!

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    是德科技亮相第三届车载网络和通信架构技术及标准研讨会

    近日,由中国汽车技术研究中心有限公司中国汽车标准化研究院主办,是德科技协办的“2024第三届车载网络和通信架构技术及标准研讨会”在武汉圆满进行。该会议以“标准助力车载通信协同发展”为主
    的头像 发表于 11-07 15:38 315次阅读

    物联网设备的标准与规范

    物联网(IoT)正在改变我们的生活方式,智能家居到工业自动化,再到智慧城市,物联网设备正在渗透到我们生活的方方面面。随着物联网设备的普及,制定一套统一的标准和规范变得尤为重要,以确保这些设备
    的头像 发表于 10-29 11:34 542次阅读

    浅谈虚拟电厂标准化现状与需求分析

    摘要: 虚拟电厂是新型电力系统建设的典型实践。针对当前虚拟电厂适用技术标准较少、标准体系建设滞后的问题,对虚拟电厂相关标准进行收集、梳理
    的头像 发表于 10-16 15:35 420次阅读
    浅谈虚拟电厂<b class='flag-5'>标准</b>化现状与需求分析

    使用符合USB 2.0标准的低发射480Mbps隔离器保护您的设计

    电子发烧友网站提供《使用符合USB 2.0标准的低发射480Mbps隔离器保护您的设计.pdf》资料免费下载
    发表于 09-23 11:09 0次下载
    使用符合<b class='flag-5'>USB</b> 2.0<b class='flag-5'>标准</b>的低发射480Mbps隔离器保护您的设计

    电力系统无功自动投切标准

    在电力系统中,无功自动投切通常涉及使用自动化设备和控制系统来根据系统运行状况和需求自动操作电容器或其他无功补偿设备。以下是一些关于电力系统无功自动投切的常见
    的头像 发表于 06-20 14:22 448次阅读
    电力<b class='flag-5'>系统</b>无功自动投切<b class='flag-5'>标准</b>

    技术分享 | AEC-Q007中组件焊点开裂原因分析及相关车规标准介绍

    本文系统梳理了焊点开裂典型失效模式、失效机理,并整理了AEC-Q007及业内日系、德系等主机厂对应检验标准
    的头像 发表于 06-11 16:06 3969次阅读
    技术分享 | AEC-Q007中组件焊点开裂原因分析及相关车规<b class='flag-5'>标准</b>介绍

    芯盾时代参与的国家标准《网络安全技术 零信任参考体系架构》发布

    近日,国家市场监督管理总局、国家标准化管理委员会发布中华人民共和国国家标准公告(2024年第6号),芯盾时代参与编写的国家标准GB/T 43696-2024《网络安全技术 零信任参考体系架构
    的头像 发表于 05-16 14:21 967次阅读
    芯盾时代参与的国家<b class='flag-5'>标准</b>《网络安全技术 零信任参考体系<b class='flag-5'>架构</b>》发布

    芯盾时代深度参编的行业标准《总体架构》即将施行

    近日,工信部发布公告,芯盾时代深度参与编写的行业标准:YD/T 4598.1-2024《面向云计算的零信任体系 第1部分:总体架构》(以下简称《总体架构》)将于2024年7月1日正式施行。
    的头像 发表于 04-29 14:30 356次阅读
    芯盾时代深度参编的行业<b class='flag-5'>标准</b>《总体<b class='flag-5'>架构</b>》即将施行

    请问USB CDC host怎么与多串口的机通信?

    USB CDC host怎么与多串口的机通信? 有一个设备的USB虚拟了3个串口,作为主设备,如何分别识别出每个串口,分别于每个串口通信? 我的主设备使用的是官方单独的
    发表于 04-11 06:11

    应用场景:USB转以太网标准模块

    本帖最后由 lockyymc 于 2024-3-25 15:59 编辑 USB转以太网标准模块 AG32支持USB FS+OTG和以太网MAC,并且提供了标准例程,包括网络Lwi
    发表于 03-24 10:41

    请问F4标准库如何实现USB MSC和FATFS SDIO功能?

    如题,本人在STM32F407ZGT6跑通了正点原子的USB SD卡模拟U盘功能,和移植了官方例程跑通了FATFS在SD卡上建立文件系统管理的功能。 请问现在如何将二者结合到一起。使之实现如下功能
    发表于 03-14 06:11

    浅论新标准下应急照明系统在地铁站的应用和选型

    本文通过对比GB51309-2018《消防应息照明及疏散指示系统技术标准》和以往应急照明系统标准的差异,提出了地铁站应急照明系统
    的头像 发表于 02-04 15:25 749次阅读
    浅论新<b class='flag-5'>标准</b>下应急照明<b class='flag-5'>系统</b>在地铁站的应用和选型

    新思科技携手台积公司推出“架构探索到签核” 统一设计平台

    新思科技3DIC Compiler集成了3Dblox 2.0标准,可用于异构集成和“架构探索到签核”的完整解决方案。
    的头像 发表于 01-12 13:40 512次阅读
    新思科技携手台积公司推出“<b class='flag-5'>从</b><b class='flag-5'>架构</b>探索到签核” 统一设计平台

    MES/MOM标准ISA-95介绍

    今天我们来分享MES/MOM行业国际标准:ISA-95基础内容介绍。
    的头像 发表于 01-08 10:45 2825次阅读
    MES/MOM<b class='flag-5'>标准</b><b class='flag-5'>之</b>ISA-95介绍

    商汤牵头制定的两项AR国家标准下达,推动行业大规模、规范化应用

    移动设备增强现实系统应用接口》正式下达。 推动移动设备增强现实大规模、规范化应用 商汤科技一直致力于增强现实标准化工作,在国家标准层面,作为增强现实国家
    的头像 发表于 12-27 15:35 710次阅读
    商汤牵头制定的两项AR国家<b class='flag-5'>标准</b>下达,推动行业大规模、规范化应用