2. 摄像头传感器基础:像素时钟、行同步、帧同步、MIPI CSI-2 协议分层
摄像头传感器是图像采集链路的起点。理解其输出时序与协议分层,是驱动工程师设计 CSI 接收控制器与 DMA 传输策略的前提。本节从传感器物理输出信号出发,逐步深入到 MIPI CSI-2 的协议栈结构。
2.1 传感器并行输出时序三要素
传统 DVP(Digital Video Port)接口或内部处理单元通常依赖三个核心同步信号来组织像素数据流:像素时钟 (PCLK)、行同步 (HSYNC / HREF)、帧同步 (VSYNC)。理解这三者的时序关系,有助于后续理解 CSI-2 协议中数据包的分割与重组。
2.2 从并行到串行:MIPI CSI-2 的引入
随着分辨率与帧率的提升,并行接口的引脚数、EMI 和信号同步问题日益突出。MIPI CSI-2(Camera Serial Interface 2)采用差分串行传输,使用 D-PHY 物理层,以极少的引脚(通常 2~4 对数据 Lane + 1 对时钟 Lane)实现高速数据传输。
| 特性 | 传统 DVP 并行接口 | MIPI CSI-2 串行接口 |
|---|---|---|
| 引脚数量 | 10~20+(数据+同步+时钟) | 4~10(差分对) |
| 最大速率 | ~100 MHz PCLK | 每 Lane 可达 1.5 Gbps (D-PHY v1.2) / 4.5 Gbps (D-PHY v2.0) |
| 抗干扰能力 | 较弱,易受 EMI 影响 | 强,差分信号共模抑制 |
| 同步信号 | 独立 HSYNC/VSYNC 线 | 内嵌于数据包(短包) |
| 适用场景 | 低分辨率、短距离 | 高分辨率、高帧率、长距离 |
2.3 MIPI CSI-2 协议分层架构
MIPI CSI-2 协议栈分为四层,从物理连接到应用数据,每一层都有明确的职责。驱动工程师需要重点关注 协议层(Protocol Layer) 的数据包格式,因为 CSI 接收控制器(如 STM32 DCMI / i.MX CSI / 专用 IP)正是基于此层进行数据解析与 DMA 触发。
2.4 协议层核心:数据包结构
CSI-2 协议层定义了两种数据包:短包(Short Packet) 和 长包(Long Packet)。短包用于传输帧同步、行同步等控制信息;长包用于传输实际的像素数据。
2.4.1 短包格式
短包固定为 4 字节,无数据负载,用于传递事件或同步信息。
+--------+--------+--------+--------+
| DI[7:0] | WC[7:0] | ECC[7:0] |
+--------+--------+--------+--------+
DI (Data Identifier): 虚拟通道 ID (VC) + 数据类型 (DT)
WC (Word Count): 短包数据字段(如帧号、行号)
ECC (Error Correction Code): 前 16 位的汉明码校验
2.4.2 长包格式
长包包含包头、数据负载和包尾,是像素数据的主要载体。
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
| DI[7:0] | WC[15:8] | WC[7:0] | ECC[7:0] | Data[0] | Data[1] | ... | Data[N] | CRC[15:8] | CRC[7:0] |
+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+
|<------------------ 包头 (4 字节) ------------------>|<-- 数据负载 (WC 字节) -->|<-- 包尾 (2 字节) -->|
DI: 数据标识符 (VC + DT)
WC: 数据负载字节数 (16 位)
ECC: 包头校验
CRC: 数据负载循环冗余校验
2.5 数据类型(DT)与虚拟通道(VC)
数据类型(Data Type, DT)标识了数据负载的格式,是协议层解析的关键。虚拟通道(Virtual Channel, VC)允许多个传感器或数据流共享同一物理链路。
| DT 值 (Hex) | 数据类型 | 说明 |
|---|---|---|
| 0x00~0x07 | 同步短包 | 帧起始 (FS)、帧结束 (FE)、行起始 (LS)、行结束 (LE) |
| 0x08~0x0F | 通用短包 | 事件触发、用户定义 |
| 0x10~0x17 | RGB 格式 | RGB444, RGB555, RGB565, RGB666, RGB888 |
| 0x18~0x1F | YUV 格式 | YUV420 8/10 位, YUV422 8/10 位 |
| 0x20~0x27 | RAW 格式 | RAW6, RAW7, RAW8, RAW10, RAW12, RAW14 |
| 0x28~0x2F | 其他格式 | JPEG, H.264, 用户定义 |
2.6 从传感器到 CSI 控制器的数据流
下图展示了从传感器像素阵列到 CSI 接收控制器 FIFO 的完整数据流路径,以及 DMA 引擎的介入点。
2.7 本章小结
- 像素时钟、行同步、帧同步 是传感器输出时序的三大基石,定义了像素到行、行到帧的组织结构。
- MIPI CSI-2 通过串行差分传输解决了并行接口的瓶颈,并将同步信号内嵌于数据包中。
- 协议分层 从物理层到应用层逐级抽象,驱动工程师应重点掌握协议层的数据包格式(短包/长包)。
- 数据类型(DT) 决定了像素格式的解析方式,虚拟通道(VC) 支持多路复用。
- CSI 接收控制器内部的 FIFO 是连接协议解析与 DMA 引擎的桥梁,其阈值设置直接影响传输效率。