4. 多摄像头硬件连接与拓扑设计
多摄像头系统能否稳定工作,往往在画原理图和布 PCB 阶段就已经决定了大半。Jacinto 系列 SoC(如 TDA4VM、DRA829)内部集成了多个 CSI-2 接收控制器(CSI_RX),每个控制器又通过 D-PHY 或 C-PHY 提供若干条 lane。硬件设计的核心任务,就是把 N 路摄像头合理地“挂”到这些有限的端口资源上,同时保证 I2C 控制、时钟、复位、电源和高速差分信号都能各就各位。
一、CSI-2 输入端口分配
以 TDA4VM 为例,其 CAL(Camera Adaptation Layer)模块通常提供 2 个 CSI-2 接收控制器,每个控制器支持 4 条 D-PHY lane,可配置为 1 路 4-lane、2 路 2-lane 或 4 路 1-lane 输入。这意味着理论上最多可接入 8 路 1-lane 摄像头,但实际分配要结合分辨率、帧率和带宽来权衡。
假设我们设计一个 4 路环视系统,每路摄像头为 1920×1080@30fps、RAW12 格式。单路数据率约为 1920×1080×12×30 ≈ 746 Mbps,加上消隐区约 800 Mbps。若每路使用 2 条 lane,则每条 lane 只需承担约 400 Mbps,远低于 D-PHY 单 lane 1.5 Gbps 以上的能力,链路裕量充足。因此推荐分配方案为:CSI0 接 2 路 2-lane 摄像头(前视、后视),CSI1 接 2 路 2-lane 摄像头(左视、右视)。这样既避免了 lane 数量浪费,又为每路保留了足够的带宽余量。
如果某路摄像头分辨率提升到 4K,则单路数据率可达 3 Gbps 以上,此时应改为 4-lane 独占一个控制器,其余摄像头再重新分配。端口分配的本质是“带宽预算 + lane 数量约束”的联合求解,建议在项目早期就用表格列出每路的分辨率、帧率、格式、lane 数和目标控制器。
二、I2C 控制总线与地址规划
每路摄像头都需要通过 I2C 配置寄存器,包括曝光、增益、输出格式、lane 映射等。Jacinto 通常提供多个 I2C 控制器(如 I2C0~I2C6),其中部分用于 PMIC、EEPROM 等系统外设,摄像头应尽量使用独立的 I2C 总线,避免与关键系统设备争用。
常见做法是:每路摄像头挂载在一条独立的 I2C 总线上,或者两路共享一条总线但使用不同的 7 位从地址。以常见的 IMX390 为例,其 I2C 地址可通过硬件引脚配置为 0x10~0x1F 中的多个值。若四路摄像头共享 I2C1,则需分别配置为 0x10、0x12、0x14、0x16,并在设备树中为每个 sensor 节点指定正确的 reg 属性。
需要注意 I2C 总线的上拉电阻和总线电容。标准模式 100 kHz 下总线电容不超过 400 pF,快速模式 400 kHz 下建议不超过 200 pF。多路摄像头走线较长时,应使用 I2C 多路复用器(如 PCA9548)进行分支隔离,避免某一路短路拖垮整条总线。
三、时钟与复位设计
摄像头通常需要外部提供参考时钟(如 24 MHz 或 27 MHz),由 SoC 的时钟输出或独立晶振产生。Jacinto 的 MCU_CLKOUT 或 AUDIO_EXT_REFCLK 可配置为摄像头主时钟源,但要注意多路摄像头是否共用同一时钟。若共用,需评估时钟驱动能力和走线匹配;若各自独立,则要确保每路时钟的频偏和抖动满足 sensor 的 PLL 锁定要求。
复位信号(RESET)应连接到 SoC 的 GPIO,每路摄像头独立控制,便于单独上下电和故障恢复。复位时序通常要求:电源稳定后至少延时 1 ms 再释放复位,复位释放后至少等待 20 ms 再开始 I2C 通信。这些参数需查阅具体 sensor 数据手册,不同型号差异较大。
四、电源与信号完整性
摄像头模组一般需要多路电源:模拟 2.8 V、数字 1.2 V、I/O 1.8 V,部分还涉及 1.8 V 或 3.3 V 的 MIPI 供电。每路电源应使用独立的 LDO 或 PMIC 输出,并在靠近连接器处放置足够的去耦电容(如 1 μF + 0.1 μF + 0.01 μF 组合)。
MIPI CSI-2 差分对是高速信号,走线必须控制 100 Ω 差分阻抗,长度匹配误差控制在 5 mil 以内,避免过孔和跨分割。若使用 FPD-Link 或 GMSL 串行器,则同轴电缆或屏蔽双绞线的阻抗、屏蔽层接地和连接器选型同样关键。信号完整性不佳的典型表现是:图像出现随机条纹、丢帧、或链路训练失败。此时应优先用示波器检查差分眼图,再排查电源纹波和时钟抖动。
五、FPD-Link / GMSL 链路设计
当摄像头与 SoC 距离超过 30 cm 时,直接走 MIPI 差分线会面临严重的插入损耗和 EMI 问题。此时应改用 FPD-Link III 或 GMSL 串行器/解串器方案:摄像头端放置串行器(如 DS90UB953),SoC 端放置解串器(如 DS90UB954),中间用 50 Ω 同轴电缆或 100 Ω 屏蔽双绞线连接,传输距离可达 10~15 m。
以 DS90UB953/954 为例,953 支持 4-lane MIPI 输入,通过同轴电缆输出高速串行信号,同时在同一根电缆上反向传输 I2C 和电源(PoC,Power over Coax)。954 解串后输出 MIPI CSI-2 给 SoC。设计要点包括:PoC 滤波网络需根据电缆长度和电流选择电感值,典型为 100 μH~470 μH;同轴连接器应选用 50 Ω 阻抗匹配型号;解串器的 I2C 地址需与串行器区分,通常 954 默认 0x30,953 默认 0x18。
链路调试时,可先通过 954 的寄存器读取 953 的链路状态(如 0x5C 寄存器),确认链路锁定后再配置摄像头。若链路不稳定,优先检查 PoC 电源纹波和电缆屏蔽接地,其次检查串行器与摄像头之间的 MIPI 走线是否满足阻抗要求。
整体来看,多摄像头硬件拓扑设计是一个“资源约束下的系统分配”问题。SoC 的 CSI 端口、I2C 控制器、GPIO 和时钟输出都是有限资源,而每路摄像头的带宽、地址、时序和供电需求又各不相同。只有在原理图阶段就把这些约束理清,后续的设备树配置和驱动调试才能顺利推进。