硬件同步(Hardware Synchronization)是用共享时钟、触发脉冲、同步输入输出脚或专用总线,让多个设备在物理事件发生时刻上对齐,而不是事后只按软件时间戳对齐。
在相机场景里,硬件同步关注的是传感器曝光起点、帧起点或 strobe 信号,而不是应用程序收到帧的时间。
核心问题
多个传感器各自有晶振、缓冲和通信链路。即使程序“同时启动”,设备内部时钟也会漂移,USB、网络或串口传输也会引入不稳定延迟。硬件同步要把关键事件从“主机猜测”变成“电气信号约束”。
核心对象
| 对象 | 含义 |
|---|---|
| master clock | 产生统一时间或触发节拍的源 |
| trigger pulse | 表示采集事件的电平边沿或脉冲 |
| slave device | 接收同步信号并按该信号采集的设备 |
| exposure window | 相机真正积分光信号的时间段 |
| jitter | 实际事件相对理想事件的随机偏差 |
| skew | 多个设备时钟速率不一致造成的长期偏移变化 |
核心机制
以多相机触发为例:
- 触发器在时刻
t_k输出一个脉冲。 - 每台相机的 trigger input 接收到同一个边沿。
- 相机固件把下一帧曝光起点锁定到
t_k + delta_i。 - 如果设备延迟
delta_i已知且稳定,多相机曝光差可以被限制在很小范围内。 - 图像随后通过 USB、以太网或其他总线传输;传输到达时间可以不同。
同步误差通常关心:
error_ij(k) = abs((t_k + delta_i) - (t_k + delta_j))这里 i、j 是两台设备,k 是第 k 次触发。t_k 会被抵消,剩下的是设备输入电路、固件响应和传感器启动曝光的差异。硬件同步的目标是让 error_ij(k) 小于应用允许的阈值。
工程用途
- 多相机三维重建和双目测距。
- 机器人数据采集中对齐图像、关节状态、力传感器和控制周期。
- 高速检测中固定光源、相机和被测物之间的时间关系。
- 主从设备协同,例如一台相机输出 strobe,另一台设备记录曝光事件。
边界与常见坑
- 硬件同步不保证低传输延迟;它保证的是采集事件更可控。
- 有触发输入不代表所有模式都支持触发;某些分辨率、压缩格式或高帧率下可能禁用。
- 全局快门 有助于让一帧内部时间一致,但不自动提供同步输入。
- 触发线要匹配电平、边沿、脉宽、终端电阻和接地,否则会出现漏触发或误触发。
- 当曝光时间超过触发周期时,设备可能丢帧、降帧、过曝或进入未定义行为。