ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

USB2.0 电路设计核心关键点(源自 USB2.0 官方规范文档)

USB2.0 电路设计核心关键点(源自 USB2.0 官方规范文档)

一、拓扑结构硬性约束

  1. 层级限制:USB物理是分层星型拓扑,最大7层(Tier1~Tier7),主机为Tier1;一条通信路径中最多允许5个非根HUB;复合设备本身占用2层,不能放在第7层,第7层只允许普通功能设备。(一条 USB 链路,从电脑出发,最多串 5 个 HUB,总层级不超过 7 层)
  2. 设备数量:7bit设备地址,地址0为复位默认地址,单主机控制器最多127个设备。
  3. HUB重点:事务转换器TT(Transaction Translator)高速HUB必须带TT,实现高速主机 ↔ 全速/低速设备协议转换;没有TT的USB1.1 HUB挂载在USB2.0主机下,下游全部是全速/低速带宽,会占用总线资源;HUB分为Hub Repeater(中继器)、Hub Controller、TT三部分。
  4. 拓扑只能树型,禁止环路;只有1个Host主机,不能多主机。

二、电气信号设计(D+ / D‑差分对,重中之重)

  1. 三种速率
    • 高速High‑Speed:480Mb/s;全速Full‑Speed:12Mb/s;低速Low‑Speed:1.5Mb/s(仅用于键鼠等简单交互设备,不支持BULK批量传输)。
    • 高速设备上电先以全速模式枚举,总线复位握手后切换到480M高速模式,高速设备必须兼容全速响应标准设备请求(Set‑Address、Get‑Descriptor等)。
  2. 速度识别上拉/下拉电阻
    • 设备端:全速/高速设备,D+接1.5kΩ上拉(3.3V);低速设备D‑接1.5kΩ上拉3.3V。
    • Host/HUB下游端口:D+、D‑各15kΩ下拉到GND;上拉电阻用来通知主机设备插入、识别速率;很多USB芯片内部集成该电阻,固件可控开关,硬件外部电阻按需取舍。
  3. 差分阻抗要求差分对D+/D‑差分阻抗90Ω±15%;PCB走线、线缆全程保持阻抗连续,减少反射、眼图恶化;差分对内两根走线尽量等长,控制skew(时序偏移);高速模式对信号抖动、上升/下降沿单调有严格规范,不能有过冲震荡。
  4. 编码:NRZI编码+位填充Bit‑Stuffing,每包开头必须有SYNC同步域,用于接收端PLL锁时钟;EOP包结束标志;协议内置CRC5(令牌包)、CRC16(数据包)做错误检测。
  5. 线缆规格:4根导线VBUS、D+、D‑、GND;高速/全速线缆必须双绞+屏蔽;单段线缆最大5m。

三、电源VBUS设计

  1. VBUS标称+5V;分总线供电Bus‑Powered、自供电Self‑Powered两类设备。
    • 总线供电设备:全部由VBUS取电。总线供电HUB有严格功耗限制;低功耗设备最大100mA;高功耗设备最大500mA。
    • 自供电设备:自带电源,从USB总线汲取电流不允许超过100mA。
  2. 描述符bMaxPower:配置描述符中上报设备消耗电流,单位2mA;硬件实际功耗严禁超过该上报值;Get‑Status指令可以读取设备供电模式,硬件功耗要和描述符匹配。
  3. 挂起Suspend电流约束:挂起状态设备总电流必须小于规定值;主机/Hub会检测挂起、恢复Resume信号,支持远程唤醒Remote‑Wakeup功能(需要设备描述符开启Feature)。
  4. HUB端口电源:支持端口独立电源控制,过流检测、过流上报;总线供电HUB不能无限制向下游输出电流。需要做压降预算,线缆、连接器IR压降不能超出规范范围。

四、端点Endpoint与传输类型硬件相关约束

所有USB设备必须实现Endpoint0(控制端点),双向,默认控制管道Default Control Pipe,设备复位后地址0就可用,用于枚举、标准请求;其他端点必须等设备配置完成后才能使用。 四种传输类型硬件限制:

  1. 控制传输Control:端点0,所有设备必备。低速最大包8字节;全速8/16/32/64字节;高速固定64字节;微帧预留20%带宽给控制传输。
  2. 批量Bulk:仅全速、高速支持,低速设备不能有BULK端点;高速Bulk最大包512字节;全速最大64字节;占用剩余空闲带宽,无带宽保证。
  3. 中断Interrupt:低速最大包8字节;全速最大64字节;高速最大1024字节;有最大服务周期保证,适合键鼠。高速高带宽中断端点可1微帧最多3次事务。
  4. 同步Isochronous:只有全速/高速;用于音视频;不做重传,错包直接丢弃;需要预先预留带宽,不能重试纠错;高速高带宽同步端点单微帧最多3072字节数据;依赖SOF帧同步时钟。

高速高带宽端点:wMaxPacketSize高11‑12bit标识每个微帧事务数量(1‑3次),硬件、固件描述符必须配置正确。

五、机械与连接器要点

  1. Upstream(设备侧上行口)、Downstream(HUB下游口)A/B连接器物理防呆,不能互换,避免环路;禁止设计非法线缆。
  2. 连接器外壳屏蔽地处理,屏蔽外壳不能直接短接信号GND,注意隔离,防止地环路干扰。
  3. 线缆:高速/全速必须屏蔽双绞线;低速线缆可以非屏蔽;导线AWG线规要匹配功率,保证压降满足要求。

六、硬件必须配合协议的关键点(电路设计要留给固件实现条件)

  1. 设备枚举Bus Enumeration流程硬件条件:插入检测(D+ / D‑上拉)→复位 →地址分配(Set‑Address)→读取各类描述符(Device、Configuration、Interface、Endpoint)→Set‑Configuration配置设备,端点才工作。硬件必须支持总线复位信号。
  2. 设备状态:Default、Address、Configured、Suspend;硬件电路要支持总线复位、挂起/恢复信号识别。
  3. HUB硬件必须支持:端口连接/断开检测、端口复位、端口电源开关、过流检测上报;带TT的HUB,TT缓冲区硬件资源要满足分割事务Split‑Transaction要求,用于高速主机和全速/低速设备通信,Split事务对时序要求严格。

七、常见踩坑清单(电路设计特别注意)

  1. ❌ 高速设备省略上拉电阻,无法识别;电阻阻值偏离1.5kΩ规格,造成识别不稳定。
  2. ❌ D+ D‑差分走线阻抗不控制、大量过孔、走线过长,高速480M枚举失败,只能跑全速12M。
  3. ❌ 低速设备设计BULK批量端点,协议不支持,会通信异常。
  4. ❌ 总线供电设备实际电流大于描述符bMaxPower上报电流,导致主机复位设备。
  5. ❌ 高速HUB不带TT,下游接全速设备,带宽异常,通信卡顿。
  6. ❌ 拓扑层级超过7层;复合设备放在第7层,无法正常工作。
  7. ❌ VBUS走线太细,线缆压降超标,设备不稳定。
  8. ❌ 忽略Suspend挂起电流,挂起电流超标,主机直接复位设备。
  9. ❌ 高速设备只做硬件480M,不兼容全速响应标准请求,枚举直接失败。
  10. ❌ 同步传输期望出错重传;硬件没有意识到同步传输不支持重传,丢包后软件反复重试无效。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进