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