全硬件TCP/IP协议栈学习笔记 W5500+FPGA实现tcp连接

本文记录了使用FPGA和W5500实现TCP连接的过程,包括SPI通信协议、硬件复位、配置IP、MAC、GATEWAY等步骤。通过状态机实现8位数据的发送与接收,并利用同步FIFO优化资源。经过数周调试,最终成功实现硬件TCP连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习更多相关知识,关注博主知乎账号,用户名Trustintruth   https://www.zhihu.com/people/suo-yi-xin-90/activities,免费获取代码欢迎关注公共号Trustintruth。

经历了一个多月的调试,最终终于使用basys2将tcp模式配置成功了。

首先说一下思路吧,首先W5500的发送与接收与开发板的通信使用的是SPI协议,下降沿发送,上升沿接收。每次发送的数据格式为前十六位为地址位,之后五位为寄存器区的选块,例如常用的为5‘b00000为通用寄存器区,5’b00001为socket1寄存器区。接下来一位为读写操作位,0为读数据,1为写数据。接下来两位是SPI模式选择,00代表使用SCSN信号确定位宽,01代表一位字长(八个二进制数),10代表两位字长(十六个二进制数),11代表四位字长(32个二进制数)。随后便是和之前字长相匹配的数据位。格式如下:

0000000000000000_ 00000__1_01_00000000

地址位                      寄存器区     写     一位字长   数据

在发送数据与接收数据的时候,要保证数据位和SCK信号沿对其,同时要保证SCSN为低电平。具体的SPI发送可以参考之前的博客。

说完了发送的格式,接下来我们来说一说发送的数据。

首先我们要明确我们要配置数据,我们要发送我们的IP,GATEWAY,MAC,端口以及目的IP,端口。实际上我们讲的发送应该是配置寄存器,我们是在将我们发送所必须的信息写入寄存器中。在发送数据之前我们要首先将我们W5500通过外边的接口硬复位,之后对模式寄存器进行读操作,直到模式寄存器的最低位为0时,即复位完成,我们在进行其他的写入操作。在复位结束之后,我们可以

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值