張騰
(中國電子科技集團公司第二十研究所,西安 710068)
隨著衛(wèi)星導(dǎo)航技術(shù)和通信技術(shù)的快速發(fā)展,海用衛(wèi)星導(dǎo)航用戶終端對網(wǎng)絡(luò)通信的可靠性要求也越來越高。目前主流的網(wǎng)絡(luò)冗余設(shè)計采用不同的IP地址和MAC地址實現(xiàn),當(dāng)主網(wǎng)絡(luò)出現(xiàn)故障時,從網(wǎng)絡(luò)不能及時的切換為主網(wǎng)絡(luò)與用戶進行通信,已不能滿足對可靠性要求較高的海用衛(wèi)星導(dǎo)航終端的使用。本文提出了一種新型的網(wǎng)絡(luò)雙冗余技術(shù),在驅(qū)動層利用網(wǎng)絡(luò)通信故障識別任務(wù),采用相同的IP地址和MAC地址,可實現(xiàn)網(wǎng)絡(luò)智能切換,有效保證了網(wǎng)絡(luò)通信的可靠性。
VxWorks操作系統(tǒng)是美國 Wind River System公司于 1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)。其遵照BSD4.4網(wǎng)絡(luò)協(xié)議棧標準執(zhí)行,可分為物理層、數(shù)據(jù)鏈路層、MUX層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層[1],結(jié)構(gòu)示意如圖1所示。其中MUX層是VxWorks在TCP/IP協(xié)議上新增加的一層,可以在網(wǎng)絡(luò)接口硬件上方便地實現(xiàn)多種協(xié)議,不提供任何協(xié)議處理功能,只負責(zé)管理網(wǎng)絡(luò)層與底層硬件之間的交互,可以有效降低上層協(xié)議與物理硬件間的耦合。
在VxWorks操作系統(tǒng)啟動時,首先要查詢配置文件中兩個網(wǎng)卡設(shè)備表,設(shè)備表中包含了每一網(wǎng)卡的地址和中斷等配置信息;然后依據(jù)網(wǎng)卡的配置信息創(chuàng)建相應(yīng)的控制結(jié)構(gòu)并對其進行初始化,向每個網(wǎng)卡設(shè)備分配一塊內(nèi)存空間;接著將指向主網(wǎng)卡的控制結(jié)構(gòu)指針提交給MUX層,供應(yīng)用層調(diào)用。最后開啟網(wǎng)絡(luò)故障識別任務(wù)。網(wǎng)絡(luò)故障識別任務(wù)是通過信號量來實現(xiàn)的,通過定時讀取信號量來判斷主通道網(wǎng)卡設(shè)備的連接狀態(tài)(正常狀態(tài)/故障狀態(tài)),當(dāng)網(wǎng)絡(luò)端口處于正常狀態(tài)時,不做任何處理,任務(wù)循環(huán)將等待下一次信號量;當(dāng)網(wǎng)絡(luò)端口處于故障狀態(tài)時,網(wǎng)絡(luò)故障識別任務(wù)將主網(wǎng)卡與備用網(wǎng)卡的控制結(jié)構(gòu)信息進行交換,備用網(wǎng)卡將代替主網(wǎng)卡進行通信。其原理框圖如圖2所示。
圖1 VxWorks結(jié)構(gòu)示意圖
圖2 雙冗余原理框圖
實現(xiàn)雙網(wǎng)絡(luò)智能切換的必要條件是快速準確的識別出當(dāng)前網(wǎng)卡的連接狀態(tài)。任何一種網(wǎng)絡(luò)芯片均可自動識別其連接狀態(tài),通過讀取網(wǎng)卡芯片中相應(yīng)寄存器的狀態(tài)來識別網(wǎng)卡連接狀態(tài),通常情況下,寄存器狀態(tài)0表示網(wǎng)卡連接正常,1表示網(wǎng)卡連接故障[2]。其檢測依據(jù)為從本機網(wǎng)絡(luò)端口到網(wǎng)線另一端的網(wǎng)絡(luò)端口(用戶端網(wǎng)絡(luò)端口)的整個通信鏈路連接是否正常,能夠有效的檢測出網(wǎng)卡故障、網(wǎng)線斷開等故障。
本文使用的7JCPS516雙冗余網(wǎng)絡(luò)模塊采用了intel82546以太網(wǎng)控制器,該芯片的寄存器利用 4個頁面進行分頁存儲,分別映射到16個I/O地址空間上。其中第2頁的proConfig寄存器的bit-3位為自動識別網(wǎng)卡連接狀態(tài)位,當(dāng)bit-3為1時表示連接故障,為0時標識連接正常。
雙冗余網(wǎng)絡(luò)通信中,對上層應(yīng)用層來講,其呈現(xiàn)出的是單網(wǎng)卡的特性[3]。當(dāng)識別出主網(wǎng)卡連接狀態(tài)為故障狀態(tài)時,立即解除主網(wǎng)卡的IP地址的綁定,并刪除主機表中的標識名、IP地址等相關(guān)信息,然后將備用網(wǎng)卡的進行綁定,并進行主機表的添加,對上層應(yīng)用層來講,其調(diào)用MUX層固定的接口,網(wǎng)卡的控制結(jié)構(gòu)本身內(nèi)容未發(fā)生變化,從而實現(xiàn)了網(wǎng)絡(luò)智能切換。利用VxWorks系統(tǒng)提供的特定函數(shù)函數(shù)即可實現(xiàn)切換這一功能。
通過插拔網(wǎng)線進行功能測試,測試方法如下:
(1)連接網(wǎng)線1和網(wǎng)線2使兩塊網(wǎng)卡均處于正常連接狀態(tài):網(wǎng)卡 1作為主網(wǎng)卡進行網(wǎng)絡(luò)通信,網(wǎng)卡2作為備份網(wǎng)卡,處于激活狀態(tài);如表1所示。
(2)在步驟1的基礎(chǔ)上,斷開網(wǎng)線1使網(wǎng)卡1處于故障狀態(tài),網(wǎng)絡(luò)自動切換到網(wǎng)卡 2進行通信,如表2所示。
(3)在步驟2的基礎(chǔ)上,連接網(wǎng)線1使網(wǎng)卡1處于正常連接狀態(tài),斷開網(wǎng)線2使網(wǎng)卡2處于故障狀態(tài),網(wǎng)絡(luò)自動切換到網(wǎng)卡1進行通信,如表3所示。注:圓形表示網(wǎng)絡(luò)連接正常,三角表示網(wǎng)絡(luò)連接故障,圖形下方橫線表示進行網(wǎng)絡(luò)通信。
表1 網(wǎng)絡(luò)通信狀態(tài)指示表
表2 網(wǎng)絡(luò)通信狀態(tài)指示表
表3 網(wǎng)絡(luò)通信狀態(tài)指示表
本文對基于 VxWorks的網(wǎng)絡(luò)雙冗余在驅(qū)動層的設(shè)計及智能切換技術(shù)進行了詳細的闡述。并通過自測試和型號平臺的驗證,證明其可以有效保證網(wǎng)絡(luò)通信的可靠性,具有較高的工程應(yīng)用價值。