W5100S-L 采用UDP主动发送有时发不出去

博客讲述了在使用STM32F407通过SPI连接W5100S-L网络芯片进行UDP通信时遇到的问题。当发送间隔超过25秒,会出现发送延迟或丢失的情况。作者通过Wireshark抓包发现可能与ARP包有关,并在W5100S-L芯片初始化中启用FARP功能解决了问题。这可能是由于W5100S芯片ARP缓存时间导致的,但具体原因未在官方手册中找到。

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

STM32F407通过SPI带载W5100S-L网络芯片,将socket配置为UDP模式时:

1、先收紧接着后发,无论发送间隔时间,全部OK;

2、主动只发送,间隔20s以内也都OK;

3、主动只发送,间隔25s,刚开始时OK,大约发四五次后,间隔变为50s,或75s,即中间有一两次不执行发送;

找来找去没办法,后来用wireshark抓包,观察到如果用网络调试助手主动UDP发送时,大概每50s会发送一个ARP包,应该是确定对端是否存在以及对方的MAC地址。受此启发,看到W5100S-L芯片可以强制UDP发送ARP,也就是会在每次UDP发送之前先发送ARP确定对端IP及MAC。

 在芯片初始化中加入FARP位使能后,该问题解决!至于为啥会这样,貌似是W5100S芯片的ARP缓存对端MAC地址有效时间的问题,但芯片手册中未找到相关说明~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值