FPGA基于Tri Mode Ethernet MAC实现UDP通信 提供3套工程源码和技术支持
目录
- 1、前言
- 2、我这里已有的UDP方案
- 3、米联客UDP协议栈
- 4、详细设计方案
- 5、Tri Mode Ethernet MAC的使用
- 6、vivado工程1详解
- 7、vivado工程2详解
- 8、vivado工程3详解
- 9、上板调试验证并演示
- 10、福利:工程代码的获取
1、前言
目前网上的fpga实现udp基本生态如下:
1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?
2:带ping功能的udp收发器,代码优秀也好用,但基本不开源,不会提供源码给你,这样的代码也有不足,那就是出了问题不知道怎么排查,毕竟你没有源码,无可奈何;
3:使用了Xilinx的Tri Mode Ethernet MAC三速网IP实现,这样的代码也很优秀,但还是那个问题,没有源码,且三速网IP需要licence,三速网IP实现了rgmii到gmii再到axis的转换,本设计基于此方案;
本设计调用Xilinx的Tri Mode Ethernet MAC三速网IP,使用米联客的UDP协议栈实现UDP通信,该协议栈目前并不开源,只提供网表文件,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;本设计通过一个fifo实现UDP数据的回环收发,并在电脑端使用网络调试助手进行UDP收发验证;
本设计可以配置为UDP的服务器或者客户端,默认配置为服务器,可在顶层代码中通过`define实现配置,本设计经过反复大量测试稳定可靠,可在项目中直接移植使用,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
2、我这里已有的UDP方案
目前我这里有如下几种UDP方案和应用实例:
我的博客主页有个FPGA以太网通信专栏,专栏是免费的,里面有很多FPGA实现的UDP应用,对网络通信有需求的兄弟可以去看看:直接点击前往
3、米联客UDP协议栈
本设计调用Xilinx的Tri Mode Ethernet MAC三速网IP,使用米联客的UDP协议栈实现UDP通信,该协议栈目前并不开源,只提供网表文件,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;
协议栈架构如下:
协议栈性能表现如下:
1:支持 UDP 接收校验和检验功能,暂不支持 UDP 发送校验和生成;
2:支持 IP 首部校验和的生成和校验,同时支持 ICMP 协议中的 PING 功能,可接收并响应同一个子网内部设备的 PING 请求;
3:可自动发起或响应同一个子网内设备的 ARP 请求,ARP 收发完全自适应。ARP 表可保存同一个子网内部256 个 IP 和 MAC 地址对;
4:支持 ARP 超时机制,可检测所需发送数据包的目的 IP 地址是否可达;
5:协议栈发送带宽利用率可达 93%,高发送带宽下,内部仲裁机制保证 PING 和 ARP 功能不受任何影响;
6:发送过程不会造成丢包;
7:提供64bit位宽AXI4-Stream形式的MAC接口,可与Xilinx官方的千兆以太网IP核Tri Mode Ethernet MAC,以及万兆以太网 IP 核 10 Gigabit Ethernet Subsystem、10 Gigabit Ethernet MAC 配合使用;
有了此协议栈,我们无需关心复杂的UDP协议的实现了,直接调用接口即可使用。。。
4、详细设计方案
详细设计方案如下:
UDP协议栈加上了FIFO以缓冲数据;
调用Tri Mode Ethernet MAC实现MAC层的数据转换;
共提供了3套工程实现UDP通信,只是使用的PHY不同,分别是RTL8211、
B50610、88E1518;
在电脑端使用网络调试助手测试数据收发、对包情况,还有连续ping、网络带宽延迟等测试;
5、Tri Mode Ethernet MAC的使用
IP使用逻辑实现的AXI Lite接口配置,具体参考代码;
IP配置很简单,配置完成即可使用;
6、vivado工程1详解
开发板:Xilinx Artix7-35T;
开发环境:Vivado2020.2;
网络PHY:RTL8211延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程代码架构如下:
本设计可以配置为UDP的服务器或者客户端,默认配置为服务器,可在顶层代码中通过`define实现配置,如下:
开发板IP和远端IP可自由修改,master_ch.v和slaver_ch.v文件修改位置如下:
7、vivado工程2详解
开发板:Xilinx Kintex7-35T;
开发环境:Vivado2020.2;
网络PHY:B50610延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程详情与vivado工程1一致;
8、vivado工程3详解
开发板:Xilinx Kintex7-35T;
开发环境:Vivado2020.2;
网络PHY:88E1518延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程详情与vivado工程1一致;
9、上板调试验证并演示
以工程2的Kintex7-35T开发板为例进行测试;
板子上电下载bit后,先测试ping功能,如下:
单次ping还不够,直接上连续ping,如下:
然后是用网络调试助手进行数据收发测试,如下:
既有手动收发测试,也有循环12小时的长时间收发测试,测试结果没有出现丢包的情况。。。
测速如下:
在电脑上观察开发板以太网网口的发送速率,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。。。
10、福利:工程代码的获取
福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
UDP协议栈网表文件位置:
FPGA基于Tri Mode Ethernet MAC实现UDP通信 提供3套工程源码和技术支持相关推荐
- FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持
目录 1.前言 2.我这儿已有的 FPGA USB 通信方案 3.CY7C68013A芯片解读和硬件设计 FX2 简介 SlaveFIFO模式及其配置 4.工程详细设计方案 5.vivado工程 6. ...
- FPGA HLS双线性插值图像缩放视频拼接,上板验证稳定通过,提供3套工程源码和技术支持
目录 1.前言 2.HLS实现双线性插值图像缩放 3.vivado工程1:1080P缩小720P 4.vivado工程2:1080P缩小后mixer二分频 5.上板调试验证并演示 6.福利:工程代码的 ...
- FPGA纯verilog实现视频拼接,纯逻辑资源搭建,提供4套工程源码和技术支持
目录 1.本方案的实用价值 2.总体设计方案 3.视频拼接方案算法 4.工程1:单路视频输出 5.工程2:2路视频拼接输出 6.工程3:3路视频拼接输出 7.工程4:4路视频拼接输出 8.上板调试验证 ...
- FPGA采集IT6802视频HDMI输出,提供两套工程源码和技术支持
IT6802是宝岛台湾联阳半导体设计生产的HDMI接受芯片,数据手册有49页,编程手册79页,想要看懂并操作还是有难度的,所以直接上干货. 开发板:Kintex7板子: 开发环境:vivado2019 ...
- FPGA实现GTX视频传输,全网最细讲解,提供2套工程源码和技术支持
目录 1.前言: 2.工程整体框架: 3.GTX IP 配置及细节讲解 4.GTX收发数据编解码讲解 5.工程1介绍:OV5640转GTX 6.工程2介绍:HDMI转GTX 7.上板调试 8.福利领取 ...
- FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持
目录 1.前言 2.AD7606数据手册解读 输入信号采集范围 输出模式选择 过采样率设置 3.AD7606串行输出采集 4.AD7606并行输出采集 5.vivado仿真 6.上板调试验证 7.福利 ...
- FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持
目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...
- FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持
目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...
- FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持
目录 1.前言 2.我目前已有的SDI编解码方案 3.GS2971/GS2972芯片解读 GS2971解读 GS2972解读 4.详细设计方案 5.vivado工程1解读 硬件逻辑工程 软件SDK工程 ...
最新文章
- linux系统管理及vim
- [Cocos2d-x For WP8]ActionManager动作管理
- Java项目导出源代码jar包在Eclipse中查看中文注释乱码的问题
- CSP认证201612-4	压缩编码[C++题解]:区间dp、huffman树、石子合并
- DL之CNN:基于CNN-RNN(GRU,2)算法(keras+tensorflow)实现不定长文本识别
- 放个手机在单位自动打卡_1秒识别打卡,无感知考勤系统重磅来袭!
- SQL中Truncate的用法
- C#数组原来这么简单,你学废了吗?
- 作为一个算法攻城狮,你训练的算法翻车了该怎么办?
- Spring整合SequoiaDB SQL
- 表生成器@ TableGenerator
- Codeforce 1600Difficulty Graphs 20 questions
- 由矢量电子海图构建海底 TINDEM方法研究
- 多路增广 Dinic算法
- linux复制dos命令,Linux mcopy复制MSDOS格式档案命令详解
- 高防服务器有哪些优势
- Maven手动添加dependency(以Oracle JDBC为例)
- 灵玖软件:NLPIR大数据语义智能为企业“画像”
- Android接入穿山甲SDK并实现开屏广告
- 服务器绑定网站域名,服务器网站绑定域名
热门文章
- 我的世界java18w50a_Minecraft我的世界Java版18w47a更新发布
- 学习Python编程基础学习笔记(5.模块和包)
- 详解Hexo搭建博客的底层原理
- 生产者-消费者问题 ——by一宇 2021-01-04
- Discuz!教程之Discuz!X2.5版本安装一些插件显示500错误,或页面打不开的问题修复
- iverilog Makefile 阅读
- 效率高低有方法 数据挖掘十大经典算法
- 机器视觉(MV) vs 计算机视觉(CV)
- 大数据分析工程师证书_大数据分析工程师面试集锦4Hive
- 无人驾驶感知篇之传感器标定(一)