FPGA UDP发送数据 PC端一直接收不到的问题

FPGA发送UDP数据 PC端收不到数据

在测试接受数据时,在别的电脑上能收到,我的电脑上就收不到。首先确定代码没问题,然后看是不是UDP配置时,IP地址弄错了。

ip_header[0]<={16'h4500,tx_total_length};        //版本号:4; 包头长度:20;IP包总长
				   ip_header[1][31:16]<=ip_header[1][31:16]+1'b1;   //包序列号
					ip_header[1][15:0]<=16'h4000;                    //Fragment offset
				   ip_header[2]<=32'h80110000;                      //mema[2][15:0] 协议:17(UDP)
				   ip_header[3]<=32'hc0a80002;                      //192.168.0.2源地址
				   ip_header[4]<=32'hc0a80003;                      //192.168.0.3目的地址广播地址
					ip_header[5]<=32'h1f901f90;                      //2个字节的源端口号和2个字节的目的端口号
				   ip_header[6]<={tx_data_length,16'h0000};         //2个字节的数据长度和2个字节的校验和(无)

这是代码里配置ipsend的部分,ip_header[3]配置的是FPGA的IP地址,这一段的IP是可以自己写的但是一般默认就这样,懒得改了。ip_header[4]是PC端的地址。端口号的设置问题不大,一般8080,我在之前的物理地址配置时用的全FF即发送广播信息。最重要的就是目的主机的IP了。这里折磨了我很久。刚开始,我把网线插上,在PC端查询网口的IP,然后在代码中改IP,就是收不到数据。(查了很久的资料,有人说是因为win10系统的关系。)
在这卡了两天之后,发现这样获取的IP是电脑自动分配的,把这个IP换成静态,再绑定FPGA的IP后就可以接收了。在 DOS 命令窗口绑定开发板的 IP 地址和 MAC 地址,这样,当 PC 发送给 192.168.0.2 的数据包的时候,目标 MAC 地址自动为开发板的 MAC 地址。具体配置过程如下:

  1. 修改PC的IP为自己的
    控制面板->网络和共享中心->选中以太网->以太网状态->IPv4状态->属性
    在这里插入图片描述
  2. 在dos下运行命令:ARP -s 192.168.0.2 00-0a-35-01-fe-c0//绑定
    绑定以后输入arp -a就可以查看是否绑定了,如果看到192.169.0.2旁边是静态的属性就说明成功了,然后再看PC已经能接收了。

我现在也不清楚为什么一开始用动态的IP地址不行。。感觉这东西太玄学了,硬生生在这卡了两天。总之,接收不到UDP数据说不定用这个办法就可以收到了。有什么问题请多多指正,本人第一次写博客,主要是这个问题真的太折磨了,写个博客来发泄~~

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值