作者:出典mosha | 来源:互联网 | 2023-10-13 00:10
一,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 即可