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)
触发抖动,是触发信号实际到达时刻与理想时刻之间的随机偏差。
说白了,就是每次触发的时间点不完全一样,有波动。
抖动和延迟的区别:
- 延迟是固定的,可以补偿
- 抖动是随机的,无法精确补偿
抖动的来源:
- 信号源抖动:PLC 或编码器输出的脉冲本身就有抖动
- 传输路径抖动:电缆长度、接口接触不良、电磁干扰
- 相机内部抖动:时钟晶振的相位噪声、PLL 锁定误差
- 软件触发抖动:操作系统调度延迟、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 总结一下
触发信号的时序,说白了就是「什么时候给信号、信号什么时候到、相机什么时候响应、响应有多稳定」这四个问题。
上升沿和下降沿是触发方式的选择,取决于你的传感器输出特性。
触发延迟是固定的时间偏移,可以测量、可以补偿。
触发抖动是随机的波动,只能抑制、无法消除。
做项目时,我建议你养成一个习惯:拿到新相机和新传感器,先搭个简单测试台,用示波器把触发时序摸清楚。这一步花不了多少时间,但能省掉后面几天的调试痛苦。