楊金孝,王 鑫,劉慧卓
(西北工業大學 陜西 西安 710129)
AFDX是航空電子全雙工交換式以太網的簡稱。其在保留了普通交換式以太網高速、易用和低成本的特點的同時,在之基礎上增加了一些增強和保障網絡可靠性和易用性的機制。AFDX網絡的協議標準為ARINC664協議,該協議所規定的冗余鏈路的設置能顯著提高網絡傳輸的可靠性[1]。
因此,對AFDX網絡的端系統設計良好的冗余傳輸的管理算法是一個必須要解決的問題。AFDX以太網冗余管理的算法設計為了進一步的AFDX網絡端系統的設計與實現打下了基礎。
根據ARINC664協議的規定,AFDX網絡的端系統之間的數據傳輸過程中可以存在多個獨立且冗余的網絡,通常是2個網絡,并分別稱之為A網絡和B網絡。在這樣的傳輸條件下,任何的單個的網絡組件發生失效的情況不會造成整個網絡通信的癱瘓。例如當一個傳輸網絡失效時,數據流依舊可以通過其他工作正常的數據傳輸網絡傳送,使得數據流得到保護。從概率學的角度來看,多個網絡同時失效的概率應該明顯低于單個網絡失效的概率,因此采用AFDX以太網的冗余功能可以明顯的提高網絡傳輸的可靠性[2]。圖1中展示了網絡冗余的基本概念。

圖1 冗余的概念Fig.1 Concept of redundancy
冗余的傳輸方式使得AFDX以太網相對普通以太網更為可靠,是AFDX網絡可靠性保障的基礎。冗余管理過程在接收端所處的位置在完整性檢查之后,即就是達到接收端的幀在通過完整新建超之后才會進入冗余管理。如圖2所示,冗余管理在AFDX網絡傳輸過程中所處的位置

圖2 冗余管理的所處的位置Fig.2 Location of the redundancy management
冗余的方案是以每條虛擬鏈路為基礎的。當一個發送端系統向一個接收端系統通過一個特定的虛擬鏈路發送數據時,發送端系統準備好一些數據并使它通過通信協議棧。在協議棧中,一個順序號(Sequence Number,簡稱SN)域被加入到每一個數據幀中。每一幀中SN的順序號的長度為8 bit,取值范圍為0~255。加入的SN能夠保證冗余網絡的傳輸有次序 性 且 不 會 重 復[3-4]。
AFDX以太網中每個數據幀同時通過兩個在物理上獨立的網絡傳送送。在接收端,接收端系統協議棧中采用“先到有效者勝出”的算法策略來管理冗余發送的數據幀。這意味著從兩個傳送數據的網絡中任意一個網絡中得到的第一個并且有效的幀將被接收,并向上通過通信棧到達接收端系統。而接收端收到的帶有這個順序號的第二個幀或者無效的幀將被直接丟棄。這個將適合的幀選出,將不合適的幀丟棄的機制就稱作冗余管理 RM(Redundancy Management)[5]。
對接收端系統的冗余管理過程來說,經過A網絡和B網絡傳輸的數據幀是等效的。冗余管理過程所關注的是數據幀中所包含的順序號SN。無論數據幀來自哪個網絡,只要是符合算法條件的幀都被作為有效的幀被接收,反之則作為無效的幀被丟棄。
對發送端系統來說,端系統會在每一條鏈路上傳送的幀中都加入一個順序號。幀順序號的長度為8位,取值范圍是0~255。順序號的初始值為0,每次發送端系統復位后也為0。在同一條鏈路上傳輸的前后相繼的幀,后一個幀的順序號為前一個幀的順序號加1。當幀的順序號達到255之后的一個幀的順序號會回卷到1[6]。
對接收端系統來說,有效幀包括一下幾種情況:1)之前一次接收到的有效幀的順序號規定為PSN(Previous Sequence Number),則對當前的接收端系統來說,在順序號在區間[PSN+1,PSN+2]中的幀為有效幀。其中的“+”運算即包括一般情況下的數值增加1,也包括順序號回卷,也就是如果PSN=254,則 PSN+1=255,PSN+2=1。 2)在接收端系統復位后,無論接收端接收到的下一幀的順序號是什么,它都被視為有效幀而被接收端系統接收。3)如果在接收到一個有效幀之后,接收到下一個有效幀的時間超過了系統設定的最大偏移(SkewMax)時間,則無論下一幀的順序號是什么,它都將被視為有效幀而被接收端系統接收。4)因為順序號0標志著發送端系統產生了復位,因此接收端在任何時候接收到順序號為0的幀都為有效。除此之外的包含其他順序號的幀將被丟棄[1]。
基于順序號這樣的定義,在通信中涉及到的任何裝置的復位或者單次幀丟失的情況下都不影響“先到者勝出”的基本原則,從而使AFDX網絡的冗余傳送功能具有可用性。
冗余管理的目的是在AFDX網絡采用冗余網絡發送的情況下,保證網絡傳輸的可靠性,也就是要在冗余的傳輸情況既保證數據幀的正確性又保證數據幀的非重復性。既要通過冗余傳輸的方式提高可靠性,又不能因為冗余傳輸的方式使得接收到的幀發生重復。由此算法的流程設計如下,其中SN為當前接收到的幀的順序號,PSN為當前接收端系統前一個有效的順序號。

圖3 算法設計的流程圖Fig.3 Flow chart the algorithms design
接收端首先判斷接收端系統是否復位,之后判斷等待接收是否超時,這兩個判斷條件任意一個為真時,無論接收到的幀的SN為多少都為有效,接收端將這一幀作為有效幀并向上通過接收協議棧,此時這一算法周期結束,接收到的SN被作為PSN保存,并帶入下一個算法周期。反之當這兩個判斷條件均不滿足時,進一步判斷SN是否為0,當SN=0時表明發送端發生復位,接收端將這一幀作為有效幀并向上通過接收協議棧,此時這一算法周期結束,0被作為PSN保存,并帶入下一個算法周期。反之當SN不為0時,進一步判斷如果SN屬于區間[PSN+1,PSN+2],接收端將這一幀作為有效幀并向上通過接收協議棧,此時這一算法周期結束,接收到的SN被作為PSN保存,并帶入下一個算法周期。反之則該SN為無效SN,攜帶該SN的幀將被丟棄,接收端系統的PSN在這一個算法周期將不做改變而帶入下一個算法周期。
冗余的數據幀傳輸方式可以規避單網絡傳輸中出現的單個幀的錯誤、丟失或被阻塞的風險。當出現某個網絡的單個幀出現錯誤時,這個幀在到達冗余管理過程之前會被完整性檢查丟棄,這個幀不會到達冗余管理過程,而經過另一個網絡傳輸的與該幀SN相同且正確的幀會被作為有效的幀并被接收端系統接收,保證了接收端收到的數據幀流的正確。當出現某個網絡上傳送的單個幀反生丟失時,這個幀不會到達冗余管理過程,而經過另一個網絡傳輸的與該幀SN相同且未丟失的幀會被作為有效的幀并被接收端系統接收,保證了接收端收到的數據幀流的不會發生丟失。當出現某個網絡上傳送的單個幀由于阻塞而沒有及時到達接收端時,經過另一個網絡傳輸的與該幀SN相同且未被阻塞的幀將被作為有效的幀接收。并且之后該幀到達接收端時,由于SN已經不符合此時算法的要求,因此該幀被作為無效的幀被丟棄,使得接收端接收到的幀流不會因單個幀的阻塞受到影響,這就保證了冗余傳輸的數據幀的正確性。當兩個網絡中的包含相同SN的幀都被正確傳輸到接收端時,由于后到的幀的SN不符合冗余管理算法的要求而會被舍棄,使得同包含一個SN的數據幀只會被接收一次,這就保證了冗余傳輸的數據幀的非重復性。
需要注意的問題是,該算法在傳輸初始化時存在這樣的的風險——當接收端系統產生復位或超時的第一個算法周期無論接收到的幀的SN為多少都為有效,因此當在這種情況下如果恰好接收端接收到一個原本不期望通過冗余管理的幀,該幀也會通過冗余管理過程。
該算法設計應用于某研究所的機載AFDX以太網端系統的設計。以該算法設計端系統中冗余管理過程的狀態機,通過在單個幀發生的錯誤情況的下接收到數據幀流的情況來檢驗系統能否接收到正確的幀流。通過實際應用的結果表明,應用該算法設計的AFDX[7]以太網端系統功能實現簡便準確、穩定可靠。
在本文的算法過程中,接收端系統根據接收到的SN與PSN來判斷網絡中數據幀的傳輸狀態,算法實現方法簡便,功能可靠。該冗余算法達到了AFDX[7]以太網相比普通以太網提高數據傳輸可靠性的目的,實現了設計的要求。
[1]Engineering C.ARINC664.Avionics full duplex switched ethernet(AFDX)network[S].2005.
[2]LV Tang-qi,NING Hu,WU Zhi-tao,et al.The analysis of End-to-End delays based on AFDX configuration[C]//2011 9th InternationalConference on Reliability,M.Guiyang,2011:1296-1300.
[3]陳昕,周擁軍,萬劍雄.AFDX端系統關鍵技術的研究與實現[J].計算機工程,2009,35(5):1-3.CHEN Xin,ZHOU Yong-jun,WAN Jian-xiong.Research and implementation of key techniques in AFDX end system[J].Computer Engineering,2009,35(5):1-3.
[4]趙永庫,李貞,唐來勝.AFDX網絡協議研究[J].計算機測量與控制,2012,20(1):8-10.ZHAO Yong-ku,LI Zhen,TANG Lai-sheng.Research on networkprotocolofAFDX[J].ComputerMeasurement&Control,2012,20(1):8-10.
[5]宋東,曾星星,丁麗娜,等.AFDX網絡系統建模與仿真實現[J].測控技術,2012,31(2):76-80.SONG Dong,ZENG Xing-xing,DING Li-na,etal.The modelingand thesimulation implementation ofAFDX network system[J].Measurement&Control Technology,2012,31(2):76-80.
[6]武華,馬捷中,翟正軍.AFDX端系統通信端口的設計與實現[J].測控技術,2009,28(3):56-59.WU Hua,MA Jie-zhong,ZHAIZheng-jun.Design and implementation of communication port in AFDX end-system[J].Measurement&Control Technology,2009,28(3):56-59.
[7]李建.基于AFDX總線的端系統測試技術[J].現代電子技術,2012(7):40-42.LI Jian.The testing technology based on AFDX bus[J].Modern Electronics Technique,2012(7):40-42.