4. DSI 差分信号:差分对、共模电压、差模电压

做 MIPI DSI 物理层,差分信号是基本功。你想想看,一条差分布线上同时传正负两路,数据速率动不动 1Gbps 以上,光靠直觉可不够。我记得刚开始调 DSI 时,总觉得差分信号就是两根线随便拉拉就行,结果屏幕花得像电视机没信号。后来才明白——差分的“差”字,差之毫厘,谬以千里。

4.1 差分对:两根线,一个世界

差分对由两根走线组成,一根叫 DSI\_DP (P),另一根叫 DSI\_DN (N)。信号同时反相传送:P 上升时 N 下降,P 下降时 N 上升。接收端看的是 P 减 N 的结果,而不是单根对地的幅度。

个人习惯:我画 PCB 时,总把差分对的两根线并行走,等长控制到 ±5 mil 以内。为啥?不等长会让相位差累积,共模噪声跑出来,眼图直接塌掉。

差分对有什么好处?说白了就是抗干扰能力强。外部噪声会等量耦合到两根线上,接收端一减就抵消了。我曾在某个项目中,板子上有一路 500mA 的 DCDC 开关噪声,单端信号惨不忍睹,差分信号却纹丝不动——这就是差分的美妙之处。

4.2 共模电压:那个“傻均值”

共模电压 Vcm 的定义很简单:Vcm = (VP + VN) / 2。它描述的是差分对两根线相对于地的平均电位。DSI 物理层对 Vcm 有严格规定,尤其在 LP 模式和 HS 模式下,范围完全不同。

模式Vcm 典型值允差范围我踩过的坑
HS 模式200 mV± 40 mV偏到 260 mV 时,接收端误码率飙升
LP 模式1.2 V± 10 %Vcm 太低导致 LP 转 HS 时竞争冒险
我曾经遇到过:某款 SoC 的 DSI 发送端 Vcm 出厂标称 200 mV,实测只有 160 mV。接收端内部共模反馈环路死活拉不回来,屏幕上出现随机闪烁条纹。排查了两天,最后用示波器一测差分对共模电平才发现。所以,共模电压不是纸上指标,必须实物验证。

你可能会问:为什么 Vcm 那么低(200 mV)?因为 HS 模式需要低摆幅、高速度,共模越低,信号切换时对电源的冲击越小,眼图也更干净。

4.3 差模电压:真正的“信号”

差模电压 Vdiff = VP − VN。这才是接收端真正需要的东西。DSI 的 HS 模式下,Vdiff 的典型摆幅是 200 mV (峰峰值),大约在 −100 mV 到 +100 mV 之间摆动。LP 模式则用更大的摆幅(约 200 mV ~ 1.2 V)来传输低频控制指令。

注意:HS 模式的 Vdiff 摆幅很小,但速度极快(每 bit 约 1 ns)。因此 PCB 上的任何不连续性——过孔、拐角、阻抗突变——都会造成信号反射,把 Vdiff 吃掉一大块。我习惯用 TDR 做阻抗验证,保证差分阻抗在 100 Ω ± 10 %。

4.4 电气关系一图胜千言

下面这张 SVG 图把差分对、共模和差模之间的关系画清楚了。我从示波器上见过太多类似的波形——搞懂这张图,调试时心里就有底。

DSI 差分信号电压关系示意图 DSI 发送端 P 线 (DSI_DP) N 线 (DSI_DN) 差分对 V_cm V_diff DSI 接收端 关键关系: • V_cm = (V_P + V_N) / 2 —— 共模电压,由发送端共模反馈控制 • V_diff = V_P − V_N —— 差模电压,接收端根据它判断 0/1 • HS 模式:V_cm ≈ 200 mV,V_diff 摆幅 ±100 mV • LP 模式:V_cm ≈ 1.2 V,V_diff 摆幅可达 1.0 V • 差分对必须等长、等宽、等距,确保两根线受到的干扰一致

4.5 实战避坑:差分对的 layout 陷阱

  • 等长偏差超过 10 mil:信号时延不一致,共模电压中出现高频分量,辐射加剧。我上回一个项目,等长差了 15 mil,CE 测试直接超标 6 dB。
  • 参考平面被切断:差分对下方的地平面不能有缝隙。如果非得跨分割,记得加缝线电容。我有一次忘了,高速信号的回流路径绕了远路,眼图闭合了一半。
  • 包地过于激进:差分对外侧包地铜皮离太近,会改变有效介电常数,造成阻抗偏移。我建议包地与差分对间距至少保持在 3 倍线宽以上。
  • 过孔引入寄生电感:如果必须换层,成对打过孔,且孔间距不要超过 5 mm。我习惯在过孔旁边加一对地孔,让回流路径更顺畅。

4.6 测量技巧:共模电压的陷阱

测量共模电压要用差分探头,把两个探针分别接 P 和 N,然后利用示波器的数学运算 (CH1+CH2)/2。别用单端探头去测一根线的对地电压——你看到的是共模和差模的混合体,完全没办法判断。

我的经验:选差分探头时带宽至少要达到信号频率的 3 倍。DSI 4-lane 的 1.5 Gbps 信号,探头至少要 4.5 GHz。便宜探头会衰减差模分量,让你误以为 V_diff 不够。

对了,还有一个容易忽略的细节:在 LP→HS 切换过渡期,共模电压会快速跌落。很多接收端在这段时间里会误判状态。我曾在某款屏驱动芯片的 datasheet 里看到明确要求:切换期间 V_cm 的下降斜率不超过 50 mV/ns。如果你发现屏幕初始化时偶尔闪一下,多半就是这里出了问题。

警告:不要在 LP 模式下测量 V_diff 的直流值。LP 信号是电平驱动,接收端靠电压判断 High/Low,和差模没关系。你用差分探头看 LP 数据,看到的其实是两线对地的压差,此时共模电压高达 1.2 V,很容易烧坏探头输入端。