4. CSI-2 协议层架构:分层模型与数据包格式
MIPI CSI-2 协议采用清晰的分层架构设计,将物理传输、通道管理、底层协议与像素处理解耦。理解每一层的职责与数据包格式,是进行链路调试与信号完整性分析的基础。本章将深入剖析 CSI-2 的五层模型及长短包结构。
4.1 分层模型(PHY / Lane Management / Low-Level Protocol / Pixel / Byte Unpack)
CSI-2 协议栈从下至上分为五层,每一层对上层提供透明服务,对下层封装具体实现。下图展示了完整的层次结构及其数据流方向。
4.1.1 物理层 (PHY Layer)
物理层定义了传输介质、电气特性、时钟机制与线速率。CSI-2 支持 D-PHY 和 C-PHY 两种物理层标准。D-PHY 使用源同步时钟,每个数据通道为一对差分线;C-PHY 则无专用时钟线,通过三线编码嵌入时钟。物理层负责将上层数据串行化,以高速差分信号在通道上传输。
4.1.2 通道管理层 (Lane Management)
通道管理层负责将底层协议层的数据包分发到多个物理通道上。主要功能包括:
- 数据分发:将字节流按轮询方式分配到各通道。
- 通道合并:接收端从多个通道收集数据,恢复原始字节顺序。
- 偏斜补偿:处理通道间传播延迟差异,通过训练序列对齐数据。
4.1.3 底层协议层 (Low-Level Protocol)
底层协议层是 CSI-2 的核心,负责数据包的封装与解析。它定义了数据标识符(DI)、字计数(WC)、ECC 和校验和字段。该层确保接收端能正确识别包类型、长度和完整性。
4.1.4 像素/字节解包层 (Pixel/Byte Unpack)
该层将底层协议层输出的字节流,根据图像格式(如 RAW10、RAW12、YUV422、RGB888)解包为像素数据。不同格式的像素位宽不同,解包规则也不同。例如,RAW10 格式每 4 个像素占用 5 个字节,解包层需要按特定映射关系提取每个像素的 10 位数据。
| 像素格式 | 每像素位数 | 字节对齐方式 | 典型应用 |
|---|---|---|---|
| RAW8 | 8 | 1 像素 = 1 字节 | 低端传感器 |
| RAW10 | 10 | 4 像素 = 5 字节 | 主流手机传感器 |
| RAW12 | 12 | 2 像素 = 3 字节 | 工业相机 |
| YUV422 8-bit | 16 | 1 像素 = 2 字节 | 视频传输 |
| RGB888 | 24 | 1 像素 = 3 字节 | 显示处理 |
4.2 数据包格式:长包与短包
CSI-2 底层协议层定义了两种基本数据包类型:短包 (Short Packet) 和 长包 (Long Packet)。所有传输均以包为单位,包与包之间通过状态切换(HS 模式)分隔。
4.2.1 短包 (Short Packet)
短包用于传输控制信息,如帧起始(FS)、帧结束(FE)、行起始(LS)、行结束(LE)以及事件触发。短包固定为 4 字节,不携带图像数据。
短包格式:
+--------+--------+--------+--------+
| DI | Data | Data | ECC |
| (1 B) | (2 B) | (2 B) | (1 B) |
+--------+--------+--------+--------+
- DI (Data Identifier): 包类型 + 虚拟通道
- Data Field (16-bit): 帧号、行号或事件码
- ECC (Error Correction Code): 保护前 3 字节
| DI[7:6] | 包类型 | Data Field 含义 |
|---|---|---|
| 00 | 帧起始 (FS) | 帧号 |
| 01 | 帧结束 (FE) | 帧号 |
| 10 | 行起始 (LS) | 行号 |
| 11 | 行结束 (LE) | 行号 |
4.2.2 长包 (Long Packet)
长包用于传输图像数据负载。它由包头、数据负载和包尾三部分组成。包头包含数据标识符和字计数;数据负载为字节流;包尾为 16 位校验和。
长包格式:
+--------+--------+--------+--------+------------------+--------+--------+
| DI | WC | WC | ECC | Data Payload | CS | CS |
| (1 B) | (1 B) | (1 B) | (1 B) | (WC 字节) | (1 B) | (1 B) |
+--------+--------+--------+--------+------------------+--------+--------+
- DI: 虚拟通道 + 数据类型(如 RAW10、YUV422)
- WC (Word Count): 16 位,表示数据负载的字节数
- ECC: 保护包头 4 字节
- Data Payload: 图像数据,长度由 WC 指定
- CS (Checksum): 16 位 CRC,保护数据负载
4.2.3 虚拟通道 (Virtual Channel)
CSI-2 支持最多 4 个虚拟通道(VC0 ~ VC3),通过 DI 字节的高 2 位标识。虚拟通道允许在同一物理链路上复用多个独立的图像数据流,例如同时传输预览流和拍照流。
4.3 分层模型与包格式的调试关联
在链路调试过程中,不同层次的错误会呈现不同的现象。下表总结了常见问题与对应层次:
| 现象 | 可能原因 | 涉及协议层 |
|---|---|---|
| 无图像输出 | PHY 未锁定、时钟丢失 | 物理层 |
| 图像错位/撕裂 | 通道偏斜、Lane 映射错误 | 通道管理层 |
| ECC 错误计数增加 | 信号完整性差、包头发送错误 | 底层协议层 |
| 颜色异常/像素错乱 | 像素格式解包错误、位宽不匹配 | 像素/字节解包层 |
| 帧同步丢失 | 短包 FS/FE 丢失或损坏 | 底层协议层 |