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

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

3天内不再提示

基于FPGA的以太网ARP通信测试(二)

CHANBAEK 来源:FPGA Zone 作者:FPGA Zone 2023-11-06 18:26 次阅读

本文继续简单介绍一下基于FPGA以太网ARP通信,该项目主要用于实现FPGA端以太网接口上位机进行ARP请求和应答的功能。

RGMII接口

以太网的通信离不开物理层PHY芯片的支持,以太网MAC和PHY之间有一个接口,常用的接口有MII、RMII、GMII、RGMII等。

MII (媒体独立接口):MII支持10Mbps和100Mbps的操作,数据位宽为4位,在100Mbps传输速率下,时钟频率为25Mhz。

RMII (Reduced MII):RMII是MII的简化版,数据位宽为2位,在100Mbps传输速率下,时钟频率为50Mhz。

GMII (Gigabit MII):GMII接口向下兼容MII接口,支持10Mbps、100Mbps和1000Mbps的操作,数据位宽为8位,在1000Mbps传输速率下,时钟频率为125Mhz。

RGMII (Reduced GMII):RGMII是GMII的简化版,数据位宽为4位,在1000Mbps传输速率下,时钟频率为125Mhz,在时钟的上下沿同时采样数据。在100Mbps和10Mbps通信速率下,为单个时钟沿采样。

在千兆以太网中,常用的接口为RGMII和GMII接口。RGMII接口的优势是同时适用于10M/100M/1000Mbps通信速率,同时占用的引脚数较少。但RGMII接口也有其缺点,就是在PCB布线时需要尽可能对时钟、控制和数据线进行等长处理,且时序约束相对也更为严格。

图片

ETH_RXC :接收数据参考时钟,1000Mbps速率下,时钟频率为125MHz,时钟为上下沿同时采样;100Mbps速率下,时钟频率为25MHz;10Mbps速率下,时钟频率为2.5MHz,ETH_RXC由PHY侧提供。

ETH_RXCTL (ETH_RX_DV):接收数据控制信号

ETH_RXD :四位并行的接收数据线。

ETH_TXC :发送参考时钟,1000Mbps速率下,时钟频率为125MHz,时钟为上下沿同时采样;100Mbps速率下,时钟频率为25MHz;10Mbps速率下,时钟频率为2.5MHz,ETH_TXC由MAC侧提供。

ETH_TXCTL (ETH_TXEN):发送数据控制信号。

ETH_TXD :四位并行的发送数据线。

ETH_RESET_N :芯片复位信号,低电平有效。

ETH_MDC :数据管理时钟,该引脚对ETH_MDIO信号提供了一个同步的时钟。

ETH_MDIO :数据输入/输出管理,该引脚提供了一个双向信号用于传递管理信息

RGMII接口时序

PHY芯片的RGMII接口时序,其时钟、控制信号和数据的对齐方式,一般由MDIO接口或者硬件上的特殊引脚进行配置。

接收时序

图片

RXC的上下边沿与RXD和RX_CTL信号对齐,相位相同。

RGMII接收端口时钟和控制/数据信号增加延时的时序图如下:

图片

RXC的上下边沿与RXD和RX_CTL信号的中间位置对齐,RXC的时钟周期为8ns,单个高电平或者低电平为4ns,RXC相对于RXD和RX_CTL延时约2ns。

YT8511 RGMII接收端口的信号对齐模式由硬件上的特殊引脚外接上下拉电阻进行配置,如下图所示,当管脚LED_10_100接上拉电阻时,表示RXC时钟相对于RXD信号,会增加约2ns的延时。

图片

发送时序

图片

RGMII发送端口正常模式下,需要满足TXC的上下边沿与TXD和TX_CTL信号对齐,相位相同。YT8511在硬件上面没有做TX端的delay模式,可根据实际情况,选择是否在代码中进行延时(因为一般对端设备的接收端会有延时处理的功能,因此发送端也可以不延时),延时后的时序图如下所示:

图片

由RGMII的接口时序可知,RGMII发送端口在TXC时钟的上升沿传输TXD的低4位和TX_CTL的使能信号;下降沿传输TXD的高4位和TX_CTL的错误信号(实际上是使能信号和错误信号的异或值);RGMII接收端口在RXC时钟的上升沿传输RXD的低4位和RX_CTL的使能信号;下降沿传输RXD的高4位和RX_CTL的错误信号(实际上是使能信号和错误信号的异或值)。

实现功能

该项目采用FPGA端以太网接口,和上位机实现ARP请求和应答的功能。当上位机发送ARP请求时,FPGA返回ARP应答数据,当FPGA发送ARP请求时,上位机返回ARP应答数据。

功能测试

ARP接收

图片

ARP发送

图片

利用上位机端wireshark软件抓取FPGA端发来的ARP请求数据包,如下图所示:

图片

下图中下方红框为FPGA发送的16进制数据(去掉前导码、SFD和CRC值),可以看到,后面的18个0就是我们在发送时填充的18个字节数据。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593199
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166235
  • 接口
    +关注

    关注

    33

    文章

    7639

    浏览量

    148495
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134394
  • ARP
    ARP
    +关注

    关注

    0

    文章

    50

    浏览量

    14651
收藏 人收藏

    评论

    相关推荐

    基于FPGA以太网ARP通信测试(一)

    主机与目的主机进行以太网通信,需要知道目的主机的MAC地址(物理地址),以太网ARP通信协议就是用来获取目的主机MAC地址的。
    的头像 发表于 11-06 18:20 983次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>以太网</b><b class='flag-5'>ARP</b><b class='flag-5'>通信</b><b class='flag-5'>测试</b>(一)

    车载以太网开发及测试设备#车载以太网

    以太网测试设备车载以太网
    北汇信息POLELINK
    发布于 :2022年11月10日 08:29:22

    84 82_实战篇:以太网ARP测试实验_程序设计(第讲) - 第1节

    以太网
    充八万
    发布于 :2023年08月19日 23:28:31

    车载以太网测试系统测试实例介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月12日 17:27:48

    基于FPGA的万兆以太网接口的设计与实现

    基于FPGA的万兆以太网接口的设计与实现标准中万兆以太网物理层及媒质接入控制子层的相关协议以 应用物理环境为例,阐述了万兆以太网接口各个单元模块的功能和设计实现方法 仿真结果表明,该万
    发表于 08-11 15:48

    以太网交换机的测试

    与互操作测试、性能测试、安全性测试以及异常环境测试。这里的各种测试会贯穿到测试的各个阶段中,但在
    发表于 03-03 14:08

    PC与FPGA以太网通信

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

    【小梅哥2017力作】详细的FPGA以太网设计教程,76页精华PDF

    ... 3第1章 基于RTL8201的以太网UDP通信测试... 4第2章 以太网MAC层基本原理... 12MII 接口介绍:... 12以太网
    发表于 07-29 23:20

    【AC620 FPGA试用体验】以太网ARP帧发包实例(手动CRC)

    基于AC620开发板上的以太网接口,设计一个能够发送ARP帧的FPGA系统。其中以太网包和ARP包采用分层组包的形式。即底层为
    发表于 08-26 12:56

    基于FPGA和W5500的以太网传输系统实现

    的数据发送和接收功能的实现。图 9 W5500功能实测结果图3 结语本系统实现了基于FPGA的,采用嵌入式以太网W5500芯片以硬件形式实现的TCP/IP协议栈,提高了CPU的处理效率,并且使得通信速率在很大程度上得到了提高,为
    发表于 08-07 10:10

    【正点原子FPGA连载】第二十五章以太网ARP测试实验-领航者ZYNQ之FPGA开发指南

    原子公众号,获取最新资料第二十五章以太网ARP测试实验在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的MAC地址(物理地址),
    发表于 09-29 18:15

    【正点原子FPGA连载】第二十六章以太网UDP测试实验-领航者ZYNQ之FPGA开发指南

    本章实验任务画出的系统框图。和“以太网ARP测试实验”相比,将ARP控制模块替换成了以太网控制模块,并增加了一个同步FIFO和UDP顶层模块
    发表于 09-29 18:17

    基于BL706 emac实现通过以太网发送一个ARP裸数据包的例程

    本 demo 基于 BL706 emac 实现通过以太网发送一个 ARP 裸数据包的例程,通过本例程可以确认 emac 以及 PHY 芯片的配置是否正确。以太网 PHY 芯片这里
    发表于 06-17 17:40

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

    大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网以太网FPGA学习中属于比较高级的内容了,有些大侠
    发表于 06-01 18:39

    基于FPGA的千兆以太网ARP和UDP的实现

    其他协议报头的数据包(例如IP协议、ARP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。以太网帧格式如下图所示。 1.前导码和帧开始符是固定的,为7个0x55紧跟着1个0xd5 2.目的MAC地址指明
    的头像 发表于 02-16 16:35 1906次阅读