第2章 信号完整性基础:反射、串扰、衰减及抖动
信号完整性,说白了就是信号在传输过程中能不能保持它该有的样子。我刚入行那会儿,总觉得只要焊好线、跑通功能就万事大吉,结果被一块SDIO卡反复掉线折磨了整整两周——后来发现,问题就出在反射和衰减上。SDIO跑的是高频数字信号,100MHz起步,DDR模式下200MHz甚至更高,这速度下,传输线上的那些“小毛病”全都会暴露出来。
这一章,我把四个最核心的信号完整性杀手——反射、串扰、衰减、抖动——掰开揉碎了讲清楚。每个概念都和SDIO实战绑在一起,你想想看,知道了敌人长什么样,后面做阻抗匹配才有方向。
2.1 反射:阻抗不连续的回声
反射是什么?就好像你在隧道里大喊一声,声音撞到墙壁弹回来,你听到的回声就是反射。在PCB上,信号在走线里跑,遇到阻抗突变的地方,一部分能量被反射回去,剩下的继续往前。反射回来的信号会和后续的信号叠加,造成波形畸变、过冲、下冲,严重时直接翻转逻辑电平。
我记得有一次做一块4层板,SDIO走线经过一个过孔换层,没做阻抗连续优化。示波器一看,时钟信号上升沿有个明显的小台阶——那就是反射造成的。后来加了个串联电阻匹配源端,问题就消失了。
反射的关键参数:
- 反射系数Γ = (ZL - Z0) / (ZL + Z0) —— 阻抗差越大,反射越强。
- 回波损耗RL = -20log|Γ| (dB) —— 通常要求RL ≥ -15dB。
- 过冲/下冲:反射导致电压瞬间超过VOH或低于VOL,容易误触发。
2.2 串扰:邻居家的噪声传染
串扰,说白了就是一条线在走,能量通过电磁场耦合到旁边的线上。这在SDIO这样的并行总线里特别致命——时钟线和数据线靠得近,时钟跳变的时候会通过互容和互感把噪声灌进数据线,导致数据采样出错。
串扰主要分两种:容性耦合(电场)和感性耦合(磁场)。对SDIO来说,时钟频率高、边沿陡,容性耦合占主导。你想想看,时钟上升时间如果只有1ns,耦合到相邻数据线的毛刺幅度可能达到100mV以上,要是噪声容限只有200mV,那直接就是误码。
我遇到过最头疼的一个案子:两块SDIO卡在同一总线上,线间距只设了3倍线宽,结果一块卡读数据时,另一块卡的时钟线抖动得很厉害。后来把间距拉到5倍线宽,中间加了一条地线隔离,噪声才降下去。
串扰的影响因素:
| 因素 | 影响趋势 | SDIO建议 |
|---|---|---|
| 线间距 | 间距越大,串扰越小 | ≥5倍线宽(或≥20mil) |
| 层间距离 | 参考平面越近,串扰越小 | 信号层紧邻完整地平面 |
| 上升时间 | 上升沿越陡,串扰越大 | 合理控制驱动器边沿速率 |
| 平行长度 | 平行走线越长,串扰越大 | SDIO线尽量短,不超1英寸 |
2.3 衰减:信号越跑越弱
衰减就是信号从发射端到接收端,幅度越来越小。原因主要有两个:导体损耗(线本身的电阻和趋肤效应)和介质损耗(PCB板材的耗散因子)。高频下介质损耗占大头,尤其SDIO跑到200MHz以上时,走线长度超过3英寸,衰减就不容忽视。
衰减的直接后果:眼图张开变小,接收端判断高电平时可能误判为低电平。我做SDIO布线时,通常要求衰减不超过3dB(对应电压幅度降低约30%)。
衰减估算公式(工程简化):
总衰减(dB) ≈ 0.1 × 频率(MHz) × 走线长度(英寸) × √(εr) × tanδ
举个例子:FR4板材(εr≈4.3,tanδ≈0.02),200MHz、4英寸走线,衰减≈0.1×200×4×√4.3×0.02 ≈ 3.3dB——已经接近警戒线了。
怎么应对?减少走线长度是第一选择,其次选择低损耗板材(如Megtron6、Rogers4350B),最后可以用预加重或均衡器在芯片端补偿。不过在SDIO这种低速(相对SERDES来说)接口中,走线长度控制在2-3英寸内基本安全。
2.4 抖动:时钟的不确定性
抖动,就是时钟边沿或者数据边沿在时间轴上的随机偏移。SDIO协议对时钟抖动非常敏感——接收端靠时钟边沿采样数据,如果时钟本身的位置不稳定,数据必然出错。抖动来源很多:电源噪声、串扰、热噪声、甚至PCB的参考平面不干净都会引入抖动。
抖动通常分成:
- 随机抖动(RJ):热噪声引起,高斯分布,无法完全消除,只能控制带宽。
- 确定性抖动(DJ):由电源纹波、串扰、反射等确定性因素引起,可以通过设计优化。
SDIO规范里对抖动的要求很严格:比如UHS-I模式下,时钟周期抖动(Tj)通常要求小于±150ps。我记得有一次调试,示波器测得时钟的峰峰值抖动达到了300ps,原来是开关电源的纹波耦合进了时钟参考平面,后来加了一颗10μF+0.1μF的去耦电容就降到80ps以下了。
知识体系图:四大现象的关系
下面这张SVG图帮你理清反射、串扰、衰减、抖动之间的关联。它们不是孤立的——反射和串扰会互相影响,衰减会恶化抖动,而抖动又会增加误码率。理解这些牵连,后面做阻抗匹配和叠层设计时才有全局视角。
你看,反射和串扰主要影响电压域,衰减既影响电压域也影响时间域(边沿变缓),抖动是时间域的问题,但这四个东西最后都指向一个结果:误码。SDIO的误码率一旦超过10-10,卡就会自动重传甚至断开连接。
小结与行动清单
学完这一章,你至少应该能:
- 识别反射:看波形有无振铃、台阶,算一下走线延迟和上升时间关系。
- 判断串扰:用示波器测量相邻线噪声,或通过仿真检查线间距。
- 估算衰减:根据走线长度和频率,用简化公式算个毛估。如果超过3dB,就要考虑调整走线或换板材。
- 排查抖动:先看电源纹波,再看地平面完整性,最后查时钟源质量。