6.3 # GigE Vision:半导体X光检测的高速图像传输协议

GigE Vision:半导体X光检测的高速图像传输协议

核心速览 :GigE Vision是AIA制定的工业机器视觉以太网标准,在中盾S700M中负责16位高清X射线图像实时传输 ,通过GVCP控制面+GVSP数据面 双协议架构,结合GenICam通用接口实现设备统一控制与2μm级图像无损传输,是S700M高精度检测的关键技术支撑。


一、协议本质与核心架构

1. 基本定义与定位

GigE Vision(千兆以太网视觉)是自动化成像协会(AIA) 于2006年发布的工业相机接口标准,基于IEEE 802.3以太网UDP/IP协议栈 ,专为机器视觉应用设计,实现未压缩高分辨率图像的长距离高速传输

在S700M中,GigE Vision承担X光探测器与上位机间的16位图像数据传输 ,保障2μm级超高分辨率图像无丢失、低延迟传输,是实现半导体封装内部缺陷检测的基础。

2. 双协议核心架构(GVCP+GVSP)
协议模块 全称 核心功能 传输特点 S700M应用场景
GVCP GigE Vision Control Protocol 设备发现、IP配置、参数读写、事件通知、丢包重传请求 低带宽控制流,基于UDP 探测器参数设置(曝光时间、增益)、CT扫描同步控制
GVSP GigE Vision Stream Protocol 图像数据传输、像素格式定义、帧同步 高带宽数据流,基于UDP 16位X射线图像实时传输,支持单帧/连续采集模式

二、GenICam集成:统一控制的关键

GigE Vision深度集成GenICam(Generic Interface for Cameras) 标准,这是S700M实现跨平台兼容与灵活控制的核心:

  1. GenApi:提供标准化参数访问接口,支持S700M探测器的所有可配置参数(如分辨率、曝光、帧率)
  2. GenTL:底层传输抽象层,实现Windows/Linux跨平台兼容,是Halcon等视觉软件与GigE相机通信的桥梁
  3. SFNC:标准特征命名规范,确保不同厂商设备参数命名一致,简化S700M上位机开发

关键机制:S700M探测器内置符合GenICam规范的XML描述文件,上位机通过解析该文件自动识别设备功能,无需针对特定硬件编写驱动。


三、S700M中的应用特性与优势

1. 核心应用场景
  • CT扫描图像传输:360°旋转采集的16位断层图像实时传输,保障重建精度
  • 缺陷检测数据采集:支持<10μm焊点空洞的图像细节传输,满足半导体封装检测需求
  • 多模态数据同步:与EtherCAT运动控制协议协同,实现"运动-曝光-采集"精确同步
2. 技术优势(对比其他接口)
对比项 GigE Vision(S700M) USB3 Vision Camera Link
传输距离 100米(Cat5e/Cat6),适合实验室布局 3米,限制设备摆放 10米,需专用线缆
带宽 1Gbps(理论),支持16位图像高速传输 5Gbps,但距离受限 6.8Gbps,成本高
同步能力 支持PTP/IEEE1588与Action Command,微秒级同步 一般,适合单相机 优秀,需额外硬件
扩展性 单交换机可连接多台设备,支持分布式架构 有限,依赖USB hub 差,需专用采集卡
成本 低(标准网线+网卡) 高(专用线缆+采集卡)

🚀 **CommunityToolkit.Mvvm

这是微软官方推荐的MVVM工具包 ,专门解决WPF/MVVM开发中重复写属性通知、命令、消息的痛点,也是你项目里正在用的核心库!


帮你偷懒,少写10倍代码!

不用手写 INotifyPropertyChanged 接口、不用手写 OnPropertyChanged、不用手写属性 get/set,一行标签自动生成全套MVVM代码。


项目里用到的 3 个核心功能

1. [ObservableProperty] → 自动生成属性(最常用)

原手写代码(10行)

csharp 复制代码
private double _targetX;
public double TargetX
{
    get => _targetX;
    set => SetProperty(ref _targetX, value);
}

用工具包(1行)

csharp 复制代码
[ObservableProperty]
private double _targetX;

✅ 自动生成:public double TargetX { get; set; } + 属性通知

✅ 命名规则:下划线小驼峰 _targetX → 大驼峰 TargetX


2. partial void OnXxxChanging → 属性赋值拦截

轴坐标限位的功能:

csharp 复制代码
// 赋值前触发,可修改value
partial void OnTargetXChanging(ref double value)
{
    value = Math.Max(0, Math.Min(value, 100));
}

✅ 作用:UI输入数值 → 自动拦截 → 超限修正 → 再赋值


3. WeakReferenceMessenger → 模块解耦消息

LogMessage/StartScanMessage 就是用它:

csharp 复制代码
// 发消息
WeakReferenceMessenger.Default.Send(new LogMessage("轴启动成功"));
// 收消息
WeakReferenceMessenger.Default.Register<LogMessage>(this, (_, msg) => {});

✅ 轴控VM、日志VM、图像VM 互相不依赖,靠消息通信


五、必备基础API

代码 作用
[ObservableProperty] 自动生成属性+通知
SetProperty(ref 字段, 值) 赋值+触发UI刷新
[RelayCommand] 自动生成按钮命令
WeakReferenceMessenger 跨VM消息通信

相关推荐
czhc11400756632 天前
5.30:多VM解耦 X光检测(曝光)(func<CancellationToken,Task> scanLogic)
视觉
czhc11400756632 天前
6.1EtherCAT工业架构:软主站,分布式时钟DC,PDO实时通信
视觉·运控
czhc11400756635 天前
529: XYScanAxis()类
mvvm·视觉·运控
czhc11400756636 天前
528:Halcon图像控件 启动轴状态实时监控
mvvm·视觉·运控
czhc11400756637 天前
5.27 :工业设备检测模式与安全防护详解
安全·mvvm·视觉·运控
czhc11400756639 天前
525:检测完善
mvvm·视觉
学不懂飞行器9 天前
【电赛保姆级教程】电赛视觉怎么选?怎么调?从OpenMV到边缘计算硬核避坑指南(附高鲁棒通信源码)
人工智能·stm32·边缘计算·电赛·视觉
czhc114007566311 天前
523:MVVM 检测业务
视觉
czhc114007566312 天前
ICommand 视觉、运控522
视觉