第4章 D-PHY信号完整性基础:阻抗、反射、串扰
做MIPI D-PHY眼图调试,说到底就是在跟三个物理现象打交道:阻抗、反射、串扰。这三样东西,是信号完整性的地基。地基没打好,眼图基本没得救。
我个人习惯,拿到一块有问题的板子,先不看眼图长什么样,而是先问三个问题:线阻抗多少?哪几段阻抗断了?隔壁信号串过来了没有?这三个问题理清楚了,八九不离十能找到根因。
4.1 阻抗控制——眼图的“高速公路”
D-PHY是差分信号,标准要求差分阻抗100Ω,单端对地阻抗50Ω。说白了,从发送端到接收端,这根差分线就是一个100Ω的传输线。阻抗不连续,信号就会反射。
| 参数 | D-PHY 要求 | 常见偏差 | 眼图影响 |
|---|---|---|---|
| 差分阻抗 | 100Ω ±10% | 加工偏差、参考层不连续 | 幅度塌陷、过冲 |
| 单端阻抗 | 50Ω | 线宽/间距失控 | 共模噪声、EMI |
| 等长差 | <200ps (HS) | 绕线不当 | 时序偏差、眼宽减小 |
| 过孔数量 | 每对线≤2个 | 换层过多 | 阻抗突变、反射 |
实战口诀:“阻抗不断,信号不乱。” 每次测量TDR,如果看到超过15Ω的突变,十有八九要出问题。
你想想看,为什么层叠设计这么重要?因为参考层决定了阻抗计算的基准。我在一个项目中遇到过,PCB厂家把参考层的铜厚做薄了5μm,结果差分阻抗直接飙到110Ω,眼图闭合了将近20%。最后还是靠加宽线间距硬拉回来的。
4.2 反射——从哪儿来,到哪儿去
反射的根源只有一个:阻抗不连续。D-PHY信号边沿很快(HS模式tr/tf大概150ps),哪怕一小段stub都能引起严重反射。
反射系数公式:Γ = (Zload - Z0) / (Zload + Z0)。当负载开路,Γ=1,信号全反射;短路时Γ=-1,反相反射。D-PHY接收端是高阻抗,所以末端反射通常是正的——信号在那弹一下,再反射回源端。
避坑指南:我曾经在调试4通道D-PHY时,发现数据眼图有严重的阶梯状。用TDR一测,发现有一条线在BGA扇出处走线宽度从6mil突然变到8mil,阻抗从50Ω跳到了56Ω。虽然只差了6Ω,但反射电压叠加后,眼图高度直接掉了0.1V。
怎么解决反射?
- 源头端串接电阻:通常在发射器很近的地方放一个22~33Ω的电阻,吸收反射能量。
- 减少阻抗突变点:过孔、连接器、分支都是高发区。
- 末端不要有stub:D-PHY接收端必须直接连到焊盘,不能拉分叉线。
4.3 串扰——你以为的“噪声”其实是隔壁信号
串扰分为近端串扰(NEXT)和远端串扰(FEXT)。D-PHY的差分对之间,间距越近,耦合越强。我记得有次在客户现场,CLK和DATA0的眼图都很好,唯独DATA1的眼图有毛刺。拿差分探头同时测DATA0和DATA1,发现DATA1的毛刺刚好在DATA0翻转的时候出现——100%的容性串扰。
影响串扰的主要因素:
- 间距:差分对间距最好≥3倍线宽。
- 间距:同样的间距,并行长度越长,串扰越大。
- 参考层:紧贴地平面的信号,串扰比悬空的信号小很多。
注意:很多人只关心对间串扰,却忽略了层间串扰。D-PHY走线上下层如果有高速数字线,串扰可能比同层还严重。我曾经在8层板上,CLK在L3,DDR4数据线在L2,结果CLK眼图被串扰搞得一塌糊涂。加一层完整的地平面隔开才解决。
4.4 三者的关系——一根绳子上的蚂蚱
阻抗、反射、串扰不是独立的。阻抗不连续导致反射,反射回来的信号又会通过耦合路径串扰到相邻线上。反过来,串扰引起的共模噪声会改变差分阻抗,进一步恶化反射。这是个恶性循环。
下面这张图概括了核心逻辑:
你看,从阻抗到反射再到串扰,最后都汇聚到眼图上。所以在我每次做Debug时,一定是先看阻抗曲线,再看串扰波形,最后才去调equalizer或者改驱动强度。顺序错了,容易做无用功。
4.5 实战中怎么快速定位?
给你三个步骤,我自己一直在用:
- 先用TDR摸一遍阻抗——找所有突变点,特别关注过孔、连接器、BGA扇出区。
- 再用差分探棒并联测相邻通道——把探头挂在问题通道上,触发信号用相邻通道的差分时钟,观察是否有固定相位噪声。
- 最后用眼图模板比对——如果填充区域上边沿有“鼓起”,通常是反射;下边沿有“毛刺”,一般是串扰。
一个小技巧:反射引起的眼图劣化通常是周期性抖动,而串扰引起的通常是数据相关的确定性抖动。你拿BERT的抖动分解功能一看,就知道该朝哪个方向查了。
说来说去,阻抗、反射、串扰这三样东西,就像做菜时的盐、糖、醋。比例对了,眼图自然好吃。比例不对,再好的D-PHY PHY也救不了。我见过不少工程师辛辛苦苦调了三天驱动参数,结果发现是过孔阻抗掉了20Ω——嗯,这种事情能避免就别去踩坑了。