基于FPGA的以太网相关文章导航

news/2024/5/9 0:27:20/文章来源:https://blog.csdn.net/weixin_50810761/article/details/137600629

  首先需要了解以太网的一些接口协议标准,常见的MII、GMII、RGMII时序,便于后续开发。

    【必读】从MII到RGMII,一文了解以太网PHY芯片不同传输接口信号时序!


  介绍一款比较老的以太网PHY芯片88E1518,具有RGMII接口,分析该芯片的原理图和内部寄存器的配置方式,以及MDIO的时序。

    揭秘88E1518以太网芯片:比RTL8211更麻烦,配置多一步”


  PC端通过串口调试助手对88E1518内部寄存器进行配置,涉及到uart收发数据模块和MDIO读写时序,用户可以根据定义的串口格式,通过串口助手向88E1518中寄存器写入数据或者读出数据。

    “FPGA+MDIO总线+UART串口=高效读写PHY芯片寄存器!“(含源代码)


  上面几篇文章是对PHY芯片和协议的相关讲解,下面文章开始对PHY芯片的数据传输接口和讲解、实现以太网协议。

  首先需要把88E1518的RGMII双沿采样数据的接口协议转换为单沿传输数据的GMII接口协议,会使用到BUFIO、BUFG、IDDR、ODDR、IDELAYE等原语知识。

    基于FPGA的GMII与RGMII接口相互转换(包含源工程文件)


  下文讲解以太网帧格式和ARP协议,ARP协议是源主机知道目的主机IP,不知道目的主机物理地址时发起的协议,具体知识可以查看下文。

    以太网帧格式及ARP协议简介


  上文讲解了ARP以及以太网帧格式,下文通过FPGA实现ARP协议,包括CRC校验,以太网发送和以太网接收等模块。最后通过仿真和上板测试,用户需要掌握PC端清除ARP绑定和发起ARP请求的指令,并且需要简单掌握wireshark的使用。

    【实战干货】FPGA实现ARP协议,细节全解析!(包含源工程文件)


  下文讲解IP协议和ICMP协议的相关知识,ICMP主要用于检测以太网链路的畅通,回显应答发送的数据与回显请求数据段的数据必须保持一致。

    IP协议及ICMP协议简介


  通过FPGA实现ICMP协议,用于外设测试以太网链路的畅通,该设计会包含arp协议,用户就不需要手动绑定IP和物理地址,会更加方便。

  PC在发送回显请求之前,会发送arp请求获取目的主机的物理地址,可以通过wireshark抓取对应报文。

    基于FPGA实现ICMP协议(包含源工程文件)


  ARP协议用于获取目的主机的物理地址,ICMP用于测试以太网链路的连接状态,而UDP用于传输数据。

  下文简要讲解UDP协议,然后通过FPGA实现该协议,注意本文只是用于熟悉UDP协议的一些知识,对数据做了简要回环,可能会存在一些bug。

  对于这个bug我并没有修复,原因在于这个设计中ARP、ICMP、UDP分别通过不同模块实现,这样的设计便于调试或者屏蔽某种协议,但是会消耗更多资源,因此后面会对这三个模块进行整合,合并为一个模块,解决上述问题。

    基于FPGA的UDP实现(包含源工程文件)


  下文就是整合ARP、ICMP、UDP协议的结果,相比前文的工程会节省很多资源,并且加入了帧间隔等信息,修复了发现的bug。上板实测最大发送速率可以达到980Mbps。后续文章使用的以太网UDP模块均是该模块。

    基于FPGA的实用UDP设计(包含源工程文件)


  下文是以太网模块存在问题的优化,对应工程也已经上传到百度网盘的以太网UDP版本1。

    以太网模块问题及优化


  上位机通过UDP协议向FPGA传输图像数据,FPGA使用上述设计的模块接收上位机的数据,并且将数据传输给DDR3存储,最后在HDMI显示器上进行显示。下面两篇文章的效果都一样,区别在于mig IP的用户接口不同。

    基于FPGA的以太网传输图片通过HDMI显示(含源码)

    将Xilinx DDR3 MIG IP核的AXI_FULL接口封装成FIFO接口(含源码)


  这篇文章是对前一篇文章中出现的一个bug总结,通过实际现象推测可能出现的原因,然后利用ILA和wireshark抓取关键信号去判断猜想是否正确,最后找到根本原因,解决问题。

    以太网传输图片工程出现的问题总结(含源码)


  上一篇文章主要用于UDP接收数据报文,下文主要用于测试UDP发送数据报文,OV7725摄像头采集数据,通过FIFO暂存,然后直接通过以太网发送模块将数据发送给PC端,PC端通过上位机显示摄像头的图像信息。

    基于FPGA的OV7725网络摄像头(含源码)


  设计其实有时候挺烦的,自己的设计出现问题,就只能自己通过ILA这些工具去定位问题,原因在于短时间其他人也不知道你的代码是如何写的,更不知道这个代码中的关键信号,无法帮你定位问题。

  因此在设计的时候我通常会将所有模块实现一遍,即便不能替换他人模块,也需要知道他的设计思路,关键信号是哪些,出现问题后如何定位等等。能不能找到更加简便的实现方式,优化一些设计,便于后续替代等等。

  只有当你自己能够设计出功能相同甚至功能更优的电路的时候,才是真正掌握了知识,不是把别人代码拿过来用就行了。

  下图用于封面!!!!

在这里插入图片描述


  如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!

  如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1045814.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防止狗上沙发,写一个浏览器实时识别目标检测功能

家里有一条狗🐶,很喜欢乘人不备睡沙发🛋️,恰好最近刚搬家 狗迎来了掉毛期 不想让沙发上很多毛。所以希望能识别到狗,然后播放“gun 下去”的音频📣。 需求分析 需要一个摄像头📷 利用 chrome…

openHarmony 如何从API9升级到API10

最近用从官方下载的DevEco Studio3.1开发小app, 需要用到第三方库,加载第三方库,并添加代码,编译时如下错误: hvigor Finished :entry:defaultGenerateMetadata… after 3 ms hvigor ERROR: Failed :entry:defaultMergeProfile… …

微信小程序页面交互综合练习 (重点:解决“setData of undefined”报错问题)

一、写一个注册表单,点击“注册”按钮将用户输入的数据带到服务器,并且能在控制台显示参数。 (1)首先,我需要在vscode里面创建一个简易的node.js服务器 //第一步:引入http模块 var http require(http); //第二步:创建…

算法刷题Day30 | 332.重新安排行程、51. N皇后、37. 解数独

目录 0 引言1 重新安排行程1.1 我的解题1.2 更好的解法 2 N皇后2.1 我的解题 3 解数独3.1 我的解题3.2 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:算法刷题Day30 | 332.重新安排行程、51. N皇后、37. …

【图论】详解链式前向星存图法+遍历法

细说链式前向星存图法 首先要明白,链式前向星的原理是利用存边来进行模拟图。 推荐左神的视频–建图、链式前向星、拓扑排序 比方说有这样一张图,我们用链式前向星来进行模拟时,可以将每一条边都进行编号,其中,红色的…

刷题DAY49 | LeetCode 121-买卖股票的最佳时机 122-买卖股票的最佳时机II

121 买卖股票的最佳时机(easy) 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取…

【前端面试3+1】10 npm run dev 发生了什么、vue的自定义指令如何实现、js的数据类型有哪些及其不同、【最长公共前缀】

一、npm run dev发生了什么 运行npm run dev时,通常是在一个基于Node.js的项目中,用来启动开发服务器或者执行一些开发环境相关的任务。下面是一般情况下npm run dev会执行的步骤: 1. 查找package.json中的scripts字段: npm会在项…

双指针,滑动窗口

今天也是闲来无事,想去做一下,之前学过的某个题型,但是在中间突然发现了这个题,那时候年少无知,做不出来,今天也是很轻松的用双指针轻松拿捏,因此发帖。 传送门:逛画展 题解&#x…

VRRP虚拟路由实验(华为)

思科设备参考:VRRP虚拟路由实验(思科) 一,技术简介 VRRP(Virtual Router Redundancy Protocol)是一种网络协议,用于实现路由器冗余,提高网络可靠性和容错能力。VRRP允许多台路由器…

官网下载IDE插件并导入IDE

官网下载IDEA插件并导入IDEA 1. 下载插件2. 导入插件 1. 下载插件 地址:https://plugins.jetbrains.com/plugin/21068-codearts-snap/versions 说明:本次演示以IDEA软件为例 操作: 等待下载完成 2. 导入插件 点击File->setting->Pl…

数据仓库与数据挖掘(第三版)陈文伟思维导图1-5章作业

第一章 概述 8.基于数据仓库的决策支持系统与传统决策支持系统有哪些区别? 决策支持系统经历了4个阶段。 1.基本决策支持系统 是在运筹学单模型辅助决策的基础上发展起来的,以模型库系统为核心,以多模型和数据库的组合形成方案辅助决策。 它…

2024年第八届人工智能与虚拟现实国际会议(AIVR 2024)即将召开!

2024年第八届人工智能与虚拟现实国际会议(AIVR 2024)将2024年7月19-21日在日本福冈举行。人工智能与虚拟现实的发展对推动科技进步、促进经济发展、提升人类生活质量等具有重要意义。AIVR 2024将携手各专家学者,共同挖掘智能与虚拟的无限可能…

利用Sentinel解决雪崩问题(二)隔离和降级

前言: 虽然限流可以尽量避免因高并发而引起的服务故障,但服务还会因为其它原因而故障。而要将这些故障控制在一定范围避免雪崩,就要靠线程隔离(舱壁模式)和熔断降级手段了,不管是线程隔离还是熔断降级,都是对客户端(调…

图片管理系统:原理、设计与实践

title: 图片管理系统:原理、设计与实践 date: 2024/4/9 20:04:25 updated: 2024/4/9 20:04:25 tags: 图片管理存储组织上传采集处理编辑搜索检索展示分享AI应用 第一章:图片管理系统概述 1.1 图片管理系统简介 图片管理系统是一种用于存储、组织、处理…

rocketmq和rabbitmq总是分不清?

1. 官方解答 摘自百度搜索: 2. 通俗易懂的回答

【unity】【C#】UGUI组件

文章目录 UI是什么对UI初步认识 UI是什么 UI是用户界面(User Interface)的缩写,它是用户与软件或系统进行交互的界面。UI设计旨在提供用户友好的界面,使用户能够轻松地使用软件或系统。UI设计包括界面的布局、颜色、字体、图标等…

爬虫逆向实战(40)-某江酒店登陆(AES、MD5)

一、数据接口分析 主页地址:某江酒店 1、抓包 通过抓包可以发现数据接口是/api/member/login 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现,有TDFingerprint、blackBoxMd5、password和sw四个加密参数&#x…

Java快速入门系列-6(数据库编程与JDBC)

第六章:数据库编程与JDBC 6.1 SQL基础6.1.1 SQL基本结构与命令6.1.2 SQL高级查询6.1.3 SQL子查询与联接6.2 JDBC原理与使用6.2.1 JDBC驱动程序与URL6.2.2 Statement、PreparedStatement与CallableStatement6.2.3 数据库事务处理6.3 数据库连接池6.4 事务管理6.1 SQL基础 SQL(…

数据结构——线性表(链式存储结构)

语言:C语言软件:Visual Studio 2022笔记书籍:数据结构——用C语言描述如有错误,感谢指正。若有侵权请联系博主 一、线性表的逻辑结构 线性表是n个类型相同的数据元素的有限序列,对n>0,除第一元素无直接…

电商技术揭秘十八:电商平台的云计算与大数据应用小结

电商技术揭秘相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五&#xf…