何向棟,張志平,賈世偉
(中國航空計算技術(shù)研究所,陜西 西安 710065)
摘要:新一代航電網(wǎng)絡(luò)——航空電子全雙工交換以太網(wǎng)(AFDX),是為航電信息系統(tǒng)之間進行數(shù)據(jù)通信而專門制定的協(xié)議標準,具有時間確定性、雙余度和高可靠性等優(yōu)點。在分析ARINC 664 Part7規(guī)范、通信結(jié)構(gòu)和SN等關(guān)鍵技術(shù)的基礎(chǔ)上,結(jié)合SAE AS6802[2]協(xié)議算法,提出一種保持多節(jié)點發(fā)送時序一致的AFDX幀結(jié)構(gòu)。采用OPNET網(wǎng)絡(luò)拓撲仿真實現(xiàn),結(jié)果滿足幀數(shù)據(jù)時序一致性要求。
關(guān)鍵詞:幀結(jié)構(gòu);AFDX網(wǎng)絡(luò);OPNET仿真;序列號
0引言
隨著機載飛行條件的復(fù)雜化和對安全飛行、舒適旅行等要求的提高,新一代航空電子系統(tǒng)數(shù)據(jù)傳輸已由傳統(tǒng)的音頻通信擴大為圖像、多媒體、確定性控制信號等多種數(shù)據(jù)流業(yè)務(wù)。航空電子全雙工交換以太網(wǎng)(AFDX)[1]基于IEEE 802.3標準,結(jié)合航空電子系統(tǒng)特殊需求對該協(xié)議的部分MAC和數(shù)據(jù)鏈路層進行適應(yīng)性修改,使其成為具備有確定性和安全性的交換網(wǎng)絡(luò)技術(shù),形成航空以太網(wǎng)數(shù)據(jù)網(wǎng)絡(luò)標準:ARINC 664,其中第7部分重點對AFDX網(wǎng)絡(luò)通信協(xié)議、交換機和端系統(tǒng)等各項內(nèi)容進行詳述,已成功應(yīng)用到波音787、空客A380和A400M等大型飛機的航電系統(tǒng)中,并將應(yīng)用于未來國產(chǎn)大飛機C919上。
相比ARINC429和MILSTD1553而言,AFDX網(wǎng)絡(luò)保留了傳統(tǒng)以太網(wǎng)高速、通用以及低成本等特點,同時增加了虛擬鏈路、帶寬分配、完整性監(jiān)測、警管[2]和冗余管理等特殊機制,兼容ARINC應(yīng)用協(xié)議SNMP和ARINC615A加卸載等協(xié)議優(yōu)點,確保數(shù)據(jù)傳輸滿足延遲確定、傳輸可靠、容錯能力強等機載網(wǎng)絡(luò)特點,已成為新一代航電系統(tǒng)總線接口關(guān)鍵技術(shù)之一。
1AFDX幀序列號作用與意義
AFDX發(fā)送節(jié)點在每一條虛擬鏈路(Virtual Link,VL)傳送幀數(shù)據(jù)時都要加入一個序列號(Sequence Number,SN)。幀SN的長度為1 B,取值范圍為0~255。SN的初始值為0,節(jié)點復(fù)位之后也為0。在同一條虛擬鏈路上傳輸?shù)那昂笙嗬^的幀,后一幀的SN為SN+1。當(dāng)幀的SN達到255之后,下一幀的SN回卷至1。
1.1冗余管理[3]
AFDX網(wǎng)絡(luò)包括兩個獨立的物理鏈路通道:A網(wǎng)絡(luò)和B網(wǎng)絡(luò),如圖1所示。
A、B冗余網(wǎng)絡(luò)的延時抖動不同,因此冗余幀與有效幀到達接收節(jié)點的時間也不同。每條物理鏈路傳輸相同的幀數(shù)據(jù),在接收節(jié)點針對每條虛擬鏈路按照SN依據(jù)“先到先有效者勝出”的原則采用先到達的數(shù)據(jù)幀,并將此虛擬鏈路SN保存為PSN(Previous Sequence Number)作為下一次接收幀的判斷標準,后到達的同一SN的幀數(shù)據(jù)被當(dāng)作無效幀而丟棄。另一方面,為了避免因為延遲而錯誤濾除有效數(shù)據(jù)幀,引入?yún)?shù)Skewmax[4]。Skewmax表示冗余幀與有效幀的到達接收節(jié)點的時間差。冗余管理保證接收的幀序號不斷增大(包括復(fù)位和幀丟失),當(dāng)Skewmax內(nèi)沒有數(shù)據(jù)幀時,冗余管理會無條件接收下一幀數(shù)據(jù)。
1.2完整性檢查
在沒有故障的AFDX網(wǎng)絡(luò)通信中,完整性檢查根據(jù)SN檢測接收幀數(shù)據(jù)SN是否滿足如下規(guī)則:
?。跴SN“+”1,PSN“+”2];
其中PSN表示前一幀數(shù)據(jù)的SN。如果基于SN的網(wǎng)絡(luò)出現(xiàn)故障(如發(fā)送節(jié)點出現(xiàn)不一致故障),則完整性檢查具有去除無效幀的任務(wù),并將故障信息傳遞給上層網(wǎng)絡(luò)管理。
完整性檢查將以下特殊情況下的幀數(shù)據(jù)作為有效幀接收:(1)接收的SN等于0;(2)在接收節(jié)點復(fù)位之后,第一次被接收到的幀數(shù)據(jù)。
1.3安全關(guān)鍵缺失
在機載航電網(wǎng)絡(luò)中,對于需高安全可靠地進行傳輸?shù)臄?shù)據(jù),有嚴格的序列收發(fā)關(guān)系,傳統(tǒng)的以太網(wǎng)幀數(shù)據(jù)無法對單鏈路幀數(shù)據(jù)的先后提供保證,而SN不僅可以在網(wǎng)絡(luò)冗余管理和完整性檢查起到重要作用,而且可以在OSI層次中的數(shù)據(jù)鏈路層對單條虛擬鏈路上的幀提供數(shù)據(jù)序列的安全性保證。
可見,SN在單條虛擬鏈路的幀通信中,可以保證數(shù)據(jù)的確定性和可靠性,然而系統(tǒng)要求多節(jié)點VL幀通信中的時序一致時,當(dāng)飛機在高空巡航過程中,一旦發(fā)生機翼多點故障,其故障發(fā)生時間與控制單元收到錯誤次序控制將導(dǎo)致緊急處理情況的不同,那么飛控將給出錯誤的飛行控制,導(dǎo)致機毀人亡的事故。
然而,SN并不能滿足節(jié)點間幀通信的時序一致性。為了保證節(jié)點間事件時序發(fā)生的一致性,下面將改進AFDX幀結(jié)構(gòu),并對授時和時序一致性算法進行詳述。
2幀改進
為了保持多個節(jié)點間事件發(fā)生時序與事實的一致性,通過在幀數(shù)據(jù)內(nèi)容中增加透明時鐘域[5-7],記錄傳輸過程中的發(fā)送延遲、傳輸延遲和接收延遲,實現(xiàn)傳輸透明化。在接收端通過對各個節(jié)點到達的幀數(shù)據(jù)通過最大傳輸延時與透明傳輸延時的排序算法計算,對同一時間段內(nèi)的幀數(shù)據(jù)進行重新排序整合,達到多節(jié)點間幀數(shù)據(jù)傳輸時序一致性要求。
AFDX改進幀結(jié)構(gòu)其特征在于,通過在幀的數(shù)據(jù)字段尾部預(yù)留8 B的透明時鐘字段,如圖2所示,字段明確定義時間單位2-16ns,記錄幀在傳輸過程中的發(fā)送延時、傳輸延遲和接收延遲。在目標節(jié)點,通過時序保持算法保證各個發(fā)送節(jié)點在目標節(jié)點上發(fā)送時間上幀序列的一致性。
透明時鐘域(用transparent_clock表示)計算幀數(shù)據(jù)從發(fā)送節(jié)點經(jīng)過轉(zhuǎn)發(fā)設(shè)備最后到接收節(jié)點的時延,具體計算方法如下。
節(jié)點按幀數(shù)據(jù)流過的次序標號為從0(發(fā)送節(jié)點)到n(接收節(jié)點)。
發(fā)送節(jié)點0:
transparent_clock0=dynamic_send_delay0+static_send_delay0(1)
轉(zhuǎn)發(fā)節(jié)點i,0<i<n:
transparent_clocki=transparent_clocki-1+dynamic_relay_delayi+static_relay_delayi+wire_delayi(2)
接收節(jié)點n:
transparent_clockn=transparent_clockn-1+dynamic_receive_delayn+static_receive_delayn+wire_delayn(3)
公式(1)、(2)和(3)中:dynamic_send_delay代表動態(tài)發(fā)送延時,如節(jié)點排隊等原因造成;static_send_delay代表靜態(tài)發(fā)送延時,如收發(fā)器等固有特性造成;dynamic_relay_delay代表動態(tài)傳輸延遲,如排隊等候等原因造成;static_relay_delay代表靜態(tài)傳輸延遲,如轉(zhuǎn)發(fā)拷貝等原因造成;wire_delay代表線纜傳輸延遲,其計算方式參閱IEEE 1588精確時間協(xié)議(Precision Time Protocol)標準[78]的對等延遲算法;dynamic_receive_delay代表動態(tài)接收延遲,如接收排隊等原因造成;static_receive_delay代表靜態(tài)接收延遲,如收發(fā)器等固有特性造成。
2.1精確授時
AFDX網(wǎng)絡(luò)端系統(tǒng)的幀數(shù)據(jù)輸出與一條確定虛擬鏈路相關(guān)聯(lián)的流量控制參數(shù)描述:帶寬分配間隔(Bandwidth Allocation Gap,BAG)和抖動(Jitter),其中BAG流量整形滿足BAG=2kms(k=0,1,2,…,7),Jitter最大不超過500 μs。為了滿足AFDX網(wǎng)絡(luò)收發(fā)節(jié)點在流量整形的BAG和Jitter范圍之內(nèi),網(wǎng)絡(luò)需要時間同步。
AFDX網(wǎng)絡(luò)通過RTC(Real Time Counter)幀(幀有效載荷主要包括:64 bit表示的時間同步信息,精度為40 ns),采用主時鐘授權(quán)方式以達到全網(wǎng)同步目的,如圖3所示。
發(fā)送節(jié)點ES8發(fā)出RTC幀時,攜帶其本地時間進入AFDX網(wǎng)絡(luò),處于網(wǎng)絡(luò)中不同位置的接收節(jié)點ESx因網(wǎng)絡(luò)收發(fā)延時、傳輸延時、線延時等原因?qū)е陆邮誖TC幀的時刻不一致,需采用延時補償來完成授時修正。
在AFDX改進幀的格式中,通過transparent_clock參數(shù)域可完整記錄傳輸過程中的延時,在接收節(jié)點,將RTC中的時刻信息與transparent_clock參數(shù)域相加即可得到精確的時刻,完成時間同步,如ES1的從時鐘Trs1時間同步計算方法如下(其中TD表示時間延時):
Tr1=Tm+transparent_clockRTC=Tm+TDdynamic_send_delayES8+TDstatic_send_delayES8+TDwire_delayES8-SW1+TDdynamic_relay_delaySW1+TDstatic_relay_delaySW1+TDwire_delaySW1-ES1+TDdynamic_receive_delayES1+TDstatic_receive_delayES1(4)
其他被授時節(jié)點計算結(jié)果如式(4)所示,只是transparent_clockRTC參數(shù)域內(nèi)容是在RTC幀傳輸過程中動態(tài)記錄的。
AFDX幀改進后的RTC授時可精確至μm級時間同步,大大提高了AFDX的BAG流量規(guī)整確定性,進一步降低因節(jié)點時鐘差異而導(dǎo)致的Jitter抖動問題。
2.2時序一致性
帶有透明時鐘域的AFDX幀數(shù)據(jù)在BAG相同并且Jitter=0時,同一時刻從不同發(fā)送節(jié)點發(fā)出,經(jīng)不同的拓撲路徑到達同一個接收節(jié)點。同樣,幀數(shù)據(jù)中的transparent_clock參數(shù)域?qū)崟r將發(fā)送、傳輸及接收過程中的各個延時進行累計。在接收節(jié)點,通過配置一個事先計算得出的全網(wǎng)最大傳輸延遲參數(shù)(用max_transimssion_delay表示),由網(wǎng)絡(luò)中的最大透明傳輸延遲決定,具體計算方法如式(5)所示。
max_transimssion_delay=max(transparent_clockn)(5)
時序一致性算法為了重新建立發(fā)送節(jié)點間的派發(fā)時序,在接收節(jié)點上計算時序保持時間點,具體做法為:在幀數(shù)據(jù)被接收節(jié)點接收之后,再延時一段等同于時序保持延時的時間(用permanence_delay表示,見式(6))之后的時刻,即為對應(yīng)幀數(shù)據(jù)的時序保持時間點(用permanence_
pit表示),具體計算方法如下:
permanence_delay=max_transmission_delay-transparent_clockn(6)
繼而
permanence_pit=receive_pit+hold_delay(7)
公式(6)中的receive_pit代表幀數(shù)據(jù)在接收節(jié)點的實際接收時間點。依據(jù)公式(7)中的時序保持時間點permanence_pit依次排列,即為AFDX幀數(shù)據(jù)的實際發(fā)送次序。
針對該算法結(jié)合圖4進行示例描述。圖4左側(cè)為某網(wǎng)絡(luò)拓撲架構(gòu),包括6塊端系統(tǒng)和3臺交換機。圖中描述了AFDX幀601和602的派發(fā)次序與交換機203上的接收次序不同,但通過時序保持功能計算,展示了如何在接收端重建時間次序。圖中從左到右描述了實時的過程。
t=0:端系統(tǒng)ES101派發(fā)幀601(transparent_clock幀601=0);
t=7:幀601發(fā)送進入物理鏈路(transparent_clock幀601=7);
t=10:幀601進入交換機SW201(transparent_clock幀601=10);
t=20:端系統(tǒng)ES104派發(fā)幀602(transparent_clock幀602=0);
t=32:幀602發(fā)送進入物理鏈路(transparent_clock幀602=12);
t=40:幀602進入交換機SW203(transparent_clock幀602=20);
t=50:交換機SW201轉(zhuǎn)發(fā)出幀601進入物理鏈路(transparent_clock幀601=50);
t=53:幀601進入交換機SW202(transparent_clock幀601=53);
t=75:交換機SW202轉(zhuǎn)發(fā)出幀601進入物理鏈路(transparent_clock幀601=75);
t=78:幀601進入交換機SW203(transparent_clock幀601=78);
t=100:幀601在交換機SW203內(nèi)部經(jīng)過permanence_delay幀601=max_transmission_delay-transparent_clock幀601=100-78=22時延之后,到達時序保持點;
t=120:幀602在交換機SW203內(nèi)部經(jīng)過permanence_delay幀602=max_transmission_delay-transparent_clock幀602=100-20=80時延之后,到達時序保持點。
圖4的時序顯示,在交換機SW203上AFDX幀602的接收比幀601要早很多。為了重建交換機203上AFDX幀601和602的時間派發(fā)次序,在它們被接收且延時一段等同于時序保持延時的時間permanence_delay之后,保證了重建的發(fā)送次序的精確性。
3OPNET實現(xiàn)與仿真
針對圖4左側(cè)網(wǎng)絡(luò)拓撲,在OPNET Modeler 14.5上建立OPNET模型,對應(yīng)表1進行數(shù)據(jù)仿真與測試。圖5為OPNET仿真結(jié)果,其中圖5(a)顯示了優(yōu)化幀結(jié)構(gòu)后的時間同步仿真結(jié)果,圖5(b)為幀結(jié)構(gòu)優(yōu)化前后的次序情況。測試結(jié)果證明,幀改進合理,時序算法計算正確。表1仿真測試項目序號測試目的測試結(jié)果1RTC幀同步各個節(jié)點同步精度在μs級2時序算法透明時鐘延時和時序保持計算正確3幀次序一致性在多個端系統(tǒng)發(fā)送時序不一致情況下,
均可正確仿真出準確次序4數(shù)據(jù)通信添加透明時鐘域的AFDX幀在大數(shù)據(jù)傳輸時,
增加組包和拆包數(shù)量
4結(jié)論
通過在AFDX幀中增加透明時鐘域,實現(xiàn)記錄傳輸過程延時的方式,不僅保證了整個AFDX網(wǎng)絡(luò)的高精度時間授時(μs級),而且拓展了其在高安全關(guān)鍵領(lǐng)域的控制應(yīng)用。算法實現(xiàn)過程均在數(shù)據(jù)鏈路層,對上層透明化,兼容現(xiàn)有軟件協(xié)議應(yīng)用程序,方便升級,提高了性能。
參考文獻
?。?] ARINC 664,aircraft data network[S].2002.
[2] 沈磊,楊紹輝,邱智亮.AFDX網(wǎng)絡(luò)中基于虛擬計時的警管算法[J].計算機應(yīng)用,2008,28(12):3029-3031.
?。?] 劉曉勝,劉建平,劉博.基于FPGA的AFDX虛擬鏈路層實現(xiàn)方法[J].計算機工程,2012,38(19):233-237.
?。?] 李大鵬,趙明莉,田園.AFDX端系統(tǒng)中冗余管理的研究和實現(xiàn)[J].電子技術(shù),2012,39(12):10-13.
[5] MOHL D S.IEEE 1588-Precise time synchronization as the basis for real time applications in automation[J].Industrial Networking Solutions,2003.
?。?] IEEE Std 1588-2002,IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S]. 2002.
?。?] IEEE Std 1588-2008,IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S]. 2008.