原创 W5500问题集锦(二)

2014-11-13 11:24 2463 16 16 分类: 通信 文集: TCP/IP芯片

W5500

W5500自去年9月推出,已经有一年的时间。一年间,不乏很多客户纷纷将目光投向了W5500这颗性价比很高的全新硬件TCP/IP以太网芯片,无论是在工控、安防、交通,还是在智能医疗、智能家居等众多领域中,得到了广泛应用及认可。同时,也收到了很多客户在使用过程中的问题反馈,比如W5500中断问题、切换端口问题,及W5500做服务器,多端口连接等常见问题。这些,我们都一一帮助大家分析,一同解决!那么,为了提高技术支持效率,也特此将这些问题再次整理给大家,以供分享!期待能有所帮助!

1.

W5500作为服务器时,如何获取来自连接方的IP地址及端口

问题描述:w5500作为服务器时,如何获取来自连接方的IP地址及端口?我怎么没有找到寄存器呢

读DIPR 和SIPR都不对,

是不是没有查询方法呀?

UDP和TCP模式我都试过了,整了一天也没找出明堂来,如果实在不行,只能依靠,谁来连接W5500,谁就在DATA区自报家门了,但这样做感觉有点不是很爽,按说是可以获取到来自连接方的IP地址及端口的

比如W5500接在网络上,要对它进行搜索和设置,那么就要UDP广播包,目前可以收到广播包,但量回应的包,去对方收不到,只能怀疑是目标地址和端口没有更新在dipr寄存器了,请支招儿,谢谢!!

答1:TCP Server模式下,在连接建立后,由硬件更新目标IP和端口值。

答2:收到信息的前面6个字节即为对方IP地址和端口号。

答3:TCP Server 模式下,可以读取Sn_DIPR和Sn_DPORT来确定连接方的IP及端口。这个是可以,你可以打印这个地址里的信息来查看。

W5500 As TCP Server

W5500 As TCP Server

2.

W5500一个独立端口作为Server模式可以支持多少个客户端连接

问题描述1:W5500一个独立端口端口作为TCP Server模式打开一个端口,此端口已经映射到外网,现在可能有多个客户端连接过来,可以支持多少个客户端连接?经测试,只能支持一个连接,连接上一个客户端后,后连的客户端根本连接不上;而采用ENC28J60采用uip协议时,利用TCP方式监听端口,是可以支持客户端多连接的。不知w5500内部的硬件协议栈能否支持作为server,多个客户端连接过来?

答1:可以这样用,但是要把5500的Socket都设置成TCP Server,然后端口都一致。这样就可以有8个客户连接进来了。

问题描述2:就是说,每个独立端口实际上对应的是一个连接,最多只能有8个连接,对吧?

答2:是的

答3:按照你初始化第一个Socket 0为TCP Server的方式,将其他Socket 1~7 配置成参数一致的TCP Server即可

3.

W5500无法清中断

问题描述:这几天一直在调试W5500,MCU用的是STM32F205,

可以正常的收发,非中断方式。

现在改用中断模式,无法清除中断。

用户手册上写,Sn_IR,清除需对应位写1。但此寄存器为只读寄存器,每次对此寄存器进行写操作都会导致看门狗复位。

有没有人遇到类似情况,求教

注:UDP方式

答:问题已解决,是回环测试后又产生了SEND_OK中断,最终因超时引起看门狗复位。

屏蔽发送中断后一切正常。

4.

问一下:无论是通用寄存器中断IR还是socket中断寄存器SN_IR中断的清除都是我们使用MCU对该寄存器进行手动写0XFF么?谢谢哦。期待回信。。。

问题描述:W5500的中断是不是可以理解成二级中断?首先判断是不是通用寄存器IR的中断,如果不是然后判断中断是不是来自SN_IR。如果来自SN那么进行检测SN的中断触发。。检测到中断之后,需要手动的向产生中断的IR寄存器写入0XFF进行中断的清除?

请问是这种思路么?

答1:请看看 W5500中断寄存器的理解

http://www.9mcu.com/9mcubbs/foru … ead&tid=1062343

答2:首先,可以类似的说成是二级中断,通用寄存器的中断和Socket中断的细分不同。

其次,清中断就是往对应位上写1。

5.

W5500工业方面有使用的吗

问题描述:w5500抗干扰能力怎么样

答:你好,

W5500的抗干扰还是很好的,工业客户还是蛮多的。其实,光说的话也没有太大意义,你可以测试评估一下。

你可以给我一个邮箱,我发测试报告给你。

WIZnet的芯片都是工业级芯片。

6.

W5500上传数据错误

问题描述1:我现在使用CC2530单片机和MCU通过SPI接口和W5500连接,使用W5500库函数,下载进去程序之后,在电脑中可以ping 通W5500设备,在电脑中打开TCP工具,程序中设置MCU自动上传数据和接收到什么数据就返回什么数据,但是这两个数据都出现错误,不能接收到正常的数据,这个数据通过串口发送出来,都是正常的数据,在TCP工具中偶尔可以见到几包正确的数据,但是大多数时候都是错误数据包,搞不清楚哪里设置错误,请大神指点一下。

答1:你好,你可以用Wireshark抓包看看有无丢包。

如果没有丢包的话,就是说裸数据阶段就出现问题了。

看一下你SPI的速率,试着提升一下SPI速率试一下。有可能你SPI处理数据太慢了导致的。

问题描述2:我单步执行的时候,数据还是错误的,但是没有出现丢包的现象,在内部数据还是正确的,但是执行到W5500发送出来的时候,就是错误的。

//SCK时钟4MHZ,时钟频率/8

U1BAUD = 0×00; // BAUD_M = 0

U1GCR |= 0×11; // BAUD_E = 17

SPI的速率我这是设置的4M,我也尝试着提高了速率,但是没什么效果,减少速率也是不行,大多数数据都是错误的,中间偶尔会出现几包正确数据。

答2:问题已经解决,是库函数没设置好,send_data_processing()和recv_data_processing()中,ptr一开始是16位,因为移位使数据溢出,可以设置成32位,或者在移位的时候,进行强制类型转换的时候,多使用括号,不要因为优先级不同,不能安装自己想要实现的功能来运行。

7.

W5500工作一段时间灯全亮

问题描述1:W5500工作一段时间(大概几分钟),有时会出现双灯全亮的现象,此时,拔下网线,灯依旧亮。重启断电后上电,依然灯全亮。需要过很长时间才能恢复。

灯全亮阶段,网口显示断开状态。各DX有遇到过此类问题的吗?如有,是什么原因,该如何解决啊,谢谢!

答1:会不会是有个别的控制引脚悬空了?比较容易受到干扰。

比如reset之类的,状态进入随机,失去控制

问题描述2:ARM和W5500的控制线确实走线较远,这样是不是应该在RESET等信号端加上拉或下拉电阻啊?

答2:但就RESET而言,是应该加一个上拉,给芯片一个上电默认状态!

问题描述3:恩恩,非常感谢!!

继续阅读:http://www.iwiznet.cn/blog/?p=6609

 

阅读:W5500问题集锦(一)

>>如有任何问题可随时留言给我们,或发送至WIZnet官方邮箱:wiznetbj@wiznet.co.kr

关注WIZnet更多动态:

WIZnet官方微博:http://www.e.weibo.com/wiznet2012

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条