基于FPGA的UDP 通信(四)

news/2024/12/2 13:53:19/

952617a70a66434a4919eca65888c5d3.png


引言

前文链接:

基于FPGA的UDP 通信(一)

基于FPGA的UDP 通信(二)

基于FPGA的UDP 通信(三)

本文基于FPGA与MATLAB作千兆以太网通信模块UDP数据接收实验板级验证:FPGA接收上位机数据。

设计条件

FPGA芯片:xc7a35tfgg484-2

网络芯片(PHY):RTL8211(支持1000M/100M/10M)

MAC与PHY接口:GMII

接口类型:RJ-45

Vivado版本:2018.3

Matlab版本:R2022a

电脑:小新Pro16 2022 酷睿版 笔记本

转接口:绿联USB转千兆以太网 转接器


MATLAB侧

在实时脚本中编写代码:

clc;
clearvars;% UDP 参数设置
LocalHost = "192.168.8.1";
LocalPort = 6009;
Timeout = 10;
% 创建UDP端口对象
U_UDP_PORT_OBJ = udpport("ByteOrder","little-endian","LocalHost",LocalHost,"LocalPort",LocalPort,"Timeout",Timeout);% 写数据
DstHost = "192.168.8.2";
DstPort = 6001;
write(U_UDP_PORT_OBJ,1:101,"uint8",DstHost,DstPort);
% 清除缓存
flush(U_UDP_PORT_OBJ);clear U_UDP_PORT_OBJ

如有需要,可以在此下载MATLAB实时脚本文件:

链接:百度网盘 请输入提取码

提取码:UDP0

FPGA侧

配置UDP参数,并在顶层例化,添加XDC约束,综合实现以后产生比特流。

参数设置:

UDP接收模块例化:

b01660e1e02a62f94295875f791d4b7d.png

电脑侧

IP设置

DOS绑定

鼠标右键,以管理员身份运行命令提示符

输入如下命令,显示所有网络连接

netsh i i show in

查询到与FPGA连接的以太网 Idx(此处我的Idx为18),用DOS命令绑定目的IP和目的MAC地址,用如下的命令:

netsh -c i i add neighbors 18 192.168.8.2 00-01-02-03-04-05

Idx 后面第一组数据为 FPGA板的IP地址,第二组数据为FPGA板的MAC地址。

利用如下命令查询绑定结果:

arp -a

传输验证

数据抓取

MATLAB 发送1~101,共101个数据,FPGA侧利用 ILA抓取接收数据:

演示视频

C站:基于FPGA的千兆以太网通信——UDP接收演示

B站:基于FPGA的千兆UDP通信演示视频



http://www.ppmy.cn/news/11907.html

相关文章

List subList()方法缺陷及替代方案

技术背景 在日常开发中&#xff0c;我们常遇到将一个List列表分割成多个的场景&#xff0c;List提供了subList()方法避免开发者重复造轮子。 subList()的用法 ArrayList类是接口List的一个实现&#xff0c;以下subList()使用方法参考示例来自ArrayList。 List<String>…

向“全栈”进发,大型线上商城实战项目,Spring Boot + Vue 前后端分离版本的商城来了(文末有视频)

新蜂商城 Vue 版本&#xff0c;它来了&#xff01;&#xff08;文末有视频&#xff09; 如上图所示&#xff0c;新蜂商城 Vue 版本已经开发完成&#xff0c;这是新蜂商城开源项目的第一个大版本更新&#xff0c;根据大量的用户调研&#xff0c;最终决定将新蜂商城升级为 Spring…

MyBatis获取参数值的两种方式

MyBatis获取参数值的两种方式在idea中设置模板MyBatis获取参数值的两种方式mapper接口方法的参数为单个字面量类型mapper接口方法的参数为多个时自动存入map手动存入mapmapper接口方法的参数是实体类类型的参数使用Param注解命名参数为什么这么多方法却说是两种方式&#xff1f…

Unity 2d碰撞检测

碰撞检测Collider2d 射线检测函数Raycast 与 Cast 函数Overlap 检测函数参数PhysicsScene2D 类检测函数Physics2D 类检测函数MonoBehaviour 类碰撞检测函数Collider2d 射线检测函数 Raycast 与 Cast 函数 Raycast 是发射一条射线 Cast 是把整个碰撞器作为射线投射出去 enabl…

适应性学习率

目录 适应性学习率 Adaptive learning rate 为什么不是临界点仍会导致训练停止 示例一示例二 RMSRMSPropAdam学习率还和时间有关 Learin Rate DecayWarm up 2021 - 类神经网络训练不起来怎么办(三) 自动调整学习率 (Learning Rate)适应性学习率 Adaptive learning rate 一般…

ASP.NET Core 3.1系列(26)——Autofac中的实例生命周期

1、前言 前面的博客主要介绍了Autofac中的一些注册方法&#xff0c;下面就来介绍一下Autofac中实例的生命周期。之前在介绍ASP.NET Core内置IoC容器的时候说过&#xff0c;实例的生命周期有&#xff1a;瞬时生命周期、域生命周期、全局单例生命周期&#xff0c;而Autofac在这三…

【5】K8S_Deployment

目录 1、Deployment作用 2、deployment的冗余能力 3、deployment的多副本部署 4、deployment的扩缩容 5、deployment的自愈能力 6、滚动更新 7、版本回退 1、Deployment作用 控制Pod&#xff0c;使Pod拥有多副本&#xff0c;自愈&#xff0c;扩缩容等能力 2、deployme…

【算法数据结构初阶篇】:位运算

算法中很多情况下需要用到各种位运算的转换&#xff0c;比如>>右移、<<左移、&与等等&#xff0c;下面我们利用这些位运算来进行一个进制转换&#xff0c;将一个int整形&#xff08;32位&#xff09;十进制转二进制&#xff0c;以及其他的一些转换技巧。 一、十…