基于FPGA和万兆网的GigE Vison设计方案

                                     基于FPGA和万兆网的GigE Vison设计方案

                                                                                                                         作者:Hello,Panda

本文简要描述基于万兆网的GigE Vison IP设计方案。

一、GigE Vsion协议要点

GigE Vison协议基于普通的以太网物理链路,运行在UDP协议层之上,包含控制协议GVCP和数据流协议GVSP两大部分,整个层次结构如下图1所示。

                                                                               图1 GigeVison协议层次结构图

GigE Vison协议的要点如下:

(1)上电或复位完成后必须先进行IP配置和设备枚举,必须支持DHCP和LLA(Auto IP)两种IP配置方式;

(2)在UDP层上建立应答握手机制以保证传输,GVCP采用3956端口,数据长度必须以32bit为边界,数据不可分包传输;

(3)设备必须支持心跳功能以确认处于连接状态;

(4)支持控制(1个)、数据流(1~512个)和消息(0~1个)三种通道,每个通道分配不同的UDP端口,控制通道支持三种不同的访问权限;

(5)必须支持最小规模的ICMP(GigeVsion要求必须支持Ping命令);

(6)GVSP的数据包以字节为边界,数据包的大小由第一个有效的test packets决定,支持错误恢复和流控制;

(7)GVSP数据传输的单位为Block,一个完整的Block由Data Leader、Data Payload和Data Trailer构成;

(8)所有的Gige Vison相机都必须在他们的XML描述文件中强制制定相机的参数信息。

(9)bootstrap寄存器及XML文件需要非易失Flash硬件支持。

二、IP功能设计方案要点描述

GigE Vison逻辑IP需要实现图1所示的所有协议层,方案中硬件平台基于Xilinx 7系列器件XC7K325T/XC7K160T,下图2是GigE Vision IP核的模块框架结构。

                                                                                     图2 GigE Vision IP核的框架结构

(1)物理层

物理层使用Xilinx 10G Ethernet Subsystem IP核,版本v3.1。对外数据接口例化为AXI4 Stream,位宽64bit,数据时钟156.25MHz;配置接口例化为AXI4-Lite,位宽32bit,时钟频率100MHz。

IP核配置通过Microblaze软核完成,并且使能Jumbo帧功能。功能、接口、配置和使用说明参见Xilinx官方文档PG157。

(2)IP/UDP层

IP层协议仅支持IPv4版本,IP数据报头Options项为空;需要支持DHCP、ARP和ICMP协议,内部通信采用64位AXI4 Steam总线通信。

(3)GVCP/GVSP协议

支持GigE Vison Specification version 1.0标准描述的所有必须支持的项,GVSP数据包负载类型支持Payload type = RawData/YUV422-8bit/RGB888。为完整实现功能,部分控制放在处理器上完成(本设计实例使用MicroBlaze),需要掉电保存的项存储在外部Flash中,需要大量缓存的数据存储在片外DDR中。

RTL描述语言使用Verilog,编译工具使用Xilinx Vivado2016.4,仿真工具使用ModelSim 10.2C。

备注:

(1)为简化逻辑端的设计难度,可将GVCP协议放在Microblaze里面实现,使用ZYNQ系列器件的,可以直接在PS里运行;

(2)物理层使用千兆网的,本方案仍然可行,只需修改物理层接口即可;使用ZYNQ系列器件的,可以直接在PS里软件实现所有的GVCP和GVSP协议;

三、测试结果

    在Xilinx K7 325T器件上实现完整的系统(包括DDR Mig、Microblaze等),占用Slice约30K。

    与PC进行点对点数据传输测试,稳定传输速率约为6.5Gbps,可轻松传输4K无压缩原图或一些特殊图像数据如超声、CT、雷达、高速ADC采样结果等原始数据。

 

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
FPGA(Field-Programmable Gate Array)是一种集成电路器件,在设计、开发和实现各种数字逻辑电路方面具有高度的灵活性和可重构性。UDP(User Datagram Protocol)是一种无连接的传输协议,适用于需要快速传输数据而无需确认接收的应用场景。万兆网指的是以太网的速率达到了10Gbps。 结合以上概念,FPGA可以用于实现UDP万兆网,即使用FPGA作为硬件平台来实现10Gbps速率下的UDP通信。由于FPGA的可重构特性,可以根据实际需求来设计和调整FPGA中的逻辑电路,以适应不同的应用场景和数据处理要求。 在实现UDP万兆网的过程中,首先需要在FPGA上搭建一个网络通信模块。这个模块主要包括FPGA与以太网物理层之间的接口,以及UDP协议栈的实现。接口通过物理层芯片将FPGA与网络连接起来,以支持数据的收发。而UDP协议栈的实现主要包括UDP报文的封装和解析、数据的发送和接收等功能。 在FPGA实现UDP万兆网的好处在于,FPGA的高度可编程性和并行处理能力可以提高数据处理速度和通信效率。同时,FPGA的可重构性还可以满足不同需求下的灵活性,可以根据需要对硬件进行调整和优化。此外,FPGA可以与其他外设(如存储器、处理器等)相结合,构建更加强大和复杂的系统。 总之,通过使用FPGA实现UDP万兆网,可实现高速率的数据传输和无连接的通信,同时还具备灵活性和可重构性。这对于需要高速数据处理和通信的应用场景,如高性能计算、网络交换、网络加速等领域具有重要的意义。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Hello_Panda_

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值