皮皮网

【arduino的ide源码】【ios打飞机源码】【主力成本指标源码】phy源码

2024-11-20 12:40:47 来源:object equals源码

1.phyԴ??
2.ZYNQ+linux网口调试笔记(3)PL-ETH
3.mipi协议的dphy、cphy有什么区别?
4.FPGA千兆网 UDP 网络视频传输,基于RTL8211 PHY实现,提供工程和QT上位机源码加技术支持
5.xilinx MIPI csi2 Rx FPGA verilog源码与架构分析

phy源码

phyԴ??

       FPGA 高端项目:基于 SGMII 接口的 UDP 协议栈,提供2套工程源码和技术支持

       前言:

       在实现 UDP 协议栈的过程中,网上有许多可用的arduino的ide源码资源,但大多存在一些局限性,如功能不全面、缺乏源码或难以进行问题排查。本设计旨在填补这一空白,提供一个完整的、功能全面的 UDP 协议栈,以及可移植性强、适用于多种 FPGA 器件和开发环境的源码。

       核心内容:

       - **纯 verilog 实现**:本设计完全使用 verilog 语言编写,未依赖任何 IP 核,包括 FIFO 和 RAM 等,ios打飞机源码确保了协议栈的可移植性和自定义性。

       - **源码和技术支持**:提供针对市面上主流 SGMII 接口的 PHY 芯片的两个 Vivado .2 版本的工程源码。

       - **稳定性与可靠性**:经过大量测试的稳定可靠性能,可直接应用于项目中,适用于学生、研究生和在职工程师的开发需求。

       - **适用范围**:适用于医疗、军工等行业的主力成本指标源码数字通信领域,支持多种 FPGA 器件和开发工具。

       - **开源与版权**:提供完整的工程源码和技术支持,遵循个人学习和研究使用规定,禁止用于商业用途。

       工程源码与技术支持:

       工程源码分为两套,分别针对不同型号的 FPGA 和 PHY 芯片,适用于 Xilinx 和 Altera 等主要 FPGA 平台。提供详细的仿联通 网站 源码安装和移植指南,以及网络调试助手工具的使用说明。

       性能亮点:

       - **移植性**:纯 verilog 实现,无 IP 依赖,易于移植到不同 FPGA 平台。

       - **适应性**:兼容多种 PHY 接口类型,包括 MII、GMII、RGMII、倚天公式源码SGMII 等。

       - **高性能**:最高支持 G 速率,适用于不同网络需求。

       - **动态 ARP**:支持动态 ARP 功能,提高了网络通信的可靠性和效率。

       详细设计方案:

       设计采用两块 FPGA 板卡,分别搭载 DPISRGZ 和 E PHY 芯片,实现 SGMII 数据流的高效传输。通过一系列硬件组件(包括网络调试助手、PHY、FPGA 板卡等)的协同工作,实现数据的回环测试,确保协议栈的正确性和稳定性。

       移植与调试:

       提供详细的移植指南,包括不同 FPGA 型号和 Vivado 版本的适应策略。上板调试流程简单明了,包含准备工作、连接步骤和验证方法,确保用户能够顺利进行实际应用。

       获取方式:

       工程源码和相关文档以网盘链接形式提供,用户可自行下载使用。遵循版权规定,仅限个人学习和研究目的。如有任何疑问或需要进一步技术支持,可通过私信或评论方式与博主联系。

       总结:

       本项目旨在提供一个高度可移植、功能全面的 UDP 协议栈,以及丰富的源码和技术支持,旨在满足不同行业和领域对高效网络通信的需求。通过提供稳定可靠的工程源码和详细的移植指南,我们旨在简化开发流程,缩短项目周期,为开发者提供有力的技术支持。

ZYNQ+linux网口调试笔记(3)PL-ETH

       åœ¨ZYNQ上使用gigE Vision协议的网络接口相机。

        第一步:调通PS侧网口GEM0(Xilinx BSP默认配好)。

        第二步:调通PS侧网口GEM1(见前一篇文档:开发笔记(1))。

        第三步:调通PL侧网口(本文阐述)。

        第四步:在PL侧网口上验证Jumbo Frame特性,并在应用层适配gigE Vision协议。

        根据《xapp》可知,PL侧的PHY支持Base-X和SGMII两种配置,这两种配置对应两种不同的PHY引脚接口(连接到MAC)。而我们的hdf文件使用的是Base-X的配置。

        关于网口的Linux驱动,我们在官网找到一份资料: Xilinx Wiki - Zynq PL Ethernet 。资料很长,我们只看与我们相关的2.4.1 PL Ethernet BSP installation for Base-X”这一章节就可以了。

        首先导入FPGA设计同事提供的hdf文件:

        在弹出的图形界面里,进入Subsystem AUTO Hardware Settings——Ethernet Settings——Primary Ethernet,确认可以看到PL侧网络设备axi_ethernet_0,说明hdf文件里已包含了必要的网口硬件信息:

        上图中被选中的网口将成为Linux上的设备eth0。这里我们默认选择ps7_ethernet_0,即使用GEM0作为首选网口。

        启用Xilinx AXI Ethernet驱动

        进入Device Drivers -- Network device support – 选中Xilinx AXI Ethernet(以及Xilinx Ethernet GEM,这是PS侧网口的驱动)

        进入Networking support – 选中 Random ethaddr if unset

        进入Device Drivers -- Network device support -- PHY Device support and infrastructure – 启用Drivers for xilinx PHYs

        进入~~~~Device Drivers -- DMA Engine Support -– 禁用~~~~Xilinx AXI DMAS Engine~~~ (对应的配置项名为 ~~ CONFIG_XILINX_DMA ~~~)

        注意: Xilinx Wiki里对设备树节点的引用有误(&axi_ethernet),导致编译报错,应改为&axi_ethernet_0。

        注:PL-ETH驱动所在路径:<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.c和xilinx_axienet_mdio.c。对应的内核配置项为CONFIG_NET_VENDOR_XILINX和CONFIG_XILINX_AXI_EMAC。

        启用ethtool和tcpdump(调试用,非必须):

        然后将生成的BOOT.BIN和image.ub拷贝到SD卡根目录下,将SD卡插入板子上,上电运行。

        上电后,使用ifconfig eth1查看网口信息,观察MAC地址与设置的一致,且ifconfig eth1 ..1. up没有报错。

        测试网络通路:ping PC是通的。说明网口工作正常。

        Linux下eth1(即PL-ETH)的MAC地址有误

        问题描述:

        开机打印:

        注意:

        MAC地址是错的,驱动里解析出的是GEM0的MAC地址。

        试验发现,即使在system-user.dtsi里不写local-mac-address,也照样解析出的是GEM0的MAC。

        而将system-user.dtsi里的local-mac-address改名为pl-mac-address,并将驱动里解析的字符串也对应更改为pl-mac-address,则可以正确解析出来:

        Passing MAC address to kernel via Device Tree Blob and U-Boot:

       /support/answers/.html

        U-Boot里的环境变量ethaddr会覆盖掉设备树里pl-eth的local-mac-addr字段,从而影响Linux启动后的网卡MAC地址;

        但U-Boot里的环境变量ipaddr不会对Linux启动后的配置产生任何影响。因为设备树里根本就没有关于IP地址的配置。

        phy-mode怎么会是sgmii?查了下官方的提供的BSP里,也是“sgmii”。说明这个没问题。具体原因不清楚。

        @TODO: 设备树里的中断号的顺序如何影响功能?

        为何读出来的IRQ号不对呢?这是因为这里读到的不是硬件的中断号,而是经过系统映射之后的软件IRQ number。两者不具有线性关系。

        关于中断号的疑问:

        Linux上的网口eth0、eth1的顺序,似乎是按照phy地址从小到大来排布的。

        Xilinx xapp-zynq-eth.pdf (v5.0) July ,

       /support/documentation/application_notes/xapp-zynq-eth.pdf

        Xilinx Wiki - Zynq PL Ethernet:

       /iTnrE1y...:mipi_csi2_ctrl verilog源码

       - <a href="wwp.lanzoue.com/iyxll1y...:mipi dphy verilog源码

       欢迎加入社区,共同探讨与解决开发过程中的问题,促进MIPI csi2 Rx技术的应用与发展。