当前位置: 首页 > news >正文

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

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代表指令包的序号。

3结构框架

在这里插入图片描述
前面提到完全用FPGA纯逻辑GigE Vision是比较困难的,本方案主要采用cpu和PL逻辑搭配的方式实现协议的转换
最终将GigE Vision协议的相机数据转换为UDP协议数据,PC可以通过接收普通UDP数据,同时IP支持SPI接口和I2C接口对相机参数进行二次配置;
其中BUFFER需要借助片外DDR作为大容量缓存

支持GigE Vison Specification version 1.x/2.x协议

同时为了适应高分辨率的图像数据,最终只需要替换GMAC为10/25 Gbps Ethernet MAC即可,增加系统的灵活性

C代码部分可以提供静态库函数

http://www.lryc.cn/news/29216.html

相关文章:

  • 大数据相关面试题
  • AI绘画第二步,抄作业复现超赞的效果!
  • Python的并发编程
  • 【Linux】基本系统维护命令
  • 高数:数列的收敛
  • 不平凡的一天——
  • 【Java基础】Map遍历的5种方式
  • 第十四届蓝桥杯三月真题刷题训练——第 2 天
  • 自然语言处理历史最全预训练模型(部署)汇集分享
  • csdn写文章自定义表格怎么做
  • Pytorch处理数据与训练网络问题汇总(协同训练)
  • 机器学习:基于神经网络对用户评论情感分析预测
  • Vue3之组件间传值避坑指南
  • 02-问题思考维度:抓住核心用户、场景化分析、需求收集与辨别、用户故事
  • C 语言编程 — GCC Attribute 语法扩展
  • LeetCode 热题 C++ 399. 除法求值 406. 根据身高重建队列
  • 提升Mac使用性能的5大方法,CleanMyMacX 2023非常的好用哦~
  • 一步一步学会给Fritzing添加元器件-丰富你的器件库
  • STM32 10个工程篇:1.IAP远程升级(一)
  • 高通Android 13默认切换免提功能
  • MySQL入门
  • 实验一 Python编程基础
  • java多线程(十五)ThreadLocal介绍和理解
  • K8S 实用工具之三 - 图形化 UI Lens
  • HDMI协议介绍(六)--EDID
  • 【项目实战】Linux下安装Nginx教程
  • 【数据结构】链式二叉树
  • CentOS安装RStudio-Server的方法
  • 从交通信号灯看流控和拥塞控制
  • 【LinkedList】| 深度剥析Java SE 源码合集Ⅰ