2. 硬件接口基础:MIPI CSI-2、DVP、SMIA CCP2 对比
在嵌入式 Camera 驱动开发中,硬件接口是连接图像传感器(Sensor)与图像信号处理器(ISP)或 SoC 的物理层与协议层桥梁。本章深入对比三种主流接口:MIPI CSI-2(Mobile Industry Processor Interface Camera Serial Interface 2)、DVP(Digital Video Port)并行接口以及 SMIA CCP2(Standard Mobile Imaging Architecture Compact Camera Port 2)。理解它们的电气特性、协议分层、时钟机制和适用场景,是调试 Camera 驱动与分析 DMA 传输的基础。
2.1 MIPI CSI-2 协议详解
MIPI CSI-2 是目前移动端和嵌入式领域最主流的 Camera 串行接口标准。它采用差分信号传输,具有高带宽、低功耗、抗干扰强的特点。
2.1.1 物理层与分层架构
CSI-2 协议分为三层:物理层(PHY Layer)、协议层(Protocol Layer) 和 应用层(Application Layer)。物理层通常基于 MIPI D-PHY 或 C-PHY 规范。
2.1.2 数据包格式与虚拟通道
CSI-2 协议层使用两种包类型:短包(Short Packet) 和 长包(Long Packet)。短包用于帧同步(帧起始/帧结束)和行同步(行起始/行结束);长包用于传输实际的像素数据。
| 包类型 | 组成 | 长度 | 用途 |
|---|---|---|---|
| 短包 | 数据标识 (DI) + 16位数据 + ECC | 4 字节 | 帧/行同步信号、事件触发 |
| 长包 | 32位包头 (DI+WC+ECC) + 数据负载 + 16位 CRC | 可变 | 像素数据、嵌入式数据 |
虚拟通道(Virtual Channel, VC) 允许在同一个物理链路上复用最多 4 个独立的 Camera 数据流。VC 信息编码在数据标识(Data Identifier, DI)字节的高 2 位中。驱动开发中,VC 用于区分多摄像头或同一 Sensor 的不同数据流(如主图像与副图像)。
2.2 DVP 并行接口
DVP 是传统的并行 Camera 接口,通过多根数据线同时传输像素数据。虽然带宽受限,但在低分辨率、低帧率的应用中仍然常见。
2.2.1 信号定义与时序
DVP 接口包含以下关键信号:
- PCLK:像素时钟,每个时钟周期传输一个像素(或一个颜色分量)。
- HSYNC:行同步信号,标识一行数据的开始。
- VSYNC:场同步信号,标识一帧数据的开始。
- DATA[7:0] 或 DATA[9:0]:并行数据总线,通常为 8 位或 10 位。
- MCLK:主时钟,由主机提供给 Sensor 的参考时钟。
2.2.2 驱动配置要点
在 Linux 内核中,DVP 接口通常通过 struct sensor_interface 或平台数据配置。关键参数包括:
/* DVP 接口配置示例 */
static struct sensor_interface dvp_if = {
.type = SENSOR_INTERFACE_DVP,
.pclk_polarity = PCLK_ACTIVE_RISING, // 像素时钟上升沿采样
.hsync_polarity = HSYNC_ACTIVE_HIGH, // 行同步高电平有效
.vsync_polarity = VSYNC_ACTIVE_LOW, // 场同步低电平有效
.data_width = 8, // 数据总线宽度
.mclk_freq = 24000000, // 主时钟 24MHz
};
2.3 SMIA CCP2 接口
SMIA CCP2 是早期为移动摄像头设计的串行接口标准,由 Nokia 和 STMicroelectronics 等公司推动。它使用差分信号传输,但协议相对简单。
2.3.1 协议特点
- 数据通道:1 对差分数据线 + 1 对差分时钟线。
- 传输模式:支持 HS(高速) 和 LP(低功耗) 模式,类似 MIPI D-PHY。
- 数据格式:使用 8b/10b 编码,内嵌时钟恢复。
- 控制接口:通常配合 I²C 或 SPI 进行寄存器配置。
2.3.2 与 MIPI CSI-2 的差异
| 特性 | MIPI CSI-2 | SMIA CCP2 |
|---|---|---|
| 编码方式 | D-PHY: 差分 NRZ | 8b/10b 编码 |
| 最大通道数 | 4 数据通道 (D-PHY) | 1 数据通道 |
| 虚拟通道 | 支持 (最多 4 个 VC) | 不支持 |
| 带宽 | 高 (单通道可达 2.5 Gbps) | 中 (单通道约 800 Mbps) |
| 协议复杂度 | 较高 (ECC/CRC/包格式) | 较低 |
| 应用领域 | 主流智能手机、嵌入式平台 | 早期手机、工业相机 |
2.4 三种接口对比总结
2.5 接口选择对 DMA 传输的影响
不同的硬件接口直接影响 DMA 控制器的配置:
- MIPI CSI-2:DMA 传输通常基于 Byte Clock 域,数据以包为单位到达。需要配置 DMA 描述符链来处理可变长度的长包,并解析包头中的字计数(WC)字段。
- DVP:DMA 传输基于 PCLK 域,数据以像素为单位连续到达。通常使用单次或循环 DMA 模式,配合 HSYNC 信号触发下一行传输。
- SMIA CCP2:DMA 传输类似 MIPI,但协议更简单,通常不需要复杂的包解析逻辑。