基于10G Subsystem FPGA 万兆UDP协议栈实现

**背景**

一般项目和上位机交互一般采用网口或者串口,其中千兆网用的比较多, 随着传输速率需求的加大,千兆网本身的理论速度就无法满足一些大数据量的传输场景。

常见的网络协议就是TCP/IP及UDP,通常情况下TCP/IP协议栈大部分由于比较复杂,一般的方案主要选择DSP之类的MCU自带的协议栈,纯逻辑也可以实现,只是工作量很大,当然HLS也是一个不错的选择,这里介绍一种基于10G Ethernet Subsystem Ip和的UDP协议栈实现。

UDP的数据格式这里就不做过多的解释,有很多相关的文档及博客

实现:
在这里插入图片描述
上图是 10G Ethernet Subsystem Ip的配置图,要实现UDP协议主要就是实现ICMP (ping) UDP封包及ARP 3中数据格式包,基于xilinx方案万兆和千兆网的主要区别就是,万兆主要是采用了AXI总线的结构。主要就是根据标准协议对3种包进行封装打包,另外有一个总裁的机制,因为同一个时刻只能发送其中一种包,优先级最高的还是要保证数据传输。
在这里插入图片描述
其中10G Ethernet Subsystem Ip主要实现MAC数据打包

最后:

在这里插入图片描述
在这里插入图片描述

和PC机器交互传输的瓶颈主要在于上位机数据处理,上图可以看到16小时未发生丢包

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值