3. D-PHY的工作模式:LP模式与HS模式详解
D-PHY 之所以设计成两种工作模式,说白了就是为了解决一个根本矛盾:既要跑得快,又要省着电。我刚开始接触 MIPI 时也纳闷,为什么不用一种模式跑到底?后来在调一块 sensor 的初始化时序时,才真正体会到这个设计的巧妙。
3.1 LP 模式——低功耗,重在“握手”
LP 模式,全称 Low-Power 模式,电压摆幅大约 1.2V。它走的是单端信号,每根线上单独传输 0 或 1。速度嘛,大概在 10 Mbps 左右,别指望它传图像数据。但它有一个核心价值:建立链接、发起唤醒、传输控制指令。
你想想看,如果摄像头还没准备好,主机就一股脑把高速数据顶过来,那肯定丢包。所以必须先通过 LP 模式做“握手”:发送端拉高电压宣告“我要开始传数据了”,接收端确认后,双方才能切到高速。
重点记住:LP 模式是单端、低速率、高电压(1.2V 左右),主要用于控制信令和低功耗待机。
3.2 HS 模式——高速,真正干活的模式
HS 模式(High-Speed)才是传输图像数据的主力。它使用差分信号(Dp 和 Dn),电压摆幅很小,只有 200 mV 左右。速率呢?单 lane 就能跑到 1 Gbps 甚至更高。我当年调一个 4K 30fps 的摄像头,CSI-2 总共用了 4 条 data lane,每 lane 跑 1.5 Gbps,画质稳稳的。
为什么 HS 模式能跑这么快?因为它用差分信号抗共模噪声,而且摆幅小,切换速率低,功耗反而比 LP 模式连续传输时更可控。不过它有个硬伤:不能持续保持。HS 模式必须在传输数据包前后进入 LP 状态,否则线路上直流电平会飘移,接收端会失锁。
小技巧:在示波器上看 HS 模式时,注意差分信号过零点是否正确。如果偏了,多半是共模电压没稳定,查查端接电阻。
3.3 两种模式的切换过程——状态机
D-PHY 定义了一个有限状态机,专门管 LP 和 HS 的切换。每个 data lane 都有两组驱动器:一组是 LP 驱动(单端、高电压),一组是 HS 驱动(差分、小摆幅)。切换时,发送端会先通过 LP 模式发送特定的“桥接序列”(比如 LP-11 -> LP-01 -> LP-00),然后关掉 LP 驱动,打开 HS 驱动,开始高速传输。传输结束后,再反向切回 LP 模式。
这个切换时间非常短,通常在 100 ns 以内。我曾经在调试中遇到过一个问题:sensor 发完 HS 数据后,切回 LP 的时序慢了 200 ns,结果接收端认为线路一直处于未知态,直接报了 CRC 错误。后来在 sensor 的寄存器里调了 HS_EXIT 参数才解决。
下面这张图展示了 LP 和 HS 模式的基本状态与切换路径。
千万不要试图在 LP 模式下传输高速数据,或者在 HS 模式下长时间不切回 LP——每一条 D-PHY 规范都明确规定了最大 HS 连续时间(通常几微秒之内必须有一次 LP 间隙)。我以前见过有人为了省切换时间,硬是把 HS 包拼得非常长,结果信号抖动严重,丢帧成家常便饭。
3.4 LP 与 HS 关键参数对比
| 参数 | LP 模式 | HS 模式 |
|---|---|---|
| 信号类型 | 单端 | 差分(Dp/Dn) |
| 电压摆幅 | 0 ~ 1.2 V | 200 mV 峰峰值(差分) |
| 传输速率 | < 10 Mbps | 80 Mbps ~ 4.5 Gbps per lane |
| 驱动方式 | 推挽输出 | 电流模式(类 LVDS) |
| 端接电阻 | 不需要(高阻态) | 100 Ω 差分端接 |
| 主要用途 | 控制信令、唤醒、总线仲裁 | 图像 / 数据包传输 |
| 典型功耗 | 几十 μW(静态) | 几 mW ~ 几十 mW per lane |
3.5 调试中的常见误区
我在做 CSI-2 信号完整性测试时,发现不少工程师会犯同一个错误:用 LP 模式的阈值去判断 HS 信号。
举个例子,测 HS 眼图时,示波器差分探头看到的电压只有 200 mV 左右。有些人习惯用单端眼图的 0.7 V 幅值去套,结果认为信号幅度不够。其实 HS 模式的电气规范就是 200 mV ± 60 mV,只要过零点清晰、眼图张开度达标,就是好的。
另一个坑是 LP 状态转换的时序。记得有一次,我调试一块 FPGA 做 MIPI 接收端,总是丢第一个包。排查了一下午,最后用逻辑分析仪抓到 sensor 发出的 LP-01 到 LP-00 的间隔小于规范要求的 20 ns。FPGA 内部的 PHY 无法识别这个过快的序列,直接跳过了 HS 传输。解决办法是在 sensor 配置里把 LP_TX_PRE 时间加长到 40 ns,问题就消失了。
调试口诀:测 LP 看逻辑电平,测 HS 看差分/眼图。切换时看序列时序,端接电阻不能忘。
最后提一句,LP 和 HS 并不是相互独立的。一条 data lane 上,LP 和 HS 是分时复用的,同一对线上不能同时存在两种模式。所以你在示波器上看到的波形,会是 LP 高电压段和 HS 小摆幅段交替出现。