2. Jacinto平台与CSI-2硬件架构

在动手写驱动之前,先把“数据从镜头到内存”这条物理通路看清楚,是 Jacinto 多摄像头工程能否顺利推进的前提。本节围绕四个层次展开:SoC 选型、CSI-2 PHY 与控制器、D-PHY/C-PHY 物理接口,以及摄像头模组到串行器/解串器(SerDes)的链路。理解这条链路上每一级的角色与约束,才能在后续配置设备树、调试链路训练和排查丢帧时快速定位问题。

一、Jacinto SoC 系列选型

TI Jacinto 是面向汽车与工业视觉的异构 SoC 家族,典型成员包括 TDA4VM、TDA4VL、TDA4VH、DRA829、AM68A/AM69A 等。它们的共同特征是“通用计算 + 专用视觉加速 + 丰富外设”的组合:主域包含 Cortex-A72 应用核,MCU 域包含 Cortex-R5F 实时核,视觉侧集成 ISP、VISS、LDC、DMPAC 等硬件模块,外设侧则提供多路 CSI-2 接收端口。

选型时最需要关注的不是 CPU 主频,而是与摄像头直接相关的三个维度:

  • CSI-2 端口数量与类型:不同型号提供的 CSI-2 RX 端口数不同,有的端口固定为 D-PHY,有的支持 D-PHY/C-PHY 复用。多摄像头方案必须核对端口总数是否满足“路数 × 每路 lane 数”的预算。
  • 每端口 lane 数与带宽:常见为 4 lane,部分端口为 2 lane。lane 数直接决定单端口可承载的总带宽,进而决定能挂几路摄像头或能跑多高分辨率。
  • ISP/VISS 处理能力:原始 Bayer 数据需要 ISP 处理,若 ISP 通道数少于摄像头路数,就需要分时复用或改用 YUV 输出的模组。

举例来说,若方案需要 8 路 1080p30 摄像头,每路 RAW10 数据率约 1.5 Gbps,则总输入带宽约 12 Gbps。若 SoC 提供 4 个 4-lane CSI-2 端口,每 lane 按 1.5 Gbps 计算,单端口 6 Gbps,理论上两路摄像头可共享一个端口(通过 SerDes 聚合),但需确认该端口是否支持虚拟通道解复用。这类带宽与端口预算,应在选型阶段就完成核算。

二、CSI-2 PHY 与控制器

Jacinto 的 CSI-2 接收通路在硬件上分为两层:PHY 层负责差分信号的电气接收、时钟恢复与 lane 对齐;控制器层(CSI-2 RX Controller)负责 CSI-2 协议解析,包括包边界识别、虚拟通道(VC)与数据类型(DT)提取、ECC/CRC 校验,并把像素数据写入 DMA 缓冲区。

PHY 与控制器之间通过标准化的 PPI(PHY Protocol Interface)连接。理解这一点很关键:当链路出现“无数据”时,问题可能出在 PHY 未完成 lane 对齐,也可能出在控制器未正确解析 VC;两者的排查手段完全不同。PHY 层通常可通过寄存器读取 lane 状态与时钟检测结果,控制器层则可通过中断状态与 DMA 计数判断是否收到有效包。

控制器支持多虚拟通道,这是多摄像头共享一条物理链路的基础。每个摄像头的数据被打上不同的 VC 编号,控制器按 VC 分流到不同的 DMA 通道,最终形成独立的 video 设备节点。因此,多摄像头方案中“一路一个 /dev/videoX”的实现,本质上是 VC 到 DMA 通道的映射。

三、D-PHY 与 C-PHY 接口

D-PHY 与 C-PHY 是 MIPI 定义的两种物理层标准,Jacinto 部分端口支持二者复用,但二者在信号结构上有本质区别:

对比项D-PHYC-PHY
信号线结构1 对差分时钟 + N 对差分数据无独立时钟,3 线一组(trio)
时钟恢复独立时钟 lane从数据跳变中恢复
每 lane 速率常见 0.8~2.5 Gbps/lane每 trio 约 2.5 Gsym/s,等效更高
引脚数较多(含时钟)较少
典型场景通用摄像头、SerDes 输出高像素密度、走线受限场景

选择哪种 PHY,取决于模组或解串器的输出类型。多数车载摄像头经 SerDes 解串后输出的是 D-PHY 信号,因此 D-PHY 是更常见的配置。若使用 C-PHY,需在设备树中明确配置为 C-PHY 模式,并注意 lane 映射关系与 D-PHY 不同——C-PHY 的 trio 编号与 D-PHY 的 lane 编号不能直接对应,接错会导致链路无法建立。

四、摄像头模组与串行器/解串器链路

在长距离、多摄像头的车载场景中,摄像头模组通常不直接输出 CSI-2,而是先经过串行器(Serializer)把并行或 MIPI 信号转换为高速串行信号,通过同轴电缆或屏蔽双绞线传输,再由解串器(Deserializer)还原为 CSI-2 输出给 Jacinto。典型组合如 TI DS90UB953(串行器)+ DS90UB954/960(解串器),支持 4 路摄像头聚合到一条 CSI-2 输出。

这条链路的配置要点包括:

  • I2C 地址映射:解串器通过 I2C 访问,串行器与摄像头模组挂在解串器的反向通道(Back Channel)上,需要正确配置别名地址,否则无法访问远端模组。
  • VC 分配:解串器把多路输入映射到不同 VC,需与 Jacinto 控制器的 VC 解析配置一致。
  • 链路训练与锁定:上电后需确认解串器锁定状态(LOCK)与信号质量,未锁定前不应启动采集。

下面这张图给出从摄像头模组到 Jacinto 内存的完整信号链与关键配置点,便于对照排查。

摄像头模组 Sensor + 镜头 RAW10 / YUV422 串行器 DS90UB953 MIPI → 同轴 CSI-2 同轴/STP 高速串行 解串器 DS90UB954/960 4路聚合 → CSI-2 CSI-2 D-PHY Jacinto SoC CSI-2 PHY D-PHY / C-PHY 复用 CSI-2 RX 控制器 VC/DT 解析 · ECC/CRC DMA → DDR 缓冲区 PPI 虚拟通道(VC)分流与设备节点映射 CSI-2 输入流 VC 解复用 按 VC 编号分流 DMA CH0 · VC0 DMA CH1 · VC1 DMA CH2 · VC2 DMA CH3 · VC3 /dev/video0 /dev/video1 /dev/video2 /dev/video3

把这张图记在脑子里,后续无论是配置设备树中的 csi2_phy 节点、设置解串器的 VC 映射寄存器,还是用 media-ctl 查看 pipeline 拓扑,都能对应到具体的硬件层级。选型阶段确认端口与带宽,硬件设计阶段确认 PHY 类型与 lane 映射,软件阶段确认 VC 与 DMA 通道的对应关系——这三步走稳,多摄像头采集的底层通路就基本可控了。