《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種保持時(shí)序一致的AFDX幀結(jié)構(gòu)優(yōu)化及算法實(shí)現(xiàn)
一種保持時(shí)序一致的AFDX幀結(jié)構(gòu)優(yōu)化及算法實(shí)現(xiàn)
2016年微型機(jī)與應(yīng)用第18期
何向棟,張志平,賈世偉
中國(guó)航空計(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í)序一致性要求。
Abstract:
Key words :

  何向棟,張志平,賈世偉

  (中國(guó)航空計(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í)序一致性要求。

  關(guān)鍵詞:幀結(jié)構(gòu);AFDX網(wǎng)絡(luò)OPNET仿真;序列號(hào)

0引言

  隨著機(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)用于未來(lái)國(guó)產(chǎn)大飛機(jī)C919上。

  相比ARINC429和MILSTD1553而言,AFDX網(wǎng)絡(luò)保留了傳統(tǒng)以太網(wǎng)高速、通用以及低成本等特點(diǎn),同時(shí)增加了虛擬鏈路、帶寬分配、完整性監(jiān)測(cè)、警管[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ù)之一。

1AFDX幀序列號(hào)作用與意義

  AFDX發(fā)送節(jié)點(diǎn)在每一條虛擬鏈路(Virtual Link,VL)傳送幀數(shù)據(jù)時(shí)都要加入一個(gè)序列號(hào)(Sequence Number,SN)。幀SN的長(zhǎng)度為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所示。

圖像 001.png

  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)作為下一次接收幀的判斷標(biāo)準(zhǔn),后到達(dá)的同一SN的幀數(shù)據(jù)被當(dāng)作無(wú)效幀而丟棄。另一方面,為了避免因?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)沒(méi)有數(shù)據(jù)幀時(shí),冗余管理會(huì)無(wú)條件接收下一幀數(shù)據(jù)。

圖像 002.png

  1.2完整性檢查

  在沒(méi)有故障的AFDX網(wǎng)絡(luò)通信中,完整性檢查根據(jù)SN檢測(cè)接收幀數(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ù),并將故障信息傳遞給上層網(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ù)無(wú)法對(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ī)在高空巡航過(guò)程中,一旦發(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)行詳述。

2幀改進(jìn)

  為了保持多個(gè)節(jié)點(diǎn)間事件發(fā)生時(shí)序與事實(shí)的一致性,通過(guò)在幀數(shù)據(jù)內(nèi)容中增加透明時(shí)鐘域[5-7],記錄傳輸過(guò)程中的發(fā)送延遲、傳輸延遲和接收延遲,實(shí)現(xiàn)傳輸透明化。在接收端通過(guò)對(duì)各個(gè)節(jié)點(diǎn)到達(dá)的幀數(shù)據(jù)通過(guò)最大傳輸延時(shí)與透明傳輸延時(shí)的排序算法計(jì)算,對(duì)同一時(shí)間段內(nèi)的幀數(shù)據(jù)進(jìn)行重新排序整合,達(dá)到多節(jié)點(diǎn)間幀數(shù)據(jù)傳輸時(shí)序一致性要求。

  AFDX改進(jìn)幀結(jié)構(gòu)其特征在于,通過(guò)在幀的數(shù)據(jù)字段尾部預(yù)留8 B的透明時(shí)鐘字段,如圖2所示,字段明確定義時(shí)間單位2-16ns,記錄幀在傳輸過(guò)程中的發(fā)送延時(shí)、傳輸延遲和接收延遲。在目標(biāo)節(jié)點(diǎn),通過(guò)時(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)過(guò)轉(zhuǎn)發(fā)設(shè)備最后到接收節(jié)點(diǎn)的時(shí)延,具體計(jì)算方法如下。

  節(jié)點(diǎn)按幀數(shù)據(jù)流過(guò)的次序標(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<i<n:

  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最大不超過(guò)500 μs。為了滿足AFDX網(wǎng)絡(luò)收發(fā)節(jié)點(diǎn)在流量整形的BAG和Jitter范圍之內(nèi),網(wǎng)絡(luò)需要時(shí)間同步。

  AFDX網(wǎng)絡(luò)通過(guò)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ǔ)償來(lái)完成授時(shí)修正。

圖像 003.png

圖像 004.png

在AFDX改進(jìn)幀的格式中,通過(guò)transparent_clock參數(shù)域可完整記錄傳輸過(guò)程中的延時(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幀傳輸過(guò)程中動(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)問(wèn)題。

  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ā)送、傳輸及接收過(guò)程中的各個(gè)延時(shí)進(jìn)行累計(jì)。在接收節(jié)點(diǎn),通過(guò)配置一個(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上的接收次序不同,但通過(guò)時(shí)序保持功能計(jì)算,展示了如何在接收端重建時(shí)間次序。圖中從左到右描述了實(shí)時(shí)的過(guò)程。

  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)過(guò)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)過(guò)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ā)送次序的精確性。

3OPNET實(shí)現(xiàn)與仿真

  針對(duì)圖4左側(cè)網(wǎng)絡(luò)拓?fù)洌贠PNET Modeler 14.5上建立OPNET模型,對(duì)應(yīng)表1進(jìn)行數(shù)據(jù)仿真與測(cè)試。圖5為OPNET仿真結(jié)果,其中圖5(a)顯示了優(yōu)化幀結(jié)構(gòu)后的時(shí)間同步仿真結(jié)果,圖5(b)為幀結(jié)構(gòu)優(yōu)化前后的次序情況。測(cè)試結(jié)果證明,幀改進(jìn)合理,時(shí)序算法計(jì)算正確。表1仿真測(cè)試項(xiàng)目序號(hào)測(cè)試目的測(cè)試結(jié)果1RTC幀同步各個(gè)節(jié)點(diǎn)同步精度在μs級(jí)2時(shí)序算法透明時(shí)鐘延時(shí)和時(shí)序保持計(jì)算正確3幀次序一致性在多個(gè)端系統(tǒng)發(fā)送時(shí)序不一致情況下,

  均可正確仿真出準(zhǔn)確次序4數(shù)據(jù)通信添加透明時(shí)鐘域的AFDX幀在大數(shù)據(jù)傳輸時(shí),

  增加組包和拆包數(shù)量

圖像 005.png

4結(jié)論

  通過(guò)在AFDX幀中增加透明時(shí)鐘域,實(shí)現(xiàn)記錄傳輸過(guò)程延時(shí)的方式,不僅保證了整個(gè)AFDX網(wǎng)絡(luò)的高精度時(shí)間授時(shí)(μs級(jí)),而且拓展了其在高安全關(guān)鍵領(lǐng)域的控制應(yīng)用。算法實(shí)現(xiàn)過(guò)程均在數(shù)據(jù)鏈路層,對(duì)上層透明化,兼容現(xiàn)有軟件協(xié)議應(yīng)用程序,方便升級(jí),提高了性能。

  參考文獻(xiàn)

  [1] ARINC 664,aircraft data network[S].2002.

 ?。?] 沈磊,楊紹輝,邱智亮.AFDX網(wǎng)絡(luò)中基于虛擬計(jì)時(shí)的警管算法[J].計(jì)算機(jī)應(yīng)用,2008,28(12):3029-3031.

 ?。?] 劉曉勝,劉建平,劉博.基于FPGA的AFDX虛擬鏈路層實(shí)現(xiàn)方法[J].計(jì)算機(jī)工程,2012,38(19):233-237.

 ?。?] 李大鵬,趙明莉,田園.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.

 ?。?] 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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。