2. Basler相机硬件接口与触发机制

在多相机同步采集系统中,接口类型决定了带宽上限、线缆长度、触发延迟和可扩展性,而触发机制决定了多台相机能否在同一时刻曝光。Basler 相机常见的三类接口是 GigE Vision、USB3 Vision 和 Camera Link,它们分别面向不同的距离、带宽和实时性需求。理解它们的物理层特性与触发信号路径,是后续设计同步方案的基础。

三种接口的物理层与协议特性

GigE Vision 基于千兆以太网物理层,使用标准 RJ45 线缆,单链路理论带宽 1 Gbps(约 125 MB/s),实际有效载荷约 100~115 MB/s。它的最大优势是线缆长度可达 100 米(配合交换机可更长),并支持 PoE 供电,非常适合多相机分布式部署。GigE Vision 的 GVCP 负责寄存器读写与触发配置,GVSP 负责图像流传输。需要注意的是,GigE 的触发包通过网络传输,存在微秒到毫秒级的抖动,且交换机转发会引入额外延迟,因此它更适合对同步精度要求在几十微秒到毫秒级的场景。

USB3 Vision 基于 USB 3.0 物理层,理论带宽 5 Gbps(约 625 MB/s),实际有效载荷约 350~400 MB/s,明显高于 GigE。它使用标准 USB 3.0 Type-A/B 或 Micro-B 线缆,线缆长度通常限制在 3~5 米,且不支持长距离供电。USB3 Vision 的触发同样通过主机发送控制请求实现,但由于 USB 是主机轮询式总线,多相机同时触发时存在总线仲裁和调度延迟,抖动通常在几十微秒量级。它适合相机数量少、带宽需求高、距离近的桌面级或机架内系统。

Camera Link 是专为机器视觉设计的并行数字接口,基于 LVDS 差分信号,分为 Base、Medium、Full 三种配置。Base 配置使用 1 对时钟 + 3 对数据,带宽约 2.04 Gbps(255 MB/s);Full 配置使用 1 对时钟 + 7 对数据,带宽约 5.44 Gbps(680 MB/s)。Camera Link 的最大特点是确定性延迟:触发信号通过专用的 CC(Camera Control)差分线直接进入相机,不经过任何网络协议栈或主机调度,触发到曝光的延迟可稳定在纳秒到微秒级。其代价是线缆粗、长度通常不超过 10 米,且需要专用的采集卡,成本较高。对于要求多相机曝光同步精度在微秒以内的系统,Camera Link 仍是首选。

三种接口的触发信号路径与同步精度对比 GigE Vision 带宽 ≈ 100–115 MB/s | 线缆 ≤ 100 m | 触发抖动 ≈ 100 μs–1 ms 主机 / 软件触发 GVCP 触发包 交换机 / 网络栈 GVSP 流 相机曝光 ⚠ 网络抖动 + 交换机延迟 USB3 Vision 带宽 ≈ 350–400 MB/s | 线缆 ≤ 3–5 m | 触发抖动 ≈ 10–50 μs 主机 / 软件触发 USB 控制请求 USB 主机控制器 批量传输 相机曝光 ⚠ 总线仲裁 + 轮询调度 Camera Link 带宽 ≈ 255–680 MB/s | 线缆 ≤ 10 m | 触发抖动 ≈ 纳秒–微秒级 采集卡 / 硬件触发 CC 差分线 LVDS 直连 像素时钟同步 相机曝光 ✓ 确定性延迟,无协议栈

硬件触发与软件触发的原理差异

触发机制的核心问题是:曝光起始时刻由谁决定、经过哪些环节、延迟是否可预测。

软件触发由主机端程序通过 SDK 发送触发命令。以 pylon SDK 为例,调用 Grab_One() 或设置 TriggerMode=On 后发送 TriggerSoftware 命令。该命令需要经过驱动、总线协议栈、相机固件解析,最终写入相机的触发寄存器。对于 GigE 相机,这一路径包含网络协议栈和交换机转发;对于 USB3 相机,包含 USB 主机控制器调度。因此软件触发的延迟不可精确预测,多相机之间的触发偏差通常在几十微秒到毫秒级。它的优点是无需额外接线,配置灵活,适合单相机或对同步精度要求不高的多相机场景。

硬件触发通过相机的 I/O 接口(如 Hirose 6-pin 或 12-pin 连接器)接收外部电信号。Basler 相机的硬件触发输入通常为光耦隔离,支持 3.3~24 V 电平,可配置上升沿或下降沿有效。触发信号直接进入相机的 FPGA 或触发控制器,绕过通信协议栈,因此延迟极低且确定。在多相机系统中,通常由同一信号源(如编码器、光电传感器或可编程触发控制器)同时向所有相机发送触发脉冲,各相机在同一个物理边沿上启动曝光,同步精度可达微秒级甚至更高。

硬件触发还支持触发延迟(Trigger Delay)和触发分频(Trigger Divider)等参数。例如,设置 TriggerDelay=100.0 μs 可让相机在收到触发后延迟 100 μs 再曝光,用于补偿不同相机之间的固定安装偏差或线缆延迟。触发分频则用于降低触发频率,例如输入 100 Hz 触发信号、设置分频系数为 10,相机实际以 10 Hz 曝光。

接口与触发的匹配选择

在实际系统设计中,接口和触发方式需要联合决策。以下是一份面向多相机同步采集的选型参考表,参数为典型值,具体以相机型号手册为准。

对比项 GigE Vision USB3 Vision Camera Link
典型带宽 100–115 MB/s 350–400 MB/s 255–680 MB/s
线缆长度 ≤ 100 m ≤ 3–5 m ≤ 10 m
触发方式 软件触发 / 硬件触发(I/O) 软件触发 / 硬件触发(I/O) 硬件触发(CC 线)
多相机同步精度 约 100 μs–1 ms 约 10–50 μs 纳秒–微秒级
典型适用场景 分布式、长距离、中等帧率 近距离、高带宽、少相机 高精度同步、高帧率、固定工位
实践提示:若系统要求多相机曝光同步误差小于 10 μs,优先选择 Camera Link 或带硬件触发 I/O 的 GigE/USB3 相机,并由同一硬件信号源统一触发。若仅需软同步且误差容忍在毫秒级,可使用软件触发配合 PTP(IEEE 1588)时间戳对齐,降低布线复杂度。

选择接口时,先确认单相机满帧率下的数据率是否超过接口有效带宽的 70%,再根据同步精度要求决定触发方式。例如,一台 500 万像素、8 bit、100 fps 的相机,数据率约为 500 MB/s,已超过 GigE 和 USB3 的单口有效带宽,需要采用 Camera Link Full 或双 GigE 聚合方案。触发方面,若该相机用于多工位同步检测,则应使用硬件触发并确保所有相机共用一个触发源。

触发信号的电平与接线要点

Basler 相机的硬件触发输入通常采用光耦隔离,接线时需注意:外部触发源的地与相机 I/O 地不共地时,应使用隔离触发;触发脉冲宽度需大于相机手册规定的最小值(常见为 1~10 μs);长线缆传输时建议使用双绞线并加终端匹配,避免反射造成误触发。对于 Camera Link,触发信号通过采集卡的 CC 通道输出,需在采集卡配置软件中设置 CC 极性、脉冲宽度和输出模式(如曝光期间输出高电平)。

软件触发虽然接线简单,但在多相机场景下应避免使用主机依次发送触发命令的方式,因为操作系统调度和总线竞争会放大相机之间的时间偏差。若必须使用软件触发,可借助 PTP 或硬件时间戳,让各相机在收到触发命令后基于同一时间基准延迟曝光,从而把同步误差压缩到可接受范围。