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

发布者:创新驿站最新更新时间:2012-04-06 来源: 应用科技 关键字:冗余设计  网络接口  VxWorks 手机看文章 扫描二维码
随时随地手机看文章
引 言 

随着以太网的稳定性、抗干扰性和带宽问题的逐步改善,以太网正在大规模进入工业控制领域。用于工业过程控制、通信、航天器和导航系统中的网络对可靠性及其响应故障的快速性要求极高。当前,冗余设计作为一种提高设备可靠性的有效方法,已经得到了广泛的应用。对于网络系统中的单个节点,常常需要对网卡进行双冗余备份,即每个节点都采用2块网卡(或2个网口),中间用集线器或交换机互连,当正常通信的网卡或线路出现故障时,该节点能自动地切换到备份网卡进行通信。图1为冗余网络的一种典型联接形式。 

具有双冗余网卡的节点虽然有2块网卡,2条通道,但对于高层应用系统来说,仍呈现单网卡的特征。具体来讲,2块网卡共有1个物理地址,1个IP地址。根据 TCP/IP参考模型,TCP/IP协议族可以分为应用层、传输层、网络层和链路层4层,冗余网卡技术可以在其中各个层面中实现。 



VxWorks、MUX与网卡驱动程序 

嵌入式实时操作系统VxWorks的网络协议栈与网络设备驱动的接口有2种:一种是标准的BSD4.4Driver,它将Driver和协议紧密关联在一起,不利于多协议的支持;另一种标准是VxWorks特有的,它将Driver和协议栈隔离开,使二者通过一个称为MUX的薄层相连,使得网络服务免受特定的网络接口驱动程序的影响,达到Driver独立于具体协议的目的,从而实现多协议的支持,三者间的关系如图2所示。 [page]



目前版本的MUX支持2种网络驱动程序接口模式:增强型网络驱动程序接口( END)和网络协议工具包(NPT)驱动程序接口。现以END型网卡驱动为例介绍如何在VxWorks5.4下的NE2000兼容网卡驱动程序中实现双网卡冗余设计。正常情况下,协议驱动程序通过MUX层提供的NIC的句柄来提交请求,这个句柄是调用EndLoaD()获得的;然后MUX层调用网卡驱动程序中的接口函数,实现高层协议驱动程序的请求。 

在应用层实现双冗余网卡技术的分析 

在系统中对网卡进行双冗余备份,即1块网卡在正常工作时使用,另1块网卡作为备份。备份用的网卡处于激活状态。在正常通信的网卡出现故障或系统需要时,备份用的网卡能实时地、自动地切换到继续工作。显然,这就要求2块网卡只能使用同1个物理地址和同1个IP地址。从应用程序的角度看,只会看见1块网卡在工作,不关心是哪块网卡在工作及如何切换。 

理论上讲,冗余网卡技术可以在OSI各层中实现,而且越在底层实现,检测和切换的速度越快,效果应该越好。其他利用应用层实现双冗余网卡的主要方法是在程序中发起任务,以查询的方式不断对当前工作网卡的工作状态进行判断,当判断出当前使用的网卡处于非正常状态的时候,将删除当前网卡的路由,在主机列表中删除当前主机名,并解除网卡与协议的绑定;然后进行备份网卡的配置:为备份网卡绑定协议,设置子网掩码和IP地址。用此种方法实际测试,测试中使装有双网卡的主机不断向外发送广播报文,同时用网络分析软件接收。测得2个网口的切换时间平均为120ms,在切换期间有很多广播报文丢失。可见在应用层实现双网卡冗余备份技术,网卡切换速度慢,不利于网络的可靠性和实时性。 

在驱动程序中的实现 

在 VxWorks系统中,相同类型的网卡使用同一个驱动程序,网卡之间由驱动程序提供的句柄来区别。MUX调用NIC驱动程序的接口函数时,都会把网卡的句柄传入函数中。这就为在驱动程序中实现双网卡冗余备份提供了基础。因此要实现网卡的双冗余备份,最理想的办法是在NIC驱动程序中实现。 

数据结构 

网卡驱动程序中最关键的数据结构是有关网卡特性的数据结构。每种网卡都有它自己的特性,包括它的单元号、中断向量、I/O基址、物理地址等。 

系统启动时,在网卡驱动的装载函数中ne2000EndLoad( )中,会为设备初始化1个数据结构,并分配一个指针指向这个结构。这时定义2个全局指针: 

        NE2000END-DEVICE * pDrvCtrl-0; 
        NE2000END-DEVICE * pDrvCtrl-1; 

在网卡初始化时把这2个指针分别指向2块网卡的数据结构,通过这2个指针的定义,在MUX调用NIC驱动程序的接口函数时,可以根据网卡的好坏或系统的需要来选择pDrvCtrl-0或pDrvCtrl-1,以调整工作网卡。 [page]

发送和接收处理 

在上层驱动程序通过MUX调用NIC驱动程序的发送函数时,会传入网卡的句柄,指定要使用的网卡。通常情况下,驱动程序会根据该句柄向相应网卡发出指令,把报文发出去。在双网卡冗余备份驱动程序中,根据需要来指定发送数据要使用的网卡,而不一定使用MUX指定的网卡。如先读2块网卡的Link信号寄存器,判断网络连线的通断,再决定使用哪一块网卡来发送数据。 

在接收报文的时候,通常是在中断中进行处理。因为以太网在物理层上的特点,2块网卡都能收到报文,不同的是只有与高层协议绑定的网卡收到的数据才能向上传递。在双网卡冗余备份驱动程序中,不是由MUX指定的网卡句柄来向上传送数据,而是根据当前网卡的工作状态向上层传送数据,即使数据是从另一块网卡上接收来的或另一块网卡没有和高层协议绑定。 

单物理地址的处理 

通常每块网卡有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种方法进行了对比,证明了在驱动程序中不但能够很好地实现双网卡冗余备份功能,而且提高了以太网的实时性和可靠性,在工业以太网蓬勃发展的今天,具有一定的实用意义。

关键字:冗余设计  网络接口  VxWorks 引用地址:VxWorks环境下双冗余以太网卡技术在底层驱动中的实现

上一篇:风河为赛灵思Zynq-7000可扩展处理平台提供软件支持
下一篇:μC/OS2Ⅱ中优先级调度算法的改进及实现

推荐阅读最新更新时间:2024-05-02 21:59

微机保护控制接口的CPLD抗干扰设计
    引    言      微机保护装置是指微机系统构成的数字式继电保护装置。在我国煤矿井下高压(6kV)供电系统中,绝大多数属于变压器中性点绝缘运行方式(三相三线制),通过动力电缆送电。煤矿井下环境恶劣,空间狭窄,动力电缆长期处在潮湿、淋水、腐蚀的环境中,散热条件差,绝缘性能易下降,经常发生单相漏电或单相接地故障。这种故障引起正常相电压升高,若不及时断电,会造成多相短路,迫使供电中断,并使电力故障进一步扩大。高压防爆开关微机保护装置是安装在高压防爆开关中,对井下电缆和用电设备的单相漏电或单相接地、短路、过流、绝缘监视、过欠压等故障进行综合保护的一种装置,能快速切除故障回路,防止事故扩大,通知维护人员及时排查故障源并排除。因此
[嵌入式]
基于USB接口网络切换器系统设计
随着网上申报、网上审批乃至网上办公等电子政务建设的不断深入,与Internet之间的联系更加密切,但由于Internet的国际性、开放性和自由性,内部网络也因此面临更加严重的安全威胁,对Internet的依赖与网络安全之间的矛盾日益尖锐。保证工作人员对内部局域网(“内网”)和Internet (“外网”)的同时使用是当前我们必须解决的问题。在符合国家有关保密和安全规定的前提下,针对不同的网络布线系统采取不同的网络安全解决方案,从而使工作人员能够同时安全的使用。 1 网络切换的问题及特点 本文设计的网络切换器是一种网络隔离切换设备,最多用于四个网络之间的切换,可以放置在办公桌上或电脑桌上使用。既保持了手动按键切换的功能又可以
[单片机]
基于USB<font color='red'>接口</font>的<font color='red'>网络</font>切换器系统<font color='red'>设计</font>
基于PowerPC的单板计算机的设计
1 引言 随着科学技术的发展,嵌入式处理器在通信设备、消费电子、军用电子等领域有了广泛的应用,而且对处理器的处理速度、功耗及工作温度都有了更加严格的要求,尤其在汽车电子、军用电子等方面的应用。 PowerPC 体系结构是一种精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构,具有高性能和低功耗的特点,主要应用在嵌入式系统中,可以作为单板计算机,进行高性能计算和图像处理。 在PowerPC 家族中,现在应用最为广泛的是G4 系列, G4 对G3 的重大改进有两个,第一是支持对称多处理器(SMP)结构,第二是G4 引入了一流的AltiVec 技术来处理矢量运算。 Al
[单片机]
基于PowerPC的单板计算机的<font color='red'>设计</font>
RJ45网络接口双绞线的接法介绍
RJ45网络接口双绞线的接法介绍 双绞线的最大传输距离为100米;有两种接法:EIA/TIA 568B和568A标准。   将水晶头的尾巴向下(即平的一面向上),从左至右,分别定为1 2 3 4 5 6 7 8,以下是各线序   T568A线序    1  2   3   4  5   6   7  8   绿白 绿 橙白 蓝 蓝白 橙 棕白 棕      T568B线序    1  2   3   4  5   6   7  8   橙白 橙 绿白 蓝 蓝白 绿 棕白 棕      在整个网络布线中应用一种布线方式,但两端都有RJ-45 plug 的网络联线无论是采用端接方式A,还是端接方式B, 在网络中都是通用
[模拟电子]
VxWorks网络协议栈的MUX接口
    摘要: 嵌入式系统网络协议栈的灵活性在应用上是一个重要指标。介绍嵌入式实操作系统VxWorks网络协议栈的MUX(Mutiplexer)接口及其使用方法。     关键词: VxWorks 网络协议栈 MUX VxWorks是美国Wind River System公司(风河公司)推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。VxWorks操作系统包括进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占
[应用]
VxWorks操作系统下实现ComPactPCI总线驱动
  1 引言   VxWorks是美国Wind River公司专门为嵌入式处理器设计的一种模块化、高性能的实时多任务操作系统。这里提出一种VxWorks操作系统下CompactPCI总线驱动程序的设计及实现。该设计使用德国Kontron DT-64,采用Dual PentiLim 3 CPU,工作频率高达866 MHz,具有128 KB一级高速缓存和128 KB二级高速缓存。     2 BSP与VxWorks的关系   板级支持包BSP(board support packet)通常是针对具体的硬件平台,是用户所编写的启动代码和部分设备驱动程序的集合。在VxWorks操作系统中,BSP是介于底层硬件环境和VxWork
[嵌入式]
海洋观测网络化智能接口标准的研究
海洋观测技术作为认识海洋、开发海洋的高技术手段,是建设海洋强国、捍卫国家安全和实现可持续发展的伟大目标所必不可少的。在海洋观测领域,为了满足目前海洋研究、开发和利用对于空间性和实时性的强烈需求,构建能够综合、协调、实时、持续地获取各种海洋物理参数的海洋观测系统是必然的发展趋势。 为了实现海洋环境信息的大规模、实时地获取与控制,海洋观测系统需要对底层仪器(包括传感器或执行器)组网进行各种参数的获取。 网络化的观测方式,更注重系统性和整体性,通过性能可靠和实时连接的所有观测平台、探测设备、传感器协同观测,实现海洋环境信息共享与交互。但是目前仪器的软件协议和数据格式大多是非标准的而且并不统一,这就给系统构建、扩展、更新和维护等
[测试测量]
海洋观测<font color='red'>网络</font>化智能<font color='red'>接口</font>标准的研究
基于ARM7核处理器VxWorks系统BSP设计
摘要:该文主要介绍了SAMSUNG公司的基于ARM7TDMI核S3C4510B微处理器,并详细介绍了利用该处理器所设计的嵌入式系统以及VxWorks操作系统下BSP(Board Supported Package)的开发。 关键词:ARM7TDMI S3C4510B VxWorks BSP 1 介绍 S3C4510B是三星公司推出的针对嵌入式应用的16/32 位嵌入式处理器,该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点, S3C4510B中内置了ARM公司设计的16/32位ARM7TDMI处理器, 可以执行32位的ARM指令,也可执行16位的THUMB指令, 并集成了多种外围部件,主
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved