|
大家好,我最近发现开发的网络板有偶发的通信问题,具体情况如下:
项目概况:MCU STM32H743; PHY芯片 LAN8720A;操作系统:rtx5;网络组件 RL-NET;H743作为TCP服务器,pc机作为TCP客户端,最多支持PC机创建4个客户端通信。
具体问题:PC机和H743 通过网线直连,TCP建立连接正常通信,将PC机休眠。等10分钟后再开电脑,PC机就ping不通H743,只能重启743才能解决问题。但是在通信过程中拔掉网线,等10分钟后再插上网线,743的网络驱动正常,只需要重新建立连接就能正常使用。
排查情况:将使用的NET库改为调试模式,调试等级设置为err,发现休眠再打开时和拔插网线的打印信息一样,如下:
000.0 SYS:Init Network 7.15.0
000.0 SYS:Init complete
000.0 SYS:SetOption ETH0, MAC-Addr
000.0 SYS:SetOption ETH0, IP4-Addr
000.0 SYS:SetOption ETH0, IP4-Mask
000.0 SYS:SetOption ETH0, IP4-DefGW
000.0 SYS:GetOption ETH0, MAC-Addr
231.0 ETH-ERR:Send 0, Link down
235.0 ETH-ERR:Send 0, Link down
239.0 ETH-ERR:Send 0, Link down
243.0 ETH-ERR:Send 0, Link down
247.0 ETH-ERR:Send 0, Link down
251.0 ETH-ERR:Send 0, Link down
255.0 TCP-ERR:Socket 2, No Retries left
255.0 ETH-ERR:Send 0, Link down
所以我目前的疑问是:1.电脑休眠为什么会导致ping不通问题,2.拔插网线和休眠的不同点在哪
|
|