楊金孝,王 鑫,劉慧卓
(西北工業(yè)大學(xué) 陜西 西安 710129)
AFDX是航空電子全雙工交換式以太網(wǎng)的簡稱。其在保留了普通交換式以太網(wǎng)高速、易用和低成本的特點(diǎn)的同時,在之基礎(chǔ)上增加了一些增強(qiáng)和保障網(wǎng)絡(luò)可靠性和易用性的機(jī)制。AFDX網(wǎng)絡(luò)的協(xié)議標(biāo)準(zhǔn)為ARINC664協(xié)議,該協(xié)議所規(guī)定的冗余鏈路的設(shè)置能顯著提高網(wǎng)絡(luò)傳輸?shù)目煽啃訹1]。
因此,對AFDX網(wǎng)絡(luò)的端系統(tǒng)設(shè)計良好的冗余傳輸?shù)墓芾硭惴ㄊ且粋€必須要解決的問題。AFDX以太網(wǎng)冗余管理的算法設(shè)計為了進(jìn)一步的AFDX網(wǎng)絡(luò)端系統(tǒng)的設(shè)計與實現(xiàn)打下了基礎(chǔ)。
根據(jù)ARINC664協(xié)議的規(guī)定,AFDX網(wǎng)絡(luò)的端系統(tǒng)之間的數(shù)據(jù)傳輸過程中可以存在多個獨(dú)立且冗余的網(wǎng)絡(luò),通常是2個網(wǎng)絡(luò),并分別稱之為A網(wǎng)絡(luò)和B網(wǎng)絡(luò)。在這樣的傳輸條件下,任何的單個的網(wǎng)絡(luò)組件發(fā)生失效的情況不會造成整個網(wǎng)絡(luò)通信的癱瘓。例如當(dāng)一個傳輸網(wǎng)絡(luò)失效時,數(shù)據(jù)流依舊可以通過其他工作正常的數(shù)據(jù)傳輸網(wǎng)絡(luò)傳送,使得數(shù)據(jù)流得到保護(hù)。從概率學(xué)的角度來看,多個網(wǎng)絡(luò)同時失效的概率應(yīng)該明顯低于單個網(wǎng)絡(luò)失效的概率,因此采用AFDX以太網(wǎng)的冗余功能可以明顯的提高網(wǎng)絡(luò)傳輸?shù)目煽啃訹2]。圖1中展示了網(wǎng)絡(luò)冗余的基本概念。
圖1 冗余的概念Fig.1 Concept of redundancy
冗余的傳輸方式使得AFDX以太網(wǎng)相對普通以太網(wǎng)更為可靠,是AFDX網(wǎng)絡(luò)可靠性保障的基礎(chǔ)。冗余管理過程在接收端所處的位置在完整性檢查之后,即就是達(dá)到接收端的幀在通過完整新建超之后才會進(jìn)入冗余管理。如圖2所示,冗余管理在AFDX網(wǎng)絡(luò)傳輸過程中所處的位置
圖2 冗余管理的所處的位置Fig.2 Location of the redundancy management
冗余的方案是以每條虛擬鏈路為基礎(chǔ)的。當(dāng)一個發(fā)送端系統(tǒng)向一個接收端系統(tǒng)通過一個特定的虛擬鏈路發(fā)送數(shù)據(jù)時,發(fā)送端系統(tǒng)準(zhǔn)備好一些數(shù)據(jù)并使它通過通信協(xié)議棧。在協(xié)議棧中,一個順序號(Sequence Number,簡稱SN)域被加入到每一個數(shù)據(jù)幀中。每一幀中SN的順序號的長度為8 bit,取值范圍為0~255。加入的SN能夠保證冗余網(wǎng)絡(luò)的傳輸有次序 性 且 不 會 重 復(fù)[3-4]。
AFDX以太網(wǎng)中每個數(shù)據(jù)幀同時通過兩個在物理上獨(dú)立的網(wǎng)絡(luò)傳送送。在接收端,接收端系統(tǒng)協(xié)議棧中采用“先到有效者勝出”的算法策略來管理冗余發(fā)送的數(shù)據(jù)幀。這意味著從兩個傳送數(shù)據(jù)的網(wǎng)絡(luò)中任意一個網(wǎng)絡(luò)中得到的第一個并且有效的幀將被接收,并向上通過通信棧到達(dá)接收端系統(tǒng)。而接收端收到的帶有這個順序號的第二個幀或者無效的幀將被直接丟棄。這個將適合的幀選出,將不合適的幀丟棄的機(jī)制就稱作冗余管理 RM(Redundancy Management)[5]。
對接收端系統(tǒng)的冗余管理過程來說,經(jīng)過A網(wǎng)絡(luò)和B網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)幀是等效的。冗余管理過程所關(guān)注的是數(shù)據(jù)幀中所包含的順序號SN。無論數(shù)據(jù)幀來自哪個網(wǎng)絡(luò),只要是符合算法條件的幀都被作為有效的幀被接收,反之則作為無效的幀被丟棄。
對發(fā)送端系統(tǒng)來說,端系統(tǒng)會在每一條鏈路上傳送的幀中都加入一個順序號。幀順序號的長度為8位,取值范圍是0~255。順序號的初始值為0,每次發(fā)送端系統(tǒng)復(fù)位后也為0。在同一條鏈路上傳輸?shù)那昂笙嗬^的幀,后一個幀的順序號為前一個幀的順序號加1。當(dāng)幀的順序號達(dá)到255之后的一個幀的順序號會回卷到1[6]。
對接收端系統(tǒng)來說,有效幀包括一下幾種情況:1)之前一次接收到的有效幀的順序號規(guī)定為PSN(Previous Sequence Number),則對當(dāng)前的接收端系統(tǒng)來說,在順序號在區(qū)間[PSN+1,PSN+2]中的幀為有效幀。其中的“+”運(yùn)算即包括一般情況下的數(shù)值增加1,也包括順序號回卷,也就是如果PSN=254,則 PSN+1=255,PSN+2=1。 2)在接收端系統(tǒng)復(fù)位后,無論接收端接收到的下一幀的順序號是什么,它都被視為有效幀而被接收端系統(tǒng)接收。3)如果在接收到一個有效幀之后,接收到下一個有效幀的時間超過了系統(tǒng)設(shè)定的最大偏移(SkewMax)時間,則無論下一幀的順序號是什么,它都將被視為有效幀而被接收端系統(tǒng)接收。4)因為順序號0標(biāo)志著發(fā)送端系統(tǒng)產(chǎn)生了復(fù)位,因此接收端在任何時候接收到順序號為0的幀都為有效。除此之外的包含其他順序號的幀將被丟棄[1]。
基于順序號這樣的定義,在通信中涉及到的任何裝置的復(fù)位或者單次幀丟失的情況下都不影響“先到者勝出”的基本原則,從而使AFDX網(wǎng)絡(luò)的冗余傳送功能具有可用性。
冗余管理的目的是在AFDX網(wǎng)絡(luò)采用冗余網(wǎng)絡(luò)發(fā)送的情況下,保證網(wǎng)絡(luò)傳輸?shù)目煽啃?,也就是要在冗余的傳輸情況既保證數(shù)據(jù)幀的正確性又保證數(shù)據(jù)幀的非重復(fù)性。既要通過冗余傳輸?shù)姆绞教岣呖煽啃?,又不能因為冗余傳輸?shù)姆绞绞沟媒邮盏降膸l(fā)生重復(fù)。由此算法的流程設(shè)計如下,其中SN為當(dāng)前接收到的幀的順序號,PSN為當(dāng)前接收端系統(tǒng)前一個有效的順序號。
圖3 算法設(shè)計的流程圖Fig.3 Flow chart the algorithms design
接收端首先判斷接收端系統(tǒng)是否復(fù)位,之后判斷等待接收是否超時,這兩個判斷條件任意一個為真時,無論接收到的幀的SN為多少都為有效,接收端將這一幀作為有效幀并向上通過接收協(xié)議棧,此時這一算法周期結(jié)束,接收到的SN被作為PSN保存,并帶入下一個算法周期。反之當(dāng)這兩個判斷條件均不滿足時,進(jìn)一步判斷SN是否為0,當(dāng)SN=0時表明發(fā)送端發(fā)生復(fù)位,接收端將這一幀作為有效幀并向上通過接收協(xié)議棧,此時這一算法周期結(jié)束,0被作為PSN保存,并帶入下一個算法周期。反之當(dāng)SN不為0時,進(jìn)一步判斷如果SN屬于區(qū)間[PSN+1,PSN+2],接收端將這一幀作為有效幀并向上通過接收協(xié)議棧,此時這一算法周期結(jié)束,接收到的SN被作為PSN保存,并帶入下一個算法周期。反之則該SN為無效SN,攜帶該SN的幀將被丟棄,接收端系統(tǒng)的PSN在這一個算法周期將不做改變而帶入下一個算法周期。
冗余的數(shù)據(jù)幀傳輸方式可以規(guī)避單網(wǎng)絡(luò)傳輸中出現(xiàn)的單個幀的錯誤、丟失或被阻塞的風(fēng)險。當(dāng)出現(xiàn)某個網(wǎng)絡(luò)的單個幀出現(xiàn)錯誤時,這個幀在到達(dá)冗余管理過程之前會被完整性檢查丟棄,這個幀不會到達(dá)冗余管理過程,而經(jīng)過另一個網(wǎng)絡(luò)傳輸?shù)呐c該幀SN相同且正確的幀會被作為有效的幀并被接收端系統(tǒng)接收,保證了接收端收到的數(shù)據(jù)幀流的正確。當(dāng)出現(xiàn)某個網(wǎng)絡(luò)上傳送的單個幀反生丟失時,這個幀不會到達(dá)冗余管理過程,而經(jīng)過另一個網(wǎng)絡(luò)傳輸?shù)呐c該幀SN相同且未丟失的幀會被作為有效的幀并被接收端系統(tǒng)接收,保證了接收端收到的數(shù)據(jù)幀流的不會發(fā)生丟失。當(dāng)出現(xiàn)某個網(wǎng)絡(luò)上傳送的單個幀由于阻塞而沒有及時到達(dá)接收端時,經(jīng)過另一個網(wǎng)絡(luò)傳輸?shù)呐c該幀SN相同且未被阻塞的幀將被作為有效的幀接收。并且之后該幀到達(dá)接收端時,由于SN已經(jīng)不符合此時算法的要求,因此該幀被作為無效的幀被丟棄,使得接收端接收到的幀流不會因單個幀的阻塞受到影響,這就保證了冗余傳輸?shù)臄?shù)據(jù)幀的正確性。當(dāng)兩個網(wǎng)絡(luò)中的包含相同SN的幀都被正確傳輸?shù)浇邮斩藭r,由于后到的幀的SN不符合冗余管理算法的要求而會被舍棄,使得同包含一個SN的數(shù)據(jù)幀只會被接收一次,這就保證了冗余傳輸?shù)臄?shù)據(jù)幀的非重復(fù)性。
需要注意的問題是,該算法在傳輸初始化時存在這樣的的風(fēng)險——當(dāng)接收端系統(tǒng)產(chǎn)生復(fù)位或超時的第一個算法周期無論接收到的幀的SN為多少都為有效,因此當(dāng)在這種情況下如果恰好接收端接收到一個原本不期望通過冗余管理的幀,該幀也會通過冗余管理過程。
該算法設(shè)計應(yīng)用于某研究所的機(jī)載AFDX以太網(wǎng)端系統(tǒng)的設(shè)計。以該算法設(shè)計端系統(tǒng)中冗余管理過程的狀態(tài)機(jī),通過在單個幀發(fā)生的錯誤情況的下接收到數(shù)據(jù)幀流的情況來檢驗系統(tǒng)能否接收到正確的幀流。通過實際應(yīng)用的結(jié)果表明,應(yīng)用該算法設(shè)計的AFDX[7]以太網(wǎng)端系統(tǒng)功能實現(xiàn)簡便準(zhǔn)確、穩(wěn)定可靠。
在本文的算法過程中,接收端系統(tǒng)根據(jù)接收到的SN與PSN來判斷網(wǎng)絡(luò)中數(shù)據(jù)幀的傳輸狀態(tài),算法實現(xiàn)方法簡便,功能可靠。該冗余算法達(dá)到了AFDX[7]以太網(wǎng)相比普通以太網(wǎng)提高數(shù)據(jù)傳輸可靠性的目的,實現(xiàn)了設(shè)計的要求。
[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端系統(tǒng)關(guān)鍵技術(shù)的研究與實現(xiàn)[J].計算機(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網(wǎng)絡(luò)協(xié)議研究[J].計算機(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網(wǎng)絡(luò)系統(tǒng)建模與仿真實現(xiàn)[J].測控技術(shù),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端系統(tǒng)通信端口的設(shè)計與實現(xiàn)[J].測控技術(shù),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總線的端系統(tǒng)測試技術(shù)[J].現(xiàn)代電子技術(shù),2012(7):40-42.LI Jian.The testing technology based on AFDX bus[J].Modern Electronics Technique,2012(7):40-42.