2、信号完整性基础:眼图概念、抖动分类、码间干扰、噪声来源
做USB 3.0测试这几年,我越来越觉得信号完整性(SI)是高速设计里最绕不开的坎。你想想看,一根5Gbps的差分线,上升沿才几十皮秒,稍有反射或串扰,波形就乱成一锅粥。而眼图、抖动、码间干扰、噪声——这四个东西,就是诊断信号完整性的四把尺子。今天咱们就捋一捋它们到底是什么,以及怎么影响USB 3.0的实际表现。
2.1 眼图:高速信号的“心电图”
眼图说白了就是把一串随机的数字比特叠在一起看。示波器持续采样,把每个UI(单位间隔)的波形都叠加到同一个时间窗口里,出来的那个“眼睛”形状,就是眼图。我在项目里第一次看到闭合的眼图时,心里咯噔一下——那意味着接收端很可能采错数据。
眼图能告诉我们什么?我列几条最关键的:
- 眼高(Eye Height):眼睛垂直方向开口大小,直接反映电压噪声余量。
- 眼宽(Eye Width):水平方向开口大小,决定抖动容忍度。
- 抖动(Jitter):眼图交叉点附近的模糊区域,越宽抖动越大。
- 眼图模板(Mask):USB 3.0规范里画了规定的禁区,波形不能碰到模板边界。
我个人习惯在调试阶段先看眼图模板余量。如果眼高低于规范要求的100mV(USB 3.0 Rx端要求),我就会直接检查端接电阻和走线阻抗。
2.2 抖动分类:把总抖动拆着看
抖动是信号边沿偏离理想时刻的东西。你可能会问:“抖动不就是抖动吗,还分什么类?”嗯,这里要注意——不同抖动来源不一样,处理手段也完全不同。抖动按特性分成两大类:
| 分类 | 子类 | 来源 | 特点 |
|---|---|---|---|
| 随机抖动(RJ) | 高斯分布 | 热噪声、闪烁噪声 | 无法消除,统计上限 |
| 确定性抖动(DJ) | 数据相关抖动(DDJ) | 码间干扰(ISI)、占空比失真(DCD) | 有界,可优化 |
| 周期抖动(PJ) | 电源纹波、EMI耦合 | 频率固定,滤波可改善 | |
| 有界不相关抖动(BUJ) | 邻近串扰 | 幅度有限,随机出现 |
总抖动(TJ)通常按 BER = 10⁻¹² 来估,公式是 TJ = DJ + 14.069 × RJ(RMS)。这个 14.069 是高斯尾巴往外扩的系数。我以前吃过一次亏:只看了总抖动,没分解就去改端接,结果发现抖动没下来。后来用示波器的抖动分离功能,才看到主要成分是PJ,根本原因是开关电源的200kHz纹波串进了PLL。
我曾经因为忽略DCD(占空比失真)而浪费了一周。USB 3.0的时钟恢复对占空比很敏感,差分对不等长就会引入DCD,表现为眼图交叉点上移或下移。别只盯着RJ,先查查差分线等长。
2.3 码间干扰:前一个比特的“幽灵”
码间干扰(ISI)是数据相关抖动的头号元凶。当信号经过有损耗的通道(比如长的PCB走线、连接器、线缆),高频分量衰减比低频快,导致单个比特的能量拖到后面的比特里。你想想看,010的模式和000的模式同过一条线,边沿位置竟然不一样——这就是ISI在捣乱。
ISI的影响可以用眼图“闭眼”和“双线”来识别。在眼图里,如果看到上眼皮和下眼皮有两条明显分开的轨迹,那多半是ISI。我遇到过一个案例:板上差分线走了12英寸,没做阻抗补偿,结果USB 3.0的眼图模板余量只剩5%。后来在发送端加了个去加重(De-emphasis)预加重,眼高直接提了一倍。
定量评估ISI,会用浴盆曲线(Bathtub Curve)。横轴是采样点的相位偏移,纵轴是误码率。如果曲线在眼图中央的“安全区”很窄,说明ISI严重。
2.4 噪声来源:不止你想的那些
噪声种类很多,但高速信号里最要命的就几种:
- 电源噪声:电源纹波会直接调制到信号上,尤其PLL和TX驱动器的供电。我见过一个设计,眼图上有明显的1.2MHz纹波,原来是DCDC的开关频率。
- 串扰(Crosstalk):邻近信号线的耦合,分近端串扰(NEXT)和远端串扰(FEXT)。USB 3.0差分对之间如果间距不够,串扰就会增加抖动。
- 反射:阻抗不连续点产生的回波,会叠加到主信号上形成振铃和过冲。
- 地弹(Ground Bounce):多个信号同时跳变时,参考地平面电压被拉高,导致逻辑电平偏移。
这些噪声会叠加到眼图的垂直方向上,拉低眼高。更讨厌的是,噪声和抖动经常混在一起,比如电源噪声导致PJ,串扰导致BUJ。测量时需要用频谱仪配合眼图分解。我个人习惯是先做纯噪声测量(发固定码型),再发PRBS测总抖动,两者一减就能分离出噪声贡献。
2.5 实际测试中如何抓住这四个要点
在USB 3.0一致性测试里,测试工具(比如示波器 + 专用软件)会自动帮你算眼图、抖动的各个分量,甚至标出是否通过模板。但如果你只知道按“PASS/FAIL”键,出了问题就很被动。我的建议是:
- 先看眼图模板余量——余量低于20%基本就悬了。
- 分离抖动成分——用抖动分离功能(如Dual-Dirac模型)看看RJ和DJ占比。如果DJ > TJ的70%,重点查确定性源头。
- 看浴盆曲线——眼图中央的平坦区域越窄,ISI越高。
- 检查噪声频谱——给电源上加个2.2μF电容或磁珠,往往能解决PJ。
Tip:遇到眼图闭合又找不出原因时,试试换一根USB 3.0线缆。我遇到过一根劣质线,内部差分对屏蔽都断了,眼图完全闭合。线缆不贵,但它带来的ISI和串扰能让你调试到崩溃。
好,这一节的内容就到这儿。记住这四个概念就像记英语单词——眼图是结果,抖动是时间域失真,ISI是记忆效应,噪声是幅度域污染。真正吃透了它们,你再去看USB 3.0的电气测试规范,就不会觉得密密麻麻的数字是冰冷的了。