4. Sensor接口协议

好,咱们今天聊聊Sensor怎么跟处理器“说话”。说白了,就是图像数据从Sensor传出来,走哪条路、用什么规矩。

我入行那会儿,DVP还是主流。后来MIPI CSI-2一出来,大家都往那边转了。为什么?你想想看,分辨率越来越高,帧率越跑越快,DVP那套并行总线实在扛不住了。

4.1 DVP并行接口——老将出马

DVP,全称Digital Video Port。它是个并行接口,数据线通常是8位、10位或12位。再加上行同步(HSYNC)、场同步(VSYNC)和像素时钟(PCLK),基本就齐活了。

DVP典型信号组:

  • D[0:N-1] — 数据总线,N通常为8/10/12
  • PCLK — 像素时钟,每个时钟沿传输一个像素
  • HSYNC — 行同步,标识一行数据的开始
  • VSYNC — 场同步,标识一帧数据的开始

我在一个老项目里用过DVP接500万像素的Sensor。当时布线没注意等长,结果数据线歪歪扭扭,图像直接花了。嗯,这里要注意:DVP的并行数据线必须做等长处理,否则skew会让你怀疑人生。

DVP的物理层

物理层就是一堆CMOS电平的走线。电压一般是1.8V或3.3V。频率高了之后,信号完整性问题就来了。我建议超过100MHz就别用DVP了,串扰和EMI会让你改板改到哭。

DVP的协议层

协议层其实很简单:VSYNC拉高表示新的一帧开始,HSYNC拉高表示新的一行开始,PCLK每个有效沿采一次数据。就这么直白。

避坑指南:我曾经遇到过Sensor的VSYNC极性跟处理器预期相反,结果图像上下颠倒。后来我养成了习惯:先查datasheet里的极性配置寄存器,别想当然。

4.2 MIPI CSI-2——现代主流

MIPI CSI-2,全称Camera Serial Interface 2。它用差分串行传输,数据通过LVDS(低压差分信号)走线。好处是什么?抗干扰强、线数少、频率高。

说白了,DVP是公交车,一堆线并排跑;MIPI是高铁,几根线跑得飞快。

物理层:D-PHY

CSI-2的物理层基于MIPI D-PHY。它包含时钟通道(Clock Lane)和数据通道(Data Lane)。每个通道都是一对差分线:DP和DN。

参数 DVP MIPI CSI-2 (D-PHY)
信号类型 单端CMOS 差分LVDS
典型线数 12~20根 4~10根
最高速率 ~150MHz ~2.5Gbps/Lane
抗干扰能力 弱 强
布线难度 中等(需等长) 高(需差分阻抗控制)

D-PHY有两种工作模式:高速模式(HS)和低功耗模式(LP)。HS用来传数据,LP用来传控制信号。你想想看,这样设计的好处是:平时不传数据时,功耗可以压得很低。

个人经验:我建议在PCB设计时,MIPI差分对的阻抗控制在100Ω±10%。差分对之间要包地,间距至少3倍线宽。我曾经因为没包地,导致高速模式下误码率飙升,查了三天才找到原因。

协议层:分层结构

CSI-2的协议层分四层,从下往上分别是:

  1. 物理层(PHY) — D-PHY,负责电气特性
  2. 通道管理层(Lane Management) — 数据分发与合并
  3. 底层协议层(Low-Level Protocol) — 包结构、ECC、CRC
  4. 应用层(Application Layer) — 像素格式、帧结构

数据以包(Packet)为单位传输。包分两种:长包(Long Packet)和短包(Short Packet)。长包装实际像素数据,短包装控制信息(比如帧开始、帧结束)。

// 长包结构示意
// 0x1E (帧开始) -> 包头(32bit) -> 像素数据 -> 包尾(16bit CRC)
// 0x1F (帧结束) -> 短包(无数据体)

每个包都有ECC纠错码和CRC校验。这一点比DVP强太多了。DVP要是被干扰了,你只能看到花屏;MIPI至少能检测到错误,甚至能纠正一部分。

4.3 核心差异对比

我整理了一张表,方便你快速对比:

维度 DVP MIPI CSI-2
带宽扩展 增加线宽(如从8bit到16bit) 增加Lane数(如从1Lane到4Lane)
功耗控制 无低功耗模式 支持LP模式,待机功耗极低
错误检测 无 ECC + CRC
最大分辨率 通常≤1080p@30fps 可支持4K@60fps甚至更高
布线复杂度 中等 高(需差分对、阻抗控制)

4.4 知识结构图

下面这张图帮你理清两个接口的整体架构:

Sensor接口协议体系 DVP 并行接口 物理层:CMOS电平 协议层:VSYNC/HSYNC MIPI CSI-2 串行接口 物理层:D-PHY 协议层:分层包结构 DVP适合低分辨率、低速率场景 MIPI CSI-2适合高分辨率、高速率、低功耗场景

4.5 选型建议

我个人习惯这样选:

  • 分辨率 ≤ 1080p,帧率 ≤ 30fps — DVP够用,成本低,开发简单
  • 分辨率 ≥ 2K,帧率 ≥ 60fps — 必须上MIPI CSI-2,别犹豫
  • 电池供电设备 — 优先MIPI,LP模式省电效果明显
  • 老平台升级 — 如果主控只有DVP接口,那就只能硬着头皮用DVP,但要做好信号完整性仿真

一句话总结:DVP是“够用就好”的老实人,MIPI是“又快又省”的尖子生。选谁,看你的带宽需求和功耗预算。