热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ZYNQ网络通信的四种实现方案

一,ZYNQMIO以RGMII接口连接外部PHY芯片实现LWIP网络通信。二,ZYNQPS的ENET0ENET1通过EMIO的方式扩展至PL,在PL中通过RGMII接口连接扩展子卡

一,ZYNQ  MIO以RGMII 接口连接外部PHY芯片实现LWIP网络通信。


二,ZYNQ  PS 的 ENET0/ENET1 通过 EMIO 的方式扩展至 PL,在 PL 中通过 RGMII 接口连接扩展子卡实现 LWIP 网络通信。

将 PS 上 ENET0/ENET1 通过 EMIO 的方式扩展至 PL。在 PL 中分别通过 AXI 1G/2.5GEthernet Subsystem 和 AXI Direct Memory Access 两个 IP 核来实现 PS 中以太网外设GEMAC 和 DMA 的功能, PS 通过 AXI 总线控制两个 IP 核经扩展子卡实现 LWIP 网络通信。

在PL中搭建了1个AXI 1G/2.5G Ethernet Subsystem以及1个AXI Direct Memory Access IP 核。这两个 IP核均通过AXI 总线经S_AXI_HP0 口与PS 连接,PS 通过AXI 总线对其进行配置和控制。其中,AXI 1G/2.5GEthernet Subsystem IP 核通过 RGMII 接口与RTL8211 芯片连接。在PS 端通过SDK 自带的lwip echo server 与PC 机实现TCP 网络通信。每个DMA占四个中断,最多可扩展4个PL的LWIP网口。

由于默认的驱动不支持RTL8211 的寄存器配置,所以无法支持自动适应速度(通过自己修改库可以实现自动适应 但是工作量大,考虑到投入时间和产出比,这里就不修改了)。所以手动修改LWIP 库让RTL8211 工作于1000Mbps。

将千兆网线插入MZ7XB的LAN 接口,并与电脑连接,将电脑的 ip 地址设为 192.168.1.100,子网掩码为255.255.255.0。然后给开发板上电,通过 SDK 将程序下载入开发板后,观察SDK 串口打印信息,如下图示所示。表示千兆网络连接正常。

三,PL通过EMIO ETHE1外接PHY由GMII转RGMII

https://blog.csdn.net/wangjie36/article/details/107656663

四,将 PS 的ENET0/ENET1 通过 EMIO 的方式扩展至 PL。ENET0/ENET1 在 PL 部分通过 1G/2.5G Ethernet  PCS/PMA or SGMII IP 核与高速串行收发器 GTX 连接,从而可通过 SFP 接口实现 PS 的 LWIP 光/电网络通信。

1,将 ENET1 及其 MDIO 接口以 EMIO引出,设置 PS 输出 1 路 200MHz 的时钟,用于给 1G/2.5G Ethernet PCS/PMA or SGMII IP 核提供参考时钟。使用 FCLK_CLK0 输出 200M 时钟。

2,1G/2.5G Ethernet PCS/PMA or SGMII IP核设置:

     (1)把IP 核设置为 PS 的以太网控制器;选择 1000BASEX 模式;

(2)配置GTX 收发器作为 SFP 的接口,输入 IP 核内部的 MMCM 的时钟源选择为 GTX 收发器输出的时钟 TXOUTCLK,该 MMCM 将产生我们所需要的用户接口时钟。MDIO 接口默认启用,使能自协商。为了简化设计,当设计中只包含 1 个此 IP 核时,应当将可共享的逻辑资源和硬件模块包含在 IP 核内部,这样会减少所生成的模块数量。

3,vivado工程配置

由于 1G/2.5G Ethernet PCS/PMA or SGMII IP 核在 1000BASEX 模式下固定为千兆速率全双工,所以通过
EMIO 引出的 ENETI 的 GMII 引脚中的 COL 和 CRS 无需使用,全部通过 IP 核 Constant 置为 0 即可


推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
author-avatar
出典mosha
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有