硬件同步Hardware Synchronization)是用共享时钟、触发脉冲、同步输入输出脚或专用总线,让多个设备在物理事件发生时刻上对齐,而不是事后只按软件时间戳对齐。

在相机场景里,硬件同步关注的是传感器曝光起点、帧起点或 strobe 信号,而不是应用程序收到帧的时间。

核心问题

多个传感器各自有晶振、缓冲和通信链路。即使程序“同时启动”,设备内部时钟也会漂移,USB、网络或串口传输也会引入不稳定延迟。硬件同步要把关键事件从“主机猜测”变成“电气信号约束”。

核心对象

对象含义
master clock产生统一时间或触发节拍的源
trigger pulse表示采集事件的电平边沿或脉冲
slave device接收同步信号并按该信号采集的设备
exposure window相机真正积分光信号的时间段
jitter实际事件相对理想事件的随机偏差
skew多个设备时钟速率不一致造成的长期偏移变化

核心机制

以多相机触发为例:

  1. 触发器在时刻 t_k 输出一个脉冲。
  2. 每台相机的 trigger input 接收到同一个边沿。
  3. 相机固件把下一帧曝光起点锁定到 t_k + delta_i
  4. 如果设备延迟 delta_i 已知且稳定,多相机曝光差可以被限制在很小范围内。
  5. 图像随后通过 USB、以太网或其他总线传输;传输到达时间可以不同。

同步误差通常关心:

error_ij(k) = abs((t_k + delta_i) - (t_k + delta_j))

这里 ij 是两台设备,k 是第 k 次触发。t_k 会被抵消,剩下的是设备输入电路、固件响应和传感器启动曝光的差异。硬件同步的目标是让 error_ij(k) 小于应用允许的阈值。

工程用途

  • 多相机三维重建和双目测距。
  • 机器人数据采集中对齐图像、关节状态、力传感器和控制周期。
  • 高速检测中固定光源、相机和被测物之间的时间关系。
  • 主从设备协同,例如一台相机输出 strobe,另一台设备记录曝光事件。

边界与常见坑

  • 硬件同步不保证低传输延迟;它保证的是采集事件更可控。
  • 有触发输入不代表所有模式都支持触发;某些分辨率、压缩格式或高帧率下可能禁用。
  • 全局快门 有助于让一帧内部时间一致,但不自动提供同步输入。
  • 触发线要匹配电平、边沿、脉宽、终端电阻和接地,否则会出现漏触发或误触发。
  • 当曝光时间超过触发周期时,设备可能丢帧、降帧、过曝或进入未定义行为。

相关术语