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

  首先需要了解以太网的一些接口协议标准,常见的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.hqwc.cn/news/617060.html

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

相关文章

C#简单工厂模式的实现

using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…

大语言模型综述全新出炉:51页论文带你盘点LLM领域专业化技术

大语言模型(LLMs)在自然语言处理(NLP)领域取得了显著的进步,为广泛的应用提供了一种非常有用的、与任务无关的基础。然而,直接应用 LLMs 去解决特定领域的复杂问题会遇到许多障碍,这些障碍源于领…

使用云服务器搭建CentOS操作系统

云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…

Zynq学习笔记--AXI 总线概述

目录 1. AXI总线概述 1.1 主要特点 1.2 通道功能 1.3 信号概览 2. AXI Interconnect 2.1 信号说明 2.2 内部结构 3. PS-PL AXI Interface 3.1 AXI FPD/LFP/ACP 3.2 Address Editor 3.3 地址空间 3.4 AXI-DDR 4. 通过ILA观察AXI信号 4.1 AXI 读通道 1. AXI总线概述…

ES6: set和map数据结构以及使用场景

ES6:set和map数据结构 一、Set 数据结构:二、使用场景:使用Set 进行去重三、Map 数据结构四、使用场景:使用Map进行树型数据懒加载刷新五、Set和Map的区别六、Map、Set的实际使用场景 Set 和 Map 是 ES6 中引入的两种新的数据结构&#xff0c…

下载了恶意软件怎么办,用这个软件可以解决 Mac电脑卸载软件 MacBook查杀病毒

随着苹果电脑在全球市场的普及,它们也日益成为恶意软件制作者的目标。这种趋势打破了许多人认为Mac系统不易受到病毒或恶意软件影响的传统观念。事实上,苹果电脑面临的恶意软件和安全威胁正在不断增多,这要求用户采取更加积极的措施来保护自己…

将OpenWrt 23.05.3部署到VMware ESXi

正文共:1234 字 38 图,预估阅读时间:2 分钟 前面把OpenWrt部署到了VMware workstation上(VMware Workstation部署最新版OpenWrt 23.05.3)。如果想把OpenWrt直接部署到ESXi上,你会发现转换镜像不能直接生成O…

Redis(哨兵模式)

什么是哨兵机制 问题: redis 主从复制模式下, 一旦主节点由于故障不能提供服务, 需要人工进行主从切换, 同时大量客户端需要被通知切换到新的主节点上, 对于有一定规模的应用来说, 对于人力的资源消耗会很大.解决: 通过哨兵对主从结构进行监控, 一旦出现主节点挂了的情况, 自动…

ZFT9 7VE8033同期脉冲发送装置 JSOEF约瑟

系列型号 ZFT9(PIG) 7VE8033同期脉冲发送装置; ZFT9(PIG) 7VE8043同期脉冲发送装置; ZFT9 7VE8033同期脉冲发送装置; ZFT9 7VE8043同期脉冲发送装置; 用途: ZFT9(PIG)同期脉冲发送装置用于船舶的三相系统,根据发电机和电力系统之间电压差、相位差、频率…

基于生成对抗网络在服装领域的发展脉络和应用趋势

文章目录 1、概述2、深度学习图像生成模型2.1、深度信念网络(Deep belief network,DBN)2.2、变分自编码器(Variational auto-encoder,VAE)2.3、生成对抗网络(Generative adversarial networks,GAN) 3、 模型对比分析4、基于多模态转换的服装图…

CSS3新增

一些CSS3新增的功能 课程视频链接 目录 CSS3概述私有前缀长度单位remvwvhvmaxvmin 颜色设置方式rgbahslhsla 选择器动态伪类目标伪类语言伪类UI伪类结构伪类否定伪类伪元素 盒子属性box-sizing问题插播 宽度与设置的不同 resizebox-shadowopacity 背景属性background-originb…

C语言 数据输入输出

本文 我们来说 数据的输入与输出 及数据的运算 在程序的运算工程中 往往需要输入一些数据 而程序的运算 所得到的运算结果又需要输出给用户 因此 数据的输入与输出 就显得非常重要 在C语言中 不提供专门的输入输出语句 所有的输入输出 都是通过对标准库的调用 来实现的 一般 …