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的外部接口、内部实现方式一般都天差地别,但是核心流程思想均不变,如下图所示:
开始,枚举设备,然后根据自身的业务选择需要连接的相机设备,并连接。连接完成后可以执行取流操作,从设备中获取流数据。当完成工作后,执行断开连接,并释放相关资源。这样就完成了整个的调用。
更多机器视觉分享,欢迎关注“汉振智能”....