1 概述

GigE Vision是一个比较复杂的协议,要在FPGA中完全实现具有较大的难度。如果FPGA作为接收端希望实现GigE Vision相机的配置和图像采集功能,则只需要实现其中小部分功能即可。本文对原有GigE Vision协议的结构进行了裁剪,仅保留设备搜索、寄存器配置和图像采集三个主要功能。并在FPGA中成功实现了对Basler GIGE相机的配置和图像实时采集。

2 GigE Vision协议

GigE Vision协议包含GVCP(GigE Vision Control Protocol)和GVSP(GigE Vision Streaming Protocol)两部分。其中,GVCP负责对相机进行配置,GVSP负责控制图像数据的传输。

2.1 GVCP协议

GVCP协议规定了应用程序通过以太网配置和控制外部设备的准则,设备的配置过程采用了指令(CMD)和应答(ACK)的方式。以外部主机和相机为例,首先,主机通过以太网向相机发送指令包,然后等待相机返回当前指令的应答包;相机接收到指令包后执行相应的操作,而后向主机返回应答包。主机收到应答包后,根据应答包中的状态信息判断指令是否执行成功,若执行成功则继续发送下一个指令包,否则重新发送当前指令包。该方式弥补了UDP协议面向无连接的缺点,保证了数据传输的完整性和可靠性。

GVCP包含两种格式的数据包:指令包和应答包,指令包首部为:

在指令包首部中,0x42为GVCP指令包的固定字段,flag字段包含了不同指令的特定信息,command字段代表指令的类型,length字段代表指令包中除首部外,载荷数据的长度(单位:字节),req_id代表指令包的序号。

应答包首部为:

在应答包首部中,status字段代表指令包的执行状态,acknowledge字段代表应答包的类型,length字段代表应答包中除首部外,载荷数据的长度(单位:字节),ack_id代表应答包的序号。

设计中使用了两种指令包:设备搜索(DISCOVERY)和写寄存器(WRITEREG)。

2.1.1 设备搜索(DISCOVERY)

设备搜索指令用于接收端(FPGA)寻找所在的子网中的GIGE发送设备(相机)。通过搜索指令DISCOVERY_CMD实现。

搜索指令包格式:

设计中的搜索指令包格式为:

对应的搜索应答包DISCOVERY_ACK为格式:

在搜索应答包中,包含了相机的各个主要参数,包括相机的生产商、版本、名称、序列号、IP地址、MAC地址等信息,载荷数据的长度为248字节。设计中所关心的是相机的IP地址和MAC地址信息,其中MAC地址位于载荷数据的第11~16字节部分,IP地址位于第37~40字节部分。

2.1.2 写寄存器(WRITEREG)

写寄存器指令用于配置相机的参数,通过WRITEREG_CMD指令实现。

写寄存器指令包格式:

在写寄存器指令包中,register_address字段代表32位的寄存器地址,register_data字段代表所要写入的32位寄存器值。在设计中,每次只配置一个寄存器,因此只包含一个register_address和register_data字段。

因此,设计中的写寄存器包格式如下:

对应的写寄存器应答包WRITEREG_ACK格式:

在应答包中,status字段的值为0x0000,代表写寄存器指令执行成功,index字段代表配置成功的寄存器个数,对于每次配置1个寄存器而言,该字段的值为0x0001。

因此,设计中的写寄存器应答包格式如下:

2.2 GVSP协议

GVSP协议规定了GVSP发送方向GVSP接收方传输图像数据和图像信息的一系列准则。GVSP协议以数据块(Data Block)为单位进行数据传输,通常使用标准传输模式。该模式包含3种格式的数据包:头数据包(Data Leader Packet)、载荷数据包(Data Payload Packet)和尾数据包(Data Trailer Packet),头数据包和尾数据包作为每个数据块的首尾界定,不包含图像数据;载荷数据包则作为数据块中数据的传输载体,包含了有效的图像数据。

3种数据包具有相同的GVSP首部,格式如下:

在GVSP首部中,status字段代表数据包的状态,block_id代表数据块的序号,packet_id代表当前数据块中数据包的序号(头数据包的packet_id总为0),packet_format字段代表数据包的类型(头数据包、载荷数据包、尾数据包)。EI字段代表扩展block_id和packet_id的标志位,当EI=0时,block_id为16bit,packet_id为24bit,此时的首部长度为8字节;当EI=1时,block_id为64bit,packet_id为32bit,此时的首部长度为20字节。

设计中不对头数据包和尾数据包进行处理,仅根据packet_format字段从数据流中提取包含图像数据的载荷数据包,并由EI位判断首部的长度,准确剥除载荷数据包的首部后,便可得到有效的图像数据。为了保证图像传输的实时性,不对status字段进行判断,对于传输错误的图像数据仍作为有效数据输出。

3 UDP IP协议

GigE Vision是基于UDP协议进行数据传输的。因此,要实现FPGA与相机间的GVCP和GVSP通信,还需要设计网络通信协议。按照GigE Vision协议的要求,需要设计的网络协议还是比较多的。从FPGA与相机之间实现点对点数据传输的角度出发,只要实现基本的UDP 、IP和MAC三种协议即可。由于相机可以设置为固定IP地址,而且相机的IP地址和MAC地址都可以通过FPGA发送DISCOVERY指令获取。所以ARP协议可以不在FPGA中实现。

对于UDP和IP协议,只需要实现UDP和IP首部的添加和移除功能,其他功能可以不做。MAC协议在FPGA厂商的开发环境中均提供了IP。当然自己也可以设计一个MAC,只需要实现基本的MAC首部移除、添加以及CRC32校验功能即可。

4 FPGA工作流程

从相机的配置到图像的采集整个流程为:

可分为5个步骤,具体过程如下:

(1)FPGA向其所属子网发送UDP广播包搜寻所连接的相机。GVCP的UDP端口号为3956,除此之外,FPGA和相机的IP地址必须属于同一个子网段,否则相机将无法应答搜索包。

(2)FPGA等待相机返回应答包,并从中提取相机的IP地址和MAC地址,作为发送数据包的IP首部和MAC首部中的目的地址。

(3)FPGA发送写寄存器指令包,依次配置相机的各功能寄存器,对其工作参数进行设置。

(4)FPGA发送写采集使能寄存器指令包,触发相机进行图像采集和传输。

(5)FPGA从相机接收GVSP数据包,从中提取出有效的图像数据。

需要工程源码的请私信,付费有偿提供。

基于FPGA的GigE Vision相机图像采集方案设计相关推荐

  1. FPGA的GigE Vision IP相机图像采集方案设计,转换为千兆UDP,支持10G MAC

    1 概述 GigE Vision是一个比较复杂的协议,要在FPGA中完全实现具有较大的难度.如果FPGA作为接收端希望实现GigE Vision相机的配置和图像采集功能,则只需要实现其中小部分功能即可 ...

  2. 【转】GigE Vision简介

    转自:GigE Vision简介_计算机视觉小菜鸟的专栏-CSDN博客_gige vision GigE Vision是由AIA制定的通信协议,用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传 ...

  3. GigE Vision简介

    GigE Vision是由AIA制定的通信协议,用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传输.该标准是基于UDP协议,与普通网络数据包不同之处在于应用层协议,应用层协议采用GVCP(Gi ...

  4. LabVIEW使用视觉采集软件从GigE视觉相机进行采集 1

    LabVIEW使用视觉采集软件从GigE视觉相机进行采集 1 硬件和软件设置 为了从GigE Vision相机获取图像,首先需要确保拥有所有正确的硬件和软件. 硬件 GigE Vision相机:该相机 ...

  5. GigE Vision,GenICam,以及相机的POE供电

    GigE Vision与GenICam以及工业相机的POE供电 如今的视觉领域工业相机包含了很多的功能,而不仅仅是采集图像.对于机器视觉相机来说,处理图像并把结果附加到图像数据流上,控制附加的硬件,代 ...

  6. 索尼第四代 Pregius S CMOS 传感器助力Emergent高速 GigE Vision 面阵扫描相机

    图 :几款 Emergent工业相机--包括屡获殊荣的 HB-25000-SB,均采用索尼的第四代 Pregius S 传感器. Sony Pregius S 是第四代图像传感器,它以先进设计的性能为 ...

  7. 基于FPGA的工业相机项目大赏1——cmos线阵相机

    摘要 本文关于基于fpga的cmos工业相机项目工程概览与总结,涉及以下内容: 1.模块总结:整体设计方案.子模块划分.关键技术点/信号 2.调试:关键模块.信号的仿真.调试总结 3.硬件布局:引脚配 ...

  8. 基于FPGA实现USB2.0接口方案设计

    1 USB2.0简介 USB2.0因其数据传输速率快和接口的多样化而广泛使用.USB 2.0 已经广泛使用于个人电脑中.USB2.0优势如下: 1)速度快,在高速块传输,最大数据字段的模式下,最高可以 ...

  9. 【虹科】深入了解GigE Vision的优势

    深入了解虹科GigE Vision的优势 GigE相机演进的简要背景 传统到优化的GigE GigE Vision的优势 HK HZ-65000-G: 100GigE 相机: GigE相机演进的简要背 ...

最新文章

  1. mysql中的 explain 关键字学习笔记
  2. 信息系统项目管理师备考之旅1---学习计划和方法制定
  3. db_recovery_file_dest_size 修改大一点及删除归档日志 |转|
  4. svc android,在android中,如何使用 Svc WCF服务_android_开发99编程知识库
  5. pcb地线应该不应该做成环路_干货|图文详解EMC的PCB设计技术
  6. 看完这篇文章保你面试稳操胜券——React篇
  7. 前端学习(538):全屏布局
  8. override和overload的小笔记
  9. springboot注释详解
  10. 对于vsftp writable anonymous root问题的解决
  11. 微信小程序引用阿里巴巴矢量图标
  12. 使用postman测试post类型请求
  13. GNSS相关开源项目整理
  14. hdu1197(十进制十六进制十二进制位数和)
  15. 《鬼武者3》全攻略宝典
  16. lpx寒假作业案例9
  17. 德国AgBB VoC有害物质测试
  18. 华为云教程(云备份CBR)
  19. Unity学习推荐书籍
  20. SpaceNet 6: Dataset Release -- MSAW

热门文章

  1. FFmpeg处理数字音频、视频的命令及方法
  2. VMWare安装Windows10出现以下问题
  3. iOS Cookie在Html中保存,在iOS原生代码端取出。
  4. Java程序员能不了解Oracle吗?
  5. CCNA1:网路基础、TCP/IP、OSI、IPv4、子网划分、数据封装
  6. 40主题制作代码———更新手机颜色十六进制代码
  7. 计算机考研国家考试时间安排,计算机考研必知考试科目
  8. 凡是过去,皆为序章--2021年区块链安全事件年度总结
  9. 凡是过往,皆为序章|Apache Doris 社区 2021 年终回顾
  10. linux 账号无法登陆~