久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇VxWorks專區VxWorks技術討論區 → VxWorks環境下雙網卡冗余備份技術的實現


  共有8362人關注過本帖樹形打印

主題:VxWorks環境下雙網卡冗余備份技術的實現

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
VxWorks環境下雙網卡冗余備份技術的實現  發帖心情 Post By:2010-11-17 10:36:28

摘  要:在對網絡通信可靠性要求高的系統中,需要對網卡進行雙冗余備份。當正常通信的網卡或線路出現故障時能自動地切換到備份網卡。本文詳述了實時操作系統VxWorks下一種雙網卡冗余備份技術的實現。
    關鍵詞:實時操作系統
VxWorks網絡控制器;雙冗余備份

1引言
    隨著網絡技術的成熟,以太網已成為各種控制系統接口互連的主要媒介。在某些特殊的應用場合,為了提高系統的可靠性和抗毀性,需采用雙冗余網絡技術。在雙冗余網絡中,每個節點都采用兩塊網卡
(或單板雙卡),中間用兩個HUB或交換機互連。當某個節點一塊網卡故障,或網線損壞,或其中一個HUB或交換機故障時,網絡仍能正常運作。
    雙冗余網絡雖有兩塊網卡,兩條通道,但對于高層應用系統來說,仍呈現單網卡的特征。具體來講,每個節點的兩塊網卡只能有一個物理地址,一個
IP地址,否則
網絡就不能進行正常通信。
    現在大多數操作系統
(WindowsUnixLinux)均支持多網卡,但均非冗余設計,每塊網卡都有獨立的物理地址和IP地址,以獨立的形式讓應用系統使用。根據目前海軍對高性能實時系統的要求,我們對VxWorks環境下的雙網卡的切換以及冗余備份的設計方法及要點進行介紹。

2VxWorks
介紹[1][2][3]

        VxWorks
操作系統是一種具有工業領導地位的高性能嵌入式實時操作系統,是嵌入式開發環境Tornado的關鍵組成部分,它為程序員提供了良好的可靠性和卓越的實時性,因此被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。
    就廣泛使用的
UnixWindows操作系統來說,它們都是很好的應用開發和交互式應用的操作系統平臺,然而他們并不適合于實時應用。而從另一方面考慮,以前出現的實時操作系統都沒有為應用開發和應用的非實時組件(譬如向GUI)提供很好的運行環境。而Wind River的哲學是利用兩個相互協作的操作系統來互相補充對方的不足(譬如VxWorksWindows),讓他們各盡所長。VxWorks為應用提供實時性,而主機被用來進行應用開發和運行非實時的應用程序。

3冗余切換
    在系統的運行中設備由于硬件或軟件原因出現故障是時有發生的事。采用有效的防錯容錯機制對一個需要穩定運行的系統是必需的。冗余備份技術是對容易出錯的硬件設備進行冗余備份。當其中一個設備由于某種原因不能正常工作時,另一個設備馬上就可以代替這個設備完成相同的功能。本文只是針對網絡因素導致系統故障的情況分析對網絡適配器的一種可行的錯誤保護機制。
    通常如果在某一系統中安裝兩塊網卡,它們分別有不同的物理和
IP地址。當其中一塊網卡出現故障時,另一塊網卡不能實時地代替它繼續工作,這是因為它們的物理地址不同,所以它不能接受到發向前一塊網卡的數據。但在對網絡通信可靠性要求高的系統中,需要對網卡進行雙冗余備份,一塊網卡在正常工作時使用,另一塊網卡作為備份。備份用的網卡不發送或接收數據,但已經處于激活狀態。在正常通信的網卡出現故障時,備份用的網卡能實時地、自動地切換過來繼續工作。顯然,這就要求兩塊網卡只能使用同一個物理地址和同一個IP地址。從應用程序的角度看,只會看見一塊網卡在工作。應用程序不關心是哪塊網卡在工作,也不關心網卡之間是如何切換的。
    在
VxWorks系統中,相同類型的網卡使用同一個驅動程序,網卡之間由NDIS提供的句柄來區別。NDIS調用NIC驅動程序的接口函數時,都會把網卡的句柄傳入函數中。這就為在驅動程序中實現冗余備份提供了基礎。雙網卡驅動程序實現后與高層協議驅動程序綁定在一起,對應用程序完全透明。因此要實現網卡的雙冗余備份,最理想的辦法是在NIC驅動程序中實現。但是如果采取這樣的方式我們必須要有VxWorks下的所用網卡的驅動程序,而對于一般的用戶而言,開發這樣一個驅動程序的難度是很大的。目前也有一些研究單位完成了這些工作,但是它們要求的價格過高,軟硬件共需要15000元左右,這對于一般小型用戶是比較高的。所以我們選擇在
基本不影響冗余備份效果的基礎上,在高層的用戶程序中實現這一目標。
    在早期的
VxWorks51x中,系統是不支持多網卡的。通常,VxWorks在啟動時僅僅對引導它啟動的那塊網卡進行初始化。如果需要在某一特定的目標機上從一塊網卡換到另一塊網卡(例如從ene型換到ENP型的網卡),我們可以通過系統提供的函數以及來實現網卡間的切換。我們所需要做的是連接所需要的網卡并刪除前一個網卡的路由。我們可以調用特定網卡的連接函數:enpattach()enettach()等等。例如enpattach()函數為網卡連接中斷并建立enpsoftc
,系統將為該網卡作相應的初始化。
        enpattach (00xffde00001923)

    /
*參數依次為:網卡在系統中的單元號,enp's的共享內存地址,要連接的中斷向量,中斷級*
    需要說明的是,在
VxWorks 51下雖然這些連接函數都有一個unitNum參數,似乎可以支持多個網卡。但其實并非這樣,在后面的敘述中我們可以看到它沒有IP MAX UNITS這個宏的定義,所以并不支持多網卡,unitNum的值一直是0,讀者們可以在源代碼中查看一下。
    因為當
VxWorks啟動時它將一個缺省的網絡接口加載到網絡接口表中,所以在連接到需要的網卡后需要再調用ifRouteDelete()函數以刪除連接到某一指定網卡上的路
由。

    這樣就完成了VxWorks51下多網卡之間的的切換。

    就
VxWorks 54來說,它本身是支持多網卡的。以下我們描述SBS PC104系統如何在VxWorks下支持多個網絡適配器的軟件冗余切換(ne2000型為例)
    首先我們需要通過網卡配置程序對硬件環境中的所有網絡適配器進行
IO基址和IO中斷的配置。本文假設系統中只有兩個網絡適配器,其IO基址和IO中斷號如下所述。實際系統中可能會有多個網絡適配器,其配置方法可依法類推,只要網卡的IO基址和IO中斷不會和系統中的其他設備沖突即可。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

VxWorks環境下雙網卡冗余備份技術的實現








簽名
主站蜘蛛池模板: 欧美日韩国产一区二区三区在线观看 | 国产精品永久免费视频观看 | 国产成人免费a在线资源 | 手机在线日韩高清理论片 | 亚洲精品国产综合久久一线 | 免费观看大片毛片 | 精品亚洲视频在线 | 成人午夜视频免费观看 | 精品欧美一区二区三区精品久久 | 久久国产精品歌舞团 | 免费播放欧美毛片欧美aaaaa | 色夜视频| 国产精品久久人人做人人爽 | 黄在线观看网站 | 免费播放国产性色生活片 | 久久综合一区二区三区 | 国产精品毛片在线更新 | 国产精品一一在线观看 | 欧美在线精品一区二区三区 | 亚洲精品国产综合久久一线 | 1级a的观看视频 | 一级片久久 | 日本一区二区三区不卡视频中文字幕 | 久久久久免费精品视频 | 亚洲网站www | 精品精品国产自在久久高清 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 一级床上爽高清播放 | 久久草在线视频播放 | 亚洲一区二区三区精品视频 | 欧美成人吃奶高清视频 | 久久精品系列 | 伊人手机视频 | 免费人成在线观看视频不卡 | 狠狠久久综合 | 欧美综合在线观看 | 欧美成人黄色 | 国产在线观看91精品一区 | 日本成人免费在线观看 | 国产年成美女网站视频免费看 | 亚洲韩精品欧美一区二区三区 |