《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于VxWorks的雙端口網卡智能雙冗余驅動

基于VxWorks的雙端口網卡智能雙冗余驅動

2008-05-06
作者:劉利強,戴運桃,周衛東

  摘 要: 針對PC104結構SCM/DETH雙端口以太網卡設計實現" title="設計實現">設計實現了一個基于VxWorks系統的智能雙冗余" title="雙冗余">雙冗余網絡驅動" title="網絡驅動">網絡驅動,在驅動程序中實現了網絡通信故障診斷" title="故障診斷">故障診斷及網卡間智能切換等功能。通過對智能雙冗余驅動進行性能測試,驗證了設計的正確性和有效性。
  關鍵詞: VxWorks操作系統 冗余備份 網絡接口卡 網卡驅動


  隨著網絡技術的成熟,具有價格低廉、連接方便等優點的以太網已成為各種控制系統接口互連的主要媒介。它作為一種通用網絡數據通信系統,在全球計算機網絡領域已經得到了廣泛的應用。隨著現代艦船信息化程度的不斷提高,以太網技術也開始應用于現代艦船信息系統中,不但要求信息傳輸速度快,抗干擾能力強,還要求網絡具有高穩定性和高可靠性,在網絡局部故障或受損時,全系統不至于癱瘓失效。
  冗余設計作為一種提高系統可靠性的有效方法,已經得到了廣泛的應用。對于網絡系統中的單個節點,常常需要對網卡進行雙冗余備份,即每個節點都采用兩個網絡接口,中間用兩個集線器或交換機互連,當正常通信的網卡或線路出現故障時該節點能自動地切換到備份網卡進行通信。
  目前大多數操作系統(如Windows、Unix、Linux等)都支持多網卡,但均非冗余設計,每塊網卡都有獨立的物理地址和IP地址,以獨立的形式供應用系統使用。要實現真正的智能雙冗余網絡系統,必須自行設計專用的網絡驅動程序,以透明的形式提交高層應用系統使用,使系統感覺不到雙網卡的存在。本文使用盛博公司PC104結構SCM/DETH型10M雙端口以太網卡,設計實現了基于VxWorks的智能雙冗余網絡驅動。
1 VxWorks系統網絡驅動原理
1.1 VxWorks系統簡介
  VxWorks操作系統是美國風河公司(Wind River System)推出的一款運行在目標機上的高性能、可裁減的嵌入式強實時操作系統。操作系統包括了進程管理、存儲管理、設備管理、文件系統管理、網絡協議及系統應用等幾個部分,只占用了很小的存儲空間,并可高度裁減,保證了系統能以較高的效率運行。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。
  VxWorks主要有以下特點:
  (1)具有高度可剪裁的操作系統微內核Wind;
  (2)具有比較優秀的網絡處理能力,適用于多種物理介質的TCP/IP協議族支持;
  (3)具有極其豐富的BSP,支持多處理器系統,最多可以支持20個CPU;
  (4)具有友好的開發調試環境,便于操作、配置和應用程序的開發調試;
  (5)具有較好的兼容性,支持POSIX1003.1b;
  (6)支持多種開發和運行環境。支持C語言、C++語言以及JAVA虛擬機。
1.2 VxWorks系統網絡驅動原理
  VxWorks中支持兩種類型的網絡設備驅動程序——BSD4.3網絡驅動程序和可裁減的增強型網絡堆棧SENS(Scalable Enhanced Networks Stack)。BSD4.3標準提供了網絡設備驅動程序與IP協議的緊密結合,而SENS協議棧提供了可替換的網絡設備驅動程序,即增強型網絡驅動程序END(Enhanced Networks Driver)。
  SENS模型包含三個部分:協議驅動程序、多元接口層(MUX)和END型網絡驅動。它獨立于硬件設備接口,將網絡設備驅動程序細化,使開發者可以專注于驅動程序(END驅動)本身的開發。本文設計實現的智能雙冗余驅動即是一個符合SENS模型標準的END型網絡驅動。在END型網絡驅動中主要實現網卡設備的裝載,網絡芯片的初始化,網絡報文接收及發送等功能。在系統啟動后,操作系統通過網卡加載函數調用到END型網絡驅動,在加載過程中完成網絡芯片的初始化、內存池的分配、網卡設備控制結構" title="控制結構">控制結構的填寫等操作,最后通過指針傳遞的方式將網卡設備控制結構和13個網卡操縱函數提交給MUX層,供上層系統操作網卡工作時使用。
2 智能雙冗余驅動程序實現
2.1 智能雙冗余驅動實現原理

  智能雙冗余驅動的實現原理如圖1所示,虛線框內為智能雙冗余驅動。在VxWorks系統啟動時,首先要遍歷配置文件confignet.h中的網卡設備表endDevTbl[ ],設備表中包含雙端口網卡上兩個網卡的地址及中斷等配置參數;然后,系統會調用sysDethEnd.c中的sysDethEndLoad(…)函數,將兩個網卡的配置參數以函數入口參數的形式傳遞給智能雙冗余驅動的裝載函數dethEndLoad(…);裝載函數為每個網卡設備創建一個控制結構,對入口配置參數進行解析,并為每個網卡設備分配一塊內存空間,用系統的配置要求初始化兩個網卡,同時填寫好網卡設備的控制結構;最后,智能雙冗余驅動將主通道網卡設備的控制結構指針提交給MUX層,并發起網絡故障診斷定時器任務和網絡故障診斷任務。


  網絡故障診斷定時器任務配合網絡故障診斷任務執行,使用看門狗定時器Watchdog timer完成1ms定時,每定時1次釋放1次二進制信號量sem_netDiagnose;網絡故障診斷任務循環等待接收信號量sem_netDiagnose,取到信號量后立即判斷主通道網卡設備的端口狀態(連接/非連接),當端口處于連接狀態時,任務循環等待下次信號量,當端口處于非連接狀態時,網絡故障診斷任務交換主通道與備用通道的控制結構內容,備用通道網卡設備變為主通道網卡設備開始工作,但對于上層應用來說,網卡的控制結構并沒有改變。
2.2 網卡設備控制結構
  在智能雙冗余網卡驅動中使用一個控制數據結構控制一塊網卡設備,控制結構中包含網卡的中斷向量、I/O基址、總線類型、介質類型、物理地址等特性信息。這些信息有的在網卡設備表endDevTbl[ ]中,在系統啟動過程中作為驅動裝載函數的參數傳遞到驅動中;有的保存在網卡的PROM中,在網卡驅動程序初始化時,將這些特性參數寫入網卡控制結構。
  智能雙冗余網卡驅動中定義了一個控制單網卡設備的控制結構,如下所示:
  typedef struct ne2000_device
  {
  ……
  int    unit;       /*網卡單元號*/
  int    ilevel;      /*中斷優先級*/
  int    byteAccess;    /*字節存儲模式*/
  ULONG   base;       /*基地址*/
  int    offset;      /*內存對齊偏移量*/
  volatile ULONG  imask;   /*中斷屏蔽碼*/
  UCHAR   enetAddr[6];   /*網卡物理地址*/
  ……
  } DETHEND_DEVICE;
  驅動中創建了兩個網卡設備控制結構分別控制兩塊網卡。上層應用通過操作網卡控制結構從而實現對網卡的各種操作。
2.3 網絡通信故障診斷方法
  要實現網絡端口的智能切換,實現網卡間冗余備份的功能,首要前提就是需要診斷出當前工作的網卡是否網絡通信故障。任何一種網絡芯片都提供連接狀態自動診斷功能,通過在網絡芯片的某個寄存器的相應位置0或置1來表示該網卡連接正常還是連接錯誤。它所檢測的依據是網卡是否連通,也就是從本機網絡端口到網線另一端的網絡端口整個通路是否連通,它能檢測出網線斷開、網絡接口松動及故障等錯誤。
  本文使用的SEM/DETH雙端口以太網卡采用兩塊RTL8019AS網絡芯片,該網絡芯片的寄存器組采用分頁存儲方式,共分為4頁,都映射到16個I/O地址空間上。其中,第3頁CONFIG0寄存器的B2位表示網卡連接狀態自動診斷結果,當該位為1時表示連接錯誤,為0時表示連接正常。智能雙冗余驅動的網絡故障診斷任務判斷網卡連接狀態的代碼如下:
  setting=sysInByte(pDrvCtrl->base); /*讀取命令寄存器狀態*/
  sysOutByte(pDrvCtrl->base,(0xc0|setting));/*選擇第3頁寄存器組*/
  if(sysInByte(pDrvCtrl->base+CONFIG0_REG) & 0x04)/*網絡連接錯誤*/
  { …… }
2.4 單物理地址實現
  要使兩塊網卡實現智能雙冗余備份,它們必須有相同的物理地址和IP地址。否則,當由其中一個網卡切換到另一個網卡上時,如果IP地址發生變化,系統將無法正常接收、發送數據;如果IP地址不發生變化而僅僅物理地址發生變化,雖然網卡切換后,系統仍可以正常接收、發送數據,但由于物理地址發生變化,將引起協議棧中ARP綁定表的變化,重新對應ARP綁定表中IP地址與網卡物理地址的關系,則延長了兩個網卡之間的切換時間。
  系統的IP地址存在于系統的網絡協議棧中,在系統啟動后與網卡進行綁定。由于本文設計實現的智能雙冗余驅動對于應用系統和協議棧來說呈現單網卡的特征,網卡之間的切換只在驅動程序中完成,所以,當發生網卡切換時,系統的IP地址并不發生變化。
  對于網卡的物理地址來說,通常每塊網卡有一個全世界范圍內惟一的物理地址,它保存在網卡的PROM中。網卡初始化時,要從PROM中讀出物理地址,把它存放在適當的寄存器和數據結構中,對外來說,寄存器和數據結構中的數值就是這塊網卡的物理地址。在智能雙冗余驅動程序中,當驅動程序初始化時只讀取一塊網卡PROM中的物理地址,然后把這個地址寫入兩塊網卡的對應物理地址寄存器和數據結構變量pDrvCtrl中,這樣,兩塊網卡對外就具有統一的物理地址了。因為驅動程序自始至終只有一塊網卡處于激活狀態,另一塊作為備份,因此不會發生同一個網絡上兩個物理地址相同出現沖突這種現象。
3 性能測試
3.1 測試方法

  針對本文設計、實現的雙端口網卡智能雙冗余驅動進行性能測試。將智能雙冗余驅動編譯到VxWorks操作系統中,使用帶有SEM/DETH雙端口以太網卡的計算機做目標機,使用兩根網線把目標機連接到交換機上。目標機應用程序以40次/秒的速率向外發送UDP廣播報文。采用普通PC機作為主機系統,運行Windows2000操作系統,使用sniffer Pro工具進行網絡監控。
3.2 測試結果及分析
  測試結果如圖2所示,橫坐標代表報文數,縱坐標代表主機接收到的目標機UDP廣播報文中兩個連續UDP報文之間的間隔時間(單位為秒)。由圖2可以看到,由于目標機正常工作狀態下是以40次/秒的速率廣播發送UDP網絡報文的,所以每兩個報文之間的時間間隔大部分為25ms左右。在圖2中出現了8次主機接收到的廣播報文時間間隔為100ms左右的情況,這是由于在目標機端進行了8次網卡切換,在網卡切換過程中出現了報文丟失現象。


  由測試結果看,本文設計實現的智能雙冗余驅動能夠很好地實現雙端口網卡冗余備份的功能,在檢測到主通道網卡設備連接錯誤時可以切換到備用通道繼續進行網絡通信,并且可以在兩塊網卡之間循環切換;同時,該驅動對上層用戶透明,呈現單網卡的特性,完全在驅動中實現網卡間的冗余備份。
  本文設計實現了一個基于VxWorks的雙端口網卡智能雙冗余驅動,在驅動中實現了網絡通信故障診斷和網卡間智能切換功能,對上層應用呈現單網卡特性。通過對設計實現的智能雙冗余驅動進行性能測試,驗證了設計的正確性和有效性,但通過測試結果也可以看到,在網卡切換過程中還存在切換時間較長的問題,有待進一步研究。
參考文獻
1 鄭宗漢.實時系統軟件基礎.北京:清華大學出版社,2003
2 孔祥營,柏桂枝.嵌入式實時操作系統VxWorks及其開發環境Tornado[M].北京:中國電力出版社,2002
3 李方敏.VxWorks高級程序設計.北京:清華大學出版社,2004
4 周啟平,張 楊.VxWorks下設備驅動程序及BSP開發指南.北京:中國電力出版社,2004
5 Comer D E.計算機網絡與因特網.北京:清華大學出版社,2002
6 田 煒,劉利強,袁贛南.VxWorks環境下雙網卡冗余備份技術的實現.自動化技術與應用,2003;(7):32~34
7 張均東,任 光,孫培廷.船舶監控網絡中的冗余設計和實現.中國造船,2002;(9):99~104
8 徐紹衡.艦船雙網絡信息和控制一體化系統.船舶工程,2002;(6):47~49

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲品质自拍| 影音先锋亚洲一区| 久久久久久久久蜜桃| 亚洲综合二区| 亚洲欧美日韩精品久久久| 最新69国产成人精品视频免费| 欧美精品色一区二区三区| 欧美激情欧美激情在线五月| 国产欧美在线播放| 欧美日韩成人一区| 亚洲一二区在线| 国产欧美日韩另类视频免费观看| 免费观看在线综合色| 久久精品国产欧美激情| 日韩系列欧美系列| 欧美国产日韩一区二区在线观看| av成人动漫| 中国成人黄色视屏| 国产精品久久久久久久久久三级| 亚洲成色777777女色窝| 亚洲一区激情| 欧美视频专区一二在线观看| 亚洲在线视频网站| 国产精品一区二区三区久久| 国产婷婷色综合av蜜臀av| 亚洲精品韩国| 欧美顶级少妇做爰| 国产欧美日韩一区二区三区在线观看| 先锋影音一区二区三区| 亚洲色在线视频| 欧美一区二区三区免费观看视频| 午夜精品视频网站| 欧美福利视频一区| 久久久国产精品一区二区三区| 久久精品国产99精品国产亚洲性色| 欧美精品在线观看一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美午夜精品理论片a级大开眼界| 激情校园亚洲| 亚洲精品九九| 欧美jizz19性欧美| 久久综合给合久久狠狠色| av成人免费在线观看| 亚洲一区免费视频| av不卡免费看| 欧美mv日韩mv亚洲| 午夜精品福利在线| 久久亚洲美女| 亚洲男人第一av网站| 欧美激情成人在线| 91久久精品日日躁夜夜躁国产| 午夜精品三级视频福利| 欧美日韩你懂的| 国产精品欧美日韩一区二区| 欧美日韩国产区| 亚洲在线电影| 国产亚洲精品久久久久动| 国产亚洲成av人片在线观看桃| 亚洲电影有码| 性欧美xxxx大乳国产app| 久久免费高清视频| 国产精品一卡| 亚洲天堂av在线免费观看| 中文一区在线| 久久男人资源视频| 国产综合色产在线精品| 国产欧美精品在线播放| 亚洲欧美日韩综合国产aⅴ| 久久久国产精品一区二区三区| 国产精品国产一区二区| 一区二区三区|亚洲午夜| 亚洲男女自偷自拍| 亚洲免费成人| 久久综合色8888| 欧美ed2k| 国产日韩欧美综合一区| 久久精品国产99国产精品| 欧美午夜免费影院| 亚洲精品欧美专区| 欧美一区二视频| 在线视频欧美一区| 欧美日韩1区2区3区| 狠狠色狠狠色综合日日91app| 久久久蜜臀国产一区二区| 久久人人97超碰精品888| 久久精品成人一区二区三区| 国产精品一区二区久激情瑜伽| 欧美日本精品一区二区三区| 国产婷婷成人久久av免费高清| 国产性做久久久久久| 黑丝一区二区三区| 一区二区三区精品久久久| 国产精品第一页第二页第三页| 亚洲综合欧美日韩| 亚洲午夜电影在线观看| av成人免费在线| 亚洲电影一级黄| 欧美另类videos死尸| 国产亚洲综合精品| 亚洲精品日韩精品| 欧美一区二区三区在线免费观看| 久久国产天堂福利天堂| 久久精品主播| 国产美女扒开尿口久久久| 亚洲新中文字幕| 亚洲欧美在线免费观看| 亚洲第一毛片| 久久久久久9| 久久精品国产2020观看福利| 在线视频中文亚洲| 伊人影院久久| 在线中文字幕一区| 一区二区三区福利| 亚洲美女免费视频| 亚洲欧美在线观看| 国产亚洲成年网址在线观看| 欧美精品 国产精品| 亚洲专区免费| 欧美日韩一区二区三区| 亚洲精选在线观看| 亚洲一级片在线看| 久久免费视频在线观看| 欧美一区二区免费观在线| 亚洲人成网站999久久久综合| 亚洲视频中文| 国产在线观看91精品一区| 欧美国产日韩精品免费观看| 欧美婷婷六月丁香综合色| 欧美激情综合网| 久久久九九九九| 一本色道久久综合亚洲精品不| 久久噜噜噜精品国产亚洲综合| 香蕉久久精品日日躁夜夜躁| 好看不卡的中文字幕| 在线观看日韩专区| 国产精品一区二区男女羞羞无遮挡| 女女同性精品视频| 影音先锋欧美精品| 国产精品日本一区二区| 国产女人aaa级久久久级| 欧美一区二区三区四区在线观看地址| 日韩一级精品视频在线观看| 这里只有精品视频在线| 欧美精品18+| 国产精品日本欧美一区二区三区| 欧美在线高清视频| 亚洲国产日韩欧美在线图片| 欧美尤物巨大精品爽| 一区二区日韩免费看| 亚洲一级黄色片| 亚洲天堂成人在线观看| 欧美网站大全在线观看| 午夜精品一区二区三区四区| 欧美欧美午夜aⅴ在线观看| 国产精品久久久久高潮| 国产一区二区三区在线播放免费观看| 欧美日韩成人综合在线一区二区| 欧美日韩大陆在线| 国产欧美一区二区白浆黑人| 国产精品日韩精品欧美精品| 午夜精品免费视频| 欧美jizz19hd性欧美| 黑人巨大精品欧美黑白配亚洲| 亚洲一区二区在线观看视频| 久久―日本道色综合久久| 国产综合一区二区| 国产九区一区在线| 久久久久久999| 国产尤物精品| 99re亚洲国产精品| 中日韩美女免费视频网站在线观看| 国产午夜亚洲精品理论片色戒| 亚洲欧洲日韩综合二区| 亚洲视频播放| 欧美人成网站| 黄色一区三区| 欧美激情一区在线观看| 欧美色播在线播放| 你懂的国产精品永久在线| 韩国欧美国产1区| 久久久免费精品视频| 亚洲在线免费观看| 久久久www成人免费精品| 亚洲日本理论电影| 亚洲日本精品国产第一区| 先锋a资源在线看亚洲| 久久久久久综合网天天| 中文高清一区| 欧美亚洲一区三区| 亚洲区国产区| 国产女主播视频一区二区| 午夜在线播放视频欧美| 国产精品丝袜久久久久久app| 韩国v欧美v日本v亚洲v| 久久免费午夜影院| 欧美精品九九| 久久久久久久久久久久久久一区| 亚洲视频一二| 亚洲欧美日韩在线观看a三区| 欧美区高清在线| 一本色道久久综合亚洲精品高清| 99精品视频免费在线观看| 亚洲高清av在线| 欧美韩国日本综合| 欧美www在线| 激情欧美一区| 国产一区二区三区的电影| 欧美视频在线观看| 欧美日韩一区二区三区| 美女爽到呻吟久久久久| 亚洲欧美日韩国产一区二区三区| 蜜臀久久99精品久久久久久9| 欧美午夜性色大片在线观看| 欧美寡妇偷汉性猛交| 夜夜嗨av一区二区三区中文字幕| ●精品国产综合乱码久久久久| 国内精品久久久久久久97牛牛| 国产麻豆午夜三级精品| 欧美日韩一视频区二区| 欧美日韩www| 亚洲欧美成人综合| 国产欧美日韩精品丝袜高跟鞋| 亚洲另类一区二区| 亚洲承认在线| 老色鬼久久亚洲一区二区| 国产美女精品免费电影| 欧美aⅴ一区二区三区视频| 亚洲国语精品自产拍在线观看| 久久一综合视频| 欧美精品在线一区| 久久精品国产精品| 狠狠色2019综合网| 一区二区高清视频在线观看| 国产精品久久国产精品99gif| 国产欧美日韩精品一区| 91久久精品一区| 欧美日韩国产成人在线91| 欧美在线视频播放| 欧美va亚洲va日韩∨a综合色| 国产精品免费福利| 国产精品一区二区黑丝| 亚洲在线成人精品| 国产精品国产a| 一区二区三区视频观看| 久久久久久久激情视频| 国产在线精品成人一区二区三区| 午夜国产精品视频| 欧美精品尤物在线| 久久精品99国产精品| 国产精品日日摸夜夜添夜夜av| 欧美激情中文字幕一区二区| 国内精品美女av在线播放| 欧美色图五月天| 欧美国产日韩视频| 亚洲激情黄色| 久久裸体视频| 欧美aaa级| 99视频精品全部免费在线| 欧美日韩国产91| 日韩一区二区免费看| 国产日本精品| 一区二区三区国产| 国产香蕉97碰碰久久人人| 亚洲精品在线二区| 午夜精品三级视频福利| 亚洲激情图片小说视频| 欧美成人久久| 极品中文字幕一区| 欧美天天综合网| 亚洲国产精品一区二区久| 国产一二精品视频| 久久久精品久久久久| 亚洲欧美综合一区| 久久精品成人| 亚洲免费视频一区二区| 国产伦精品一区二区三区高清版| 欧美福利一区二区三区| 国产精品久久久久天堂| 免费一级欧美片在线观看| 蜜桃av噜噜一区二区三区| 亚洲欧美另类综合偷拍| 亚洲精品久久久久久下一站| 欧美黄网免费在线观看| 1024亚洲| 亚洲欧美春色| 亚洲经典自拍| 欧美国产一区在线| 欧美激情va永久在线播放| 欧美不卡一卡二卡免费版| 国产精品免费一区二区三区在线观看| 国产精品网曝门| 亚洲国产日韩欧美在线99| 欧美人与性动交a欧美精品| 激情成人中文字幕| 久久尤物电影视频在线观看| 国产精品网站视频| 久久一区二区三区国产精品| 欧美成va人片在线观看| 亚洲国产小视频在线观看| 国产区亚洲区欧美区| 亚洲国产高清高潮精品美女| 亚洲一区欧美| 久久国产精品久久精品国产| 免费视频久久| 久久久99久久精品女同性| 韩国在线一区| 亚洲乱码国产乱码精品精天堂| 亚洲日本一区二区三区| 欧美日韩国产bt| 亚洲欧美国产精品va在线观看| 亚洲高清色综合| 欧美大学生性色视频| 欧美14一18处毛片| 亚洲在线成人| 久久成人18免费观看| 欧美精品一区三区在线观看| 在线成人免费观看| 在线免费日韩片| 国产一区二区在线观看免费播放| 亚洲精品一区在线| 国产主播精品| 一区二区不卡在线视频 午夜欧美不卡在| 久久综合狠狠综合久久激情| 国产在线精品自拍| 欧美日韩网站| 老司机午夜精品视频在线观看| 一区一区视频| 在线精品国产成人综合|