FPGA以太网接口设计,纯Verilog实现UDPTCP协议,支持校验和重发功能,适合学习和简单通信

FPGA以太网接口设计,纯Verilog实现UDPTCP协议,支持校验和重发功能,适合学习和简单通信

fpga以太网接口设计,支持udp和tcp协议,纯verilog手写代码,纯逻辑实现udptcp协议,接口类似于axi stream 。 mac层和tcp/ip层模块是分开的,物理接口可根据要求定制,目前的百兆网版本接口为RMII,千兆网版本接口为GMII转RGMII,Gmii和rgmii均下板测试过,tcp模块支持校验和重发功能,可和电脑端进行一对一通信。 可封装为axi接口(axi stream 或 axi lite)。 适合简单基础通信和参考学习,工程基于vivado,已有代码框图如下,其中图三为soc版本,网口为从机,riscv核为主机,通过axi interconnect桥接,也可灵活增加其他从设备。 非soc版本就只有网口的硬件代码,如图四。 可以和网络调试助手和python或c的socket通信。 注:资源消耗将近2000lut(xilinx fpga) 附带四份文档,1为抓包实测的文档说明,2为以太网协议介绍的ppt,3为tcp实现的代码说明,4为报文基本概念

最近在搞一个FPGA的以太网接口设计,支持UDP和TCP协议,纯Verilog手写代码,没有用任何现成的IP核,完全从底层逻辑实现。这个设计的目标是做一个简单、基础的通信模块,适合学习和参考。整个工程基于Vivado,资源消耗大概2000个LUT(Xilinx FPGA),不算特别大,但功能还算齐全。

模块划分

整个设计分为两个主要模块:MAC层和TCP/IP层。MAC层负责处理物理接口,TCP/IP层则负责协议栈的实现。物理接口可以根据需求定制,目前有百兆网的RMII接口和千兆网的GMII转RGMII接口。GMII和RGMII都已经下板测试过,稳定性还不错。

MAC层

MAC层的代码相对简单,主要是处理物理接口的数据收发。以RMII为例,代码大致如下:

module rmii_rx ( input wire clk_50m, input wire rst_n, input wire [1:0] rxd, input wire crs_dv, output reg [7:0] rx_data, output reg rx_valid ); // 这里省略了一些状态机和数据处理逻辑 always @(posedge clk_50m or negedge rst_n) begin if (!rst_n) begin rx_data <= 8'b0; rx_valid <= 1'b0; end else begin // 根据crs_dv和rxd信号解析数据 // 这里省略了具体的数据解析逻辑 end end endmodule

这个模块的核心是根据crsdv和rxd信号解析出有效的数据,并输出rxdatarxvalid信号。rxvalid信号表示当前rx_data是有效的。

TCP/IP层

TCP/IP层的实现稍微复杂一些,特别是TCP协议,涉及到校验和、重发等功能。这里简单看一下TCP的校验和计算部分:

function [15:0] tcp_checksum; input [15:0] data [0:9]; reg [31:0] sum; integer i; begin sum = 0; for (i = 0; i < 10; i = i + 1) begin sum = sum + data[i]; end while (sum >> 16) begin sum = (sum & 16'hFFFF) + (sum >> 16); end tcp_checksum = ~sum; end endfunction

这个函数计算TCP报文的校验和,输入是一个16位的数据数组,输出是16位的校验和。计算过程是将所有数据相加,然后对结果进行进位处理,最后取反得到校验和。

AXI接口封装

为了方便集成到SoC系统中,这个设计还支持封装为AXI接口,可以是AXI Stream或AXI Lite。以AXI Stream为例,代码大致如下:

module axi_stream_interface ( input wire aclk, input wire aresetn, input wire [31:0] tdata, input wire tvalid, output reg tready, output reg [31:0] rdata, output reg rvalid, input wire rready ); // 这里省略了一些状态机和数据处理逻辑 always @(posedge aclk or negedge aresetn) begin if (!aresetn) begin tready <= 1'b0; rdata <= 32'b0; rvalid <= 1'b0; end else begin // 根据tvalid和tready信号处理数据 // 这里省略了具体的数据处理逻辑 end end endmodule

这个模块的核心是根据tvalidtready信号处理数据流,并输出rdatarvalid信号。rvalid信号表示当前rdata是有效的。

测试与通信

这个设计可以和电脑端的网络调试助手、Python或C的Socket进行通信。测试时,我用Wireshark抓包验证了数据的正确性,抓包文档也附在了工程里。TCP模块支持校验和重发功能,和电脑端进行一对一通信时,稳定性还不错。

总结

这个FPGA以太网接口设计虽然不算特别复杂,但涵盖了从MAC层到TCP/IP层的完整实现,适合初学者学习和参考。代码全部手写,没有依赖任何现成的IP核,理解起来相对容易。如果你对FPGA和网络协议感兴趣,这个工程应该能给你一些启发。

附带的文档里还有以太网协议的介绍、TCP实现的代码说明和报文基本概念,感兴趣的话可以深入了解一下。

Read more

1200PLC与爱普生机器人modbus_TCP通讯

1200PLC与爱普生机器人modbus_TCP通讯

1.前言 首先申明一下我的硬件信息 机器人:C4-A601S 控制器:RC700 PLC:西门子S7-1200(CPU:1217C/DC/DC/DC) 2.控制器IP地址查看及修改 在配置控制器相关信息时需要先用网线连接PC与机器人控制器连接,爱普生机器人出厂设定网址为192.168.0.1(我这里是之前修改过了) 若默认没有显示以太网连接,点击右侧的增加,选择“通过以太网连接到控制器”后点击确定 如果控制器网址被修改过了,不知道是多少,可以用一根PC线,一头接在控制器的“开发用PC连接专用USB端口”另一头接在电脑USB口 这时候再在通讯处选择USB连接就可以通上了 现在就可以在“系统配置”处看到控制器的IP地址以及相关信息了,如果有需要也可以直接在这修改IP地址。 3.机器人控制器配置 网线连接好后开始配置通讯相关信息 1.控制设备 控制设备修改为远程I/O 2.现场总线 现场总线类型修改为“Modbus TCP”

夸克网盘免费资源电子书籍安卓软件经典游戏音乐歌曲精品教程AI绘画学习资料合集

夸克网盘免费资源电子书籍安卓软件经典游戏音乐歌曲精品教程AI绘画学习资料合集

一、夸克网盘免费资源说明 夸克网盘免费资源,来自全网整理二次精选,涵盖了几乎所有资源类型,网盘资源目录的分享链接,仅限一级目录和二级目录,一级目录是网盘资源的根目录,包括电子书籍、软件资源、游戏资源、视频资源、音乐音频、美食技术和学习资料等,二级目录是一级目录的子目录,均为资源专题形式,比如,Kindle原版书籍合集、U盘车载音乐歌曲、DeepSeek全套资源、全网专业摄影书籍、TikTok全球解锁版本、IOS巨魔专用资源、TED演讲视频合集、剪映教学全套资源、全网热门漫画精选,等等,相信其中会有你所需要的。 特别说明: 1、夸克网盘与百度网盘不同,不仅支持查看分享链接的资源大小,而且支持在分享链接页面里搜索资源,可以查询其中是否有你所需要的。 2、夸克官方一直都有福利活动,新用户可以免费领取1TB空间,具体操作方法请查看文本文件(在分享链接里)。 3、一级目录《全网精选2000T优质资料》,提供了很有价值的海量夸克资源,分享链接存放在电子表格里,整个目录大小只有9.7M,建议转存收藏。 二、夸克网盘一级目录资源 电子书籍+

VLA机器人革命:解析当下10篇最关键的视觉-语言-动作模型论文

VLA机器人革命:解析当下10篇最关键的视觉-语言-动作模型论文

VLA机器人革命:解析当下10篇最关键的视觉-语言-动作模型论文 概览 2024-2026年,机器人领域正经历一场范式转换:从传统的任务特定编程转向视觉-语言-动作(Vision-Language-Action, VLA)模型。这些模型将视觉感知、自然语言理解和动作执行统一在单一框架中,让机器人能够像人类一样理解指令、推理场景并执行复杂操作。 本文精选5篇最fundamental的基础性论文和5篇热度最高的前沿论文,深入剖析VLA领域的核心思想、技术演进和未来方向。这些论文代表了从Google DeepMind、NVIDIA、斯坦福、Physical Intelligence等顶尖机构的最新突破,涵盖了从单臂操作到双臂人形机器人、从模拟环境到真实家庭场景的全方位进展。 Part I: 五篇Fundamental基础性论文 这些论文奠定了VLA领域的理论基础和技术范式,是理解整个领域发展脉络的关键。 1. RT-2: New Model Translates Vision and Language into Action 发表机构:Google DeepMind 时间: