0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的UDP RGMII千兆以太网通信方案

CHANBAEK 来源: FPGA Zone 作者: FPGA Zone 2023-09-04 16:49 次阅读

本文介绍一个FPGA开源项目:UDP RGMII千兆以太网通信。该项目在我之前的工作中主要是用于FPGA和电脑端之间进行图像数据传输。本文简要介绍一下该项目的千兆以太网通信方案、以太网IP核的使用以及Vivado工程源代码结构。

Vivado 的 Tri Mode Ethernet MAC IP核需要付费才能使用,因此本文提供完整工程源码。

01软硬件平台

  • 软件平台:Vivado 2017.4;
  • 硬件平台:XC7K410TFFG900-2;

02RGMII接口

本设计采用 RGMII 接口的 88E1512 芯片。RGMII 接口的主要优势在于,它可以同时适用于1000M、100M、10M三种速率,并且接口占用引脚数较少。

RGMII 使用 4bit 数据接口采用上下沿 DDR(Double Data Rate)的方式在一个时钟周期内传输 8bit 数据信号,即上升沿发送或者接收数据的低4位[3:0],下降沿发送或者接收数据的高4位[7:4]。同理,使用 1bit 控制接口采用 DDR 的方式在一个时钟周期内传输 2bit 控制信号。

  • 发送端:tx_clk,tx_d[3:0],tx_ctrl;
  • 接收端:rx_clk,rx_d[3:0],rx_ctrl;

图片

  • 三种速率模式

RGMII 接口适用于1000M、100M、10M三种传输速率。

当工作于1000M时,时钟信号TXC和RXC均为 125MHz,4bit数据信号上下沿值均有效,控制信号上下沿值也均有效。

当工作于100M时,时钟信号TXC和RXC均为25MHz,4bit数据信号只有上升沿值[3:0]有效,相当于此时数据信号切换为单沿SDR(Single Data Rata)4位输模式。控制信号仍为上下沿有效。

当工作于10M时,时钟信号TXC和RXC均为2.5MHz,数据信号和控制信号的使用和100M速率时完全相同。

03UDP通信方案

该以太网通信方案参考米联客例程设计,硬件接口采用RGMII,IP核调用Vivado 的 Tri Mode Ethernet MAC。通信方案如下图所示,最上层为用户逻辑模块,用于处理和使用解析后的以太网通信数据;uiudp_stack 模块采用米联客例程提供的协议栈网表文件;FPGA 以太网IP核采用Tri Mode Ethernet Mac;PHY芯片采用 88E1512;最后 RJ-45 接口通过网线与上位机连接。

图片

下图为以太网数据环路传输测试方案,在电脑上通过网络调试助手向FPGA发送任意小于1472字节长度的UDP数据包。由于Tri Mode Ethernet Mac IP核接口数据流为8bits/125M,而uiudp_stack为64bits/15.625M,因此需要在中间插入FIFO缓存模块,进行数据位宽转换以及数据跨时钟域处理。

图片

04工程源码结构

下图是该项目 Vivado 工程源码结构:

图片

其中,

  • udp_transmit:UDP以太网数据收发模块;
  • loopback_test:UDP以太网数据回环传输测试模块;
  • tri_mode_ethernet_mac_0_axi_lite_sm:用于配置、读取以太网IP核寄存器等。

05IP核参数配置

使用千兆通讯,因此将速率设为 1Gbps;

图片

接口参数配置如下:

图片

另外,有关 UDP 协议栈 uiudp_stack 的详细信息这里不再介绍,其pdf文档和源码一起提供,有需要的小伙伴可以自己去查阅。

06其它注意事项

  • PHY芯片 复位信号 :上电后将复位信号拉高;
  • FPGA RGMII输出 I/O 口 电平标准 :配置成 SSTL 电平标准。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593206
  • 千兆以太网
    +关注

    关注

    0

    文章

    64

    浏览量

    13809
  • UDP
    UDP
    +关注

    关注

    0

    文章

    311

    浏览量

    33620
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65101
  • RGMII
    +关注

    关注

    0

    文章

    22

    浏览量

    12040
收藏 人收藏

    评论

    相关推荐

    【紫光同创国产FPGA教程】【第二十三章】千兆以太网传输实验

    本实验将实现FPGA芯片和PC之间进行千兆以太网数据通信, 通信协议采用Ethernet UDP
    的头像 发表于 04-07 10:38 1.4w次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第二十三章】<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>传输实验

    以太网通信S7是什么意思?

    以太网通信
    YS YYDS
    发布于 :2023年06月25日 00:07:18

    基于AlteraFPGA千兆以太网实现方案

    `基于AlteraFPGA千兆以太网实现方案`
    发表于 06-10 11:59

    PC与FPGA以太网通信

    我现在在做FPGA和PC之间的以太网通信,PC和FPGA用交叉线直连,板子上的以太网phy芯片是88e1111,以太网
    发表于 07-05 21:37

    DE2-115开发板以太网通信问题

    4位数据端口,千兆以太网的实现要用RMGII模式,但是signaltapii里看到的125M的时钟GTX_CLK就根本没有信号,为什么没有时钟?RGMII模式该怎么驱动啊?(3)需要配置寄存器吗?硬件又该怎么配置寄存器? 有没有
    发表于 04-12 09:18

    简谈基于FPGA千兆以太网

    ,只是说以太网的速率为千兆,也就是1G。除了千兆网,还有百兆网,万兆网,当然这些都是指的以太网的速率。不同速率的以太网,在
    发表于 02-03 15:11

    请问UDP SOCKET要用操作系统才可以实现以太网通信吗?

    公司一个项目要用UDP SOCKET实现以太网通信,能不用操作系统吗,如果不用的话这句又怎么破:#if ((LWIP_SOCKET||LWIP_NETCONN)&&(NO_SYS==1))#error"…" #endif
    发表于 03-26 04:36

    以太网通讯控制仪器,使用UDP协议,仪器无响应

    一、背景 仪器支持TCP/IP协议,欲使用FPGA编写UDP协议的以太网通讯模块,对仪器进行控制。因此,在使用FPGA控制仪器之前,首先使用LabVIEW平台进行
    发表于 03-22 10:07

    简谈基于FPGA千兆以太网设计

    介绍百兆网和千兆网的接口形式。 这是网口与FPGA连接的常用方案,RJ45就是咱们平常说的水晶头,Ethernet PHY是以太网的PHY芯片,之后就是Ethernet PHY与
    发表于 06-01 18:39

    关于工业以太网通信的解决方案介绍

    瑞萨电子工业以太网通信解决方案
    的头像 发表于 07-23 00:43 3869次阅读

    FPGA如何为以太网千兆以太网解决低功耗问题

    探索新的中档 FPGA 如何为以太网千兆以太网 (GbE) 链路执行桥接功能,同时解决低功耗问题。
    的头像 发表于 05-07 16:54 3419次阅读
    <b class='flag-5'>FPGA</b>如何为<b class='flag-5'>以太网</b>和<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>解决低功耗问题

    Xilinx KU系列三速以太网IP核RGMII时序约束方法

    基于RGMII时序广泛应用于以太网通信中,基于Xilinx的三速以太网时序分析,不同的Xilinx系列方法不一样
    的头像 发表于 07-07 14:15 3400次阅读
    Xilinx KU系列三速<b class='flag-5'>以太网</b>IP核<b class='flag-5'>RGMII</b>时序约束方法

    基于FPGAUDP千兆以太网通信

    本文介绍一个FPGA开源项目:UDP千兆以太网通信。利用SFP接口,可以通过使用SFP转RJ45模块或者直接使用光纤进行
    的头像 发表于 08-31 11:26 2317次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b><b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>光<b class='flag-5'>通信</b>

    基于FPGAUDP万兆光通信测试

    本文开源一个FPGA项目:UDP万兆光通信。该项目实现了万兆光纤以太网数据回环传输功能。Vivado工程代码结构和之前开源的《UDP
    的头像 发表于 09-01 16:25 865次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b>万兆光<b class='flag-5'>通信</b>测试

    基于FPGAUDP RGMII千兆以太网设计

    本文总结一下前段时间完成的FPGA以太网通信功能。该方案参考了MILIANKE的设计,但在其基础上简化了某些不必要的步骤以及解决了一些由于忽视细节导致的棘手的问题。
    的头像 发表于 09-06 17:04 899次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>UDP</b> <b class='flag-5'>RGMII</b><b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>设计