2. MIPI协议基础:MIPI联盟与CSI-2标准、D-PHY物理层介绍、C-PHY与D-PHY对比

好,咱们正式开始聊MIPI协议。很多刚接触Sensor驱动的朋友,一看到MIPI、CSI-2、D-PHY、C-PHY这些词就头大。其实没那么复杂。说白了,MIPI就是一套“摄像头和处理器之间怎么说话”的规矩。

我最早调Sensor的时候,也踩过不少坑。有一次板子已经打样回来了,结果图像全是花屏。折腾了两天,最后发现是D-PHY的电压摆幅没配对。嗯,从那以后,我每次看Datasheet都会先把PHY层的参数过一遍。

2.1 MIPI联盟与CSI-2标准

MIPI联盟,全称是Mobile Industry Processor Interface。它不是一个协议,而是一整套协议族。咱们做Sensor驱动,最关心的就是CSI-2。

CSI-2,Camera Serial Interface 2,是MIPI联盟定义的摄像头串行接口标准。它规定了摄像头数据怎么从Sensor传到应用处理器。

CSI-2的核心分层(从上到下):

  • 应用层(Application Layer):处理像素数据格式、数据打包。比如RAW10、RAW12、YUV422这些格式,都是在这一层定义的。
  • 协议层(Protocol Layer):负责数据包的组包和解包。包括长包(Long Packet,传图像数据)和短包(Short Packet,传帧同步、行同步等控制信息)。
  • 链路层(Link Layer):管理数据流的传输,包括ECC校验、CRC校验。
  • 物理层(PHY Layer):最底层,负责电信号的传输。D-PHY和C-PHY都属于这一层。

我个人习惯把CSI-2想象成一个快递系统:应用层是“发货清单”,协议层是“打包员”,链路层是“分拣员”,物理层就是“送货卡车”。每一层各司其职,缺一不可。

这里有个关键点:CSI-2标准本身不强制你用D-PHY还是C-PHY。它只规定了数据包的结构和格式。物理层你可以自由选择。但实际项目中,90%以上的Sensor用的还是D-PHY。

2.2 D-PHY物理层介绍

D-PHY,全称是D-PHY Physical Layer。它是目前最成熟、应用最广的MIPI物理层方案。

D-PHY的核心特点:

  • 差分信号传输:使用一对差分线(Dp/Dn)传输数据。抗干扰能力强,适合高速传输。
  • 源同步时钟:有一对独立的差分时钟线(Clkp/Clkn)。数据线在时钟的上升沿和下降沿都采样,这叫DDR(Double Data Rate)。
  • 单向数据流:数据从Sensor流向处理器,是单向的。控制信号(如I2C)走另外的通道。
  • 低功耗模式:D-PHY支持高速模式(HS)和低功耗模式(LP)。HS模式传数据,LP模式传控制信号或省电。

避坑指南:

我曾经在一个项目中,Sensor的D-PHY Lane数配错了。Sensor支持4 Lane,但我只配了2 Lane。结果图像分辨率一高,带宽就不够,画面出现撕裂。后来查了Sensor的Datasheet,发现最大带宽是每Lane 1Gbps,4 Lane就是4Gbps。而我的图像数据量算下来需要2.5Gbps,2 Lane根本扛不住。所以,一定要先算带宽。

D-PHY Lane的组成:

组件 说明
时钟Lane(Clock Lane) 一对差分时钟线,提供采样时钟。所有数据Lane共享同一个时钟。
数据Lane(Data Lane) 一对或多对差分数据线。常见配置有1 Lane、2 Lane、4 Lane。
Lane状态 HS(高速)模式:电压摆幅约200mV,速率可达2.5Gbps/Lane。
LP(低功耗)模式:电压摆幅约1.2V,速率低,用于控制。

你想想看,为什么D-PHY要用差分线?因为高速信号容易受干扰。差分线能有效抑制共模噪声。我见过一些新手画PCB时,把D-PHY的差分线走得很长还不等长,结果信号质量一塌糊涂。嗯,这里要注意:差分线必须等长,误差控制在5mm以内。

2.3 C-PHY与D-PHY对比

C-PHY是MIPI联盟后来推出的物理层标准。它和D-PHY最大的区别在于:C-PHY不用差分线,而是用三线制。

C-PHY的核心特点:

  • 三线制传输:每组数据用3根线(A、B、C)。通过三线之间的电压差来编码数据。
  • 无独立时钟线:C-PHY把时钟信息嵌入到数据线中,不需要单独的时钟Lane。这能节省引脚。
  • 更高带宽密度:同样的引脚数,C-PHY能提供更高的带宽。比如3根线(一组C-PHY)的带宽,相当于2根差分线(一组D-PHY)的2.28倍。
  • 更复杂:C-PHY的编码和解码逻辑比D-PHY复杂,对芯片的设计要求更高。

D-PHY vs C-PHY 对比表:

对比项 D-PHY C-PHY
信号类型 差分信号(2线/组) 三线制(3线/组)
时钟 独立时钟Lane 时钟嵌入数据
每Lane/组带宽 最高约2.5Gbps 最高约2.28倍D-PHY带宽
引脚效率 较低(需要时钟线) 较高(无时钟线)
实现复杂度 低,成熟 高,较新
应用场景 绝大多数Sensor 高端、高分辨率Sensor

为什么会有C-PHY?说白了,就是为了在有限的引脚数下,塞进更高的带宽。比如手机摄像头模组,空间就那么点,引脚也有限。C-PHY能用更少的线传更多的数据。

但我个人建议,除非你做的项目对引脚数有极致要求(比如超薄手机、无人机摄像头),否则还是优先选D-PHY。为什么?因为D-PHY的生态太成熟了。几乎所有SoC和Sensor都支持D-PHY,调试工具也多。C-PHY虽然好,但遇到问题排查起来更麻烦。

注意:

D-PHY和C-PHY的电气特性完全不同,不能混用。你的Sensor如果是D-PHY接口,那处理器也必须支持D-PHY。反过来也一样。选型时一定要确认清楚。

2.4 MIPI协议知识结构图

下面这张图,是我自己总结的MIPI协议知识结构。你可以把它当成一个“地图”,以后遇到具体问题,就知道该往哪个方向查。

MIPI协议知识结构图 MIPI协议知识结构 MIPI联盟 CSI-2 标准 应用层 协议层 链路层 物理层 D-PHY C-PHY 差分信号 独立时钟 三线制 时钟嵌入 说明: D-PHY是目前最主流的MIPI物理层方案,C-PHY用于对引脚数有极致要求的高端场景。

这张图把MIPI协议从上到下理了一遍。你以后看Sensor的Datasheet,看到CSI-2、D-PHY这些词,就知道它们属于哪一层了。

2.5 本章小结

这一章我们聊了MIPI协议的基础。核心就三点:

  • MIPI联盟定义了CSI-2标准,它是摄像头串行接口的规范。
  • D-PHY是物理层,用差分信号+独立时钟,成熟稳定。
  • C-PHY是物理层的新选择,用三线制+时钟嵌入,带宽密度更高。

我个人建议,初学者先把D-PHY吃透。因为绝大多数项目都在用D-PHY。等你把D-PHY的时序、电压、Lane配置都搞明白了,再去看C-PHY,会发现很多东西是相通的。