《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(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期
何向棟,張志平,賈世偉
中國航空計(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 :

  何向棟,張志平,,賈世偉

  (中國航空計(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仿真;序列號

0引言

  隨著機(jī)載飛行條件的復(fù)雜化和對安全飛行,、舒適旅行等要求的提高,,新一代航空電子系統(tǒng)數(shù)據(jù)傳輸已由傳統(tǒng)的音頻通信擴(kuò)大為圖像、多媒體,、確定性控制信號等多種數(shù)據(jù)流業(yè)務(wù),。航空電子全雙工交換以太網(wǎng)(AFDX)[1]基于IEEE 802.3標(biāo)準(zhǔn),結(jié)合航空電子系統(tǒng)特殊需求對該協(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)對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ù)之一,。

1AFDX幀序列號作用與意義

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

圖像 001.png

  A,、B冗余網(wǎng)絡(luò)的延時(shí)抖動(dòng)不同,,因此冗余幀與有效幀到達(dá)接收節(jié)點(diǎn)的時(shí)間也不同。每條物理鏈路傳輸相同的幀數(shù)據(jù),,在接收節(jié)點(diǎn)針對每條虛擬鏈路按照SN依據(jù)“先到先有效者勝出”的原則采用先到達(dá)的數(shù)據(jù)幀,,并將此虛擬鏈路SN保存為PSN(Previous Sequence Number)作為下一次接收幀的判斷標(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í)間差,。冗余管理保證接收的幀序號不斷增大(包括復(fù)位和幀丟失),,當(dāng)Skewmax內(nèi)沒有數(shù)據(jù)幀時(shí),冗余管理會無條件接收下一幀數(shù)據(jù),。

圖像 002.png

  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ò)中,對于需高安全可靠地進(jìn)行傳輸?shù)臄?shù)據(jù),有嚴(yán)格的序列收發(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é)點(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),,并對授時(shí)和時(shí)序一致性算法進(jìn)行詳述。

2幀改進(jìn)

  為了保持多個(gè)節(jié)點(diǎn)間事件發(fā)生時(shí)序與事實(shí)的一致性,通過在幀數(shù)據(jù)內(nèi)容中增加透明時(shí)鐘域[5-7],,記錄傳輸過程中的發(fā)送延遲,、傳輸延遲和接收延遲,實(shí)現(xiàn)傳輸透明化,。在接收端通過對各個(gè)節(jié)點(diǎn)到達(dá)的幀數(shù)據(jù)通過最大傳輸延時(shí)與透明傳輸延時(shí)的排序算法計(jì)算,,對同一時(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)號為從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]的對等延遲算法,;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í)修正。

圖像 003.png

圖像 004.png

在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級時(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í)刻,,即為對應(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ā)送次序。

  針對該算法結(jié)合圖4進(jìn)行示例描述,。圖4左側(cè)為某網(wǎng)絡(luò)拓?fù)浼軜?gòu),,包括6塊端系統(tǒng)和3臺交換機(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ā)送次序的精確性,。

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

  針對圖4左側(cè)網(wǎng)絡(luò)拓?fù)?,在OPNET Modeler 14.5上建立OPNET模型,對應(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)目序號測試目的測試結(jié)果1RTC幀同步各個(gè)節(jié)點(diǎn)同步精度在μs級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é)論

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

  參考文獻(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.

  [4] 李大鵬,趙明莉,田園.AFDX端系統(tǒng)中冗余管理的研究和實(shí)現(xiàn)[J].電子技術(shù),2012,39(12):10-13.

 ?。?] 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)載,。