新建   文章列表   相册  后台  网摘
 

Kreos

Kreos 无所不能

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中调小包大小,更重要的是调大包延迟(给交换机足够的处理时间)。我做实验时也遇到过这个问题,会出现掉帧等情况,后续还要继续调试自己的代码。

 


我需要开发一个 GigE Vision工业相机。帮我做一个开发方案
 
豆包
 

以下是一个GigE Vision工业相机的开发方案,涵盖了开发目标、技术分析、开发步骤、测试与优化等方面:

一、开发目标

设计并实现一款基于GigE Vision协议的工业相机,具备高速、稳定的图像采集和传输能力,适用于机器视觉、无人驾驶、医疗影像等领域。

二、技术分析

GigE Vision协议包含GVCP(GigE Vision Control Protocol)和GVSP(GigE Vision Streaming Protocol)两部分。GVCP负责对相机进行配置,采用指令(CMD)和应答(ACK)的方式,弥补了UDP协议面向无连接的缺点,保证了数据传输的完整性和可靠性;GVSP负责控制图像数据的传输,以数据块为单位进行数据传输,通常使用标准传输模式,包含头数据包、载荷数据包和尾数据包4

三、开发步骤

3.1 硬件设计

  • 图像传感器:选择适合应用场景的图像传感器,如高分辨率、高帧率的传感器。
  • 处理器:选用性能强大的处理器,用于处理图像数据和实现GigE Vision协议。
  • 以太网PHY:采用千兆以太网PHY芯片,如Marvell 88E1111或Realtek RTL8211,通过RGMII或SGMII接口与处理器的IO引脚相连,构建完整的MAC + PHY以太网通信链路6
  • 电源管理、时钟同步和信号完整性保障电路:设计电源管理电路,确保相机稳定供电;使用125MHz参考时钟进行时钟同步;设计信号完整性保障电路,满足GigE Vision对稳定性的严苛要求6

3.2 软件设计

  • 协议栈开发:使用硬件描述语言(如Verilog或VHDL)编写全套GigE Vision协议解析模块,包括ARP、UDP/IP协议栈、GVCP命令响应引擎和GVSP数据打包器。深入研究相机的寄存器映射表,通过发送特定的GVCP写请求来配置ROI(感兴趣区域)、触发模式、像素格式等关键参数6
  • 图像采集与处理:实现图像采集功能,将采集到的图像数据进行处理,如去噪、边缘检测、色彩空间转换等。可以利用FPGA的并行计算能力,提高处理效率并降低延迟6
  • 数据传输与存储:将处理后的图像数据按照GVSP协议打包为UDP数据包,添加必要的头部信息(如Packet ID、Timestamp、Payload Type等),并通过MAC层发送至PC端或其他接收设备。同时,实现图像数据的存储功能,方便后续分析和处理。

3.3 驱动开发

基于C语言实现工业相机的底层驱动,涵盖基于BSD Socket的UDP多播/单播通信建模、GVCP指令帧的二进制结构封装与字节序严格校验、GVSP流式数据包的DMA缓冲区管理、帧同步机制、丢包检测与重传策略等。通过底层硬件抽象层(HAL)对MAC控制器寄存器进行直接操作,包括RGMII接口时序配置、DMA描述符链初始化、中断向量绑定、环形缓冲区的无锁访问优化等5

四、测试与优化

  • 功能测试:对相机的各项功能进行测试,如图像采集、参数配置、数据传输等,确保相机的基本功能正常。
  • 性能测试:测试相机的帧率、分辨率、图像质量等性能指标,评估相机的性能是否满足需求。
  • 优化调整:根据测试结果,对相机的硬件和软件进行优化调整,如优化协议栈、调整参数配置、改进图像处理算法等,提高相机的性能和稳定性。

五、注意事项

  • 遵守法规:在开发过程中,需要遵守相关法律法规,合法合规地使用技术知识。
  • 兼容性:确保相机与其他设备的兼容性,如主机设备、软件工具等。
  • 可靠性:注重相机的可靠性设计,提高相机的稳定性和抗干扰能力。

以上开发方案仅供参考,你可以根据实际需求进行调整和完善。在开发过程中,建议参考相关的技术文档和标准,确保开发的相机符合GigE Vision标准。

 

参考链接:https://blog.csdn.net/carson2005/article/details/56030625

posted on 2026-03-25 09:30  前沿风暴  阅读(310)  评论(0)    收藏  举报

导航


校内网 © 2004-2026

京公网安备 33010602011771号 京ICP备2021040463号-3