嵌入式网卡及其IP冲突问题

2019-01-28 11:17:29 40
1.嵌入式网卡

嵌入式网卡是为嵌入式系统的联网设计的网卡,其功能类似于计算机的网卡,但是也有不少区别。嵌入式网卡的样子如图1所示,其大小只有4×2厘米。

和普通的网卡相比,嵌入式网卡根据嵌入式系统的特点而设计,主要有如下区别:
1.嵌入式网卡和主机的接口不同。普通网卡以PCI方式和计算机的主板连接,由于嵌入式系统的MCU(例如ARM、MIPS、51单片机)等并不是以PCI为主要的外部设备接口,且PCI的接口较大。所以嵌入式网卡采用以串口(即UART、TTL电平串口)为接口形式,MCU通过串口收发即可通过网卡发送和接收数据。
2.嵌入式网卡内集成TCP/IP协议栈。普通的计算机网卡只提供MAC和PHY功能,计算机通过网卡驱动来并结合计算机操作系统上的TCP/IP协议栈来实现网络通信。由于嵌入式系统本身的处理能力有限、且很多嵌入式MCU程序本身不含有TCP/IP协议功能,如果将TCP/IP协议栈也集成到网卡内部则无论是对嵌入式系统的开发还是MCU的负荷都很有好处。

上海SN2000嵌入式网卡很好满足了以上特点,可用于嵌入式系统接入以太网。

2.嵌入式网卡的IP冲突

计算机的网卡会产生IP冲突这个是很常见的,比如两台计算机设置为一个IP地址,就会引起无法上网的现象。在嵌入式网卡情况下,如果两个嵌入式网卡设置为同样的IP那么也会产生无法工作的现象。注意IP冲突只是在一个局域网内部出现的,如果是由路由器分割开了,是可以设置为同样IP的。

但是嵌入式网卡的IP冲突经常出现一种“先后式”IP冲突,而这种“先后式”IP冲突在计算机网卡使用中并不常见。所谓“先后式”IP冲突是这样的情况:现在有两台嵌入式设备,每台嵌入式设备都装有嵌入式网卡SN2000,且每个SN2000的IP地址相同,分别叫这两台设备为A设备和B设备,用户先将A设备上电接入网口进行测试,测试完毕后,将B上电接入网络测试,发现B设备测试无法通过。此时“先后式”IP冲突已经产生。

“先后式”IP冲突的原因是:每个以太网设备,包括计算机在内,都会在本地缓存中保存对方IP地址对应的物理地址。当用户计算机/设备和A设备通信后记录了该IP的物理地址,当和A设备同样IP的B设备进入网络时,用户计算机/设备仍然用缓存中记忆的老的物理地址和B设备通信,引起无法通信。

3.IP冲突解决方法

方法1:等待2分钟。物理地址的缓存在windows XP操作系统的计算机中的保存时间为2分钟。也就是说在出现“先后式”IP冲突后,只要简单等待2分钟即可实现和B设备的通信。但是此种被动等待的方法,显然效率太低。

方法2:Ping工具方法。特别是在对嵌入式网卡进行测试的情况下,需要连续地、高效地测试网络设备。为此开发了Ping程序,只要在每次新模块连接到网络后点击Ping按钮即可清空物理地址缓存。


点击Ping下载这个工具。使用方法介绍如下:

在Ping界面的IP地址部分,填入嵌入式网卡的IP地址,然后点击Ping按钮,默认是192.168.1.200的IP。点击Ping按钮有3个作用,(1)获取嵌入式网卡的物理地址。(2)对嵌入式网卡进行icmp echo(也就是俗称的ping) 测试,如果测试通过则在“成功计数”中增一(3)清空本地物理地址缓存。

Ping的第(3)个功能正好用于清除上一个嵌入式网卡的物理地址记忆。用户在测试嵌入式网卡时,在每接上一个新的嵌入式网卡时,点击一下Ping按钮。即可和新的嵌入式网卡通信了。Ping方便了用户对嵌入式网卡/设备的批量测试。但是这个工具只适合于嵌入式网卡。

除了Ping以外还可以用windows自带的命令arp -d来清空物理地址缓存。从这里下载pingbat.bat后双击即可运行一次清空物理地址缓存的操作。 正确的界面如图2所示。


在win7及以上操作系统下,注意需要用管理员方式登录windows,然后运行以上的Ping和Pingbat,否则会没有效果,非管理员的执行效果如下:


此时请使用管理员方式登录再次使用pingbat或者ping。如果以管理员身份还是出现图3问题,请用“管理员方式运行”执行程序。即在程序上点击右键,选择“以管理员身份运行”。

另外也可以直接修改程序属性,每次都按照管理员身份运行,勾选属性中的“以管理员身份运行此程序”。

方法3:对于固件版本为1.546及其以上版本,可以使用ketTest这个工具进行TCP连接测试。这个工具内部隐含有清除ARP缓存的功能。

方法4:请选择N2002或者N2003为核心的模块。它们比SN2000核心模块先进的地方是自动具有ARP缓存清理功能。不再有ARP前后式冲突问题。


电话咨询
邮件咨询
在线地图
QQ客服