USB OTG 电气特性:电压电平与驱动能力

做 USB 设计,首先得搞清楚一件事:信号不是凭空传的,是实实在在的电压在线上跳来跳去。我见过不少新手,上来就调协议,结果连 D+ / D- 的电平都不对,折腾好几天。嗯,咱们先从最基础的电压讲起。

一句话总结:USB OTG 的电气特性,核心就是两个部分——电压电平和驱动能力。电压电平决定了信号能不能被识别,驱动能力决定了信号能不能传得远、传得稳。

2.1 电压电平三要素

USB 2.0 的物理层,差分信号 D+ / D- 有明确的直流电平要求。OTG 设备因为要切换角色(主机 / 外设),有些参数需要更严格的控制。

  • VBUS:主机侧必须输出 4.75 V ~ 5.25 V;外设侧承受 4.4 V ~ 5.5 V。OTG 作为主机时,VBUS 还要能提供至少 8 mA(用于 SRP 检测),真正驱动外设时电流更大。
  • D+ / D- 静态电平:空闲时,主机要在 D+ 和 D- 上各拉一个 15 kΩ 下拉电阻到地,所以静态电压接近 0 V。外设则在 D+(全速)或 D-(低速)上拉 1.5 kΩ 到 3.3 V,所以空闲时 D+ 或 D- 约 3.0 V。
  • 差分摆幅:发送数据时,差分电压 (VOP - VOM) 必须在 1.5 V ~ 2.0 V 之间。高电平驱动器的输出阻抗匹配不好,摆幅就容易超标。
  • 共模电压:差分信号的两个单端电压平均值,必须落在 1.5 V ~ 2.5 V 之间。我曾经碰到一块板子,共模电压飘到 2.8 V,结果在 2 米线缆上眼图全闭了。
USB OTG 关键电压电平参数(主机模式 vs 外设模式)
参数主机模式外设模式
VBUS 输出4.75 V ~ 5.25 V不输出,可承受 4.4 V ~ 5.5 V
D+ / D- 上/下拉电阻15 kΩ 下拉1.5 kΩ 上拉(全速/低速)
差分摆幅1.5 V ~ 2.0 V1.5 V ~ 2.0 V(要求一致)
共模电压范围1.5 V ~ 2.5 V1.5 V ~ 2.5 V
我的习惯做法:画原理图时,把 D+ / D- 的直流偏置点先算一遍。比如外设模式下 D+ 上拉电阻接 3.3 V,如果供电噪声大,实际到芯片管脚可能会低于 2.7 V,那就可能被主机识别成低速设备。这种事我调试时遇到过两次。

2.2 驱动能力,决定信号质量的硬指标

电压电平对了,信号不一定好。驱动能力是更“软”但更关键的参数。说白了,就是发送器能把信号推得多猛,接收器能忍受多大的反射。

  • 驱动电流:USB 2.0 规范要求差分驱动器在 45 Ω 负载上提供至少 20 mA 的电流(对应 0.9 V 单端电压)。OTG 主机因为可能驱动较长线缆和多个设备,实际设计中会留 30% ~ 50% 裕量。
  • 输出阻抗:驱动器的输出阻抗必须控制在 28 Ω ~ 44 Ω(单端)。阻抗太低会产生欠冲,太高则过冲。我在量产项目中遇到个别芯片批次输出阻抗偏到 20 Ω,结果眼图边沿振铃严重,差点延交。
  • 转换速率(Slew Rate):上升/下降时间必须在 4 ns ~ 20 ns(全速模式)。太快会产生高频分量增加 EMI,太慢则建立时间不够。我个人习惯控制在 8 ns ~ 12 ns,波形最干净。
  • 双角色匹配:OTG 设备要在主机和外设之间切换,驱动器的输出阻抗和转换速率必须保持一致。我曾经在方案选型时发现某芯片主机模式输出阻抗 40 Ω,外设模式却降到 28 Ω,导致同一根线缆在不同角色下眼图差异很大,必须靠外部串联电阻补偿。
USB OTG 电气特性框架 USB OTG 电气特性 电压电平 驱动能力 VBUS 范围 D± 静态电平 差分摆幅 驱动电流 输出阻抗 转换速率 ⚠ 双角色一致性要求 OTG 设备切换角色时,驱动器的输出阻抗、转换速率必须保持不变 否则同一根线缆在不同模式下眼图差异会超出规范

2.3 主机 vs 外设:哪里不一样?

OTG 设备最特殊的地方就是它既是主机也是外设。你想想看,同一个硬件,角色一变,电气要求也跟着变。我列一个实用的对照表,方便你查。

电气项A 设备(主机)B 设备(外设)注意点
VBUS 供电必须提供 5 V ±5%不供电,仅接收OTG 主机最低可接受 4.4 V 输入,但不能输出低于 4.75 V
D+ / D- 偏置15 kΩ 下拉到地1.5 kΩ 上拉到 3.3 V切换角色时必须切换偏置网络,否则总线死锁
差分驱动能力强(适应多种线缆)强(与主机一致)规范要求相同,但实际芯片实现常不同
接收器灵敏度±200 mV 差分输入阈值±200 mV 差分输入阈值相同
转换速率 (全速)4 ~ 20 ns4 ~ 20 ns调试时建议两角色分别测试
我曾经踩过的坑:有一款双角色芯片,主机模式下输出阻抗 35 Ω,外设模式下却变成 27 Ω。批量验证时,外设模式加上 1.5 米线缆,眼图睁不开。最后在 D+ / D- 上各串联了 4.7 Ω 电阻才修正过来。所以千万别迷信芯片手册上的“满足规范”,两角色单独测眼图才保险。

2.4 驱动能力不够,会出什么问题?

驱动能力不足,直接后果就是信号质量下降。常见的症状有:

  • 上升沿变缓——转换速率太慢,差分信号过零延迟增加,建立时间不够,眼图水平区域变窄。
  • 过冲 / 欠冲——输出阻抗与线缆特性阻抗不匹配,反射严重。明明跟的是 90 Ω 差分 PCB,结果驱动器只给了 70 Ω,反射回来波形就毛了。
  • 共模偏移——驱动电流不对称,导致 D+ 和 D- 的摆幅不一致,共模电压飘出范围。我在一个 4 端口 USB Hub 项目上遇到过,近端端口正常,远端端口共模跑到了 2.8 V,排查了两天才发现是电源去耦不足造成的。
给你的建议:做 OTG 项目时,先定好 PCB 的特性阻抗(90 Ω 差分 ±10%),然后根据芯片的出厂参数(输出阻抗、摆幅、slew rate)反推是否需要加串联电阻或调整线宽。我习惯留一个 0 Ω 电阻焊盘,调试时可以快速替换不同阻值的串阻。