3. 多Camera硬件拓扑:独立Camera模组、双目/多目模组、ToF与RGB Camera组合、硬件同步信号线(FSIN/VSYNC)

在AR系统中,多Camera的硬件拓扑直接决定了同步策略的复杂度和HAL层的实现路径。不同的模组形态和信号连接方式,对驱动框架、Buffer管理和时间戳校准提出了差异化的要求。本节将逐一剖析四种典型拓扑及其在HAL层的技术要点。

3.1 独立Camera模组拓扑

独立模组是最基础的拓扑形态,每个Camera模组拥有独立的I²C控制通道、独立的MIPI CSI-2数据通道和独立的时钟源。这种结构在硬件上解耦程度最高,但同步难度也最大。

关键特征: 各模组无物理同步信号连接,帧起始完全依赖各自内部晶振,漂移不可避免。
参数 独立模组 对HAL的影响
时钟源 独立晶振(±50ppm) 需软件PLL或TS校准
MIPI通道 独立CSI-2 Lane 需多路虚拟通道聚合
同步方式 纯软件同步 依赖驱动层时间戳对齐
典型场景 前后置RGB分离 SLAM初始化阶段
独立Camera模组拓扑结构 主控SoC / ISP Camera 0 独立晶振 Camera 1 独立晶振 Camera 2 独立晶振 ⚠ 无硬件同步信号,帧偏移随时间累积 HAL需实现动态漂移补偿算法

3.2 双目/多目模组拓扑

双目或多目模组在硬件层面已经做了集成设计,通常共享PCB板级时钟或PLL,部分模组还提供了硬件触发线。这种拓扑在AR透视和手势识别中广泛使用。

  • 共享时钟源: 主Camera输出MCLK给从Camera,从机PLL锁定主机频率,帧率偏差可控制在±1帧以内。
  • 硬件触发线: 主Camera的FSIN(帧同步输入)或VSYNC(垂直同步)信号直接连接到从Camera的触发引脚。
  • 数据通道: 通常通过MIPI CSI-2虚拟通道(VC)在单条Lane上传输多路数据。
HAL实现要点: 对于共享时钟的双目模组,HAL层应优先使用硬件触发模式,将从Camera配置为“Slave Mode”,避免软件轮询带来的延迟抖动。
双目模组硬件同步拓扑 主Camera MCLK输出 从Camera MCLK输入 共享MCLK FSIN/VSYNC触发 SoC / ISP CSI VC0 CSI VC1

3.3 ToF与RGB Camera组合拓扑

ToF(Time-of-Flight)Camera与RGB Camera的组合是AR深度感知的常见方案。两者在曝光机制、帧率和分辨率上差异巨大,硬件拓扑设计需要特别关注。

特性 ToF Camera RGB Camera 同步难点
曝光方式 全局快门(Global Shutter) 卷帘快门(Rolling Shutter) 曝光窗口对齐困难
典型帧率 30fps / 60fps 30fps / 60fps 帧率匹配需精确
数据量 深度图 + 置信度图 YUV / RAW 带宽分配冲突
同步信号 需要外部触发 可输出VSYNC 信号电平匹配
常见陷阱: ToF模组的激光脉冲可能与RGB的卷帘快门扫描产生干扰。HAL层必须确保ToF的曝光窗口完全落在RGB帧的消隐期(Blanking Interval)内,否则会出现深度图条纹噪声。
ToF + RGB 组合拓扑与曝光时序 ToF Sensor 全局快门 RGB Sensor 卷帘快门 同步控制器 FPGA / MCU 曝光时序对齐要求 ToF曝光窗口 → 必须位于RGB帧消隐期 HAL层通过调整VDELAY和HSYNC参数实现 典型偏移量:±1行像素时间

3.4 硬件同步信号线:FSIN与VSYNC

FSIN(Frame Sync Input)和VSYNC(Vertical Sync)是多Camera硬件同步的核心信号线。HAL层开发人员必须理解这两种信号在驱动配置中的差异。

3.4.1 FSIN(帧同步输入)

FSIN通常是一个外部触发输入引脚,Camera Sensor在接收到FSIN上升沿后开始曝光。适用于需要精确控制曝光起始时刻的场景。

// HAL层FSIN配置示例(伪代码)
struct sensor_fsin_config {
    uint32_t fsin_pin;          // GPIO编号
    uint32_t fsin_polarity;     // 0:上升沿触发, 1:下降沿触发
    uint32_t fsin_delay_us;     // 触发后延迟曝光时间
    uint32_t fsin_mode;         // 0:单次触发, 1:连续触发
};

// 配置从Camera为Slave模式
ioctl(sensor_fd, VIDIOC_S_FSIN_CONFIG, &fsin_cfg);

3.4.2 VSYNC(垂直同步)

VSYNC是Sensor输出的帧同步信号,表示一帧数据传输的开始。在多Camera系统中,主Camera的VSYNC可以作为从Camera的FSIN输入。

信号类型 方向 典型电平 HAL配置项
FSIN 输入(从SoC到Sensor) 1.8V / 3.3V V4L2_CID_FSIN_CONFIG
VSYNC 输出(从Sensor到SoC) 1.8V V4L2_CID_VSYNC_IRQ
HSYNC 输出(行同步) 1.8V V4L2_CID_HSYNC_POLARITY
FSIN / VSYNC 信号连接拓扑 主Camera VSYNC输出 从Camera FSIN输入 VSYNC → FSIN SoC GPIO I²C配置 I²C配置

3.5 HAL层拓扑适配策略总结

针对上述四种拓扑,HAL层在初始化阶段需要执行不同的适配逻辑:

  1. 独立模组: 启用软件时间戳校准线程,周期性计算各Camera的帧偏移量并补偿。
  2. 双目模组: 优先检测硬件触发线,若存在则配置为Slave模式;否则退化为软件同步。
  3. ToF+RGB组合: 配置曝光窗口对齐参数,在驱动层插入VDELAY调整。
  4. FSIN/VSYNC信号: 在设备树(DTS)中声明GPIO复用关系,确保中断优先级一致。
核心原则: 硬件拓扑决定同步上限,HAL层实现决定同步精度。在AR系统中,帧偏移应控制在±500μs以内,否则会导致明显的视觉抖动和深度误差。