FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

目录

FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

FPGA-2.5G-UDP

1、前言

目前网上的FPGA实现UDP基本生态如下:
1:verilog编写的精简版udp收发器,不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?
2:带ping功能的完整版udp收发器,代码优秀也好用,但基本不开源,不会提供源码给你,这样的代码也有不足,那就是出了问题不知道怎么排查,毕竟你没有源码,无可奈何;

FPGA实现UDP网络通信现状如下:
Xilinx系列FPGA实现UDP网络通信主要有两种方案,其一是使用PHY芯片实现物理层功能,比如常见的RTL8211、B50610等芯片,UDP协议栈部分很简单,可使用verilog代码直接实现;其二是使用Xilinx官方的IP核实现物理层功能,比如常见的1G/2.5G Ethernet PCS/PMA or SGMII、AXI 1G/2.5G Ethernet Subsystem、10G/25G Ethernet Subsystem、10G Ethernet Subsystem等,UDP协议栈部分很简单,可使用verilog代码直接实现;本设计使用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能;

工程概述

本设计FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现2.5G UDP以太网通信,能实现电脑端网卡与FPGA开发板之间的双向通信,为了方便测试,设计了UDP数据回环和网络测速两个功能;

UDP数据回环功能如下:
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;

网络测速功能如下:
PGA自动循环产生从0开始的累加数作为UDP用户发送数据,发送数据然后进入UDP协议栈实现以太网帧组包,即加上各种头部信息和校验,每包数据长度为1472;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;然后打开电脑端的资源管理器,查看网卡,即可看到通信速率;
针对目前市面上主流的FPGA应用,本工程共移植了14套工程,具体如下:

在这里插入图片描述


现对上述14套工程源码解释如下:

工程源码1

开发板FPGA型号为Xilinx–Artix7–35T–xc7a35tfgg484-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码2

开发板FPGA型号为Xilinx–Artix7–35T–xc7a35tfgg484-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码3

开发板FPGA型号为Xilinx–Kintex7–325T-xc7k325tffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码4

开发板FPGA型号为Xilinx–Kintex7–325T-xc7k325tffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码5

开发板FPGA型号为Xilinx–>Zynq7100—xc7z100ffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx Zynq7000系列FPGA实现以太网应用;

工程源码6

开发板FPGA型号为Xilinx–>Zynq7100—xc7z100ffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx Zynq7000系列FPGA实现多路以太网应用;

工程源码7

开发板FPGA型号为Xilinx–Virtex7–xc7vx690tffg1761-3;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码8

开发板FPGA型号为Xilinx–Virtex7–xc7vx690tffg1761-3;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码9

开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale系列FPGA实现以太网应用;

工程源码10

开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale系列FPGA实现多路以太网应用;

工程源码11

开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale+系列FPGA实现以太网应用;

工程源码12

开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale+系列FPGA实现多路以太网应用;

工程源码13

开发板FPGA型号为Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale+MPSoCs系列FPGA实现以太网应用;

工程源码14

开发板FPGA型号为Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale+MPSoCs系列FPGA实现多路以太网应用;

本文详细描述了FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现2.5G UDP以太网通信的设计方案,经过反复大量测试稳定可靠,可在项目中直接移植使用,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括ZEEKLOG、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便快速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个项目的文章链接,当然,本博文实时更新。。。以下是博客地址:
点击直接前往

我这里已有的以太网方案

目前我这里有大量UDP协议的工程源码,包括UDP数据回环,视频传输,AD采集传输等,也有TCP协议的工程,还有RDMA的NIC 10G 25G 100G网卡工程源码,对网络通信有需求的兄弟可以去看看:
直接点击前往

本设计用到的UDP协议栈在RGMII接口PHY芯片上的应用方案

本设计用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII实现物理层,或者针对于直连FPGA GT高速收发器BANK的SGMII接口的PHY,其中用到的UDP协议栈,在RGMII接口的PHY芯片上也有应用,之前写过一篇博客,对RGMII接口的PHY芯片上使用本博客UDP协议栈有需求的兄弟可以去看看:
直接点击前往

本设计用在1G/2.5G Ethernet PCS/PMA or SGMII中的1G应用

本设计基于Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII实现2.5G UDP协议栈,但1G/2.5G Ethernet PCS/PMA or SGMII也可以配置为1G模式,对1G模式有应用需求的用户,可以参考我之前的博客,链接如下:
直接点击前往

3、详细设计方案

设计原理框图

设计原理框图如下:

在这里插入图片描述

电脑端网络调试助手

电脑端网络调试助手很简单,几乎干这一行的都用过,为Windows版本.exe文件,无需安装直接使用,界面如下:

在这里插入图片描述


这个软件使用教程可自行百度,如果连这个都不会用,说明。。。

PHY(SGMII)或SFP光口转RJ45电口

在准备SFP光口转RJ45电口前,请确认你的电脑网卡支持2.5G速率,如下:

在这里插入图片描述


本设计适用于以下两种物理接口:
1:、FPGA开发板无需网络PHY芯片,而使用光口做UDP以太网通信,此时的物理接口为SFP光口,进而需要SFP光口转RJ45电口实现与PC的网络连接,SFP光口转RJ45电口某宝几十块钱很便宜,大概长这样:

在这里插入图片描述


光电转换口必须要支持2.5G,如下:

在这里插入图片描述


2、FPGA开发板有网络PHY芯片,且PHY必须为SGMII模式且必须连接到了FPGA高速收发器BANK,典型的PHY芯片有88E1111、DP83867ISRGZ、RTL8211B等型号,此时直接用网线即可实现与PC的网络连接。

1G/2.5G Ethernet PCS/PMA or SGMII 简介

1G/2.5G Ethernet PCS/PMA or SGMII实现了类似于网络PHY芯片的功能,其功能框图如下:

在这里插入图片描述


接收端:
数据首先经过GT资源解串,将串行数据解为并行数据;然后经过弹性Buffer做数据缓冲处理,主要是为了去频偏,使板与板之间的数据稳定,然后进行8b/10b解码,恢复正常数据;然后经过PCS接收同步器,对数据进行跨时钟处理,同步到GMII时序下;最后将数据放入GMII总线下输出;

发送端:
发送端则简单得多,输入时序为GMII;然后进入PCS发送引擎;然后对数据进行8b/10b编码;最后放入GT串化后输出;

1G/2.5G Ethernet PCS/PMA or SGMII 配置

1G/2.5G Ethernet PCS/PMA or SGMII配置为2.5G,其与MAC的接口为GMII,配置如下:

在这里插入图片描述


核心配置如下:

在这里插入图片描述


无PHY,使用光口做网络通信时,配置为2500BASEX;
有PHY、且为SGMII接口、且直连FPGA 高速收发器BANK时,配置为2.5G SGMII模式;

1G/2.5G Ethernet PCS/PMA or SGMII可运行于1G和2.5G线速率,对GT时钟有严格研究,按照官方数据手册,对于Xilinx 7系列FPGA而言,运行1G线速率时,GT差分时钟必须为125M,运行2.5G线速率时,GT差分时钟必须为312.5M,如下:

在这里插入图片描述


对于Xilinx UltraScale和UltraScale+系列FPGA而言,无论配置为1G或2.5G模式,GT差分时钟没有特性要求,可以使125M或者156.25M等等。

多个1G/2.5G Ethernet PCS/PMA or SGMII 主从级联使用

多个1G/2.5G Ethernet PCS/PMA or SGMII 的主从搭配使用的应用场景是FPGA开发板充当多光口的网卡使用,即一个FPGA挂载多个光口,每一个光口相当于一个独立的网卡,有独立的IP地址和MAC地址,类似于交换机;主从搭配使用框架如下:

在这里插入图片描述


主从级联使用时,多个1G/2.5G Ethernet PCS/PMA or SGMIIIP核共享1路GT BANK参考时钟;

2.5G UDP协议栈

2.5G UDP协议栈是以太网的协议层,由纯verilog代码实现,具有动态ARP、ICMP功能,占用逻辑资源少,性能不错,设计精简等特点,代码有详细中文注释,这里就不过多赘述,模块代码架构如下:

在这里插入图片描述

2.5G UDP数据回环+测速

2.5G UDP数据回环使用FIFO缓存用户接收数据后转发给发送接口,功能简单,不多赘述
测速则是FPGA向PC端单向发送数据,PGA自动循环产生从0开始的累加数作为UDP用户发送数据
代码架构如下:

在这里插入图片描述

IP地址、端口号的修改

工程留出了IP地址、端口号的修改端口供用户自由修改,位置在顶层模块如下:

在这里插入图片描述


多路网卡工程时如下:

在这里插入图片描述

工程源码架构

提供14套工程源码,以工程源码1为例,工程源码架构如下,此工程仅用1路Ethernet:

在这里插入图片描述


提供14套工程源码,以工程源码2为例,工程源码架构如下,此工程使用2路Ethernet:

在这里插入图片描述

4、vivado工程1详解:Artix7-35T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTP;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

5、vivado工程2详解:Artix7-35T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTP;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

6、vivado工程3详解:Kintex7-325T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

7、vivado工程4详解:Kintex7-325T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

8、vivado工程5详解:Zynq7100,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

9、vivado工程6详解:Zynq7100,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

10、vivado工程7详解:Virtex7-690T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–Virtex7–xc7vx690tffg1761-3;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

11、vivado工程8详解:Virtex7-690T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Virtex7–xc7vx690tffg1761-3;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

12、vivado工程9详解:KU060,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

13、vivado工程10详解:KU060,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

14、vivado工程11详解:KU5P,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTY;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

15、vivado工程12详解:KU5P,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTY;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

15、vivado工程13详解:ZU9EG,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

16、vivado工程14详解:ZU9EG,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

17、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;

在这里插入图片描述


3:如果你的vivado版本高于本工程vivado版本,解决如下:

在这里插入图片描述


打开工程后会发现IP都被锁住了,如下:

在这里插入图片描述


此时需要升级IP,操作如下:

在这里插入图片描述


在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

18、上板调试验证并演示

准备工作

试验需要准备以下设备:
FPGA开发板,可以自行购买,也可以找本博主购买同款开发板;
测试电脑;
2.5GSFP转RJ45电口,2.5G网线;
网络调试助手;
以工程源码1的开发板为例进行上板调试;
连接如下:

在这里插入图片描述


然后将电脑端IP地址设置为如下:

在这里插入图片描述


然后下载bit或者固化bin文件,即可开始测试;

ping测试

打开电脑CMD,输入ping指令;
单次ping测试如下:

在这里插入图片描述


连续ping测试如下:

在这里插入图片描述

ARP测试

打开电脑CMD,输入ARP指令;如下:

在这里插入图片描述

UDP数据回环测试

打开电脑端网络调试助手,测试如下:

在这里插入图片描述


在这里插入图片描述

网络测速

首先关闭网络调试助手;
然后配置电脑网卡,开启巨型帧之类的,把网卡配置为最佳性能;
然后打开vivado加载的VIO,然后将VIO设置为1,开启数据发送,如下:

在这里插入图片描述


然后在电脑的任务栏右击鼠标–>任务管理器–>性能,找到网卡,如下:

在这里插入图片描述


注意,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。。。

综合测试效果演示

综合测试效果演示如下:

FPGA-2.5G-UDP

19、福利:工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:

在这里插入图片描述


此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:

在这里插入图片描述

Read more

Flutter 三方库 mediapipe_core 的鸿蒙化适配指南 - 实现高性能的端侧 AI 推理库集成、支持多维视觉任务与手势/表情识别实战

Flutter 三方库 mediapipe_core 的鸿蒙化适配指南 - 实现高性能的端侧 AI 推理库集成、支持多维视觉任务与手势/表情识别实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 mediapipe_core 的鸿蒙化适配指南 - 实现高性能的端侧 AI 推理库集成、支持多维视觉任务与手势/表情识别实战 前言 在进行 Flutter for OpenHarmony 的智能化应用开发时,集成强大的机器学习(ML)能力是打造差异化体验的关键。mediapipe_core 是谷歌 MediaPipe 框架在 Dart 侧的核心封装库。它能让你在鸿蒙真机上实现极其流畅的人脸检测、手势追踪以及实时姿态估计。本文将深入探讨如何在鸿蒙系统下构建低功耗、高响应的端侧 AI 推理链路。 一、原原理性解析 / 概念介绍 1.1 基础原理 mediapipe_core 作为 MediaPipe 的“神经中枢”

网络安全:零暴露公网IP访问本地AI服务的一些方法分享,保障数据隐私!

网络安全:零暴露公网IP访问本地AI服务的一些方法分享,保障数据隐私!

如果我们选择本地部署AI模型(如LLaMA、Stable Diffusion)的核心动机之一是对数据隐私的绝对控制! 但当我们需要从外部网络访问这些服务时,就面临两难选择:要么牺牲便利性(只能在内网使用),要么牺牲安全性(将服务暴露至公网)。我这边介绍一种折中的解决方案,实现无需公网IP、零端口暴露的远程安全访问。 公网暴露的潜在威胁 将本地服务的端口通过路由器映射到公网(Port Forwarding),是常见的“暴力”解决方案。但这带来了显著风险: 1. 端口扫描与暴力破解:你的服务IP和端口会暴露在互联网的自动化扫描工具下,可能遭遇持续的登录尝试或漏洞利用攻击。 2. 服务漏洞利用:如果AI服务的Web界面或API存在未修复的漏洞,攻击者可以直接利用。 3. 家庭网络边界被突破:一旦攻击者通过该服务入侵成功,可能进一步渗透到家庭网络中的其他设备。 怎么解决:基于加密隧道的网络隐身 思路是:不让本地服务在公网“露面”,而是让外部访问者通过一条加密的“专属通道”直接进入内网。这可以通过基于零信任网络的P2P VPN工具实现。 具体实现:以Tailscale/Z

Flutter 组件 tavily_dart 的适配 鸿蒙Harmony 实战 - 驾驭 AI 搜索引擎集成、实现鸿蒙端互联网知识精密获取与语义增强方案

Flutter 组件 tavily_dart 的适配 鸿蒙Harmony 实战 - 驾驭 AI 搜索引擎集成、实现鸿蒙端互联网知识精密获取与语义增强方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 tavily_dart 的适配 鸿蒙Harmony 实战 - 驾驭 AI 搜索引擎集成、实现鸿蒙端互联网知识精密获取与语义增强方案 前言 在鸿蒙(OpenHarmony)生态的智能个人助理、行业垂直类知识中枢以及需要实时获取互联网最新动态并进行 AI 语义加工的各种前沿应用开发中,“信息的有效检索与精准抽取”是决定 AI 应用是否具备“生命感”的关键泵口。面对浩如烟海且充满噪声的互联网网页。如果仅仅依靠传统的关键词匹配。那么不仅会导致应用返回大量无关紧要的垃圾信息。更会因为无法将网页内容转化为 AI 易于理解的结构化上下文(Context),引发严重的 LLM(大语言模型)幻觉风险。 我们需要一种“AI 驱动、语义过滤”的搜索艺术。 tavily_dart 是一套专为 AI

Stable Diffusion数据集标签编辑终极指南:3步高效处理海量图片

Stable Diffusion数据集标签编辑终极指南:3步高效处理海量图片 【免费下载链接】stable-diffusion-webui-dataset-tag-editorExtension to edit dataset captions for SD web UI by AUTOMATIC1111 项目地址: https://gitcode.com/gh_mirrors/st/stable-diffusion-webui-dataset-tag-editor 数据集标签编辑是AI绘画训练中至关重要的环节,而Stable Diffusion WebUI扩展为你提供了完整的解决方案。无论你是新手还是资深用户,这套工具都能帮你大幅提升标签处理效率,让你专注于创意而非繁琐的数据整理工作。 🎯 核心功能深度解析 智能标签管理系统 这个扩展的核心价值在于它强大的标签管理能力。通过内置的多种标签处理模式,你可以轻松应对各种复杂场景: 标签筛选功能:支持AND/OR/NONE逻辑组合,通过勾选特定标签快速定位目标图片。比如你可以同时筛选包含"披萨"和"西兰花"的图片,或者排除&