1

本实验将实现 FPGA 芯片和 PC 之间进行千兆以太网数据通信, 通信协议采用 Ethernet  UDP 通信协议。 FPGA 通过 GMII 总线和开发板上的 Gigabit PHY 芯片通信, Gigabit PHY芯片把数据通过网线发给 PC。在上次的实验中,我们详细讲解了网络传输的过程中如何对数据进行传输,以及数据传输的格式,这次实验中,我们详细讲解如何使用Verilog语言来实现将UDP数据的发送。

以太网数据通信的示意图如下:

这里我再展示数据传输的格式图片。

其中数据包括三个方面的内容:IPv4数据包头,UDP包头,和用户数据。

IPv4数据包头:

UDP数据包头。

2

在AX515/AX530开发板我们采用了Realtek千兆GPHY芯片RTL8211E 来实现千兆以太网数据通信。当网口 Link 到千兆以太网时, FPGA 通过 GMII 总线和 PHY 芯片进行数据通信,当网口 Link 到百兆以太网时, PGA 通过 MII 总线和 PHY 芯片进行数据通信。 另外 FPGA 可以通过 MDI/MDIO 管理接口来配置或读取 PHY 芯片内部的寄存器。

本实验以千兆以太网 GMII 通信为例来设计 verilog 程序。整个Ethernet_test测试是一个顶层模块,UDP发送模块。我们要发送的数据为Hello World。

首先我们先实现UDP模块。 UDP模块包括UDP发送模块和CRC校验模块。RTL电路示意图:

Ipsend模块是UDP发送模块。各个引脚的解释请看各个模块的Verilog代码。代码在下面。UDP发送顶层模块。

UDP发送数据模块。

UDP 发送模块实现把 RAM 里的数据组成 UDP IP 包格式通过 GMII 总线发给 PHY 芯片,PHY 芯片再把数据发送到开发板的网口。

IP 数据包发送之前需要先发送 IP 数据包的包头,IP 包头由 8 个字节的前导码, 目标 MAC Address,源 MAC 地址和两个字节的 IP 包类型组成。前导码是由 7 个 0x55, 1个 0xD5 字节组成, 表示一个IP数据包传输的开始; 目标MAC Address为数据要发送对象的MAC地址,如果开发板的网口是和您的 PC 机相连, 那目标 MAC Address的值为你 PC 机的 MAC 地址。源 MAC Address 是指开发板本地的 MAC 地址。IP 包类型值为 0x0800。

发完 IP 包头之后开始发送 IP 数据报首部,IP 数据报首部的格式我们在前面已经讲过,接着发送 ram中的数据,最后发送 4 个字节的 CRC32 的值。

CRC模块我们不把代码贴出来了,请到最后我提供的链接进行下载。

Ethernet顶层测试模块。

Ethernet顶层设计模块是首先将发送的数据写进ram中,此时ram作为一个缓存,每次发送数据的时候首先需要去读取ram中的数据,将读取ram中的数据读入UDP模块中,然后进行按照数据发送的格式进行发送,每次发送的一帧数据即为Hello World。即为12字节。

3

实验结果:

通过wireshark软件我们抓取Ethernet网络的数据,在wireshark抓包窗口我们可以看到开发板(192.168.0.2)向PC网口(192.168.0.2)发来的数据包,这里会显示数据包的目标MAC, 源MAC,IP包头和UDP包等信息。

千兆以太网的数据传输速度非常快,而且是全双工传输,通过环路测试,UDP 通信的数据速度可以达到 900Mbps 以上,非常适合高速数据传输的场合,比如视频图像传输,高速数据采集等等。

注意:以太网的数据帧的传输有包长的要求, 一般在46~1500字节。所以在发送以太网数据包的时候,数据帧的长度不能太短, 不然会导致PC数据包发送而FPGA收不到数据包的情况。

工程链接地址:链接:http://pan.baidu.com/s/1geWb771 密码:64wf

Verilog实现千兆以太网传输相关推荐

  1. 国产FPGA(紫光同创)—— 数据采集及千兆以太网传输(一)

    科研需要,使用国产FPGA(紫光PLG50H)实现数据采集及千兆以太网传输.总体流程如图所示 第一部分先对数据采集部分进行说明. 一.模数转换(ADC芯片-LTC2324) 本项目使用的是LTC232 ...

  2. 国产FPGA(紫光同创)—— 数据采集及千兆以太网传输(二)

    科研需要,使用国产FPGA(紫光PLG50H)实现数据采集及千兆以太网传输.总体流程如图所示 数据采集完成后,第二部分就需要千兆以太网实现数据传输. 一.硬件部分 开发板上通过Realtek RTL8 ...

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

    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G 1. 简介 本实 ...

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

    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G 1. 简介 本实 ...

  5. ZYNQ 千兆以太网 学习

    开发板上提供一个千兆以太网传输接口,Zynq-7000 SoC的PS部分包含了两个千兆以太网MAC层硬件控制器,与PS MAC相连的物理层传输芯片采用的是Realtek RTL8211E-VL.本板使 ...

  6. 千兆以太网PHY芯片调试-88E1111(RGMII接口-数据收发ECHO测试) Verilog实现python测试

    千兆以太网PHY芯片调试-基于RGMII接口的88E1111(数据收发ECHO测试) 先放结果: Py测试代码: import socket #网络通信 TCP,UDP DST_IP = '192.1 ...

  7. 千兆以太网TCP协议的FPGA实现。

    千兆以太网TCP协议的FPGA实现 Lzx 2017/4/20 写在前面,这应该是我大四最后一个工程性的作品了,以后要养成写文档记录的习惯.说明下,本工程为纯verilog实现的硬件TCP收发器,不同 ...

  8. 工业级千兆以太网光纤收发器产品介绍

    工业级光纤收发器是一种可以延长传输距离的一种工业交换机,它具有便捷.维护简单.抗干扰性能强.性能强大.运行稳定等优点.产品设计符合以太网标准,性能稳定可靠.该设备可广泛应用于智能交通.电信.安防.金融 ...

  9. 整理加解释:以太网、快速以太网、千兆以太网和万兆以太网分别的概念和区分 大详解

    一.以太网是什么 以太网(Ethernet)最早是由Xerox(施乐)公司创建的局域网组网规范,1980年DEC.Intel和Xeox三家公司联合开发了初版Ethernet规范-DIX 1.0,198 ...

  10. 基于FPGA的数据采集、通讯和存储系统设计(即FPGA+RTL8211千兆以太网+SD卡存储+RTC+Uart+AD7606数模转换+电流放大采集等硬件设计及程序验证)

    本文主要介绍了学生期间自己做的一个小项目,便于学习初期对fpga的整体把握,涉及了很多常见.常用.常考和面试常问的知识点. 可以作为入门后的拓展学习和应对一些找工作的项目面试. 下面对硬件及软件代码进 ...

最新文章

  1. jQuery Ajax调用后如何管理重定向请求
  2. PHP做好友关系系统,php社交好友网站
  3. 【Vue】 Error with Vue lazy loading components: “Failed to resolve async component“
  4. android 彩蛋 miui,MIUI12最新更新,安卓11彩蛋终于出现,流畅度提升
  5. java 多重属性_最全面的44个Java 性能调优细节
  6. c语言代码可以python运行吗_c语言如何运行python脚本
  7. python设置默认密码_使用Python生成随机密码的示例分享
  8. 专访勒索组织“范本”:Thedarkoverlord 喜欢并享受辽阔的狩猎场
  9. oracle数据库应用中实现汉字“同音”查询
  10. Ubuntu系统安装ghostscript seq2logo
  11. Android studio emulator Terminated
  12. IOS版Telegram启用中文界面的方法
  13. macos复制粘贴快捷键 快速_MacOS中复制和粘贴快捷键说明,及常见的各种快捷键整理大全...
  14. 唯冠和苹果的官司打得热闹
  15. 解决开机提示High Severity Error问题
  16. 谈谈个人网站的建立(五)—— 小集群的部署
  17. python 使用pip安装和更新包
  18. (二)进一步认识数据库
  19. 10个JS精简代码无形装逼集合,最为致命,记得收藏好
  20. snapcraft动手实践 --- Web Camera

热门文章

  1. 【计算机网络】Linux系统连接吉林大学校园网
  2. STM32入门开发: LWIP网络协议栈移植(网卡采用DM9000)
  3. h5页面预览pdf文件_H5 页面如何查看 PDF 文件
  4. WinAPI设置RGB背景色以及前景色
  5. 深圳市各行政区域最新地图数据
  6. C# Abp框架入门系列文章(一)
  7. epson机器人编程 范例_EPSON工业机器人编程.pdf
  8. 倾斜摄影测量三维实景建模
  9. ctype函数_Ctype函数简介
  10. 汇编intel 8086/8088/80386 学习