在SA8397摄像头链路架构中,图像数据会从摄像头模组产出,经过加串器,解串器后到达SOC,内部根据不同的需求经过不同的链路最终到达不同的目的地。下面对其中经常遇到以及非常基础的几大模块进行说明。
1. CSID --- Camera Serial Interface Decoder
是什么: 高通 ISP 前端硬件模块,位于 SoC 内部,是 MIPI CSI-2 物理层(CSIPHY)和后续图像处理模块之间的桥梁。
在链路中的位置: 解串器(MAX96712)输出 MIPI CSI-2 信号 → CSID → IFE/RDI
起什么作用:
- 接收来自 CSIPHY 的 MIPI CSI-2 数据包
- 解析 VC(Virtual Channel):根据数据包中的 VC ID(0-3),将数据路由到不同的 IFE 或 RDI 通道
- 解析 DT(Data Type):根据 DT 值(如 0x2B=RAW10, 0x2C=RAW12)确定像素格式,配置后续处理模块
- 产生 SOF(Start of Frame)/ EOF(End of Frame)中断,通知系统帧的开始和结束
- 支持多 VC 同时接收,实现多 sensor 复用同一 MIPI 物理链路
2. RDI --- Raw Dump Interface
是什么: 高通 ISP 子系统中的一个原始数据直出接口,是 CSID 之后的一个可选数据路径。
在链路中的位置: CSID → RDI → 内存(DMA 直写)
起什么作用:
- 当应用需要获取 sensor 的原始 Bayer/RAW 数据(未经 ISP 处理)时,开启 RDI 路径
- 数据从 CSID 直接通过 RDI 写入系统内存,不经过 IFE 的 ISP 处理(去马赛克、降噪、色彩校正等)
- 典型用途:raw 图抓取、计算机视觉算法(直接处理 Bayer 数据)、低延迟场景
- 与 IFE 路径并行存在:同一帧数据可以同时走 IFE 处理后输出 + RDI raw dump 输出
与 IFE 的区别:
| 特性 | RDI 路径 | IFE 路径 |
|---|---|---|
| 数据处理 | 无处理,raw 直出 | ISP 处理(去马赛克、降噪等) |
| 输出格式 | RAW8/10/12/14 | NV12/YUV420 等处理后格式 |
| 延迟 | 低 | 较高(经过处理) |
| 典型用途 | raw 图抓取、CV 算法 | 预览、录像、显示 |
3. VC --- Virtual Channel(虚拟通道)
是什么: MIPI CSI-2 协议层概念,不是硬件模块。用 2-bit ID(0~3)标识同一物理 MIPI 链路上的不同数据流。
在链路中的位置: 贯穿整个链路,从 sensor 输出到 SoC CSID 解析:
Sensor(设置 VC ID)→ 加串器(保留 VC 标签)→ 解串器(恢复 VC 标签)→ CSID(解析 VC,路由到对应 IFE/RDI)
起什么作用:
- 多 sensor 复用:4 个 camera 模组可以通过同一组 MIPI 差分线传输数据,只要各自使用不同的 VC ID
- 同一 sensor 多数据流:一个 sensor 可以同时输出多路数据(如主摄 + 深度图),每路使用不同的 VC
- VC 与 cameraId 的映射:解串器需要正确配置 VC 映射,CSID 也需要正确配置 VC→IFE/RDI 的路由
4. DT --- Data Type(数据类型)
是什么: MIPI CSI-2 协议层概念,嵌入在每个数据包的包头中,用 6-bit 值标识 payload 的数据格式。
在链路中的位置: 由 sensor 在输出数据时设置,贯穿整个链路,最终由 CSID 解析:
Sensor(设置 DT 值)→ 加串器/解串器(透传)→ CSID(解析 DT,配置 IFE/RDI 数据格式)
常见的 DT 值(MIPI CSI-2 标准):
| DT 值(十六进制) | 数据格式 |
|---|---|
| 0x2A | RAW8 |
| 0x2B | RAW10 |
| 0x2C | RAW12 |
| 0x2D | RAW14 |
| 0x18 | RGB888 |
| 0x1E | YUV422 8-bit |
起什么作用:
- CSID 解析 DT 后,告知后续 IFE/RDI 模块数据的具体格式,以便正确解析和存储
- 如果 DT 配置错误(如 sensor 输出 RAW10 但 CSID 配置为 RAW12),会导致图像颜色异常或数据错位
链路数据流向总结
Sensor
│ 输出 MIPI CSI-2 数据包(含 VC ID + DT 值)
▼
加串器
│ GMSL 编码,将 VC/DT 信息封装在 GMSL 包头中
▼
GMSL2 串行链路(同轴电缆或 STP 双绞线)
│
▼
解串器
│ GMSL 解码,恢复 MIPI CSI-2 格式(含 VC + DT)
│ 通过 I2C 控制链配置 sensor/加串器
▼
SA8397 SoC --- MIPI CSI-2 接收端
│
├─ CSIPHY(物理层,接收差分信号)
│
├─ CSID(解码层,解析 VC/DT,路由数据)
│ ├─ 若 VC=0 → 路由到 IFE path 0 或 RDI path 0
│ ├─ 若 VC=1 → 路由到 IFE path 1 或 RDI path 1
│ └─ 若 VC=2/3 → 路由到对应 path
│
├─ IFE(ISP 处理,输出 YUV/NV12 等格式到内存)
│
└─ RDI(Raw Dump,输出 RAW 格式直接到内存)
│
▼
系统内存(DMA 写入)
│
▼
qcarcam 用户态进程(取帧,送显示/算法)
