1. 课程导入与工程全景

在智能驾驶、工业机器视觉与多目环视系统中,TI Jacinto 系列 SoC(如 TDA4VM、TDA4VH、DRA829)常被用作核心计算平台。它内部集成了多路 CSI-2 接收控制器(CSI-RX)、图像信号处理器(ISP)、硬件图像处理加速器(VISS、LDC、MSC)以及多核异构计算单元(A72、R5F、C7x/MMA)。本课程要解决的核心工程问题,就是如何让多颗摄像头通过 MIPI CSI-2 接口稳定地把图像数据送入 Jacinto,并在时间维度上保持同步,最终形成可供感知算法使用的多路图像流。

典型应用场景与系统级挑战

以常见的 4 路环视 + 1 路前视为例:4 颗 200 万像素摄像头(1920×1080@30fps)分别安装在车身前、后、左、右,1 颗 800 万像素前视摄像头(3840×2160@30fps)用于远距感知。所有摄像头通过 CSI-2 差分对连接到 Jacinto 的 CSI-RX 端口,经解串器(如 DS90UB960 四路解串器)汇聚后进入 SoC。系统级挑战集中在四个方面:

  • 带宽与通道分配:每路 1080p30 RAW10 数据率约 1.5 Gbps,800 万像素约 4.5 Gbps,需合理分配到 CSI-RX 的虚拟通道(VC)与数据通道(Lane)。
  • 时间同步:多摄像头若不同步,环视拼接会出现运动物体错位,前视与环视融合会出现时序偏差。同步依赖外部触发信号(FSYNC)与解串器的帧同步机制。
  • 数据完整性:CSI-2 的 CRC、ECC 校验,以及解串器链路锁定状态,直接影响图像是否可用。
  • 软件栈协同:从 Linux V4L2 驱动、TI 的 Capture 节点、DMA 搬运到 ISP 处理,任一环节配置错误都会导致丢帧或花屏。

系统数据通路全景

下图给出从摄像头到内存的完整信号链与数据流关系。左侧为摄像头与解串器,中间为 Jacinto 内部 CSI-RX 与处理链,右侧为 DDR 中的图像缓冲区。图中同时标注了同步信号 FSYNC 的走向,以及各环节的关键参数(分辨率、帧率、VC 编号、Lane 数)。

前视摄像头 8MP 3840×2160@30 环视摄像头×4 2MP 1920×1080@30 DS90UB960 四路解串器 VC0~VC3 映射 链路锁定检测 CSI-2 CSI-2 Jacinto TDA4VM SoC CSI-RX 控制器 4 Lane × 2 端口 | VC 解复用 | CRC/ECC 像素格式:RAW10 / RAW12 / YUV422 MIPI D-PHY VISS 硬件加速器 去马赛克 | 降噪 | 色彩校正 | 3A 统计 LDC 镜头畸变校正 网格映射 | 透视变换 | 环视拼接预处理 DMA / 写回引擎 多平面 YUV / RAW 搬运至 DDR DDR 缓冲区 多路图像队列 时间戳标记 供 A72/C7x 读取 DMA 写 FSYNC 发生器 30Hz 帧同步脉冲 同步触发 FSYNC 关键参数速览 · 前视:VC0,4 Lane,RAW10,4.5Gbps · 环视:VC1~VC3,2 Lane,RAW10,1.5Gbps/路 · 同步:FSYNC 30Hz,解串器帧同步模式

学习路径与实验平台搭建

本课程按“接口基础 → 驱动配置 → 同步机制 → 多路调试 → 性能优化”的路径展开。建议的学习顺序是:先理解 CSI-2 协议与 Jacinto CSI-RX 寄存器模型,再动手配置设备树与 V4L2 管线,接着实现 FSYNC 同步,最后进行多路并发压力测试与带宽调优。

实验平台推荐配置如下:

项目推荐配置说明
开发板TI TDA4VM EVM 或 SK-TDA4VM具备完整 CSI-2 接口与解串器子板
摄像头IMX390(2MP)或 OX08B40(8MP)支持外部触发同步输入
解串器DS90UB960-Q1四路 CSI-2 汇聚,支持 VC 映射
SDKTI Processor SDK Linux / RTOS 8.x+包含 V4L2 驱动与 Capture 示例
调试工具示波器、I2C 读写工具、v4l2-ctl用于验证 FSYNC 与链路状态
平台搭建提示:首次上电后,先用 i2cdetect 确认解串器地址可见,再通过 v4l2-ctl --list-devices 检查 CSI-RX 节点是否注册成功。若节点缺失,优先排查设备树中 CSI-RX 与解串器的 I2C 地址、GPIO 复位引脚和时钟配置。

关键参数与判断依据

在开始编码之前,需要明确几个工程判断依据。第一,链路是否锁定:解串器的 0x1C 寄存器(具体地址依型号而定)可读取每路 RX 的锁定状态,锁定后对应位为 1。第二,帧是否到达:通过 CSI-RX 的中断计数或 V4L2 的 VIDIOC_DQBUF 返回时间戳判断。第三,同步是否有效:用示波器同时抓取 FSYNC 信号与摄像头的帧有效信号(FV),观察两者相位差是否稳定在固定值。第四,带宽是否足够:计算总数据率并与 CSI-RX 端口上限对比,例如 TDA4VM 单端口 4 Lane 在 1.5 Gbps/Lane 下总带宽约 6 Gbps,若前视 4.5 Gbps 加环视 1.5 Gbps 超过上限,就需要拆分到两个 CSI-RX 端口。

常见误区:很多初学者认为“摄像头接上就能出图”,实际上 Jacinto 的 CSI-RX 需要正确配置 VC 映射、像素格式和 DMA 通道,否则会出现“链路锁定但无帧”或“有帧但花屏”的现象。建议每接一路摄像头就单独验证,确认无误后再叠加下一路。