樊智勇,魏士皓,崔海青
(1.中國(guó)民航大學(xué)工程技術(shù)訓(xùn)練中心,天津 300300;2.中國(guó)民航大學(xué)電子信息與自動(dòng)化學(xué)院,天津 300300)
隨著航空領(lǐng)域計(jì)算機(jī)及通信技術(shù)的發(fā)展,航空電子設(shè)備由原來的局部獨(dú)立系統(tǒng)逐漸走向了綜合化和一體化。由于飛機(jī)各種復(fù)雜功能的實(shí)現(xiàn)需要不同航空電子設(shè)備間相互協(xié)作,因此設(shè)備之間數(shù)據(jù)高效率和可靠傳輸變得異常重要[1]。航空總線是航電設(shè)備之間信息傳輸與共享的通道,是航電系統(tǒng)之間進(jìn)行信息傳輸?shù)闹匾浇?,是?shí)現(xiàn)航電設(shè)備綜合化的基礎(chǔ)[2]。ARINC429作為一種廣泛應(yīng)用于民航客機(jī)的航空數(shù)據(jù)總線,它詳細(xì)說明了系統(tǒng)規(guī)范中所定義的電氣和電子接口,將飛機(jī)的各系統(tǒng)通過雙絞線互連起來,定義了航電系統(tǒng)之間以及航電與非航電系統(tǒng)之間的接口和傳輸數(shù)據(jù)的格式[3]。
在實(shí)際航電設(shè)備的檢測(cè)與維護(hù)中,要重點(diǎn)考慮被檢測(cè)設(shè)備和ARINC429總線間的接口是否存在問題[4],但是采集到的ARINC429數(shù)據(jù)是32位二進(jìn)制總線數(shù)據(jù),不能直觀地反映系統(tǒng)狀態(tài)和參數(shù)的變化。工程人員需要根據(jù)接口控制文件ICD(Interface Control Document)逐個(gè)查詢并將采集到的二進(jìn)制數(shù)換算為系統(tǒng)參數(shù)。而目前ICD都是基于文檔,以表格和段落注釋的方式進(jìn)行描述,翻閱查詢都十分不便,且增加了系統(tǒng)調(diào)試的時(shí)間,這與總線測(cè)試需要快速準(zhǔn)確地分析數(shù)據(jù),以便及時(shí)定位并排除故障產(chǎn)生了矛盾。因此,如何才能簡(jiǎn)化文檔管理,高效、準(zhǔn)確地利用ICD對(duì)航電系統(tǒng)進(jìn)行測(cè)試成為了航空總線測(cè)試領(lǐng)域研究的熱點(diǎn)[2]。
許多學(xué)者對(duì)ICD進(jìn)行了研究并提出了不同的ARINC429數(shù)據(jù)描述方法。文獻(xiàn)[5]提出了將ARINC429數(shù)據(jù)按照數(shù)據(jù)類型打斷、拆分,使用數(shù)據(jù)類型與位定義描述的方法;文獻(xiàn)[6]在對(duì)嵌入式軟件進(jìn)行測(cè)試時(shí),將ARINC429數(shù)據(jù)以類的形式直接寫在程序中;文獻(xiàn)[7]則將ICD文件轉(zhuǎn)換成文本形式,獨(dú)立于測(cè)試軟件。本文在前人研究的基礎(chǔ)上再結(jié)合實(shí)際需求,提出基于樹形結(jié)構(gòu)的ARINC429數(shù)據(jù)描述方法,并基于可擴(kuò)展標(biāo)記語言XML(eXtensible Markup Language)建立了相應(yīng)的解碼庫(kù)。該解碼庫(kù)使用同一種描述規(guī)范對(duì)ARINC429數(shù)據(jù)進(jìn)行完整描述,能夠很方便地使用程序進(jìn)行解碼,并且解碼庫(kù)獨(dú)立于測(cè)試軟件,實(shí)現(xiàn)了測(cè)試軟件與解碼庫(kù)的分離,便于后期修改與移植。
ICD定義了航電系統(tǒng)之間的接口關(guān)系,十分龐雜。它定義了一整套總線系統(tǒng)數(shù)據(jù),包括系統(tǒng)的控制邏輯,信號(hào)類型和方向,傳輸速度,參數(shù)名稱、意義和單位,最大值和最小值,分辨率,最大/小傳輸間隔,比例關(guān)系,編碼形式,故障代碼等各種信息[8]。本文基于“ARINC SPECIFICATION 429 PART 1-17”分析了ARINC429規(guī)范并對(duì)其數(shù)據(jù)特征進(jìn)行了提取。
樹的概念在計(jì)算機(jī)中隨處可見,對(duì)樹結(jié)構(gòu)的檢索只需要進(jìn)行一次搜索就可以完成遍歷,當(dāng)根節(jié)點(diǎn)確定了,樹中任意兩點(diǎn)間的關(guān)系也唯一確定了。為了方便對(duì)樹形結(jié)構(gòu)進(jìn)行處理,研究人員提出了許多專門針對(duì)樹的算法,也通過樹形結(jié)構(gòu)解決了數(shù)據(jù)儲(chǔ)存和程序調(diào)用問題。因此,本文利用樹形結(jié)構(gòu)來設(shè)計(jì)ARINC429解碼庫(kù),并將ICD映射為樹形結(jié)構(gòu)。由于ICD包含了一整套總線數(shù)據(jù)的定義,本文設(shè)計(jì)了一套合理的描述規(guī)范,不僅包含信號(hào)類型、傳輸速度、參數(shù)名稱和信號(hào)單位等各種在仿真測(cè)試中有用的信息,而且還方便工程人員查閱。
本文基于“ARINC SPECIFICATION 429 PART 1-17”對(duì)ARINC429數(shù)據(jù)進(jìn)行分析。標(biāo)準(zhǔn)的32位ARINC429數(shù)據(jù)字被分為標(biāo)志位(LABEL)、源/目的識(shí)別碼(SDI)、數(shù)據(jù)區(qū)(DATA)、符號(hào)狀態(tài)矩陣(SSM)和奇偶校驗(yàn)位(PARITY)5個(gè)部分,如表1所示。

Table 1 Typical dataword format of ARINC429
(1) ARINC429規(guī)范對(duì)傳輸?shù)拿恳粋€(gè)數(shù)據(jù)字都規(guī)定了LABEL號(hào)來識(shí)別其數(shù)據(jù)類型和相關(guān)參數(shù)。標(biāo)號(hào)采用八進(jìn)制編碼,將1~8位分成3組,代表八進(jìn)制數(shù)0~377。每個(gè)ARINC429數(shù)據(jù)字都有自己的LABEL號(hào),因此LABEL號(hào)可以作為數(shù)據(jù)檢索標(biāo)記,用來定位數(shù)據(jù)位置。下面給出樹形結(jié)構(gòu)規(guī)則1:
規(guī)則1樹形結(jié)構(gòu)的根元素定義為“ARINC429”,標(biāo)志位定義為樹形結(jié)構(gòu)根元素的子元素,記作“LABEL”,并為其添加屬性“LABEL ID”,用來存放LABEL號(hào)。
(2) 雖然每個(gè)數(shù)據(jù)字都有自己的LABEL號(hào),但是一個(gè)LABEL號(hào)可能包含多種不同編碼方式,一種編碼方式又可能適用于多個(gè)設(shè)備,如圖1所示。因此,只用LABEL號(hào)無法對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確定位,還需要配合其他參數(shù)進(jìn)行數(shù)據(jù)定位。下面給出樹形結(jié)構(gòu)規(guī)則2:
規(guī)則2為L(zhǎng)ABEL元素定義子元素,包含該LABEL號(hào)下所有的編碼方式,記作“Code”,為編碼方式“Code”添加子元素——“設(shè)備”,記作“Equipment”。

Figure 1 Relationship between LABEL and encoding mode圖1 LABEL與編碼方式的關(guān)系
考慮到采用同一種編碼方式的ARINC429數(shù)據(jù)字的傳輸速率、最小傳輸間隔和最大傳輸間隔是一致的,于是為“Code”元素添加屬性“Speed”“MinInterval”和“MaxInterval”,分別用于表示傳輸速度、最小傳輸間隔和最大傳輸間隔。并為“Equipment”添加屬性——“Equipment ID”,用來記錄設(shè)備號(hào)。
(3)ARINC429規(guī)范將一個(gè)數(shù)據(jù)字分為5個(gè)部分,但是其中數(shù)據(jù)區(qū)可能包含多種數(shù)據(jù)類型或空閑位,因此除了按照ARINC429規(guī)范中給定的分割方式外還需要對(duì)數(shù)據(jù)區(qū)進(jìn)一步分割。數(shù)據(jù)區(qū)按照數(shù)據(jù)類型(也可看作是按照不同的參數(shù))可以被劃分為多個(gè)部分,每個(gè)部分被稱為一個(gè)數(shù)據(jù)塊,用“Parameter”表示?!癙arameter”中包含多種用來描述該數(shù)據(jù)塊信息的屬性。下面給出樹形結(jié)構(gòu)規(guī)則3:
規(guī)則3為元素“Code”添加子元素——參數(shù),記作“Parameter”并添加名稱、數(shù)據(jù)類型(包括BNR(Binary NumbeR)、DIS(DIScrete)和BCD(Binary-Coded Decimal))、數(shù)據(jù)起始位與結(jié)束位、單位和分辨率等屬性。
補(bǔ)充:增加數(shù)據(jù)類型BCD3。如圖2所示的LABEL號(hào)“031”、設(shè)備號(hào)“020”的“Beacon Transponder Code”,該數(shù)據(jù)的18~29位不是標(biāo)準(zhǔn)的BCD數(shù)據(jù),這里不是用4位二進(jìn)制數(shù)表示而是用3位二進(jìn)制數(shù)表示1位BCD數(shù)據(jù)。為了方便起見把該類型命名為一個(gè)新的數(shù)據(jù)類型——BCD3。

Figure 2 Data section of Beacon Transponder Code圖2 Beacon Transponder Code數(shù)據(jù)區(qū)
(4) ARINC429數(shù)據(jù)在按照數(shù)據(jù)類型進(jìn)行解碼之后得到的數(shù)據(jù)不一定有真實(shí)的物理含義,還需要根據(jù)分辨率或者基值等進(jìn)行調(diào)整。例如,甚高頻全向信標(biāo)頻率字“VOR/ILS Frequency”,如圖3所示,LABEL號(hào)為“034”,設(shè)備號(hào)為“002”。

Figure 3 Data section of VOR/ILS Frequency圖3 VOR/ILS Frequency 數(shù)據(jù)區(qū)
對(duì)圖3直接進(jìn)行解碼,得到的數(shù)據(jù)為9.3 MHz,已知甚高頻全向信標(biāo)的頻率范圍為108.00~117.95 MHz,很明顯解得的數(shù)據(jù)不正確。這是由于甚高頻全向信標(biāo)的頻率需要精確到小數(shù)點(diǎn)后2位,如果要完整表示甚高頻全向信標(biāo)的頻率需要5位BCD類型的數(shù)據(jù),而每個(gè)BCD類型的數(shù)據(jù)需要4位二進(jìn)制來表示,因此數(shù)據(jù)區(qū)需要20位才能精確到小數(shù)點(diǎn)后2位,這已經(jīng)超出了數(shù)據(jù)區(qū)的長(zhǎng)度,很顯然用1個(gè)ARINC429數(shù)據(jù)字無法表示??紤]到甚高頻全向信標(biāo)的頻率都大于100,所以利用ARINC429數(shù)據(jù)進(jìn)行傳輸時(shí)不傳輸百位數(shù),傳輸?shù)臄?shù)據(jù)范圍縮小為8.00~17.95 MHz,這樣就可以用1個(gè)ARINC429數(shù)據(jù)字來表示該數(shù)據(jù)。所以,直接解碼得到的數(shù)據(jù)需要進(jìn)行數(shù)據(jù)還原才能得到真實(shí)的物理含義,下面給出樹形結(jié)構(gòu)規(guī)則4:
規(guī)則4為“Parameter”添加屬性——基值(調(diào)整數(shù))和分辨率,分別記作“Adjustment”和“Resolution”,用來對(duì)數(shù)據(jù)進(jìn)行還原。
(5) 除了以上情況之外仍然有一些數(shù)據(jù)值較大,單獨(dú)使用1個(gè)ARINC429數(shù)據(jù)字無法完整表示的數(shù)據(jù),必須要使用多個(gè)ARINC429數(shù)據(jù)字進(jìn)行聯(lián)合解碼才能得到其完整的釋義。因此,在利用樹形結(jié)構(gòu)進(jìn)行表述時(shí)需要明確指出當(dāng)前數(shù)據(jù)需要幾個(gè)數(shù)據(jù)字聯(lián)合解碼,當(dāng)前數(shù)據(jù)字是第幾個(gè)。下面給出樹形結(jié)構(gòu)規(guī)則5:
規(guī)則5為“Code”添加屬性——成員個(gè)數(shù),記作“Index”,用來描述解碼所需的ARINC429數(shù)據(jù)字個(gè)數(shù)以及當(dāng)前數(shù)據(jù)字所處的位置。
使用一個(gè)分?jǐn)?shù)的形式來表示Index信息,分母表示聯(lián)合解碼需要的數(shù)據(jù)字個(gè)數(shù),分子表示當(dāng)前數(shù)據(jù)字所處的位置。在對(duì)數(shù)據(jù)解碼時(shí)先判斷是否需要聯(lián)合解碼,例如若當(dāng)前ARINC429數(shù)據(jù)字的“Index”值為“2/3”,則表示需要3個(gè)ARINC429數(shù)據(jù)字才能描述當(dāng)前數(shù)據(jù)的完整含義,并且當(dāng)前ARINC429數(shù)據(jù)字為聯(lián)合解碼數(shù)據(jù)字中的第2個(gè);當(dāng)只需要1個(gè)ARINC429數(shù)據(jù)字就可以完整表示當(dāng)前數(shù)據(jù)時(shí),“Index”屬性的值為“1/1”,也可以簡(jiǎn)寫為“1”。
2.1節(jié)基于“ARINC SPECIFICATION 429 PART 1-17”文件對(duì)ARINC429數(shù)據(jù)進(jìn)行了分析,并根據(jù)數(shù)據(jù)特點(diǎn)定義了5條規(guī)則。本文使用這些規(guī)則建立了樹形結(jié)構(gòu)的描述規(guī)范。描述規(guī)范的整體結(jié)構(gòu)圖及釋義分別如圖4和表2所示。通過圖4可以很明顯地看出其樹形結(jié)構(gòu)以及解碼所需的必要信息。

Figure 4 Representation rule structure of ARINC429 based on XML tree structure圖4 基于XML樹形結(jié)構(gòu)的ARINC429描述規(guī)范結(jié)構(gòu)圖

Table 2 Description specification of ARINC429 based on XML tree structure
XML是一種標(biāo)記性、半結(jié)構(gòu)化語言[9],存儲(chǔ)數(shù)據(jù)具有內(nèi)容與樣式分離的特點(diǎn),使用時(shí)只需關(guān)心數(shù)據(jù)本身的含義,不需要考慮如何處理數(shù)據(jù)樣式[10],可以對(duì)數(shù)據(jù)進(jìn)行標(biāo)記、對(duì)數(shù)據(jù)類型進(jìn)行定義以使其具有結(jié)構(gòu)性[11]。XML文檔能夠表示為有序的樹結(jié)構(gòu)。在XML樹中,內(nèi)部節(jié)點(diǎn)表示元素或者屬性,葉節(jié)點(diǎn)表示元素或?qū)傩缘闹担叡硎驹刈釉亍⒃刂岛蛯傩灾档冉Y(jié)構(gòu)關(guān)系[12]。
XML提供一個(gè)跨平臺(tái)機(jī)制,不僅能夠完整清晰地表達(dá)數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容,方便對(duì)數(shù)據(jù)進(jìn)行管理、儲(chǔ)存和溝通;而且還具有適應(yīng)性強(qiáng)、靈活性高、擴(kuò)展性好、語義性強(qiáng)、結(jié)構(gòu)性強(qiáng)、格式簡(jiǎn)單、具備自描述性、獨(dú)立性和支持豐富的數(shù)據(jù)類型等特點(diǎn)[13,14]。XML作為一種數(shù)據(jù)交換格式,能夠?qū)崿F(xiàn)數(shù)據(jù)內(nèi)容與形式的分離,可以根據(jù)實(shí)際需求建立有復(fù)雜層次的數(shù)據(jù)模型,并能夠保持嚴(yán)密的規(guī)范使之具有較高的可讀性。XML還可以很方便地對(duì)各種不同類型的數(shù)據(jù)進(jìn)行描述,便于對(duì)數(shù)據(jù)進(jìn)行整合和處理,能夠提升數(shù)據(jù)管理效率[15]?;谝陨蟽?yōu)勢(shì),XML在許多領(lǐng)域得到了廣泛應(yīng)用,具有良好的可靠性與互操作性[16]。因此,XML對(duì)于大型的復(fù)雜文檔是一種較為理想的語言。
基于XML使用STDU XML Editor Portable建立的ARINC429總線數(shù)據(jù)解碼庫(kù)如圖5所示。

Figure 5 Example of ARINC429 decoding library in XML format圖5 XML格式的ARINC429解碼庫(kù)示例
基于XML建立的ARINC429總線數(shù)據(jù)解碼庫(kù)需要配套的解碼軟件進(jìn)行解碼。解碼軟件對(duì)采集到的ARINC429數(shù)據(jù)字解碼并展示當(dāng)前數(shù)據(jù)字具體參數(shù)的含義,這樣工程人員能夠直觀地看到系統(tǒng)狀態(tài)和參數(shù)的變化,進(jìn)而縮短系統(tǒng)調(diào)試時(shí)間。解碼軟件和解碼數(shù)據(jù)庫(kù)在仿真測(cè)試平臺(tái)中的位置如圖6所示。

Figure 6 Position of decoding software in simulation platform圖6 解碼軟件在仿真平臺(tái)中的位置
在ARINC429規(guī)范中,以BNR、BCD和DIS共3種數(shù)據(jù)類型組合而成的數(shù)據(jù)字最為常見。在對(duì)ARINC429數(shù)據(jù)字進(jìn)行解碼時(shí),首先按照數(shù)據(jù)塊Parameter的大小對(duì)ARINC429數(shù)據(jù)字進(jìn)行分割,然后根據(jù)XML文件中的“DataType”屬性獲取當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)類型,根據(jù)不同的數(shù)據(jù)類型執(zhí)行相應(yīng)的子函數(shù)進(jìn)行解碼。其中,離散型數(shù)據(jù)利用一個(gè)二進(jìn)制位來表示,諸如開關(guān)的斷開與閉合之類的狀態(tài)量,比較簡(jiǎn)單不再做詳細(xì)介紹,本文主要說明BNR和BCD類型的解碼。
3.2.1 BNR數(shù)據(jù)類型的解碼
BNR是二進(jìn)制編碼,解碼時(shí)首先需要將二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制;然后根據(jù)“SigBits”獲取BNR數(shù)據(jù)的起始位與終止位;接著判斷符號(hào)位,若符號(hào)位為正則直接進(jìn)行加權(quán)求和,反之需要先將有效位的二進(jìn)制碼取補(bǔ)碼(即反碼加一),對(duì)補(bǔ)碼進(jìn)行加權(quán)求和。
計(jì)算公式如式(1)所示:
(1)
其中,i表示當(dāng)前二進(jìn)制數(shù)的位置,即第幾位;L表示二進(jìn)制數(shù)的總位數(shù)減1;Ei表示當(dāng)前二進(jìn)制數(shù)的值。
3.2.2 BCD數(shù)據(jù)類型的解碼
BCD碼是二進(jìn)制編碼的十進(jìn)制數(shù),即用二進(jìn)制數(shù)來表示十進(jìn)制數(shù)。首先根據(jù)“SigBits”獲取BCD數(shù)據(jù)的起始位與終止位;然后通過移位再相與的方式取出特定的部分;最后將取出來的數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)。
計(jì)算公式如式(2)所示:
(2)
其中,i表示當(dāng)前BCD數(shù)的位置,即第幾位;L表示BCD數(shù)的總位數(shù)減1;Bi表示當(dāng)前BCD數(shù)轉(zhuǎn)換的十進(jìn)制數(shù)值。
3.2.3 數(shù)據(jù)還原
為了獲取數(shù)據(jù)真實(shí)的物理含義,需要使用之前定義的調(diào)整數(shù)“Adjustment”和分辨率“Resolution”對(duì)數(shù)據(jù)進(jìn)行還原,先用分辨率“Resolution”進(jìn)行比例調(diào)整,再用調(diào)整數(shù)“Adjustment”進(jìn)行基值調(diào)整。
計(jì)算公式如式(3)所示:
Dacc=Value×Res+Adj
(3)
其中,Dacc表示精確值;Value表示直接解碼得到的數(shù)據(jù);Res表示分辨率;Adj表示調(diào)整數(shù)。
以圖2所示的甚高頻全向信標(biāo)頻率字為例進(jìn)行解碼,如式(4)所示:
100×0+101×3+102×9+103×0=930 MHz
(4)
由于甚高頻全向信標(biāo)頻率字的分辨率為0.01 MHz,調(diào)整數(shù)為100,因此精確值如式(5)所示:
Dacc=Value×Res+Adj=
930×0.01+100=109.3 MHz
(5)
將建立的XML解碼庫(kù)接入到某型國(guó)產(chǎn)飛機(jī)航電系統(tǒng)通信導(dǎo)航半實(shí)物仿真平臺(tái)上對(duì)本文提出的描述進(jìn)行驗(yàn)證。該平臺(tái)主要仿真部分通信和導(dǎo)航組件的輸入輸出接口特性,包含HF(High Frequency)、VHF(Very High Frequency)、NAV(NAVigation)、DME(Distance Measuring Equipment)、GPS(Global Positioning System)5類10個(gè)組件的接口仿真,具體表現(xiàn)為VHF4000、HF9301A、DME4000和NAV4000系列組件的邏輯功能仿真以及符合 ARINC429標(biāo)準(zhǔn)的電氣接口仿真。仿真平臺(tái)從數(shù)據(jù)采集板卡接收組件的ARINC429數(shù)據(jù)字,按照組件工作邏輯完成數(shù)據(jù)字的解碼和轉(zhuǎn)譯,然后根據(jù)組件功能邏輯在對(duì)應(yīng)的ARINC429輸出接口上輸出數(shù)據(jù)。
以該型飛機(jī)航電系統(tǒng)通信導(dǎo)航半實(shí)物仿真平臺(tái)中DME的動(dòng)態(tài)仿真為例,在進(jìn)行總線數(shù)據(jù)測(cè)試時(shí),通過編寫的程序調(diào)用XML格式的解碼庫(kù)查找該數(shù)據(jù)并進(jìn)行解析。解碼結(jié)果如圖7所示。

Figure 7 Dynamic simulation interface of DME in simulation platform圖7 仿真平臺(tái)中DME的動(dòng)態(tài)仿真界面
由圖7可知,DME仿真組件的“Tune Port A”接收到的ARINC429數(shù)據(jù)字為0x060001B8,查找相應(yīng)的DME頻率數(shù)據(jù)字定義可知,解析結(jié)果應(yīng)為:
DME頻率:118.00 MHz;
NAV模式:VOR;
DME模式:Standby Off。
仿真平臺(tái)解析得到的結(jié)果與預(yù)期結(jié)果一致。
為了驗(yàn)證該解碼庫(kù)的普適性,對(duì)該平臺(tái)采集到的所有數(shù)據(jù)進(jìn)行測(cè)試。經(jīng)測(cè)試,仿真平臺(tái)中的5類10個(gè)仿真組件共32路數(shù)據(jù)都可以正確地對(duì)ARINC429數(shù)據(jù)字進(jìn)行解碼,這表明基于XML建立的ARINC429數(shù)據(jù)解碼庫(kù)能夠?qū)诫娤到y(tǒng)通信導(dǎo)航半實(shí)物仿真平臺(tái)采集到的數(shù)據(jù)進(jìn)行正確解碼。
利用這種方法進(jìn)行總線測(cè)試時(shí),工程人員不需要翻閱查詢ICD就可以快速獲取到直觀的測(cè)試數(shù)據(jù),縮短了故障定位時(shí)間。通過對(duì)比在半實(shí)物仿真平臺(tái)中使用基于XML建立解碼庫(kù)的方式與原系統(tǒng)直接將數(shù)據(jù)寫入到程序中的方式,前者具有以下優(yōu)勢(shì):
(1) 實(shí)現(xiàn)了測(cè)試軟件與數(shù)據(jù)庫(kù)的分離。編碼庫(kù)與測(cè)試軟件相互獨(dú)立,測(cè)試軟件中不直接包含編碼庫(kù),而是以調(diào)用的方式進(jìn)行使用。還可以方便地修改解碼庫(kù)中編碼的定義,無需再修改軟件代碼和重新編譯。
(2) 降低了軟件維護(hù)的工作量。相同的數(shù)據(jù)類型具有相同的解碼算法,可以使用同一個(gè)解碼子函數(shù)進(jìn)行解碼,與將ICD中的數(shù)據(jù)直接寫入到程序中相比減少了代碼量。
(3) XML具有良好的跨平臺(tái)性,為后期系統(tǒng)的擴(kuò)展性以及數(shù)據(jù)庫(kù)的移植提供了便利。
本文基于ARINC429規(guī)范中的“MARK 33 DIGITAL INFORMATION TRANSFER SYSTEM (DITS) PART 1”文件分析了ARINC429編碼的一般類型,提出了使用樹形結(jié)構(gòu)的ARINC429數(shù)據(jù)映射方法,并基于XML的樹形結(jié)構(gòu)與相關(guān)ICD文件建立了ARINC429數(shù)據(jù)的解碼庫(kù)。該解碼庫(kù)保留了數(shù)據(jù)的原結(jié)構(gòu),能夠使用一個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行完整描述;而且該解碼庫(kù)獨(dú)立于仿真測(cè)試軟件,采用調(diào)用解碼庫(kù)的方式進(jìn)行解碼,相較于之前將數(shù)據(jù)定義寫入解碼程序中的方式,該描述方法實(shí)現(xiàn)了編碼庫(kù)與編程語言、開發(fā)平臺(tái)的分離,因此不需要修改解碼程序就能夠方便地對(duì)數(shù)據(jù)的定義進(jìn)行增減刪改,統(tǒng)一的描述規(guī)則使得解碼程序可以復(fù)用,降低了編解碼代碼總量,大大降低了維護(hù)難度,且具有高度可移植性。