基于FPGA的千兆以太网数传系统设计

基于FPGA的千兆以太网数传系统设计,第1张

这篇文章发布于2015年的电子测量技术期刊,主要介绍了使用VC707开发板来设计千兆以太网数据传输系统,实现了UDP以及IP协议,并且可以利用DDR3 进行数据缓存。

写了用以太网传输的优点,相对于串口的传输速度慢,并且不能远距离传输。PCIE不能远距离传输,选择以太网兼顾了传输速率和系统使用灵活的特点。

选择的Xilinx公司的xc7vx485T的FPGA开发板VC707的优点

1、集成了MAC硬核和SGMII接口,可以完成MAC层功能和PHY层接口的实现。

2、集成了PHY层芯片,可以完成PHY层的功能。

3、集成了1gb的DDR3资源,可以缓存数据。

总得设计方案如图所示,其中MAC层与PHY层的SGMII接口可以直接调用IP来实现。

接收模块

接受上机位的ARP请求,提取上位机的MAC地址和IP地址,以及接收上位机的UDP数据包,并提取报文。

发送模块

发送ARP应答给上位机,封装要发送的数据,加上UDP首部,IP首部以及以太网帧首部,并发送给MAC层的ip核。

DDR3控制模块

将接收FIFO中的数据存入DDR3中,在发送时,从DDR3中读出到发送FIFO。

发送/接受FIFO

以太网工作时钟为125 MHZ,DDR3工作时钟为200MHZ,利用这两个FIFO来解决跨时钟域问题。

MAC层IP核

完成以太网帧的前导码、帧起始定界符的封装以及解封。

具体的工作流程:系统在发送数据时,将 DDR3中的数据通过发送逻辑以及 MAC层IP核进行数据封装,再 通 过 SGMII接 口IP核输出数据送入 PHY 芯片,在PHY 层完成数据编码后经由 RJ45接口发送给上位机;而系统接受数据就是发送数据的逆过程,上位机发送的数据经过 RJ45接口到达 PHY 芯片,在 PHY 层完成解码后通过 SGMII接口将收输出数据

送入 MAC层IP核以及接收逻辑模块,完成数据提取或指令执行的工作,并将数据存入 DDR3。

后面介绍了ARP协议,IP协议和UDP协议就不多讲了。

ARP是为了得到目的MAC地址,才能将IP和UDP正确发送到目的。

这个模块主要是为区分接收到的是ARP还是UDP模块。

鉴别ARP有三点:

1、判断目的MAC地址是否为FF-FF-FF-FF-FF-FF

2、判断帧类型是否为0X0806

3、判断 *** 作码是否为1

是的话就产生ARP_request信号,并提取出上位机的MAC地址和IP地址,输出到ARP处理模块中。

当判断是否为UDP时:

1、IP数据报首部协议字段是否为0x11

2、ip报部分的目的IP地址是否和本地地址一样

3、udp首部的目的端口号是否和本地的端口号一样

若判断通过,就将UDP数据存入接收FIFO中,同时记录数据长度为frame_cnt。

要发送的数据有两种,即ARP应答,以及DDR中读出的数据封装成UDP协议的MAC帧数据。

状态机如图所示。

1、ARP处理模块输出ARP_reply时,进入ARP应答帧状态,当应答完成后,进入空闲状态,其中ARP处理模块需要提供给应答状态上位机的MAC地址,IP地址。

2、当状态机检测到DDR_RD_CPL信号时,就是当DDR3有数据存入发送FIFO时,开始添加MAC头,IP头、udp头,最后读出FIFO里的数据,状态机进入空闲状态。

最后是一些计算,因为目的,源MAC、ip和端口号都变了,所以需要重新计算IP校验和,UDP校验和,统计数据长度,并将结果封装到数据包中去。

最后新收获是,在全双工模式下,以太网帧的数据长度不能超过1500字节,再减去IP首部20字节,udp首部8字节,因此udp数据长度应该小于1472字节。

呵呵,完全没头绪的提问啊, 试着理一下头绪吧!

先选好FPGA型号和外部PHY芯片,推荐:

cyclone3或者Spartan6之类的"近代"FPGA都是高性价比的,外面连个88E1111就行了。

然后就是FPGA内部的编程了,要想处理网络协议方便的话,怎么也得调用个Nios或者MicroBlaze软核,添加轻量化的网络协议栈,然后就是软核部分的socket编程了。

整体下来PCB、FPGA、software都要用到,得软硬通吃才行!

FPGA不是必选项的话还是用APM、PPC之类的方便

基于 Zynq的 Avnet ZedBoard的LPC(低引脚数)FMC连接器,在板子的外设上添加了4个千兆以太网端口。

板子本身有4个Marvell 88E1510千兆以太网PHY和带有集成磁件的端口连接器。以太网MAC位于ZynqSoC,使用ZynqSoC的PS(处理器系统)的硬件以太网MAC,或者在ZynqSoC的PL(可编程逻辑)中例化的以太网MAC。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12035523.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存