走进汉振
INTO HANCHINE
汉振分享 | GigEVision——连接机器视觉眼睛与大脑的桥梁
日期:2019年08月15日

GigE Vision是由自动化影像协会AIA发起指定的一种基于千兆以太网的图像传输标准。在工业机器视觉产品的应用中,GigE Vision允许用户在很长距离用廉价的标准线缆进行快速图像传输。该标准基于UDP协议,应用层协议采用GVCP(GigE Vision控制协议)与GVSP(GigE Vision流传输协议),分别用来对相机进行配置和数据流的传输,解决了标准千兆网的两个问题,即传输效率低与CPU占用率过高,因此在工业相机领域得到了大范围的应用。


GigE Vision协议与传统通讯协议TCP\IP的区别如下:


协议基于UDP,在应用层使用GVCP与GVSP协议来完成控制与数据流传输。


GigE Vision协议支持应用程序枚举网段内在线的相机,枚举流程如下:


应用程序在执行枚举流程时,会通过组播或者广播方式往所有局域网内的3956端口发送Discovery报文,设备端接收到该报文后,获取自身的属性,生成回复报文并回复给应用程序,应用程序则可以发现该设备并获得该设备的属性。


该协议允许应用程序配置和控制GigE相机,应用程序使用UDP协议发送命令,并等待设备响应,然后才能发送下一命令,弥补了UDP协议的面向无连接的缺陷,保证数据传输的完整性与可靠性。流程如下图所示:


可以看到,应用层调用GVCP协议控制相机时,在应用层数据组装成了GVCP包,包含GVCP头与GVCP数据,通过UDP层发送到设备端。设备端接收到GVCP包之后,处理包的请求,处理完成后回复给应用层处理结果,同时回复包中ack_id与req_id保持一致,供应用层来校验包。


该协议定义了GigE相机(GVSP发送机)如何发送图像数据,图像状态到应用程序(GVSP接收机),GVSP通过GVCP对数据包的传输提供了一种可靠性机制。


在GVSP协议中,传输单位为Block,一个完整的Block由DataLeader、Data Payload与Data Tailer构成。设备端(GVSP发送机)在生成流数据后,组装GVSP包并通过GVSP流数据传输通道发给应用层(GVSP接收机),并由应用层解析数据并在软件中使用该数据。


GenICam为相机提供了一个统一的编程接口,它要求每个相机必须提供一份XML设备描述文件,该文件里面描述了一份可视化的节点数据,包含了节点的名称、节点的类型、寄存器地址以及各种约束。


通常,每个提供GigE Vision相机设备的厂家都会提供配套的开发SDK,SDK的外部接口、内部实现方式一般都天差地别,但是核心流程思想均不变,如下图所示:


开始,枚举设备,然后根据自身的业务选择需要连接的相机设备,并连接。连接完成后可以执行取流操作,从设备中获取流数据。当完成工作后,执行断开连接,并释放相关资源。这样就完成了整个的调用。


更多机器视觉分享,欢迎关注“汉振智能”....