宿龙半导体 宿龙半导体

4008-691-676

新闻资讯

WIZNET 网络芯片使用中常见十问(二)

编辑:宿龙半导体 浏览:1261次 时间:2021.11.09

一、为什么电子程序在TCP模式配置客户端,端口号总加1?


 比如端口号为5000,如果连接成功,其端口号就是5000,不必加1。一旦失败,多次用同一端口,去连接时,很有可能被当恶意信息而屏蔽,因此需等待一段时间后,换个新的端口号可提高连接的成功率,下次连接前加1就是这个原因。


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


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


三、为什么用评估板将电脑作服务器不能成功建立通讯?

用TCP/UDP软件测试浩然电子程序与评估板,电脑作为客户端可以成功连接,而作为服务器则不能连接成功?


 原因是,电脑IP地址与网络芯片的目的IP不一样,电脑作为为客户端,只要在一个子网,你只需成功在TCP/UDP软件上设置了网络芯片(服务器)的IP地址与端口号,就可以连接到。而电脑作为服务器,网络芯片的目的IP与电脑IP不一致,网络芯片作为客户端找不到连接对象,因此不能连接成功,只要将电脑的IP地址与网络芯片的目的IP地址设置成一样就可以了。


四、UDP模式不设置目的端口与目的IP,会不会接收不到数据?

不会,因为在UDP接收数据中已经包含了对端的所有网络信息,共8字节的报头信息(目的IP4字节,目的端口2字节,数据长度2字节)。如果只是接收数据可不必设置, 但要发送数据, 必须知道要发给谁,必须设置目的IP与目的端口号。


五、UDP模式下为什么有丢失数据的情况?

UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送,在网络质量令人十分不满意的环境下,UDP协议数据包丢失甚至会比较严重,因此谨慎选择。优点是处理速度快资源消耗少。


六、为什么用中断方式调试WIZnet芯片时发现有丢失数据的情况?

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


七、关于同时使用多个SOCKET的问题,同一块网络芯片,同时使用多个SOCKET工作,应注意什么问题?


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


八、同一块网络芯片的多个SOCKET,可以同时设置成客户端去连接电脑服务器的一个端口吗,怎么实现?


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


九、多块网络协议芯片同时使用,端口号可以设置成一样吗?


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


十、WIZnet的网络芯片经过交换机是否驱动有问题?


多个W5200用80米超5类网线与电脑直连或通用50米超5类网线过交换机连接到电脑可以全部连接成功,但用80米经过交换机有的不能连接成功,是不是网络协议芯片驱动能力问题?


 我们做过测试,将包含W5200在内的目前所有WIZnet网络芯片和电脑通过100米超5类网线连接, 无论多少次都可以连接成功并将电脑传来的数据,成功传回电脑, 证明驱动能力没问题。

至于进入交换机后有的在80米就不能成功,说明和交换机有很大关系, 可以将成功连接的W5200和连接失败的W5200交换位置查看结果,如果失败的连接成功,或成功的又连接失败,说明交换机端口有差异。 如果失败的还是失败则只能说明你线路上的RJ45或网络变压器电路参数上有少许差异,如果仅误差1,2米也算正常范围。

对于经过交换机后在80米不能连接的,可以在将交换机到W5200的距离缩短至80米以内(比如70米),将电脑到交换机的距离增加,即将交换机尽量放在靠中间的位置,使交换机起中继器的作用。 如果已经布线完成,不方便改动,则只有在交换机与W5200之间再加一个中继器或交换机已保证连接通讯。