w5500常见问题及解决方案

匿名 (未验证) 提交于 2019-12-02 23:32:01

1、 如何确认W5500网络芯片物理连接是否正常?

使用W5500网络协议芯片,对其进行可靠的硬件复位(网络协议芯片的RESET或RST引脚)后可能出现下列现象:

如果出现上述现象,表明物理连接已经成功并且芯片工作,否则需要排查相关问题。

2、 如何检测W5500物理连接是否成功与芯片是否工作及相关线路是否正常有关系?

(10) 如果是使用的W5300芯片,当不使用外部PHY时,TEST_MODE[3:0](19~22引脚),必须全部为低电平,可全接地,否则可能因没有PHY导致不能连接。

3、 W5500连接正常却PING不通,怎么办?

W5500芯片是否可以ping通,不仅与物理连接等有关系,还和相关电路以及网关、子网掩码、MAC地址、IP地址配置有关系,可以从以下方面进行排除:

长线,各差分信号相差不能超过2.5cm。RXIP,RXIN应尽量靠近,TXOP,TXON应尽量靠

近,有条件的应走平行线。

4、 为什么W5500芯片可以PING通,但无法发送数据?

W5500芯片可以ping通,说明相关电路以及网关、子网掩码、MAC地址、IP地址配置均正常, 如果不能建立连接发送接收数据,需要从从SOCKET配置,SOCKET状态,中断寄存器,发送接收程序,或是上位机软件的设置等进行排查 。

具体配置参考W5500数据手册

5、 W5500在配置时需要检查网关吗?为什么?

其实只要不访问外网,完全可以不做这个检测,如果要访问外网,必须经过网关,做这步就是为提前知道网关是否存在,是否正常工作。

6、 为什么检测网关时要将目的IP地址每位加‘1’?

在正确设置网关的情况下,去连接一个不在同一子网(外网)的目的IP,就可找到网关,而将目的IP每位加1,正好造就一个不在同一子网的目的IP,如果愿意你加2加3都可以。

7、 为什么检测网关要判断目的MAC地址首位不为0xff?

因为未找到网关以前,读出目的MAC地址所有位全为0xff, 至于为什么判断首位,因为找到的目的MAC地址首位应该是偶数,因此绝不可能是0xff(255)

8、 WIZnet网络芯片TCP模式下的客户端与服务器有什么异同?

不同点:

客户端起启动连接(CONNECT)的作用,主动连接必须要知道连接目标,因此要正确设置SOCKET的目的(服务器)IP和目的(服务器)端口号。

服务器则是侦听的作用(LISTEN),等待连接不需要设置目的IP 和目的端口号,客户端来连接时,服务器自然知道客户端的IP地址与端口号。

相同点:

客户端服务器SOCKET 分片长度最大均为1460字节,即每次发送最大为1460字节

客户端服务器均要先配置为TCP模式

客户端服务器连接成功均为SOCK_ESTABLISHED状态(Sn_SR 寄存器)

详细内容可查看各芯片的《数据手册》

9、 TCP模式下,通过路由器,对方拔掉网线后,再插上后不能建立通讯怎么办?

WIZnet芯片可以在发送过数据后,空闲既未发送也未接收达的情况,到一定时间(3秒,5秒,10秒自定义)后,发送SEND_KEEP命令,如对方正常就保持连接,如果对方在一定时间内未回应,则发出超时中断,自动关闭SOCKET端口,就可以自动重新连接,这样就能连接上了。但此命令只能用于TCP模式,如果是UDP模式下如果也想查看对方状态就需要从程序想办法了。

因为中断读了数据后,然后还是要去读寄存器,去判断是什么中断,有可能在判断的过程中又来了N 个中断,增加中断就增加了很多不确定因素。

中断必然有响应时间,当上次中断还没结束,又产生新的中断甚至连续产生多次新的中断时,或者中断标志未及时清除,必然不能响应所有中断,此时以中断标志位来判断是否该接收,必然丢失数据。

WIZnet目前每款网络协议芯片都可以支持多个SOCKET同时工作,但每个SOCKET可以且必须以不同的端口号做为区分。

多块网络协议芯片在同一个子网中使用,应具备唯一的MAC地址,唯一的IP地址,因为不在同一块网络芯片,IP地址、MAC地址不一样,因此可以设置成一样的端口号。

问题描述:单个设备在局域网中的时候能够正常Ping通,而且TCP连接也使用正常没有任何问题;

解答:首先检查程序中IP地址、MAC地址是否有冲突,如果地址都没有冲突,可检查程序中配置的问题。

当然可以,WIZnet每款网络协议芯片都可以支持多个SOCKET同时工作,只需将芯片内每个SOCKET设置成不同端口号,分别设置成客户端去连接服务器就行, 前提是服务器的上位机软件需支持多任务,否则不能成功。

首先,需要检查discover的内容,最简单的就是,你把电脑设置成固定IP,再设置成DHCP,抓一下电脑的内容,然后再对比一下

这样是不可行的,复位必须有可靠操作,让芯片满足工作条件;

RST那里只是保险,但绝大多数问题是其他原因造成的,如果没有反应,先看一下W5500回的信息,有没有正确的初始化,再去找其他问题的原因。

W5500芯片内部集成了PHY,将会处理大量以太网信息,所以功耗会较大,芯片温度会比较高。但是,WIZnet芯片满足工业级标准(-40°C~80°C)的要求,拥有广泛的工作温度范围。正常工作的温度远低于工作温度范围的上限,所以用户若正常操作无短接等现象,发现芯片发热属正常现象。

文章来源: https://blog.csdn.net/zhuangyuanlang1/article/details/90241501
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!