GigE Vision通信协议
同步且实时:
在GigE网络中实现多台相机的同步操作
许多应用需要从多个相机同步捕捉图像。这些应用包括从三角法3D任务、到体育和运动分析、到传送带监测应用。本次实验也是需要控制两台工业相机进行同步采集图像,拟采用千兆网交换机连接两台相机,利用GigE Vision 2.0标准的功能实现同步图像采集,其基础是精确时间协议(PTP,IEEE1588)。PTP是在一个计算机网络上的多个设备之间实现精确时间同步的网络协议。
1.GigE Vision 简介
GigE Vision是由AIA制定的通信协议,用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传输。该标准是基于UDP协议,与普通网络数据包不同之处在于应用层协议,应用层协议采用GVCP(GigE Vision控制协议)和GVSP(GigE Vision流传输协议),分别用来对相机进行配置和数据流的传输。图像采集系统软件的实现就是基于这两种协议。下图所示为TIP/IP协议和GigE Vision协议的对比:
GigE Vision定义了主机如何发现、控制千兆以太网相机以及从一个或多个GigE相机采集图像。GigE Vision标准充分利用千兆以太网的几个特征:
- 采用5类双绞线,成本低,无需集线器就可以传输一百米,传输带宽高达125MByte/s
- 网络化:组建一个网络,可以从多个相机采集图像,所有相机共享同一个带宽;
- 支持巨帧模式:GigE Vision相机几乎都支持巨帧模式,运行数据包大小为9014个字节,传输大容量数据包效率高;
当一个GigE Vision设备上电后,它会尝试按照下面的顺序获得IP地址:
(1) 固定IP,如果分配了固定IP,将会采用该IP地址;
(2) DHCP服务器,如果没有被分配IP地址,它将在网络上搜索DHCP服务器,并请求分配IP地址;
(3) 如果上述两种方法都失败,它将自动假设一个169.254.x.x的IP地址,然后查询网络中该IP地址是否被占用,如果没有,则使用该IP,否则,重复该过程,直到找到一个没有被占用的IP地址;
由于相机可能在任何时候加入到网络中,所以驱动器必须有一些方法来搜索新的相机。为了实现该功能,驱动器会周期性地向网络中广播一个搜索消息包,每个兼容GigeVision的相机在收到该消息后都用自己的IP地址进行应答。下面的算法描述了设备搜索过程:
(1) 主机应用程序以广播的方式向网络中发送搜索消息帧,该消息帧中包含主机的MAC地址和IP地址;
(2) 网络中的所有GigE设备一直在GVCP端口侦听网络状态,当发现有搜索消息帧在网络中传输时就会接收该广播帧。对消息帧进行解包分析后,会将自身相关的配置信息填充到搜索应答器中,这些消息包含GigE设备型号、制造商、IP地址,MAC地址等,最后以单播的方式向主机发送搜索消息应答帧;
(3) 主机应用程序接收到该应答帧,根据需要进行相应的处理,即完成了一次网络GigE设备的搜索过程,相机搜索过程如下图所示:
GVCP协议:
GVCP允许应用程序配置和控制GigE相机,应用程序使用UDP协议发送命令,并等待设备响应,然后发送下一命令,该机制弥补了UDP协议的面向无连接缺点,保证了数据传输的完整性和可靠性。
GVSP协议:
该协议定义了GVSP发射机如何发送图像数据、图像状态等信息到GVSP接收机,GVSP数据包总是在GVSP发射机和接收机之间传输。GVSP通过GVCP对数据包的传输提供了一种可靠性机制。
2.图像捕捉的要求是什么?
要实现同步或实时操作,通常通过相机上的专用I/O端口的数字信 号触发图像采集。采用这种设置时,每个相机必须使用配备合适插 头的额外电缆连接。这样不仅安装更加复杂,而且成本更高,特别 是如果需要高质量电缆(如那些用于拖链应用的相机)的情况下更是如此。
目前,GigE Vision 2.0标准提供了另一种简单方式,无需额外布线, 即可同步和(或)实时操作相机。此外,更进一步的优势是,许多应用现已不再需要单独搭配触发盒,而是直接通过软件进行相机触发,包括实现同步操作。
GigE Vision 2.0主要组件包括:
- 通过PTP(精确时间协议,IEEE 1588)为所有网络组件提供的共享高精度时间源;
- 相机同步自由运行;
- 使用动作命令或计划动作命令通过以太网触发;
3.基于网络的时间同步:精确时间协议(PTP,IEEE 1588)
精确时间协议定义网络组件(如GigE Vision相机)在连接到一个以太网网络时,如何以完全同步的系统时间运行。
典型的PTP兼容网络设置——所有组件都有相同的系统时间
根据给定的网络组件的PTP就位状态是在硬件还是软件层级实现的,PTP提供从几微秒到几纳秒的精度范围。在此网址提供了PTP实施列表:List of PTP implementations - Wikipedia
4.工业相机如何在交换机上使用?
需保证交换机是千兆网交换机。
对非网管交换机,首先应保证电脑网卡IP地址与相机IP地址在同一个网段,但不能重复,可以多相机一个一个接入网卡,设置完成后再接入下一个,避免相机都是出厂默认IP(192.168.1.200)而引起相机IP冲突,对于网管交换机请参考网管交换机说明进行设定。
5.多相机使用千兆网交换机,采集出现各种数据异常?
由于交换机本身和网卡直接通过单一网线连接,而多个相机同时使用会导致这个带宽不足,可能引起数据丢失等各种问题,建议用户使用交换机扩展多相机时,相机分时曝光及传输,间隔大约大于20ms即可(依用户交换机性能),对于分时后仍不能正常采集,在Demo中调小包大小,更重要的是调大包延迟(给交换机足够的处理时间)。我做实验时也遇到过这个问题,会出现掉帧等情况,后续还要继续调试自己的代码。
参考链接:https://blog.csdn.net/carson2005/article/details/56030625