微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > VxWorks环境下双冗余以太网卡技术在底层驱动中的实现

VxWorks环境下双冗余以太网卡技术在底层驱动中的实现

时间:04-06 来源:互联网 点击:

通常每块网卡有1个全世界范围内唯一的物理地址,它保存在网卡的PROM中。网卡初始化时,要从PROM中读出物理地址,把它存放在适当的寄存器和数据结构中。

要使2块网卡能相互备份,它们必须有相同的物理地址和IP地址。在双网卡冗余备份驱动程序中,可以用其中1块网卡的物理地址。方法有2种:在驱动程序初始化时只读1块网卡的PROM中的物理地址;或者在网卡驱动程序中的ne2000EnetAddrGet()函数中作修改,完全可以给网卡设定任意的物理地址 (只要避免了同一网络中的冲突)。

单IP地址处理

至于 2块网卡采用相同的IP地址,可以这样实现:在安装2块网卡时,只让1块网卡有IP地址,另1块网卡没有IP地址。因为给网卡绑定IP地址是在IP协议所在的网络层实现的,所以在网络层以下切换网卡对上层来说是完全透明的。应用程序自始自终只看见1块网卡在工作。图3是从应用程序的角度看双网卡备份的示意图。

效果分析

通过对比实验,在应用层实现双网卡冗余备份的平均网卡切换时间是120ms,在驱动层实现双网卡冗余备份的平均网卡切换时间是5ms,相对于在应用层或其他高层中实现,效率较高,大大缩短双网卡的切换时间,从而降低切换时网络通信丢包的机率。



结束语

分析了VxWorks系统的网络结构模型,提出了在系统底层驱动中实现双网卡冗余备份功能的设想,并进行了设计实现,同时对在驱动程序中实现与在应用层中实现2种方法进行了对比,证明了在驱动程序中不但能够很好地实现双网卡冗余备份功能,而且提高了以太网的实时性和可靠性,在工业以太网蓬勃发展的今天,具有一定的实用意义。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top