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的协议层分四层,从下往上分别是:
- 物理层(PHY) — D-PHY,负责电气特性
- 通道管理层(Lane Management) — 数据分发与合并
- 底层协议层(Low-Level Protocol) — 包结构、ECC、CRC
- 应用层(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 知识结构图
下面这张图帮你理清两个接口的整体架构:
4.5 选型建议
我个人习惯这样选:
- 分辨率 ≤ 1080p,帧率 ≤ 30fps — DVP够用,成本低,开发简单
- 分辨率 ≥ 2K,帧率 ≥ 60fps — 必须上MIPI CSI-2,别犹豫
- 电池供电设备 — 优先MIPI,LP模式省电效果明显
- 老平台升级 — 如果主控只有DVP接口,那就只能硬着头皮用DVP,但要做好信号完整性仿真
一句话总结:DVP是“够用就好”的老实人,MIPI是“又快又省”的尖子生。选谁,看你的带宽需求和功耗预算。