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

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

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

1樓
wangxinxin 發表于: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中斷不會和系統中的其他設備沖突即可。

共2 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .03125 s, 2 queries.
主站蜘蛛池模板: 国产视频日韩 | 在线欧美色 | 99久久久精品免费观看国产 | 大陆高清自拍 | 欧美日韩高清在线观看一区二区 | 纯欧美一级毛片_免费 | 免费观看欧美一级高清 | 日本免费一二区视频 | 99国产精品久久久久久久... | 未满14周岁啪啪网站 | 香蕉久久网站 | 蜜桃日本一道无卡不码高清 | 亚洲欧美日本人成在线观看 | 亚洲国产精品自在现线让你爽 | 亚洲女精品一区二区三区 | 亚洲精品久久久久久久777 | 亚洲 欧美 国产 中文 | 国产综合成人亚洲区 | 精品视频在线一区 | 在线观看国产 | 午夜在线影院 | 久久精品女人毛片国产 | 久久久久国产精品免费看 | 成人午夜视频免费观看 | 男女男精品视频免费观看 | 国产亚洲欧美一区 | 成人亚洲在线观看 | 成人性动漫高清免费观看网址 | 日韩精品一区二区三区免费观看 | 看全黄男人和女人视频 | 99久久国产免费中文无字幕 | 久草国产在线播放 | 在线欧美成人 | 日本成人在线免费 | 三级做人爱c视频18三级 | 久久久久久久久久久视频国内精品视频 | 99精品这里只有精品高清视频 | 亚洲最大看欧美片网站 | 久久精品国产欧美 | 萌白酱白丝护士服喷水铁牛tv | 国内精品久久久久久久影视麻豆 |