第二章 传感器接口协议解析:MIPI CSI-2物理层、D-PHY电气特性、C-PHY与D-PHY对比、Lane配置策略

各位同学,咱们今天聊聊MIPI接口。说实话,这玩意儿是内窥镜CMOS传感器驱动开发里绕不开的坎。我当年第一次调MIPI的时候,对着示波器看了三天三夜,愣是没搞明白为啥图像全是花屏。后来才发现,原来是D-PHY的电气特性没吃透。

好,咱们不扯远了,直接进入正题。

2.1 MIPI CSI-2物理层概览

MIPI CSI-2,全称是Camera Serial Interface 2。说白了,就是摄像头和处理器之间传图像数据的标准协议。它分三层:物理层、协议层、应用层。咱们今天只啃物理层,因为这是驱动开发最头疼的部分。

物理层又分两种:D-PHY和C-PHY。目前市面上90%的内窥镜传感器用的还是D-PHY,但C-PHY在高端产品里开始冒头了。我个人习惯,先讲D-PHY,因为它是基础。

核心要点:MIPI CSI-2物理层负责把像素数据变成高速串行信号,通过差分线对传输。你想想看,一根线传几Gbps的数据,这活儿可不简单。

2.2 D-PHY电气特性详解

D-PHY用的是差分信号传输。什么是差分信号?就是两根线,一根传正信号,一根传反信号,接收端看两者的差值。这样做的好处是抗干扰能力强。

我在项目中遇到过一件事:某次打样回来的PCB,MIPI走线没做等长处理,结果图像边缘全是噪点。后来一查,两根线的长度差了3mm,导致信号时序偏移。嗯,这里要注意,D-PHY对走线长度匹配要求极高。

2.2.1 电压摆幅与共模电平

D-PHY的电压摆幅很小,典型值在200mV左右。为什么这么小?因为频率高啊,摆幅大了功耗扛不住。共模电平一般在200mV到1.2V之间,具体看传感器规格书。

我建议你们调试时,先用示波器量一下D-PHY的差分信号。正常波形应该是这样的:

差分电压:200mV ± 20%
共模电压:200mV - 1.2V
上升时间:150ps 典型值
下降时间:150ps 典型值

警告:千万别用普通探头去量MIPI信号!必须用差分探头,否则测出来的波形全是假的。我曾经有个同事,用单端探头量了半天,说信号不对,结果换差分探头一看,波形漂亮得很。

2.2.2 时钟与数据的关系

D-PHY有两种模式:HS(高速)模式和LP(低功耗)模式。HS模式传数据,LP模式传控制信号。时钟信号和数据信号是同步的,时钟频率一般是数据速率的1/2或1/4。

举个例子:如果你的传感器输出1080p 30fps,数据速率可能是1.5Gbps/lane,那么时钟频率就是750MHz(DDR模式)。

2.3 C-PHY与D-PHY对比

好,咱们来聊聊C-PHY。这东西和D-PHY最大的区别是:C-PHY用三根线,而不是两根。三根线能传更多信息,所以C-PHY的带宽更高。

特性 D-PHY C-PHY
线数 2根/通道(差分对) 3根/通道(三线)
每通道带宽 最高4.5Gbps 最高5.7Gbps
时钟信号 独立时钟线 嵌入数据中
功耗 较低 略高
抗干扰 更好
复杂度

你可能会问:那为什么不都用C-PHY?原因很简单:贵,而且驱动复杂。我做过一个项目,客户非要上C-PHY,结果调试了两个月,最后还是换回D-PHY了。说白了,C-PHY的协议层比D-PHY复杂得多,对处理器要求也高。

我的建议:如果带宽够用,优先选D-PHY。内窥镜应用一般1080p 30fps,4 lane D-PHY绰绰有余。除非你要做4K 60fps,那才考虑C-PHY。

2.4 Lane配置策略

Lane配置,说白了就是决定用几条数据通道。MIPI CSI-2支持1、2、3、4条lane。怎么选?看带宽需求。

2.4.1 带宽计算

带宽计算公式很简单:

总带宽 = 每lane速率 × lane数
有效带宽 = 总带宽 × 0.8(协议开销)

举个例子:

  • 传感器输出:1080p 30fps,每像素12bit
  • 原始数据量:1920 × 1080 × 12 × 30 = 746.5 Mbps
  • 加上协议开销:约933 Mbps
  • 如果用2 lane,每lane需要466.5 Mbps
  • D-PHY每lane最高4.5Gbps,完全够用

我习惯留30%的余量。为什么?因为内窥镜的线缆长,信号衰减大。你想想看,一根两米长的线缆,高频信号衰减得厉害。我曾经遇到过,算出来刚好够,结果实际跑起来全是误码。

2.4.2 实际配置建议

根据我的经验:

  • 1 lane:只适合VGA以下分辨率,或者帧率很低的情况
  • 2 lane:720p 30fps以内,或者1080p 15fps
  • 4 lane:1080p 30fps及以上,内窥镜主流配置

避坑指南:我曾经在一个项目里用了3 lane配置。为什么?因为PCB空间不够,放不下4 lane。结果调试时发现,3 lane的时序约束比4 lane还难做。后来我学乖了,要么2 lane,要么4 lane,别搞奇数lane。

2.4.3 时钟lane配置

时钟lane是必须的,除非你用C-PHY。时钟lane的速率一般是数据lane的一半。但要注意,有些传感器支持非对称配置,比如数据lane跑1Gbps,时钟lane跑500MHz。

我建议你们看传感器规格书时,重点关注时钟和数据的关系。有些传感器要求时钟频率必须是数据频率的整数倍,否则锁相环锁不住。

2.5 小结

好,咱们今天聊了MIPI CSI-2物理层的核心内容。D-PHY的电气特性、C-PHY和D-PHY的对比、Lane配置策略,这些都是驱动开发的基础。你想想看,如果连物理层都没搞明白,后面调图像质量就是空中楼阁。

下一章咱们讲协议层,也就是怎么把像素数据打包成MIPI包。到时候我会分享一个我踩过的坑——关于帧同步头的时序问题。嗯,那个坑让我加班了一整周。

今天就到这儿。有问题随时找我。