2、物理层基础:D-PHY与C-PHY深度解析

大家好,欢迎来到物理层这一章。说实话,MIPI CSI 的物理层是很多工程师容易忽略的部分。大家往往盯着协议栈上层,觉得物理层就是跑个差分信号而已。但我在项目中吃过不少亏,才明白物理层才是整个链路的基石。

这一章,我会带你彻底搞懂 D-PHY 和 C-PHY 这两个物理层标准。它们有什么区别?各自适合什么场景?高速模式和低功耗模式又是怎么切换的?嗯,咱们一个一个来。

2.1 D-PHY 物理层介绍

D-PHY 是 MIPI 联盟最早推出的物理层标准。说白了,它就是一对差分信号线,加上一根时钟线。你想想看,这种结构在 PCB 上走线非常直观,很多工程师上手就能用。

D-PHY 的核心特点:

  • 差分信号传输:使用 Dp/Dn 两根线,抗干扰能力强
  • 源同步时钟:时钟和数据是分开传输的
  • 两种工作模式:高速模式(HS)和低功耗模式(LP)

我个人习惯把 D-PHY 比作「老黄牛」——稳定、可靠、容易调试。在项目中,我遇到过不少用 D-PHY 的摄像头模组,只要 PCB 走线等长控制好,基本不会出大问题。

D-PHY 数据通道结构

每个数据通道由一对差分线组成。高速模式下,电压摆幅约 200mV,差分阻抗 100Ω。低功耗模式下,电压摆幅 1.2V,单端信号。

这里有个关键点:D-PHY 的时钟通道是独立的。这意味着时钟信号和数据信号之间会有 skew(偏移)。我曾经在调试一个 4-lane 的摄像头时,就因为时钟和数据之间的延时没匹配好,导致图像出现条纹。后来加了等长约束才解决。

2.2 C-PHY 物理层介绍

C-PHY 是后来推出的标准,它比 D-PHY 更「聪明」。为什么这么说?因为 C-PHY 只用三根线(称为一个 trio),就能同时传输时钟和数据。你想想看,这省了多少引脚!

C-PHY 的核心特点:

  • 三线差分:使用 A/B/C 三根线,每根线有三种电平状态
  • 时钟嵌入数据:不需要单独的时钟线,时钟信息从数据跳变中恢复
  • 更高的带宽密度:每根线的有效带宽比 D-PHY 高

我记得第一次接触 C-PHY 时,觉得这东西有点反直觉。三根线怎么传时钟?后来看了协议才明白,C-PHY 用的是 3 线 3 电平编码,每次跳变都包含时钟信息。说白了,就是数据变化本身就告诉接收端「时钟来了」。

个人经验:C-PHY 的调试比 D-PHY 复杂。因为三根线之间的时序关系更敏感。我建议新手先用 D-PHY 入门,等熟悉了再挑战 C-PHY。

2.3 D-PHY 与 C-PHY 对比

很多工程师会问:到底选 D-PHY 还是 C-PHY?我的回答是:看场景。

对比项 D-PHY C-PHY
每通道线数 2 根(差分对) 3 根(trio)
时钟传输 独立时钟线 嵌入数据中
高速模式速率 最高 4.5 Gbps/lane 最高 6.0 Gbps/trio
功耗 较低 略高
PCB 走线难度 容易(等长即可) 较难(三线等长+阻抗匹配)
典型应用 摄像头、显示屏 高端摄像头、高分辨率屏

从表格可以看出,D-PHY 胜在简单可靠,C-PHY 胜在带宽密度。我个人习惯是:如果项目对引脚数不敏感,优先选 D-PHY。如果追求极致带宽,或者引脚受限,那就上 C-PHY。

避坑指南:我曾经在一个项目中,为了省引脚选了 C-PHY。结果 PCB 布线时,三根线等长没控制好,导致信号质量很差。后来不得不改板。所以,选 C-PHY 前一定要评估你的 PCB 设计能力。

2.4 高速模式与低功耗模式

MIPI 物理层最巧妙的设计之一,就是高速模式和低功耗模式的切换。你想想看,摄像头平时待机时不需要高速传输,但传输图像时又需要高带宽。这两种模式正好满足需求。

高速模式(HS)

  • 电压摆幅:约 200mV(差分)
  • 传输速率:80 Mbps 到 4.5 Gbps(D-PHY)
  • 功耗:较高
  • 用于:传输图像数据

低功耗模式(LP)

  • 电压摆幅:1.2V(单端)
  • 传输速率:约 10 Mbps
  • 功耗:极低
  • 用于:控制命令、待机状态

模式切换是怎么实现的?嗯,这里有个关键点:D-PHY 的线路上有专门的「高速模式进入序列」和「高速模式退出序列」。说白了,就是通过特定的电平跳变来通知接收端切换模式。

模式切换时序

进入高速模式:LP-11 → LP-01 → LP-00 → HS-0(进入高速)

退出高速模式:HS-0 → LP-00 → LP-10 → LP-11(回到低功耗)

我记得第一次调试模式切换时,发现摄像头有时能进高速模式,有时不能。后来用示波器抓波形才发现,是 LP-00 的保持时间不够。嗯,这种细节在协议文档里写得很清楚,但实际调试时很容易忽略。

另外,低功耗模式还有一个好处:可以用于「总线仲裁」。在多个设备共享同一组数据线时,低功耗模式下的电平状态可以用来判断总线是否空闲。这个特性在 CSI-2 的多摄像头场景中非常有用。

个人建议:在驱动开发中,一定要处理好模式切换的时序。我习惯在驱动里加一个状态机,专门管理 HS/LP 切换。这样能避免很多莫名其妙的 bug。

好了,物理层的基础就讲到这里。下一章我们会深入 CSI-2 协议层,看看数据是怎么在物理层上组织起来的。记住,物理层是地基,地基不稳,上层再好的协议也白搭。