上海皕科电子有限公司

Shanghai Bitconn Electronic Co.,Ltd.

公司介绍
上海皕科电子有限公司是一家专业的芯片代理商和方案提供商。总部设在上海,是一家专业为中国电子企业提供单片机,无线RF,以太网IC及外围器件、开发工具和相关应用解决方案的高新技术企业。公司的主要代理品牌有Digi、Wiznet、Xinnova,以及华虹MCU等。
  公司拥有优秀的销售团队和专业的研发部门,不但在品牌、价格、供货、服务等方面领先业界,而且可为客户提供及时、可行的技术支持和整体设计服务,满足不同客户多层次需求。

W5500问题集锦(五)

发表时间:2018/07/26 00:00:00  浏览次数:5703  
字体大小: 【小】 【中】 【大】

Q1:W5500支持网络唤醒吗?
R:不支持,网络唤醒是W5500正常工作,去唤醒mcu,想低功耗的话就设置为10M模式。


Q2: W5500数据交互速度过快的时候,使用抓包工具发现TCP ZERO WINDOWS包时,如何解决?
R:接收方应用没有及时recv消息,导致接收缓冲满,即滑动窗口为0,接收方发送TCP Zero Window告知发送方不能继续发送消息。


Q3: W5500处于TCP_Server模式下,在交换机/路由器网络中无法ping通也无法通讯。
R: W5500是硬件协议栈芯片,有别于软件协议栈,如果W5500不主动往网络中发包,在TCP_Server模式下是不会有任何数据包发送的,这样会造成路由ARP表中无法形成IP和MAC设备的对应关系。

A:解决方案:
在W5500上电时往任意IP发送一个UDP数据包,从而更新路由的ARP表,形成匹配关系,后续通讯就正常了。


Q4: W5500在TCP_Client模式下,断电重启之后无法立即连接到服务器。
R:这是由于客户端没有主动发送断开请求,造成服务器并不知道Socket已发生异常断开。重新上电之后,W5500以相同的IP和端口连接服务器,而服务器还认为此Socket链接存在,所以拒绝W5500的立即连接。

A:解决方案:
在W5500使用KEEP_ALIVE机制,一段时间内发送心跳包,如果W5500没有给服务器回复,服务器则判断链接已断开,并释放Socket资源,这时就可以成功连接。如果对客户端的本地端口没有要求的话,也可以在初始化Socket的部分让端口自动+1处理。两种方式根据具体应用分析采用。
注: 有的场景不能采用端口自动+1的方式,比如电力104规约,只允许采用2404端口连接。


Q5: W5500如何检测网线被拔出?如何进行断线检测?

A:解决方案:
可以在主循环中加入判断PHY_CFGR状态的处理流程,如果PHY状态发生异常,释放所有的socket资源,并重新初始化socket。


Q6: W5500作为TCP服务器,最多可以链接几个TCP客户端?

A:解决方案:
W5500作为TCP_Server,最多可以与8个客户端建立连接。不能初始一个Socket对应多个连接。可以将W5500的8个socket全部初始化,这样就可以与8个不同的TCP_Client建立通讯链接。


Q7: W5500接外网如何调试,如何抓包?

A: 解决方案:
W5500和PC通讯的话可以直接通过Wireshark抓包,如果W5500和公网直接通讯或者通讯是发生在W5500之间,则没有办法直接抓包,这需要借助于“可以抓包的交换机”,这种交换机多数是二手产品,而且是10M的网络,比如TP-LINK TL-HP5MU。把W5500和抓包计算机的网线分别插上交换机就可以运行抓包工具抓包。


Q8:怎么确保W5500的MAC地址的唯一性?

A:解决方案:
MAC地址需要保证全球唯一。但实际上MAC地址只用于链路层,在同一局域网内才有冲突的可能。所以可以首先必须保证MAC地址首字节为偶数,其次选取自己产品的MCU ID 序列后5个字节当做MAC地址后5个字节,这样可以保证产品量产后彼此的MAC地址肯定不同。当然也可以向IEEE组织申请MAC地址。

上一篇:W5100S震撼来袭
文章评论
发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态: 未登录,点击登录
上海皕科电子有限公司 版权所有
地址:上海市闵行区都园路4288号D区220室
电话:021-54852770
邮件:sales@bitconn.com