3. 硬件触发方案

各位同学,今天我们来聊聊硬件触发方案。说实话,这是多摄像头同步里最“硬核”的一块。软件同步再怎么折腾,精度也受限于操作系统调度。真要达到微秒甚至纳秒级的同步,还得靠硬件。

我个人习惯把硬件触发分成三类:GPIO触发、PWM触发、以及外部信号发生器。每种方案都有自己的脾气,选错了,后期调试会让你怀疑人生。

3.1 GPIO触发:最基础,也最容易踩坑

GPIO触发,说白了就是拉一根线,给个电平跳变。传感器检测到上升沿或下降沿,就开始曝光。听起来简单吧?但我在项目中遇到过不少问题。

基本原理:

  • 主控(MCU/FPGA)拉高或拉低一个GPIO引脚
  • 所有摄像头的触发引脚并联到这条线上
  • 传感器内部检测到边沿信号,启动曝光

关键参数:

  • 触发电压阈值:TTL(5V/3.3V)还是LVCMOS(1.8V)?
  • 最小脉冲宽度:传感器要求的高电平持续时间
  • 上升/下降时间:影响同步精度

嗯,这里要注意。GPIO触发最大的问题是——信号完整性。你想想看,如果线长了,或者地回路不好,触发信号上会有毛刺。传感器可能误触发,或者干脆不触发。

避坑指南:

我曾经在一个项目中,用GPIO触发4个摄像头,结果有两个总是丢帧。查了两天,最后发现是GPIO驱动能力不够,信号沿太缓。后来加了一个74HC14施密特触发器整形,问题就解决了。

3.2 PWM触发:灵活但复杂

PWM触发,就是用固定频率的方波来驱动摄像头。每个周期产生一个触发信号。这种方式适合需要固定帧率的场景。

PWM触发的优势:

  • 帧率精确可控(取决于晶振精度)
  • 可以调节占空比来控制曝光时间
  • 多个摄像头共享同一路PWM信号

但说实话,PWM触发也有坑。我记得有一次,客户要求30fps的同步采集。我用PWM输出33.33ms周期的方波,结果发现摄像头实际帧率是29.97fps。为什么?因为PWM的时钟源和传感器的PLL不是同一个晶振,长期运行下来会有累积误差。

我的建议:

如果要用PWM触发,最好把主控和摄像头共用一个时钟源。或者用FPGA内部的PLL产生同步时钟,这样能保证长期同步的稳定性。

3.3 外部信号发生器:专业级方案

当精度要求达到纳秒级时,GPIO和PWM都不够看了。这时候就得请出外部信号发生器。说白了,就是一个专用的脉冲发生器,比如泰克AFG31000系列或者更专业的同步控制器。

典型架构:

外部信号发生器
    │
    ├── 通道1 → 摄像头1触发
    ├── 通道2 → 摄像头2触发
    ├── 通道3 → 摄像头3触发
    └── 通道4 → 摄像头4触发

这种方案的好处是:

  • 通道间延迟可以精确控制(皮秒级)
  • 可以输出任意波形(方波、脉冲串、甚至自定义序列)
  • 独立于主控系统,不受CPU负载影响

但代价也很明显——贵。一台好的信号发生器几千到几万块。而且需要额外的同步线缆和接口。

3.4 硬件触发延迟与抖动分析

好了,方案讲完了。但真正决定同步质量的是两个指标:延迟和抖动。

延迟(Latency): 从触发信号发出到传感器开始曝光的时间差。

抖动(Jitter): 多次触发之间延迟的变化量。

我画了一张图,帮你理解这两个概念:

硬件触发延迟与抖动示意图 触发信号 上升沿 摄像头1 延迟1 摄像头2 延迟2 抖动 = |延迟1 - 延迟2| 触发信号 摄像头1响应 摄像头2响应 抖动

你看这张图。触发信号发出后,摄像头1和摄像头2的响应时间不一样。这个差值就是延迟。而多次触发时,这个差值的变化就是抖动。

影响延迟和抖动的因素:

因素 对延迟的影响 对抖动的影响
信号传输线长度 每米约5ns 线缆质量差时增大
传感器内部PLL锁定时间 几十微秒到几毫秒 温度变化时增大
GPIO驱动能力 驱动弱则延迟大 负载变化时抖动明显
外部信号发生器精度 可忽略 取决于晶振稳定性

实测数据(来自我之前的项目):

  • GPIO触发:延迟约200ns,抖动约±50ns
  • PWM触发:延迟约100ns,抖动约±20ns
  • 外部信号发生器:延迟约5ns,抖动约±1ns

你可能会问:这些抖动对实际拍摄有多大影响?嗯,这要看你的应用场景。如果是拍高速运动的物体,比如子弹飞行,1ns的抖动可能就导致图像错位好几个像素。但如果是拍静态场景,几十纳秒的抖动根本看不出来。

我的经验:

做多摄像头同步时,我一般先测一下系统的本底抖动。方法很简单:把所有摄像头对准同一个静态目标,采集100帧,然后计算每帧之间的时间差。如果抖动小于一个像素的曝光时间,那基本就够用了。

好了,硬件触发方案就讲到这里。记住一句话:没有最好的方案,只有最合适的方案。GPIO便宜但精度有限,PWM灵活但需要时钟同步,外部信号发生器精度高但成本也高。选型时,先搞清楚你的精度要求,再决定用哪种。

最后提醒:

不管用哪种方案,一定要在原理图阶段就把触发信号的走线规划好。别等到PCB打样回来才发现信号线绕了一大圈,那时候改就来不及了。我曾经就吃过这个亏,后来不得不飞线解决,那叫一个难看。