3、多相机硬件同步方案:硬件触发、PWM同步、外部信号发生器、多相机级联
多相机系统里,同步是绕不开的坎。软件同步精度通常在毫秒级,对于高速运动检测、3D重建这些场景,根本不够用。我见过不少项目,软件同步跑得挺好,一上产线就出问题——说白了,就是没搞定硬件层面的时序对齐。
这一章,我们聊聊四种主流的硬件同步方案。每种方案都有它的适用场景,也有各自的坑。我会结合自己的项目经验,把关键点讲透。
3.1 硬件触发(Trigger)——最基础的同步方式
硬件触发,就是用一根信号线告诉相机“开始曝光”。所有相机收到同一个信号,理论上在同一时刻开始采集。这是最简单、最可靠的同步方式。
我最早接触多相机项目时,用的就是硬件触发。当时做的是PCB板缺陷检测,四台相机同时拍不同区域。触发信号来自PLC,通过一个分线器同时发给四台相机。效果不错,帧间抖动控制在微秒级。
硬件触发接线要点:
- 触发信号线用屏蔽双绞线,避免电磁干扰
- 所有相机共地,否则信号电平可能不一致
- 触发信号电压要匹配相机IO口(常见5V/12V/24V)
- 信号线长度尽量一致,减少传输延迟差异
这里有个容易忽略的问题:触发信号的上升沿时间。如果信号线太长,上升沿会变缓,导致不同相机的触发时刻产生偏移。我遇到过一台相机总是比别的相机晚几十微秒触发,查了半天,发现是那根线多绕了一圈。
注意:硬件触发只能保证曝光开始时刻同步,不能保证曝光结束时刻同步。如果相机曝光时间不同,结束时刻会有差异。对于需要全局快门同步的场景,要配合闪光灯或电子快门。
3.2 PWM同步——灵活可调的同步信号
PWM(脉宽调制)同步,本质上是产生一个可调频率和占空比的方波信号。每个周期内,上升沿触发相机曝光,下降沿可以触发其他设备(如光源、编码器)。
PWM同步的好处是灵活。你可以通过调整频率来控制帧率,调整占空比来控制曝光时间。我做过一个项目,需要相机和激光轮廓仪同步工作。激光轮廓仪的采样频率是10kHz,相机帧率是100fps。用PWM信号做同步,上升沿触发相机,下降沿触发激光轮廓仪,完美对齐。
| 参数 | 说明 | 典型值 |
|---|---|---|
| 频率 | 决定帧率 | 1Hz~100kHz |
| 占空比 | 决定曝光时间比例 | 10%~90% |
| 电压 | 匹配相机IO电平 | 5V/12V/24V |
| 抖动 | 信号稳定性指标 | <1μs |
实现PWM同步有两种方式:
- PLC/PWM控制器:工业级方案,稳定可靠,适合产线环境
- 单片机/FPGA:灵活可编程,适合实验室或小批量项目
我个人习惯用FPGA做PWM发生器。精度高,延迟低,还能同时输出多路不同频率的信号。不过调试起来麻烦点,需要写Verilog代码。
3.3 外部信号发生器——高精度同步源
当同步精度要求达到纳秒级时,普通PLC或单片机就不够用了。这时候需要专用的信号发生器,比如泰克、安捷伦的脉冲发生器,或者工业级的同步控制器。
外部信号发生器的核心优势是低抖动(jitter)。好的信号发生器,抖动可以控制在皮秒级。这对于高速相机(千帧以上)和激光三角测量系统来说,至关重要。
我记得有个项目,客户要求四台高速相机同步拍摄子弹飞行轨迹。帧率是10000fps,曝光时间只有10微秒。如果用普通触发信号,抖动几十微秒,画面根本对不齐。最后用了泰克的AFG31000系列信号发生器,抖动小于1皮秒,问题解决。
选型建议:
- 精度要求<1μs:用PLC或单片机即可
- 精度要求<100ns:考虑专用信号发生器
- 精度要求<1ns:必须用射频级信号发生器
- 多通道输出:选择多通道同步型信号发生器
外部信号发生器也有缺点:贵。一台好的信号发生器,价格可能比相机还贵。所以,不是所有项目都需要。我一般只在高速场景或科研项目中使用。
3.4 多相机级联——菊花链同步
多相机级联,也叫菊花链(Daisy Chain)。相机之间通过专用接口连接,一台相机作为主设备,其他相机作为从设备。主相机产生同步信号,通过级联接口传给下一台相机,依次传递。
这种方案的好处是接线简单。不需要额外的信号发生器或分线器,只需要一根线把相机串起来就行。很多工业相机品牌(如Basler、FLIR、海康)都支持级联功能。
级联同步的精度取决于相机之间的传输延迟。一般来说,每级联一台相机,会增加几十纳秒到几微秒的延迟。如果级联数量不多(4~8台),延迟可以接受。但如果级联十几台,延迟累积就会很明显。
级联同步配置步骤:
- 设置主相机为Master模式,输出同步信号
- 设置从相机为Slave模式,接收同步信号
- 用级联线连接相机(注意接口类型:GPIO、Trigger、Sync)
- 配置同步信号参数(频率、脉宽、极性)
- 验证同步精度(用示波器或软件测试)
级联方案有个坑:如果中间某台相机掉电或故障,后面的相机都会失去同步信号。我曾经在产线上遇到过,一台相机电源松动,导致后面三台相机全部罢工。排查了半天才发现是级联链路断了。
建议:关键项目不要用纯级联方案。可以用“星型+级联”混合拓扑:主信号源分发给多个级联组,每个组内级联。这样即使某个组出问题,其他组还能正常工作。
3.5 四种方案对比与选型
说了这么多,到底选哪种?我整理了一个对比表,方便你快速决策。
| 方案 | 精度 | 成本 | 复杂度 | 适用场景 |
|---|---|---|---|---|
| 硬件触发 | μs级 | 低 | 低 | 通用工业检测 |
| PWM同步 | μs级 | 中 | 中 | 需要灵活帧率 |
| 信号发生器 | ns~ps级 | 高 | 中 | 高速/科研场景 |
| 多相机级联 | μs级 | 低 | 低 | 小规模多相机 |
选型时,我一般按这个思路来:
- 先看精度要求。μs级够用,就选硬件触发或级联
- 如果需要灵活调整帧率,考虑PWM
- 如果精度要求极高,别犹豫,上信号发生器
- 如果相机数量少(≤4台),级联最省事
你想想看,项目里最怕什么?不是技术难,是选错方案。选错了,后面怎么调都调不好。所以,前期花点时间把同步方案定下来,后面会省很多事。
3.6 同步方案知识结构图
下面这张图,把四种方案的核心逻辑和关系画出来了。你可以对照着看,加深理解。
3.7 实战经验总结
做了这么多年多相机项目,我总结了几条经验,分享给你:
- 先测再装:正式部署前,一定要用示波器测同步信号。我见过太多项目,线接好了,软件配好了,一跑发现不同步。查到最后,是信号线接反了。
- 预留余量:同步精度不要卡着指标选。比如要求10μs,你选个刚好10μs的方案,稍微有点干扰就超标。留50%余量比较稳妥。
- 考虑温度影响:产线环境温度变化大,信号线、连接器、相机内部电路都会受影响。高温下延迟会增加,低温下可能信号不稳定。
- 做好接地:多相机系统接地是个大问题。接地不好,共模干扰会耦合到同步信号上,导致误触发。我建议用星型接地,所有相机单独接地到同一个接地点。