一、D-PHY 概述:从 MIPI 协议到 HS/LP 核心差异

做摄像头接口和显示接口的硬件工程师,没有谁绕得过 MIPI D-PHY。这东西看起来就是几对差分线,但真调试起来,坑不少。我自己第一次调 D-PHY 时,就吃过 LP 模式电平判断的亏,搞得图像花了一半。

咱们先把 D-PHY 的基础概念理清。你想想看,手机里的摄像头、屏幕,数据量那么大,如果还用传统并行总线,光是连线就得占满一大块 PCB 面积。MIPI D-PHY 就是解决这个问题的,它用很少的线(通常 1-4 对差分数据线 + 1 对时钟线)就把高速数据传过去了。

MIPI D-PHY 协议是什么

MIPI D-PHY 定义的是物理层标准。说白了,它就管两件事:信号怎么发、时序怎么对齐。上层跑的是 CSI(摄像头)或 DSI(显示)协议,跟我们电气参数相关的,主要是 D-PHY 物理层的这一套规则。

我习惯把 D-PHY 想象成一套「双模通信系统」:

  • 高速模式(HS,High Speed)——用来传大数据量的图像数据,速度动不动就是 Gbps 级别。
  • 低功耗模式(LP,Low Power)——用来传控制指令或低速数据,电流很小,电平也不一样。

核心理解:HS 和 LP 用的是同一组物理线!这就意味着信号线上既要跑 200mV 摆幅的差分信号,又要跑 1.2V 摆幅的单端信号。这不是胡来,而是 D-PHY 协议的精妙之处——通过时序和电平组合,让两种模式互不干扰。

HS 模式与 LP 模式的核心区别

对比项 HS 模式 LP 模式
信号类型 差分信号(Dp - Dn) 单端信号(Dp、Dn 独立驱动)
电压摆幅 约 200mV(峰峰值) 0 ~ 1.2V(轨到轨)
共模电压 约 200mV 无严格共模要求
数据速率 最高 ~4.5 Gbps(D-PHY v2.5) 最高 ~10 Mbps
功耗 较高(约 3-5mW/对) 极低(约 0.1mW/对)
UI(单位间隔) 125ps ~ 1ns 100ns ~ 几微秒
驱动方式 电流驱动(HS-TX) 电压驱动(LP-TX)
接收端 差分接收器 单端迟滞接收器

我的一点经验:真测 LP 模式时,很多人只看差分信号,结果完全看不到数据。因为 LP 模式下没有差分信号,你必须在示波器上分别看 Dp 和 Dn 的单端波形。我曾经就因为这个,浪费了一个多小时。

为什么需要两种模式?

这个问题刚接触时我也想过。为什么不能只用 HS 或者只用 LP?

答案是:功耗和性能的折中。

你想想看,如果一直用 HS 模式,即使不传数据,收发器也在高速待命,功耗很高。如果一直用 LP 模式,那速率又上不去,传一张 4K 图像可能要好几秒。所以 D-PHY 设计成:

  • 传控制信号、切换通道、进入/退出待机 → 用 LP 模式,省电
  • 传真正的像素数据 → 切换到 HS 模式,高速传输
  • 空闲时 → 进入 LP 模式的低功耗状态

实际工作中,HS 和 LP 的切换是有固定时序的,叫「状态机」。这个状态机定义了 11 种状态,包括 HS-0、HS-1、LP-00、LP-01、LP-10、LP-11 等。我们调试时经常遇到的状态切换失败,就是这些状态机跳转乱了。

D-PHY 双模式核心关系图 D-PHY 物理层 HS 高速模式 差分信号 · 200mV 摆幅 LP 低功耗模式 单端信号 · 0~1.2V 摆幅 数据速率:~4.5 Gbps 用于:像素数据传榆 共模电压:~200mV 驱动方式:电流驱动 数据速率:~10 Mbps 用于:控制/握手信号 功耗:极低 驱动方式:电压驱动 ⚠ HS ⇄ LP 切换状态机是关键 包含 11 种状态 · 时序必须精确 · 否则图像花屏

HS 和 LP 的物理层信号特征

记得我刚开始测 D-PHY 时,最困惑的就是:示波器上捕捉到的波形为什么是一会儿差分、一会儿单端?后来才明白,这就是 D-PHY 的特性。

HS 模式信号特征:

  1. Dp 和 Dn 成对出现,幅度相等、相位相反
  2. 差分电压 Vdiff = Dp - Dn,典型值 200mV
  3. 共模电压 Vcm 稳定在 200mV 左右
  4. 上升/下降时间典型值 100ps ~ 200ps

LP 模式信号特征:

  1. Dp 和 Dn 独立驱动,各自由 0V 和 1.2V 摆幅
  2. 差分接收器在 LP 模式下不工作
  3. 迟滞接收器检测单个线的电平(VIH/VIL 阈值)
  4. 上升/下降时间较慢,典型值 ~5ns

我曾经踩过的坑:在测 LP 模式波形时,很多人误把差分探头的正负接反,导致示波器显示 Dp - Dn 一直为高或一直为低,以为数据线坏了。其实只要把两线分别对地量一下,就能看出 LP 模式下的单端信号是否正常。

选择 HS 还是 LP?

实际项目中,这个选择不是我们决定的,而是由 MIPI 发送端的状态机自动完成的。但我们作为接收端,必须能正确识别当前模式,正确处理信号。

  • 初始化阶段:一定是 LP 模式,用来做握手、配置、对齐
  • 数据传输阶段:切换到 HS 模式,高速传图像数据
  • 行/帧消隐期:回到 LP 模式,省电
  • 异常处理:如果 D-PHY 工作异常,先看 LP 模式能不能正常切换

调试小技巧:如果你发现图像出现条纹或滚屏,优先怀疑是 HS 和 LP 的模式切换时序出了问题。我遇到过的很多所谓「信号完整性问题」,最后查出来都是状态机跳转超时。建议先抓一下 LP-11 → HS-0 的切换时间,看是否符合 SPEC 要求。