4. 触发信号时序

聊到触发信号,很多工程师第一反应就是「给个脉冲,相机就拍了」。但实际项目里,信号怎么给、什么时候给、给了之后相机什么时候真正开始曝光,这里面的门道可不少。

我见过不少现场调试的同事,拿着示波器一脸懵——明明触发了,图像就是不对。说白了,就是没搞懂触发信号的时序细节。

这一节,咱们就把触发信号的几个核心概念掰开揉碎。上升沿、下降沿、触发延迟、触发抖动,一个一个说清楚。

4.1 上升沿触发 vs 下降沿触发

触发信号本质上是一个电平跳变。相机检测到这个跳变,就开始执行一次采集动作。

上升沿触发:信号从低电平(0V 或逻辑 0)跳变到高电平(3.3V/5V 或逻辑 1)的那个瞬间,相机响应。

下降沿触发:信号从高电平跳变到低电平的那个瞬间,相机响应。

你可能会问:这俩有啥区别?不都是跳一下吗?

嗯,区别大了。我举个例子你就明白了。

关键点:上升沿和下降沿的选择,取决于你的传感器和控制器之间的信号同步方式。

触发方式 检测边沿 典型应用场景 注意事项
上升沿触发 低→高 PLC 输出高电平脉冲、光电传感器 NPN 输出 信号上升时间需小于相机最小脉宽要求
下降沿触发 高→低 编码器 Z 相脉冲、PNP 传感器输出 下降沿可能伴随振铃,需加施密特触发器

我在一个锂电池检测项目里遇到过这么个事。现场用的光电传感器是 NPN 输出,默认高电平,有物体遮挡时拉低。按理说应该用下降沿触发。结果调试工程师设成了上升沿,相机在物体离开时才触发,拍到的全是空工位。折腾了一上午才找到原因。

个人习惯:我一般拿到传感器先看 datasheet,确认静态电平。然后拿示波器看实际波形,再决定用上升沿还是下降沿。别想当然。

4.2 触发延迟(Trigger Delay)

触发延迟,指的是相机收到触发信号到真正开始曝光之间的时间差。

为什么会有这个延迟?

原因有几个:

  • 信号在电缆中传输需要时间(虽然很短,但高频下不可忽略)
  • 相机内部的光耦隔离电路有响应时间
  • 相机固件处理触发指令需要几个时钟周期
  • 传感器行扫描初始化需要时间(尤其是全局快门传感器)

这个延迟通常是多少?

不同相机差异很大。我测过的一些工业相机:

相机类型 典型触发延迟 备注
USB3 卷帘快门 50~200 μs 受 USB 总线调度影响
GigE 全局快门 10~50 μs 网络延迟波动较大
Camera Link 高速相机 1~10 μs 延迟最稳定
CoaXPress 高端相机 < 1 μs 几乎无感

你可能会想:几十微秒,能有多大影响?

我告诉你,在高速运动场景下,影响非常大。举个例子:

一条产线速度 2 m/s,触发延迟 100 μs。那相机实际曝光位置比触发位置偏移了 0.2 mm。如果你的检测精度要求 ±0.1 mm,那直接就废了。

避坑指南:我曾经在一个 PCB 检测项目里,忽略了触发延迟。结果拍出来的板子位置总是不对,以为是机械安装问题。后来用示波器一量,发现触发延迟有 80 μs,加上运动补偿才解决。所以,做高速检测时,一定要把触发延迟算进系统误差里。

4.3 触发抖动(Jitter)

触发抖动,是触发信号实际到达时刻与理想时刻之间的随机偏差。

说白了,就是每次触发的时间点不完全一样,有波动。

抖动和延迟的区别:

  • 延迟是固定的,可以补偿
  • 抖动是随机的,无法精确补偿

抖动的来源:

  1. 信号源抖动:PLC 或编码器输出的脉冲本身就有抖动
  2. 传输路径抖动:电缆长度、接口接触不良、电磁干扰
  3. 相机内部抖动:时钟晶振的相位噪声、PLL 锁定误差
  4. 软件触发抖动:操作系统调度延迟、USB 总线竞争

抖动的单位通常是纳秒到微秒级。但在高精度应用中,这个抖动就是致命伤。

记住这个原则:触发抖动必须小于曝光时间的 1/10,否则图像亮度会不一致。

举个例子:

曝光时间 100 μs,触发抖动 ±20 μs。那实际曝光窗口变成了 80~120 μs 之间随机。拍出来的图像,有的亮有的暗。在视觉检测里,这种亮度波动会导致误判率飙升。

4.4 触发信号时序图

下面这张图,把上升沿、下降沿、触发延迟、触发抖动的关系画清楚了。

触发信号时序关系图 触发信号 上升沿 下降沿 曝光信号 触发延迟 抖动范围 上升沿触发 → 触发延迟 → 曝光开始 → 曝光结束。抖动影响触发时刻的稳定性。

4.5 实际调试中的注意事项

讲完了概念,咱们聊聊实战中怎么处理这些问题。

1. 用示波器量触发信号

别信 datasheet,别信 PLC 工程师说的「没问题」。拿示波器夹在相机触发输入端,看实际波形。重点关注:

  • 上升/下降时间是否在相机规格内
  • 是否有振铃或毛刺
  • 脉冲宽度是否满足相机最小要求
  • 抖动幅度有多大

2. 设置合理的触发延迟补偿

如果触发延迟是固定的,可以在相机参数里设置一个「触发延迟补偿值」。很多工业相机都支持这个功能。比如 Basler 的 TriggerDelay 参数,可以设 0~1000 μs。

3. 减少抖动的方法

  • 使用差分信号传输(RS-422/485)代替单端信号
  • 触发线用双绞屏蔽线,远离动力线
  • 在相机端加施密特触发器或光耦隔离
  • 尽量用硬件触发,别用软件触发
  • 如果必须用软件触发,用实时操作系统或专用触发卡

一个小技巧:我习惯在触发线上串一个 100Ω 电阻,靠近相机端。能有效抑制反射引起的抖动。这招在长距离传输时特别管用。

4. 多相机同步时的时序问题

多台相机同时触发,看起来简单,做起来坑很多。每台相机的触发延迟不一样,抖动也不一样。结果就是:同一时刻触发,但曝光开始时间不同。

解决办法:

  • 用同一个触发源,走等长线缆
  • 每台相机单独测量触发延迟,分别补偿
  • 或者用专用的多相机同步控制器

4.6 总结一下

触发信号的时序,说白了就是「什么时候给信号、信号什么时候到、相机什么时候响应、响应有多稳定」这四个问题。

上升沿和下降沿是触发方式的选择,取决于你的传感器输出特性。

触发延迟是固定的时间偏移,可以测量、可以补偿。

触发抖动是随机的波动,只能抑制、无法消除。

做项目时,我建议你养成一个习惯:拿到新相机和新传感器,先搭个简单测试台,用示波器把触发时序摸清楚。这一步花不了多少时间,但能省掉后面几天的调试痛苦。