D-PHY 物理层:不只是两根线的事

很多工程师第一次接触 MIPI D-PHY,都会觉得——不就是差分对信号吗?跟 LVDS 差不多吧?

这么说吧,我当年也这么想。结果第一次用示波器去点 CSI-2 总线,满屏的波形看得直发愣。D-PHY 里有两种完全不同的工作模式:高速模式和低功耗模式。它们的信号幅度、电压范围、时序要求,压根不是一个画风。你如果拿测普通串口的方法去量 D-PHY,很容易踩坑。

下面我把这套物理层的底细捋一遍,结合我实际调试中碰到的那些坑,希望能帮你少走点弯路。

3.1 高速模式(HS)与低功耗模式(LP)

D-PHY 的物理层,说白了就是两根线:Dp 和 Dn。但它不是固定一种电平在工作。它会根据数据传输的状态,在高摆幅差分和低压差分之间来回切。我个人习惯把它想象成一个双模引擎:跑数据的时候是高速模式,空闲或者传控制指令的时候是低功耗模式。

3.1.1 高速模式下的信号长啥样

高速模式(HS)的信号特点非常鲜明:差分摆幅很小,一般只有 200~300 mV 左右。Dp 和 Dn 两条线是严格互补的,一条正另一条就负。数据位从 Lane 上串行流过,频率可以跑到几百 MHz 甚至上 GHz。

在示波器上看起来,HS 信号就像一对紧凑的“蛇形走位”。如果你用单端探头分别看 Dp 和 Dn,两条波形几乎是完美的反相关系,幅度很小,直流电平大概在 200 mV 附近摆。

我建议你第一次看 HS 信号的时候,用差分探头直接看 Dp - Dn 的差值波形。这样能避开很多共模噪声的干扰,看到真正的眼图。

3.1.2 低功耗模式下的信号长啥样

低功耗模式(LP)的风格和 HS 完全不同。它的摆幅大得多,能达到 1.2 V。而且它是单端方式工作的,Dp 和 Dn 各自独立变化,不再严格互补。

在实际通信中,LP 模式主要用于 D-PHY 的状态握手和 Escape Mode 指令。你示波器上看到的 LP 信号,往往是大幅度的方波跳变,电平在 0~1.2 V 之间。Dp 和 Dn 之间经常存在相位差。

很多人用示波器抓 CSI-2 数据,一上来就设 200 mV 每格,结果只看到一条直线——那是因为 LP 信号早就超出量程了。我每次调示波器,都会先把量程设大一些,等确认了信号类型再精细调整。

一句话记住两种模式:

  • HS 模式:差分、小摆幅、高速率,传数据用。
  • LP 模式:单端、大摆幅、低速率,传控制/握手用。

3.2 差分信号:为什么 MIPI 非要选它?

你可能会问:为什么 MIPI 不直接用单端信号,非要搞差分?

原因其实很直接:抗共模干扰。在摄像头和处理器之间的链路上,地平面往往不够干净。你想想看,Sensor 端和主芯片端可能隔着一段 FPC 软排线,电磁环境挺复杂。如果走单端信号,地弹和辐射干扰很容易让信号误判。

差分就不一样了。两个信号 Dp 和 Dn 同时受到干扰,影响的幅度一样、方向一样,叫做共模干扰。而对方接收器只看两个信号的差值,共模干扰就被抵消了。说白了,差分传输就是用双倍的线,换一个干净的信号。

在 HS 模式下,Dp 和 Dn 的差值眼图就是衡量链路质量的关键。我见过不少项目,功能跑通了,但眼图质量差,margin 很小。这种板子量产之后,温度一变就容易丢数。所以个人习惯,眼图一定要留够余量。

调试的小窍门:

用差分眼图判断链路质量时,我一般会看两个指标:眼高(eye height)和眼宽(eye width)。眼高要大于 100 mV,眼宽要占 UI 的 60% 以上。低于这个值,最好查查阻抗匹配和走线长度。

3.3 电压摆幅:并非越大越好

电压摆幅是 D-PHY 里一个容易混淆的概念。刚才讲过,HS 模式下的摆幅只有 200~300 mV。这么低的摆幅,会不会不够用?

其实不是。D-PHY 的接收器本身被设计成高灵敏度,200 mV 的摆幅对内部的差分放大器来说,已经能轻松识别。而且低摆幅带来的好处很明显:降低功耗、减少电磁辐射。对于便携设备来说,这很关键。

但是低摆幅也意味着对信号完整性更敏感。如果 PCB 走线阻抗不对,或者 FPC 过长,信号衰减后可能连 200 mV 都不到了。我在调试一个项目时就遇到过这个问题:眼图几乎塌成了一个小圆点,最后查出是连接器的阻抗不对。

LP 模式下的摆幅大很多,能达到 1.2 V。因为它的速度慢,大摆幅可以保证在强干扰下也能正确判断逻辑电平。两种模式几乎完全不同的电平策略,既兼顾了高速,又照顾了互联的鲁棒性。

一个重要提醒:

在示波器上测 HS 信号的摆幅,一定要关掉 20 MHz 带宽限制。否则示波器会把高频跳变削平,你看到的摆幅会比实际小很多。

3.4 时序参数:跳变沿与建立时间

D-PHY 对时序的要求非常严格。HS 模式下,每一个数据位的时间窗口(UI)可能只有几纳秒甚至更短。在这个窗口内,信号要完成从低到高(或从高到低)的跳变,并且保持稳定,让接收器正确采样。

我整理了几个关键的时序参数,你在调试时一定要关注:

参数名称 说明 典型值
UI 单位间隔,即一个数据位的时长 1 ns ~ 4 ns(速率而定)
T_r, T_f 上升时间和下降时间 150 ps ~ 300 ps
T_skew Dp 与 Dn 之间的时间偏移 < 50 ps
T_settle 信号进入稳定状态的时间 由线长和端接决定

从上表可以看出来,HS 模式下对信号质量的要求极高。上升沿的时间,如果过缓,眼图的垂直张开度会变小;如果过陡,会产生过冲和振铃。这都不是好事。

我个人在调示波器看边沿时,会先看看信号有没有明显的预冲或过冲现象。如果过冲超过摆幅的 20%,那基本上要检查驱动器的输出能力和走线的阻抗连续性了。

还有一个易忽略的点:LP 到 HS 模式的切换时序。D-PHY 要求从 LP 模式进入 HS 模式时,先有一个准备阶段。具体来说,发送端要先让 Dp 和 Dn 进入某个中间电平(叫做 LP-11 或者 LP-00 状态),然后再切到 HS。如果这个过渡过程中的时序不对,可能会导致接收端误锁。

个人经验总结:

用示波器抓 D-PHY 信号,第一步是区分当前正在跑的是 HS 数据还是 LP 控制。看波形幅度就能判断——摆幅 200 mV 左右是 HS,摆幅到 1.2 V 是 LP。第二步,看 Dp 和 Dn 的互补程度,如果两条线波形不一致,说明链路可能有反射或串扰。

3.5 单张 SVG:D-PHY 物理层模式与信号结构图

下面这张图把 HS 和 LP 两种模式下的信号特点、电平关系画在一起。你可以对照着看,脑子里会形成一个更直观的框架。

D-PHY 物理层:HS vs LP 信号结构与关键参数 高速模式 (HS) 信号特点:差分传输 Dp 与 Dn 严格互补,共模抑制 电压摆幅:200~300 mV 低摆幅,低功耗,高速度 时序参数:UI、Tr、Tf、Tskew 上升/下降沿 150~300 ps 链路质量:眼图评估 眼高 > 100 mV,眼宽 > 60% UI 模式切换:LP → HS 过渡 需要 LP-11 / LP-00 准备状态 低功耗模式 (LP) 信号特点:单端方式 Dp 与 Dn 各自独立跳变 电压摆幅:0 ~ 1.2 V 大摆幅,抗干扰能力强 时序参数:速率较低 用于握手 / Escape Mode 指令 应用场景:总线状态切换 ULPS、Stop State 等 与 HS 关系:交替工作 HS 传数据,LP 传控制命令 左右对比可以看出:HS 和 LP 在信号幅度、传输方式和时序要求上完全不同,调试时一定要分开分析。

3.6 章节小结

D-PHY 物理层并不复杂,但它包含了两套完全不同的信号体系。HS 和 LP 两种模式,在电平、速度、传输方式上各有特点。差分信号的核心优势在于抗共模干扰,但前提是走线要保持对称、阻抗连续。

示波器调试里,最容易出的问题就是没有先看模式,直接套用一种测量方案。如果你看到波形幅度不对,先确认一下当前是不是 HS 模式。