2. 摄像头数据接口基础
摄像头与主控之间的数据接口,决定了图像数据以什么形式、什么速率、通过什么物理通道进入 SoC。理解 MIPI CSI-2、DVP、LVDS 三类接口的物理层与协议层差异,是后续设计 DMA 传输与缓存管理的前提。接口选错,DMA 通道、带宽预算、缓存行对齐策略都会随之失配。
一、核心原理:三类接口的分层差异
摄像头接口可以拆成物理层与协议层两个视角。物理层关注电气信号、时钟形式、引脚数量与传输距离;协议层关注数据如何打包、如何标识帧边界、如何区分像素格式。
- DVP(Digital Video Port):并行接口,物理层由 PCLK、HSYNC、VSYNC 和 8/10/12 位并行数据线组成。协议层极简,没有包头,靠同步信号直接界定帧与行。主控侧通常映射为并口采集单元,数据几乎“裸流”进入。
- MIPI CSI-2:串行差分接口,物理层基于 D-PHY 或 C-PHY,使用 1 对时钟 lane 加 1~4 对数据 lane(或更多)。协议层为分层结构:像素数据经像素到字节打包、LLP 低层协议、lane 分发,再经 D-PHY 发送。帧边界由短包(Frame Start/End)标识,行边界由长包内的行号与校验维护。
- LVDS:串行差分接口,常见于车载与工业长距离场景。物理层为低压差分对,协议层多为厂商私有或类 LVDS 帧格式,常配合串行器/解串器(SerDes)使用,把并行视频流打包成高速串行流。
二、物理层与协议层对比
| 对比项 | DVP | MIPI CSI-2 | LVDS |
|---|---|---|---|
| 信号形式 | 并行单端 | 串行差分 | 串行差分 |
| 典型引脚 | PCLK+HSYNC+VSYNC+D[11:0] | 1 时钟 lane + 1~4 数据 lane | 多对差分数据 + 时钟对 |
| 协议层 | 无包协议,同步信号定界 | CSI-2 包协议,短包/长包 | 私有帧协议,常经 SerDes |
| 典型带宽 | 较低,受并行速率限制 | 高,单 lane 可达 Gbps 级 | 中高,适合长距离 |
| 传输距离 | 短,板内为主 | 短到中,板内/模组排线 | 长,可达数米至十余米 |
| 典型场景 | 低分辨率、低成本模组 | 手机、平板、AI 相机 | 车载、工业、安防 |
三、方法流程:从信号到 DMA 触发
以 MIPI CSI-2 为例,数据进入 SoC 后大致经历以下路径,这条路径直接决定 DMA 的触发点与缓存写入节奏:
- D-PHY 接收差分信号,完成时钟恢复与串并转换。
- CSI-2 协议层解析短包,识别 Frame Start、Frame End、行号。
- 像素解包模块把字节流还原为 RAW/RGB/YUV 像素。
- 行有效信号(line valid)与帧有效信号(frame valid)产生。
- DMA 控制器在行有效期间搬运数据,写入 DDR 缓存。
CSI-2 接收链路示意:
D-PHY -> CSI-2 协议解析 -> 像素解包 -> line/frame valid -> DMA 搬运 -> DDR 帧缓存
关键触发信号:
frame_start : 帧起始,用于切换缓存 buffer
line_valid : 行有效,用于启动单行 DMA
frame_end : 帧结束,用于标记 buffer 可消费
DVP 的路径更直接:PCLK 采样并行数据,HSYNC 有效即行开始,VSYNC 有效即帧开始,DMA 直接由这两个信号触发。LVDS 则多一级解串器,解串后往往还原成类似 DVP 的同步时序,再交给采集单元。
四、典型应用场景与选型
- 手机/平板前置与后置摄像头:几乎全部采用 MIPI CSI-2,追求高带宽、小体积、低功耗。
- 低成本 USB 摄像头或玩具相机:常见 DVP 或内置并口,主控资源少、分辨率低。
- 车载环视、倒车影像:LVDS 或 GMSL/FPD-Link 等 SerDes 方案,线缆长、抗干扰要求高。
- 工业机器视觉:MIPI CSI-2 与 LVDS 并存,高速用 CSI-2,长距离用 LVDS。
五、误区与复盘
常见误区一:认为“接口只是连线,和 DMA 无关”。实际上,DVP 的 HSYNC 直接作为 DMA 行触发,而 CSI-2 的行有效信号来自协议解析,两者在 DMA 配置上的触发极性、突发长度、缓存行对齐都不同。
常见误区二:把 LVDS 当成一种统一协议。LVDS 只是物理层标准,上层帧格式由厂商定义,不同模组的行场时序、像素打包方式可能完全不同,移植时必须重新确认解串器配置与采集时序。
常见误区三:忽略 lane 数与带宽匹配。CSI-2 的 lane 数、每 lane 速率、像素时钟共同决定可用带宽。若 lane 数不足,DMA 再优化也无法弥补前端带宽瓶颈,表现为丢帧或行撕裂。
把接口层看清楚,后续 DMA 与缓存设计才有稳固的输入假设:DVP 关注同步信号极性,CSI-2 关注包解析与 lane 带宽,LVDS 关注解串器配置与长线时序。三者对应的缓存行宽、帧 buffer 切换时机、DMA 突发长度,都需要按接口特性分别设定。