USB硬件设计注意事项

2023-11-19

USB物理层介绍及电路设计注意事项

博文原创,转载请注明出处!

USB-Universal Serial Bus

USB,是英文Universal Serial Bus,通用串行总线的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。

USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。

Bus 拓扑

决定一个USB host下面最多挂载127个设备,算上主机USB则是128个(2^7)USB将USB设备与USB主机连接。 USB物理互连是分层星形拓扑。
枢纽位于分层星形的中心。
每个线段是主机与集线器或功能之间的点对点连接,或连接到另一个集线器或功能的集线器。
由于允许集线器和电缆传播时间的时序限制,允许的最大层数为7(包括根层)。
请注意,在七层中,主机和任何设备之间的通信路径中最多可以支持五个非根集线器(就是除去主HOST仅能有5个HUB)。
复合装置(Compound Device)占两层; 因此,如果在第七级附加,则无法启用。

USB拓扑如下:
在这里插入图片描述

USB信号

USB信号包含:
在这里插入图片描述
USB屏蔽线缆:
在这里插入图片描述

  • 电源Vbus
  • 数据线D+
  • 数据线D-
  • 信号参考GND
  • 外壳屏蔽GND。
Vbus

首先讲电源Vbus,为USB设备供电引脚电源,一般是5V电源电压,设备自己转换为3.3V电源,具体如下:

  • 总线供电:器件使用 USB 线缆 VBUS 线上的电源。目前,这是为 USB 器件(如笔式驱动器、鼠标、键盘和较新的磁盘驱动器)供电的最常见方法。
    总线供电:
    在这里插入图片描述
  • 自供电:某些 USB 外设(如磁盘驱动器)所需电源超过了线缆所提供的电源。这些外设通常使用外部电源(这些电源通常为壁式电源适配器)。
    在这里插入图片描述
  • 混合电源:USB 器件可以自供电或由总线供电。这些器件比较罕见,并且通常需要多个电源。这个场景不是特别多,故暂不介绍。

各条信号线介绍如下:

电源规范

USB 2.0 主机在 5 V VBUS 线上提供了两种功耗水平:

插入时的 100 毫安电流和运行期间的 500 毫安电流。

  • USB规范为100 mA负载提供的 VBUS 范围为4.4 V到5.25 V;
  • 并且为500 mA 负载提供的 VBUS 范围为 4.75 V 到 5.25 V。

USB 外设通常将该电压调节为 3.3 V,从而为器件提供最清洁的电源。
在所有情况下,总线供电的集线器为下行端口提供 100 mA 的电流。一个外部供电的集线器能够为其自身的每个下行端口提供 500 mA 的电源。

数据线

数据线为差分结构的,差分阻抗需要保持为90Ω标准,且需要一直维持该阻抗保持不变。

D+和 D–走线的长度差异不应超过 50 mil(1.25 mm),从而可以避免信号时滞并防止对信号时序产生影响。
数据线靠近源端需要串接28欧姆~39Ω的电阻,用来实现阻抗匹配,因为源阻抗为CMOS输出,阻抗太小太小;

信号电平以及驱动方式:
1)低速差分线,USB使用差分输出驱动器将USB数据信号驱动到USB电缆上。
驱动器在低电平状态下的静态输出摆幅必须低于VOL(最大值)0.3V,1.5k负载电压至3.6V,并且在高电平状态下必须高于2.8V的VOH(最小值),负载为15k。
2)全速差分线,全速驱动器有更严格的要求。差分高低状态之间的输出摆动必须很好地平衡,以最小化信号偏斜。需要对驱动器进行转换速率控制,以最大限度地降低辐射噪声和串扰。
3)高速差分线,差分线电平采用低电平传输,高电平为400mV,低电平为0+/-10mV,因为电平更低对应的信号上升时间越短。高速模式使用电流驱动,驱动大小为17.78mA。

屏蔽接地

需要通过一个电阻将 SHIELD 信号接地。这样有助于隔离该信号并降低 EMI 和 RFI 辐射。尽量将该电阻放置在靠近USB 连接器的位置。可能需要进行一些试验,从而获得正确的数值。
但是一般我们直接是连接在一起的和信号地,因为本身而言不是长距离的话影响不大。

数据参考地

数据参考地一般直接连接整块主板的大地,可以获得更好的信号完整性和EMI特性。
这个地最好是连续的,且是很大面积的。
如下所示:
在这里插入图片描述

USB速率
  • 低速:1.5Mbps
  • 全速:12Mbps
  • 高速:480Mbps

    在这里插入图片描述
USB HUB-集线器

集线器是USB即插即用架构的关键元素。集线器用于从用户的角度简化USB连接,并以低成本复杂度提供稳健性。
在这里插入图片描述
集线器的上游端口将集线器连接到主机。集线器的每个下游端口都允许连接到另一个集线器或功能。集线器可以检测每个下游端口的连接和分离,并能够为下游设备分配电力。每个下游端口都可以单独启用并连接到全速或低速设备。集线器将低速端口与全速信令隔离开来。
集线器由两部分组成:集线器控制器和集线器中继器。

集线器中继器是上游端口和下游端口之间的协议控制交换机。它还具有复位和挂起/恢复信令的硬件支持。主机控制器提供允许与主机通信的接口寄存器。

标准内芯线的类别

前面第一列为标准的线芯描述,数字越大表示线芯越细,后面描述的是线的直流阻抗/100米,线越粗,阻抗越小。

所以并不是所有的线径都是满足USB协议的,那些仅仅是可以使用的,况且实际上很多便宜的USB数据线是没有屏蔽层的,这种线可能导致电磁干扰,表现最明显的就是充电时,屏幕操作失灵。
在这里插入图片描述

USB插入检测
全速设备识别

全速设备识别,全速设备是在数据线D+上连接上拉电阻,上拉电阻阻值为1.5K,上拉电压为3.3V,在初始上电时控制器通过D+上拉识别到该设备是全速设备,请注意上拉电阻不得小于900Ω,控制器端下拉电阻是15K。
在这里插入图片描述

低速设备识别

低速设备识别,低速设备是在数据线D-上连接上拉电阻,上拉电阻阻值为1.5K,上拉电压为3.3V,在初始上电时控制器通过D-上拉识别到该设备是全速设备,请注意上拉电阻不得小于900Ω,控制器端下拉电阻是15K。
在这里插入图片描述

高速设备识别

高速设备识别与全速设备前期基本一致,但是高速设备初始是上拉到3.3V的,后续内部有可控制的开关断开此连接,所以,后续判定为高速设备。进而进入高速设备模式。
在这里插入图片描述

USB设备驱动电路
高速设备驱动电路

为了在高速模式下发送,收发器激活从其正电源电压导出的内部电流源,并通过高速电流转向开关将该电流引导到两条数据线之一。
这样,收发器在电缆上产生高速J或K状态。
将该电流动态切换到D +或D-线遵循在低速或全速操作中使用的相同NRZI数据编码方案以及位填充行为。为了发信号通知J,电流被引导到D +线,并且为了发信号通知K,电流被引导到D-线。SYNC字段和EOP分隔符已针对高速模式进行了修改。
在这里插入图片描述

低速和全速设备驱动

低速和全速使用的是3.3V电平标准,请保证输出阻抗匹配传输阻抗,所以建议串联电阻为28Ω到44Ω大小。
在这里插入图片描述

数据编码方式

USB在发送数据包时采用NRZI数据编码。 在NRZI编码中,“1”表示级别没有变化,“0”表示级别变化。高电平表示显示NRZI编码的本图和后续图中数据线上的J状态。一串零会导致NRZI数据切换每个位时间。 一串1导致长周期而数据没有转换。
在这里插入图片描述

USB电路设计

USB电路设计请注意:
错误:USB数据速率很高,所以我们设计中可能见到USB Host直接经过电阻分叉之后给到两个USB设备,这种做法是及其错误的,就目前而言,信号质量一定会受到影响,切记不得已不要这样设计!!!

正确:使用USB专用器件来实现兼容或分叉设计,此时需要使用USB Switch或者USB Bridge。

以下为USB电路设计,如果看不清可以看参考最后一个链接;
在这里插入图片描述
1)U28是过流保护器件,USB协议中规定USB端口供电5V,电流500mA,超过该值要能实现关断输出,另外在负载短路时也能实现关断,所以使用该器件,该器件叫做负载开关芯片。
2)L11是共模电感,共模电流会导致EMC测试中的辐射测试超标,差分信号不平衡将会导致该情况发生,所以增加共模电感,来减小/阻碍共模电流。
3)U29是静电防护器件,因为USB端口我们会使用手插入USB设备,可能导致电源、数据线上有静电放电,用该器件来保护CPU端口。
4)Vbus上的电容,这是因为USB设备插入时瞬间电流较大,则可能导致Vbus电压下降,此时需要满足标准规定,所以增加电容来稳定电压。
5)FB13是信号地和外壳屏蔽地之间的隔离磁珠,磁珠是耗能原件,来消耗掉不需要的干扰高频信号,直流下基本上没作用。
6)J19是USB端子,可能是电脑那种的USB母头,也可能是手机上的Micro USB接口。
7)USB输出靠近CPU侧放置小电阻的作用是源端阻抗匹配,具体可见我其他博文。
8)在USB靠近端子侧放置电阻是静电防护作用,因为有时候静电防护器件还没起作用,就要靠这个电阻起作用了。

常见问题与解决办法

在这里插入图片描述

Reference

1、赛普拉斯 USB检索:
https://www.cypress.com/search/all/USB?sort_by=search_api_relevance&f[0]=meta_type%3Atechnical_documents&f[1]=field_related_products%3A1341&page=18

2、赛普拉斯 USB 眼图:
https://www.cypress.com/file/126176/download

3、赛普拉斯 USB电路:
https://www.cypress.com/file/180466/download

4、TI USB相关:
http://www.ti.com.cn/tool/cn/tidep0013?keyMatch=USB2 0&tisearch=Search-CN-Everything

2019-07-17且行且看,且思且行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

USB硬件设计注意事项 的相关文章

  • Cocos Creator组件化开发之——地图类缩放拖动点击组件

    好记性不如烂笔头 记录开发过程中的点点滴滴 xshu 书写是对思维的缓存 佚名 进入正题 在游戏开发过程中经常会遇到渲染元素的尺寸大于你所能展示的区域 需要玩家自行进行操作 拖动以及点击 比如地图通常会超出玩家所示区域 这个时候需要一个能够
  • 轻松易懂,一文告诉你什么是http协议?

    阅读本文之前 请详细阅读以下几篇文章 一文包你学会网络数据抓包 教你如何抓取网络中的数据包 黑客必备技能 一 什么是http Http协议即超文本传送协议 HTTP Hypertext transfer protocol 它定义了浏览器 即
  • 判断一个字符串是否全部由数字组成?

    代码实现如下 public class StringClassTest public static void main String args String str 123b56c7 if isAllNumber str System ou
  • 常用adb命令整理

    一 adb介绍 adb Android Debug Bridge Android 调试桥的缩写 adb 是一个 C S 架构的命令行工具 主要由 3 部分组成 运行在 PC 端的 Client 可以通过它对 Android 应用进行安装 卸
  • Linux驱动

    一 前言 设备树是每一个Linux驱动工程师都必须掌握的一个知识点 有很多之前做单片机的朋友刚接触Linux驱动时 会一脸懵 其实设备树的使用并没有大家想像的那么复杂 对于大部分工程师来说 只要会修改即可 很多粉丝留言说 希望彭老师提供一个
  • 区块链技术加密算法为什么不可篡改

    区块链采用密码学的方法来保证已有数据不可能被篡改 这个是误解最多的部分 因为很多人一提到区块链就只觉得是这个 诚然 这部分很重要 而且确实区块链也因此得名 但这只是区块链的定义的一部分 这个部分的两个核心要点是 1 密码学哈希函数 2 非对
  • 干货来了!!简单操作让你的GitHub格子重新绿起来

    自从得知了GitHub这个网站 我就开始把自己的代码每天提交上去 看着小绿格子慢慢的特别有成就感 事故 发生了 就在上周一之后我的小绿格子突然不变色了 我一直以为是学校网太差 一周过去了总觉得不对劲 专门找时间查了一下 经过在网上搜索 我的
  • leetcode——189.轮转数组(C语言2种思路)

    文章目录 1 题目 2 解法1 开辟新数组 2 1 思路 2 2 代码实现 3 解法2 翻转法 3 1 思路 3 2 代码实现 1 题目 给定一个整数数组 nums 将数组中的元素向右轮转 k 个位置 其中 k 是非负数 示例1 输入 nu
  • 苏宁!你还挺得过去吗?(苏宁大幅裁员)

    前两天才写了一篇 作为一个江苏人 我眼中的苏宁 说实话 我内心是有点不太相信 偌大的苏宁会走到今天这步田地 可一件件传闻都慢慢变成了实锤 一 苏宁大裁员 一位多年老友刚跳槽去了苏宁 入职一个月 就面临整个部门裁员 据说要直接裁掉4成研发人员
  • 在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法

    FreeRADIUS 为AAA Radius Linux下开源解决方案 DaloRadius为图形化web管理工具 freeradius一般用来进行账户认证管理 记账管理 常见的电信运营商的宽带账户 上网账户管理 记账 都是使用的radiu
  • 什么是FPGA?为什么FPGA会如此重要?

    CPU GPU FPGA三者能力相加就是芯片的未来 很多粉丝问我 嵌入式方向中的FPGA怎么样 收入如何 前言 这个时候 一定会有抬杠青年说 我见过国内生产的FPGA芯片 还用过呢 通常遇到这一类质疑声 我一般都会说 你是对的 后来 要知道
  • 基于linux下的dm9000网卡移植全分析

    DM9000可以直接与ISA总线相连 也可以与大多数CPU直接相连 Mini2440采用的是dm9000直接连接CPU s3c2440 上 就像是nandflash一样直接被挂在CUP上 被挂在s3c2440的bank4上 小插曲1 s3c
  • 一文带你理解URI 和 URL 有什么区别?

    当我们打开浏览器 要访问一个网站或者一个ftp服务器的时候 一定要输入一串字符串 比如 https blog csdn net 或者 ftp 192 168 0 111 这样我们就可以得到一个html格式的页面或者一个文件 那么这个地址是什
  • 聊一聊基础的CPU寄存器~

    寄存器 CPU内部的存储单元 用于存放从内存读取而来的数据 包括指令 和CPU运算的中间结果 使用寄存器来临时存放数据而不直接操作内存原因如下 CPU的工作原理决定了有些操作只能在CPU内部进行 CPU读写寄存器的速度比读写内存的速度要快很
  • 【粉丝问答25】函数指针定义的一个错误

    1 问题 某个函数指针的使用 编译时出错了 type defaults to int in declaration of on touch messgae handle Wimplicit int typedef on touch mess
  • python常见的面试题,看你都掌握了吗

    前言 Python是目前编程领域最受欢迎的语言 在本文中 我将总结Python面试中最常见的50个问题 每道题都提供参考答案 希望能够帮助你在2019年求职面试中脱颖而出 找到一份高薪工作 这些面试题涉及Python基础知识 Python编
  • 如何使用随机数实现自动发扑克牌?

    学习不止 问答不止 一 粉丝问题 二 相关函数说明 1 函数说明 产生随机数的方法很多 常用的是rand srand 来看一下这2个函数的定义 SYNOPSIS include
  • 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c++ 源码

    package bt6 import java util Random 看到了一个 蒙特卡洛方法 随机数得出 圆周率的c 源码 复制过来 一个Java版的见笑了 author suifeng public class PITest publ
  • 链表【1】

    文章目录 2 两数相加 1 题目 2 算法原理 3 代码实现 445 两数相加 II
  • 分治-归并算法——LCR 170. 交易逆序对的总数

    文章目录 0 归并排序 1 题目 2 算法原理 3 代码实现 0 归并排序 归并排序是典型的分治 将数组分成若干个子数组 数组两两比较 不是很清楚的 可以查看此篇文章 数据结构 七大排序 这里以力扣 9

随机推荐

  • MATLAB之LU分解法(十)

    LU分解 1 LU分解的基础知识 矩阵的LU分解又称为矩阵的三角分解 即将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U 即 A L U A LU A LU 其在方程组的求解和求矩阵的逆有许多应用 LU分解的求解命令是lu 基本使用格式如
  • python爬取(自动化)豆瓣电影影评,并存储。

    from selenium import webdriverfrom selenium webdriver import ActionChainsimport timedriver webdriver Chrome r C Program
  • [Qt]QObject::connect: Cannot queue arguments of type 'QString&'的解决方法

    参考 https blog csdn net tokary article details 5777141 遇到的问题是 在主线程和子线程中 通过信号与槽发送QString 遇到 QObject connect Cannot queue a
  • Ubuntu20.04中VSCode配置C++以及分文件编写配置

    网上搜索了很多文章 一直显示找不到自定义的头文件 今天总算捣鼓出来了 参考文章 https www cnblogs com icmzn p 16244665 html https blog csdn net qq 39048131 arti
  • python os.walk()方法使用详解

    os walk方法是python中帮助我们高效管理文件 目录的工具 在深度学习中数据整理应用的很频繁 如数据集的名称格式化 将数据集的按一定比例划分训练集train set 测试集test set 1 导入文件 使用os walk方法前需要
  • Unity使用Newtonsoft报错的解决方案

    文章目录 Unity 使用 Newtonsoft 报错的解决方案 问题描述 解决方法 方法一 使用 Unity 的 Package Manager 自动导入 方法二 访问 GitHub 下载 unitypackage 文件手动导入 Unit
  • Win7环境下robotframework环境搭建(含安装包下载地址)

    本文记录在Windows环境下使用robotframework搭建自动化测试环境 1 安装robotframework依赖的语言环境 Python2 7 Robot Framework是一款python编写的功能自动化测试框架 运行依赖于p
  • 解决Java JPA Es索引时间戳字符串格式比较问题

    说明 在Java开发中常见使用 yyyy MM dd HH mm ss 来格式化时间戳 例如 ApiModelProperty 订单开始日期 JsonFormat pattern yyyy MM dd HH mm ss JSONField
  • 华为云云耀云服务器L实例评测|在云耀云服务器L实例上部署battle-city坦克大战小游戏

    华为云云耀云服务器L实例评测 在云耀云服务器L实例上部署battle city坦克大战小游戏 一 前言 1 1 云耀云服务器L实例简介 1 2 battle city坦克大战小游戏简介 二 本次实践介绍 2 1 本次实践简介 2 2 本次环
  • 数据结构与算法书籍推荐

    学习数据结构与算法 还是很有必要看几本相关的书籍 但根据不同基础的人 合适看的书也不一样 因此 针对不同层次 不同语言的人 推荐几本市面上口碑不错的书 1 入门级 针对刚入门的同学 建议不要急着去看那些经典书 像 算法导论 算法 这些比较经
  • Python入门--变量

    变量是指在程序运行期间可以改变其值的数据类型 在Python中 变量可以指定任何数据类型 如字符串 整数 浮点数等 要创建一个变量 我们必须先指定变量的名称 然后将其赋值 在Python中 变量名可以是任何有意义的名称 但通常使用小写字母和
  • 【Leetcode】151. 翻转字符串里的单词

    题目描述 给你一个字符串 s 逐个翻转字符串中的所有 单词 单词 是由非空格字符组成的字符串 s 中使用至少一个空格将字符串中的 单词 分隔开 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串 说明 输入字符串 s 可以在前面 后面
  • Android免打包多渠道统计如何实现,BAT面试文档

    我们程序员经常迷茫于有太多东西要学 有些找不到方向 不知所措 很多程序员都愿意说 我想变得更好 但是更好是什么却很模糊 同时我们又不知道该怎么样去做 我们的生命如此短暂 作为程序员的职业生涯可能会更短 所以我们更加需要充分利用工作 工作间隙
  • opencv resize()函数

    转自 https blog csdn net u012005313 article details 51943442 void resize InputArray src OutputArray dst Size dsize double
  • 在ping服务器时丢包该怎么办?

    一般跨境企业比如说跨境电商 游戏等等都会有海外各个节点服务器的需求 包括对海外服务器的需求 当使用服务器时 难免会出现一些问题 比如说丢包 那么 当服务器丢包的话 该如何处理呢 说到丢包 我们一般是在说PING服务器IP出现的数据包丢失的现
  • ASP.NET Core快速入门(第6章:ASP.NET Core MVC)--学习笔记

    课程链接 http video jessetalk cn course explore 良心课程 大家一起来学习哈 任务40 介绍 任务41 Individual authentication 模板 dotnet new mvc help
  • ChatGPT使用学习(三):ChatGPT桌面版使用

    文章目录 介绍 获取方式 界面展示 介绍 ChatGPT桌面版是指OpenAI推出的针对个人用户的ChatGPT应用程序 它是一个独立的桌面应用程序 可以在本地计算机上运行 而无需依赖互联网连接 这使得用户可以在没有网络连接的情况下使用Ch
  • 论文必备

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文介绍了了12个将神经网络画地更好看的工具 1 draw convnet 一个用于画卷积神经网络的Python脚本 https github com gwding dr
  • 基于单片机的热敏电阻测温设计

    基于单片机的热敏电阻测温设计 1 基本功能 1 具有声光报警功能 2 使用液晶显示 3 温度上 下限报警值设定 温度上 下限报警 4 手动方式设定温度上下限 总体方案设计 温度控制系统主要由温度传感器 热敏电阻 A D转换器 单片机 STC
  • USB硬件设计注意事项

    USB物理层介绍及电路设计注意事项 博文原创 转载请注明出处 USB Universal Serial Bus USB 是英文Universal Serial Bus 通用串行总线的缩写 是一个外部总线标准 用于规范电脑与外部设备的连接和通