基于RGMII的FPGA千兆以太网设计
一.总体概括
千兆以太网的理论网速为1000Mbit/s,实际网速接近该值,但几乎不可能达到,但相对于百兆网,网速快了很多。目前千兆以太网常用物理层接口有GMII和RGMII,两种接口有同有异,应用情况也有所差别。GMII占用的引脚较多,RGMII可以很大程序地减少引脚的使用。因此本设计采用RGMII接口进行设计,物理层芯片采用RTL8211E,根据以太网数据帧的要求并遵循相关时序要求,编写FPGA的Verilog代码,实现了千兆以太网UDP的通讯。
二.RGMII接口介绍
2.1 RGMII接口简介
RGMII采用11根信号线即可实现以太网通讯,大大减少了信号的数量,节约了硬件电路板的面积,RGMII 接口如图1所示。
图1 RGMM接口 图中RGMII接口各个信号线功能如表1所示。 表1 RGMII接口信号线功能表
TX_EN、TX_ER、RX_EN、RX为高电平时有效,即为高电平时表示使能或者有错误,因此,有效数据(数据线有数据且数据无误)接收期间,RX_CTRL为高电平;当数据发送期间,需要将置为TX_CTRL为高电平,表示数据发送使能且数据无误。RGMII数据接收(发送与接收一致)时序如图2所示。
图2 RGMII数据接收时序 2.2典型芯片 RTL8211E 是由Realtek(瑞昱半导体)公司推出的10Mbit/100Mbit/1000Mbit以太网物理层芯片,有RGMII和GMII两种接口,分别对应芯片RTL8211E和RTL8211EG。RGMII接口的RTL8211E具有48个引脚,相对与64脚的GMII接口的RTL8211EG,节约控制芯片引脚,但是时钟上升沿和下降沿都有数据操作,时序控制比较复杂一些,详细信息见其数据手册。RTL8211E芯片引脚图如图3所示, RTL8211EG芯片引脚图如图4所示。根据参考手册的参考电路即可进行硬件电路的设计,这里不做过多描述。
图3 RTL8211E引脚图
图4 RTL8211EG引脚图
三.以太网数据帧
在使用FPGA进行千兆以太网实现时,需要对物理层的数据流进行处理,因此需要对以太网数据帧、IP数据包格式、UDP数据包等数据包进行学习。
3.1 802.3以太网数据帧
以太网数据帧如图5所示,每个字段含义如表2所示。
图5 以太网数据帧 表2 以太网帧字段含义
3.2 IP数据包格式
IP数据以数据的形式包含在以太网数据帧中,其格式如图所示,各字段含义如表所示。
图6 IP数据包格式 表3 IP数据包字段含义
3.3.UDP数据包格式
UDP数据包以数据的形式包含在IP数据包中,其格式如图7所示,各字段含义如表4所示。
图7 UDP数据包格式 表4 UDP数据包字段含义
3.4 以太网协议架构
在以太网各种协议中,以太网数据帧、IP、UDP等协议之间的关系如图8所示。以太网数据帧位于最底层,第二层是IP协议、ARP协议、RARP协议等协议,第三层的TCP、UDP、IGMP等协议基于IP协议进行实现,多数网络应用程序可基于TCP或者UDP协议进实现。从上面的几种数据包介绍中,也可以推导出类似图中的关系。
图8 以太网协议架构
3.5 UDP广播包
使用抓包工具捕获了一个UDP广播的数据包,如图9所示。
图9 UDP广播包抓包 图中的捕获的数据位以太网数据帧(不包括前导码和起始码)。从图中可以看到,数据帧中的字段对应的数据及其含义,可将图中的数据与以太网帧格式、IP、UDP数据包格式进行对应,对它们的数据格式进行学习。
四.FPGA程序流程
4.1 数据接收流程
数据接收时,按照RGMII数据接收时序,进行物理层数据的接收,然后按照以太网数据帧、IP数据包、UDP数据包的格式,对数据进行解析,即可实现对UDP数据的接收。数据接收流程如图10所示。
图10 数据接收流程图 在以太网数据解析时,可以根据自己的应用要求进行进行数据的解析,减少不必要的资源浪费。 4.2 数据发送流程 数据发送时如图11所示。
图11数据接收流程 在数据发送时首先需要确定发送目标,其中包括目标IP地址、目标MAC地址(当采用广播进行通讯时,MAC全部为0XFF),目标端口号等目标信息,然后将要发送的数据进行UDP打包、IP打包、以太网帧打包,然后按照RGMII的时序要求将数据发送出去。 需要特别注意: 1. 当采用单播UDP时,需要进行ARP协议的发送或者应答。 2. RGMII发送时,要保证,在TXCLK上升或者下降沿时,TXD数据线上的数据已经稳定。
基于RGMII的FPGA千兆以太网设计相关推荐
- 简谈基于FPGA的千兆以太网设计
简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货. 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学 ...
- 基于FPGA的千兆以太网设计
今天给大侠带来基于FPGA的千兆以太网设计,话不多说,上货. 一.设计概述 由于设计比较复杂,本篇带来设计流程以及设计思路,仅供各位大侠参考. 本篇通过管理数据输入输出MDIO配置PHY寄存器,使其工 ...
- 基于亚信AX88179A芯片的USB 3.2转千兆以太网设计
发布日期: 2023/1/4 透过已被广泛使用于各种消费电子产品的USB接口,亚信电子AX88179A USB 3.2 Gen1转千兆以太网芯片解决方案,可以为轻薄短小的笔记本电脑.智能手机.平板电脑 ...
- 【转】基于TMS320C6455的千兆以太网设计
基于TI公司最新DSP芯片TMS320C6455.设计并实现了以太网通信软硬件接口.采用TMS320C6455片内以太网接口模块EMAC/MDIO,结合片外AR8031 PHY芯片,在嵌入式操作系统D ...
- 基于TMS320C6455的千兆以太网设计
本文叙述TMS320C6455的EMAC和MDIO模块 前言: 基于TI公司最新DSP芯片TMS320C6455.设计并实现了以太网通信软硬件接口.采用TMS320C6455片内以太网接口模块EMAC ...
- fpga千兆以太网学习2
关于PHY芯片 正点原子达芬奇PHY芯片的型号位RTL8211FD. PHY芯片基本功能视频中总结了4点: 1·fpga发送的数字信号由PHY芯片转换为模拟差分信号给RJ-45接口传输,RJ-45的差 ...
- 基于米联客MA703FA开发板的MicroBlaze LWIP千兆以太网例程
Xilinx FPGA MicroBlaze使用AXI 1G/2.5G Ethernet Subsystem(= Tri Mode Ethernet MAC + AXI Ethernet Buffer ...
- FPGA 以太网 UPD IP 协议实现 fpga 千兆以FPGA 以太网
FPGA 以太网 UPD IP 协议实现 fpga 千兆以FPGA 以太网 UPD IP 协议实现 fpga 千兆以FPGA 以太网 UPD IP 协议实现, fpga 千兆以太网接口控制器,FPGA ...
- 基于FPGA的数据采集、通讯和存储系统设计(即FPGA+RTL8211千兆以太网+SD卡存储+RTC+Uart+AD7606数模转换+电流放大采集等硬件设计及程序验证)
本文主要介绍了学生期间自己做的一个小项目,便于学习初期对fpga的整体把握,涉及了很多常见.常用.常考和面试常问的知识点. 可以作为入门后的拓展学习和应对一些找工作的项目面试. 下面对硬件及软件代码进 ...
- 【转】简谈基于FPGA的千兆以太网
原文地址: http://blog.chinaaet.com/luhui/p/5100052903 大家好,又到了学习时间了,学习使人快乐.今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较 ...
最新文章
- DTD(文档类型定义)概述
- 做目标检测,这6篇就够了:CVPR 2020目标检测论文盘点
- openfire 插件开发
- JUC多线程:系统调用、进程、线程的上下文切换
- 前端学习(482):html之b/s和c/s
- 单例模式(Java)
- 无法找到或创建字体'SansSerif'.某些字符可能无法正确显示或打印。
- springmvc跳转html_SpringMVC基础(三)
- android商店账号密码错误,安卓:我失去了我的安卓密钥商店,我该怎么办?
- (75)信号发生器DDS锯齿波设计(一)(第15天)
- 2017 ACM-ICPC南宁网络赛: G. Finding the Radius for an Inserted Circle
- 瑞昱网卡linux通用驱动下载,realtek网卡通用驱动最新版下载
- 彻底删除win10易升
- target is null for setProperty(null,)错误的引发原因及解决办法
- EAN13商品条码数据如何居中显示
- 如何下载VMWare虚拟机如何安装VMWare详细教程
- Redis - 听说 Dragonfly 宣称比我快 25 倍
- 通过fileProvider接收外部App传递文件路径的一些坑
- zepto.js 处理Touch事件
- 哈夫曼树的构建及应用