《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > AFDX網(wǎng)絡(luò)關(guān)鍵協(xié)議分析與研究
AFDX網(wǎng)絡(luò)關(guān)鍵協(xié)議分析與研究
2016年電子技術(shù)應(yīng)用第4期
田 澤1,2,姜麗云1,2,陳 偉3,王宏亮3
1.中航工業(yè)西安航空計算技術(shù)研究所,陜西 西安710068; 2.集成電路與微系統(tǒng)設(shè)計航空科技重點實驗室,陜西 西安710068;3.西安翔騰微電子科技有限公司,陜西 西安710068
摘要: AFDX網(wǎng)絡(luò)滿足新一代航空電子系統(tǒng)主干網(wǎng)絡(luò)通信的高實時性、高可靠性以及高帶寬要求,其核心協(xié)議為ARINC664 Part7。該協(xié)議具有完整的體系結(jié)構(gòu),運用虛鏈路技術(shù),滿足了AFDX網(wǎng)絡(luò)高實時性要求,采用余度容錯機(jī)制,實現(xiàn)了AFDX網(wǎng)絡(luò)的高可靠性。在AFDX網(wǎng)絡(luò)綜述的基礎(chǔ)上,詳細(xì)分析了端系統(tǒng)協(xié)議與交換機(jī)協(xié)議,其中端系統(tǒng)協(xié)議涉及到通信端口、余度容錯、虛鏈路等關(guān)鍵技術(shù),交換機(jī)協(xié)議包括了警管、過濾、交換調(diào)度等關(guān)鍵技術(shù),為AFDX網(wǎng)絡(luò)關(guān)鍵協(xié)議芯片及后續(xù)產(chǎn)品的研制奠定理論基礎(chǔ)。
中圖分類號: V243.1
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.04.002
中文引用格式: 田澤,姜麗云,陳偉,等. AFDX網(wǎng)絡(luò)關(guān)鍵協(xié)議分析與研究[J].電子技術(shù)應(yīng)用,2016,42(4):7-10,14.
英文引用格式: Tian Ze,Jiang Liyun,Chen Wei,et al. The analysis and research of AFDX network key protocol[J].Application of Electronic Technique,2016,42(4):7-10,14.
The analysis and research of AFDX network key protocol
Tian Ze1,2,Jiang Liyun1,2,Chen Wei3,Wang Hongliang3
1.AVIC Computing Technique Research Institute,Xi′an 710068,China; 2.Aviation Key Laboratory of Science and Technology on Integrated Circuit and Micro-System Design,Xi′an 710068,China; 3.Xi′an Xiangteng Microelectronics Technology CO.,LTD,Xi′an 710068,China
Abstract: AFDX network meets the requirement of new generation avionics system,which has high real time capability, high-reliability and high-band width. The core protocol of AFDX network is ARINC664 Part7. The protocol has the fully system structure, the use of virtual link technology meets the requirements of high real time capability for the AFDX network, the redundant fault-tolerant mechanism is used to realize the high-reliability of AFDX network. This thesis analyzes end system and switch protocol in detail on the base of summarizing the AFDX network. The switch protocol includes key technology such as the police tube, filter and exchange of scheduling. It is the theoretics base for the design of AFDX network key protocol SoC and products.
Key words : AFDX network protocol;communication port;redundant fault-tolerant;virtual link;police;filtering;exchange of scheduling

0 引言

    AFDX網(wǎng)絡(luò)是在商用以太網(wǎng)IEEE802.3協(xié)議的基礎(chǔ)上,增加確定性、可靠性需求,制定了航空電子全雙工交換式網(wǎng)絡(luò)標(biāo)準(zhǔn)ARINC664。

    ARINC664協(xié)議規(guī)范定義了航空電子全雙工交換式網(wǎng)絡(luò)標(biāo)準(zhǔn),主要由8個部分組成[1]:(1)系統(tǒng)的概念和概況;(2)以太網(wǎng)物理層和數(shù)據(jù)鏈路層;(3)基于因特網(wǎng)的協(xié)議與服務(wù);(4)基于因特網(wǎng)的地址結(jié)構(gòu)和分配編號;(5)網(wǎng)絡(luò)互連服務(wù)和功能元件;(6)保留;(7)航空全雙工交換式以太網(wǎng)(AFDX)網(wǎng)絡(luò);(8)上層服務(wù)。

    從上述內(nèi)容可以看出,ARINC664協(xié)議定義了航空全雙工交換式網(wǎng)絡(luò)標(biāo)準(zhǔn),該協(xié)議體系模型如圖1所示,左邊是標(biāo)準(zhǔn)OSI[2](Open System Interconnection,開放式系統(tǒng)互聯(lián)模型)網(wǎng)絡(luò)結(jié)構(gòu),右邊對照的是AFDX網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)及協(xié)議間的關(guān)系。如圖1所示,AFDX協(xié)議與商用以太網(wǎng)的主要區(qū)別是在MAC(Media Access Control,介質(zhì)訪問控制)層,增加了虛鏈路技術(shù),滿足了航空電子系統(tǒng)對可靠性和實時性[3]的要求。

xazl2-t1.gif

    協(xié)議棧分為五層,從下到上依次為物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。物理層采用以太網(wǎng)物理層協(xié)議;鏈路層實現(xiàn)物理鏈路的虛擬通道管理和MAC層的余度管理;網(wǎng)絡(luò)層采用改進(jìn)的IP(Internet Protocol,因特網(wǎng)協(xié)議);傳輸層采用改進(jìn)的UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議),TCP(Transmission Control Protocol,傳輸控制協(xié)議)可選,使用隊列、采樣和SAP(Service Access Point,服務(wù)訪問點)3種端口與應(yīng)用層進(jìn)行通信[4];應(yīng)用層采用ARINC 615A加卸載協(xié)議和SNMP(Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議)向航空子系統(tǒng)提供文件傳輸、數(shù)據(jù)加載和網(wǎng)絡(luò)管理等服務(wù)。

1 AFDX網(wǎng)絡(luò)端系統(tǒng)關(guān)鍵協(xié)議分析

    AFDX網(wǎng)絡(luò)為了滿足航空電子系統(tǒng)對可靠性、實時性、高帶寬的要求,在商用以太網(wǎng)的基礎(chǔ)上增加了虛鏈路、帶寬隔離、流量整形、完整性檢查以及余度管理。

1.1 通信端口

    航空電子系統(tǒng)通信過程中,采用通信端口完成數(shù)據(jù)的發(fā)送與接收。AFDX網(wǎng)絡(luò)提供了3種通信端口,即采樣端口、隊列端口和SAP端口。其中采樣端口和隊列端口統(tǒng)稱為通信端口,SAP端口為上層服務(wù)端口。

1.1.1 采樣和隊列端口

    如圖2和圖3所示,采樣端口和隊列端口的主要區(qū)別在于緩沖區(qū)個數(shù),采樣端口只有一個緩沖區(qū),因此只能存儲一條消息,當(dāng)有新消息時,將會覆蓋緩沖區(qū)已有的消息,因此采樣端口每次讀取的都是新消息,且讀取完成消息后不會將此消息刪除,可重復(fù)讀取。而隊列端口可以設(shè)置多個緩沖區(qū),將接收的消息依次存入緩沖區(qū)的隊列中,從隊列端口讀取消息時,采用先進(jìn)先出的機(jī)制,讀取完成后,將該消息從隊列中刪除。

xazl2-t2.gif

xazl2-t3.gif

    為了讀取緩沖區(qū)中的數(shù)據(jù),設(shè)置了頭尾指針,用于判斷該緩沖區(qū)是否有數(shù)據(jù),也有效防止了緩沖區(qū)溢出。當(dāng)頭尾指針不相等時,表明該緩沖區(qū)有數(shù)據(jù),可以進(jìn)行讀取,每讀取一幀數(shù)據(jù),將緩沖區(qū)的頭指針加1;當(dāng)頭尾指針相等時,表明緩沖區(qū)的數(shù)據(jù)已經(jīng)讀取完成。

1.1.2 SAP端口

    AFDX網(wǎng)絡(luò)提供了SAP服務(wù)端口,主要用于實現(xiàn)端系統(tǒng)與上層服務(wù)之間的通信,包括文件傳輸、網(wǎng)絡(luò)管理等功能。

    SAP端口具有以下特征:可以用于AFDX網(wǎng)絡(luò)通信接口;作為終端系統(tǒng)的應(yīng)用通信接口;提供與應(yīng)用通訊的UDP服務(wù);SAP端口的UDP服務(wù)應(yīng)提供小于8 KB數(shù)據(jù)緩沖;通過對SAP端口設(shè)置,TCP可以訪問IP層。

1.2 余度容錯

    AFDX網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為星型余度拓?fù)?,每個端系統(tǒng)都有兩條相互獨立的傳輸路徑,發(fā)送過程中,將消息分別通過這兩條傳輸路徑發(fā)送至目標(biāo)設(shè)備,在接收端通過這兩條獨立的路徑接收消息。因此,在端系統(tǒng)的通信過程中,采用余度處理和完整性校驗的機(jī)制,可以確保接收到有效的AFDX數(shù)據(jù)幀。

    發(fā)送過程中,當(dāng)數(shù)據(jù)幀完成封裝后,存放至虛鏈路緩沖區(qū),由硬件單元負(fù)責(zé)將數(shù)據(jù)復(fù)制成完全相同的兩份,然后通過物理層,將互為余度的數(shù)據(jù)發(fā)送至網(wǎng)絡(luò)。

    接收過程中,采用“先到先有效”的原則,接收網(wǎng)絡(luò)中的數(shù)據(jù)包。當(dāng)接收到第一幀數(shù)據(jù)后,記錄該數(shù)據(jù)的SN(Serial Number,序列號)號。當(dāng)接收到第二幀數(shù)據(jù)時,首先比較該條數(shù)據(jù)的SN號是否和上條消息的SN號相同,如果相同,則直接丟棄該條消息,否則接收該條消息。余度容錯如圖4所示[5]。

xazl2-t4.gif

1.2.1 完整性檢查

    AFDX幀被提交到余度控制單元時,首先將CRC(Cyclic Redundancy Code,循環(huán)冗余校驗碼)前的一個字節(jié)作為幀序號SN的單元(0~255),并根據(jù)SN號對幀進(jìn)行處理,經(jīng)處理的幀再進(jìn)行發(fā)送網(wǎng)絡(luò)選擇,判斷發(fā)送端口是A端口、B端口或者是A、B兩個端口同時發(fā)送。接收到幀的兩個網(wǎng)絡(luò)接口分別將幀存儲到對應(yīng)的接收緩存器中,并分別對幀進(jìn)行完整性檢查。在沒有任何故障的情況下,完整性檢查僅將接收到的幀傳遞給余度管理過程,對于每個余度網(wǎng)絡(luò)是獨立的。如果發(fā)現(xiàn)故障,完整性檢查將去除無效幀,并且執(zhí)行此操作時通知網(wǎng)絡(luò)管理機(jī)構(gòu)。在每個余度網(wǎng)絡(luò),完整性檢查功能對順序號在如下區(qū)間中的幀進(jìn)行檢查,該區(qū)間是:

    [PSN”+”1, PSN”+”2]

    其中,PSN(前序列號)是這個VL(Virtual Link,虛鏈路)接收到的前一個幀的順序號。在某些特殊的情況下,完整性檢查也應(yīng)將該幀作為有效幀,如接收順序號為0的幀、在端系統(tǒng)復(fù)位后第一次被接收到的幀等。沒有滿足這些規(guī)則的幀被丟棄[6-7],完整性檢查的具體流程如圖5所示。

xazl2-t5.gif

1.2.2 余度管理

    端系統(tǒng)在接收數(shù)據(jù)時,從鏈路層傳入的數(shù)據(jù)幀首先進(jìn)行完整性和序列號檢查,只有符合完整性和序列號檢查的幀才能進(jìn)行余度管理。余度管理是對兩個通過完整性檢查的幀進(jìn)行序列號比較,按照“先到先有效”的策略對兩個幀進(jìn)行取舍,然后將有效的數(shù)據(jù)幀發(fā)送到UDP/IP協(xié)議棧進(jìn)行處理。

    余度管理的配置一般基于SkewMax(最大偏移時間)參數(shù),即:在收到兩個互為余度的幀之間的最大時間,這個值依賴于網(wǎng)絡(luò)拓?fù)洌◣缭浇粨Q機(jī)數(shù)目),并由系統(tǒng)集成者提供。

    對于每個VL,余度管理功能應(yīng)該保證幀以遞增的SN次序轉(zhuǎn)發(fā),復(fù)位和偶然丟幀的情況,如果在收到一個幀后超過SkewMax,則下一幀將被無條件接收。

1.3 虛鏈路VL

    傳統(tǒng)以太網(wǎng)交換中采用動態(tài)路由的尋址方式,傳輸路徑是不確定的,而AFDX網(wǎng)絡(luò)是一種確定性網(wǎng)絡(luò),傳輸路徑在網(wǎng)絡(luò)初始化時預(yù)先設(shè)定,采用虛鏈路來實現(xiàn)路由的選擇。虛鏈路是一個概念化的通信對象,主要具有兩個屬性:(1)邏輯上的單向連接(從一個源端系統(tǒng)到一個或多個目的端系統(tǒng));(2)指定最大帶寬(帶寬由系統(tǒng)集成者分配)。

1.3.1 帶寬隔離

    為了使不同虛鏈路之間在同一物理連接上不會產(chǎn)生干擾,采用一種類似航空子系統(tǒng)之間的應(yīng)用通道分區(qū)進(jìn)行隔離的機(jī)制實現(xiàn)虛鏈路帶寬的分配。AFDX網(wǎng)絡(luò)每個終端系統(tǒng)上的多個虛鏈路共享100 Mb/s帶寬物理連接。

    在AFDX網(wǎng)絡(luò)中,虛鏈路之間的隔離是通過限制虛鏈路的帶寬分配間隙BAG(Bandwidth Allocation Gap,幀與幀之間發(fā)送的最小時間間隔)和虛鏈路上傳輸AFDX幀的最大長度Lmax(最大幀長度)實現(xiàn)的,由端系統(tǒng)保證,虛鏈路的帶寬計算公式為:

    xazl2-gs1.gif

1.3.2 流量整形和調(diào)度

    AFDX消息被封裝成AFDX幀,由綁定唯一一條虛擬鏈路的通信端口調(diào)用,并由終端系統(tǒng)中的虛鏈路調(diào)度模塊進(jìn)行調(diào)度。虛鏈路調(diào)度包括數(shù)據(jù)包調(diào)度和多路轉(zhuǎn)換分發(fā)兩部分。虛鏈路調(diào)度完成虛鏈路隊列信息幀的獲取,并創(chuàng)建無抖動的數(shù)據(jù)流輸出。虛鏈路調(diào)度還完成復(fù)制到余度管理單元信息的切換調(diào)度。

    虛鏈路調(diào)度保證了每個虛鏈路帶寬不超過所分配的限制,不僅是要保證每條虛鏈路對BAG和Lmax的限制,而且還要保證因虛鏈路的切換而產(chǎn)生的抖動在可以接收的范圍之內(nèi)[8-9]。

    發(fā)送到AFDX通信端口消息所用的時間受到航空電子子系統(tǒng)和連接到系統(tǒng)的各種設(shè)備的影響。例如:傳感器以10 Hz的速率發(fā)送數(shù)據(jù),當(dāng)消息傳輸?shù)椒强盏奶撴溌逢犃袝r就會發(fā)生抖動。另外,余度管理中對在虛鏈路隊列進(jìn)行轉(zhuǎn)換和在物理連接上順序的傳輸都會產(chǎn)生的抖動。在ARINC664Part7協(xié)議規(guī)范中,數(shù)據(jù)發(fā)送時,端系統(tǒng)輸出端口的每個VL的最大允許抖動應(yīng)該服從下列公式:

    xazl2-gs2.gif

其中,max_jitter(最大抖動時間)以微秒為單位(μs),Nbw是介質(zhì)帶寬,Lmax以字節(jié)為單位(B),40 μs是典型的最小固定技術(shù)時延抖動。

    根據(jù)式(2),端系統(tǒng)若具有較少的VL并且其中待處理的幀是短幀,則最大允許的抖動將會降低。為了整個網(wǎng)絡(luò)確定性,在所有的情況下抖動都被限制在500 μs內(nèi)。

2 AFDX網(wǎng)絡(luò)交換機(jī)關(guān)鍵協(xié)議分析

    根據(jù)ARINC664 Part7規(guī)范,交換機(jī)由配置表、端系統(tǒng)、監(jiān)視模塊、交換模塊和過濾與管制模塊組成。其中交換模塊的交換調(diào)度功能、警管與過濾功能保證了AFDX網(wǎng)絡(luò)傳輸?shù)拇_定性和可靠性。

2.1 警管和過濾

    幀過濾使得交換機(jī)可以分發(fā)有效幀到指定的目的端。幀數(shù)據(jù)一旦到達(dá)交換機(jī),交換機(jī)就會監(jiān)控幀的構(gòu)成及幀頭各個域的內(nèi)容。過濾功能對幀進(jìn)行檢查是否符合以下條件:目的地址有效、幀校驗序列有效、以太網(wǎng)幀長度是8 Bit的整數(shù)倍、以太網(wǎng)長度在[64,1 518]字節(jié)的范圍內(nèi)、以太網(wǎng)幀長度小于或等于Lmax等。

    流量警管功能描述了一種基于目的地址執(zhí)行流量警管算法的模型。交換機(jī)必須具有流量警管機(jī)制,以確保網(wǎng)絡(luò)對于錯誤的隔離。為了使異常的數(shù)據(jù)幀不會擾亂網(wǎng)絡(luò),任何與網(wǎng)絡(luò)配置不符合的幀會被丟棄。

    流量警管的原理采用漏桶算法,如圖6所示。

xazl2-t6.gif

    每當(dāng)VLi中的一個幀到達(dá)交換機(jī)時,都要檢查ACi(流量警管值)。對于ACi存在兩種類型被管理的帳戶:Byte ACi(基于字節(jié)的警管)和Frame ACi(基于幀的警管)。

    (1)針對基于字節(jié)的警管:

    如果Byte ACi大于S,則此幀被接收并且從賬戶ACi的值中減去S;

    如果Byte ACi小于S,則此幀被丟棄,MIB(管理信息庫)實體刷新,Byte ACi不變。

    (2)針對基于幀的警管:

    如果Frame ACi 大于Smax.i則幀被接收并且從帳戶ACi的值中減去Smax.i;

    如果 Frame ACi 小于 Smax.i,則該幀被丟棄,MIB(管理信息庫)實體被刷新,F(xiàn)rame ACi不變[1]。

    該流量警管規(guī)則被稱為Token Bucket (令牌桶)算法。流量警管機(jī)制應(yīng)該在交換機(jī)上實現(xiàn),以保證網(wǎng)絡(luò)的故障抑制功能。為了不讓某個失效的端系統(tǒng)干擾網(wǎng)絡(luò),流量中的任何不適合網(wǎng)絡(luò)配置的幀必須被丟棄。

2.2 交換調(diào)度

    交換調(diào)度主要是將數(shù)據(jù)幀從交換機(jī)的輸入端口轉(zhuǎn)發(fā)至輸出端口,交換調(diào)度分為接收調(diào)度和發(fā)送調(diào)度[10]。

    輸入端口接收調(diào)度包括交換端口交換幀的接收、捕獲端口捕獲配置幀的接收和主機(jī)發(fā)送緩沖數(shù)據(jù)幀的接收(包括端系統(tǒng)配置、捕獲幀配置)。每個輸入端口收到一幀數(shù)據(jù)后,向接收發(fā)出調(diào)度請求,接收調(diào)度采樣接收控制字及實時時鐘輸入時間戳,并等待接收調(diào)度仲裁,接收調(diào)度根據(jù)公平的服務(wù)原則,選擇某個申請調(diào)度的端口進(jìn)行服務(wù)。

    輸出端口發(fā)送調(diào)度包括交換輸出端口交換幀的發(fā)送,其又包括普通交換幀的發(fā)送和主機(jī)接收緩沖數(shù)據(jù)幀的發(fā)送,其中主機(jī)接收緩沖數(shù)據(jù)幀優(yōu)先權(quán)最高,其次是普通交換幀。輸出端口發(fā)送調(diào)度首先必須分別確認(rèn)各自的輸出端口緩沖是否能夠存儲當(dāng)前要發(fā)送的幀,只有輸出端口緩沖有空閑空間時,輸出端口空閑的幀才會允許申請發(fā)送調(diào)度,否則必須等待條件具備后才能申請調(diào)度。

3 結(jié)束語

    AFDX網(wǎng)絡(luò)協(xié)議中虛鏈路、雙余度網(wǎng)絡(luò)、帶寬隔離、流量整形等關(guān)鍵技術(shù)有效地提高了系統(tǒng)的實時性、可靠性,對提高航空機(jī)載數(shù)據(jù)高可靠、高確定性的通信具有重要意義。通過深入解讀、分析AFDX網(wǎng)絡(luò)協(xié)議,對交換機(jī)和端系統(tǒng)的關(guān)鍵技術(shù)進(jìn)行研究,突破AFDX網(wǎng)絡(luò)端系統(tǒng)及交換機(jī)關(guān)鍵技術(shù),為AFDX網(wǎng)絡(luò)的芯片及后續(xù)產(chǎn)品設(shè)計提供技術(shù)支撐。

參考文獻(xiàn)

[1] 趙永庫,李貞,唐來勝.AFDX網(wǎng)絡(luò)協(xié)議研究[J].計算機(jī)測量與控制,2011,19(12):3137-3139,3142.

[2] 謝希仁.計算機(jī)網(wǎng)絡(luò)[M].第5版.北京:國防工業(yè)出版社,2009.

[3] 施太平,婁莉,田澤.AFDX協(xié)議及關(guān)鍵技術(shù)研究[J].測試控制,2010,31(10):81-84.

[4] ARINC specification 664P7,aircraft data network(part7):Avionics Full Duplex switched Ethernet (AFDX) network[S].2005.

[5] 鐘杰,何民,王懷勝,等.AFDX構(gòu)架及協(xié)議研究[J].電訊技術(shù),2010,50(1):65-70.

[6] 陳長春,王紅春.一種余度管理電路及其管理方法:中國,200810098899[P].2010-07-07.

[7] 杜宏偉,馬捷中.航空電子全雙共交換式以太網(wǎng)及其關(guān)鍵技術(shù)研究[J].測控技術(shù),2008,27(12):65-67.

[8] 陳昕,周擁軍,萬劍雄.AFDX端系統(tǒng)關(guān)鍵技術(shù)的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2009,35(5):1-3.

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

[10] 王紅春,何峰.民用飛機(jī)高速航電系統(tǒng)AFDX網(wǎng)絡(luò)設(shè)計與分析[J].計算機(jī)工程與設(shè)計,2011,31(12):3633-3637.

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