• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于樹形結構的ARINC429解碼庫設計方法研究*

      2022-06-23 03:26:46樊智勇魏士皓崔海青
      計算機工程與科學 2022年6期
      關鍵詞:航電數據類型二進制

      樊智勇,魏士皓,崔海青

      (1.中國民航大學工程技術訓練中心,天津 300300;2.中國民航大學電子信息與自動化學院,天津 300300)

      1 引言

      隨著航空領域計算機及通信技術的發(fā)展,航空電子設備由原來的局部獨立系統逐漸走向了綜合化和一體化。由于飛機各種復雜功能的實現需要不同航空電子設備間相互協作,因此設備之間數據高效率和可靠傳輸變得異常重要[1]。航空總線是航電設備之間信息傳輸與共享的通道,是航電系統之間進行信息傳輸的重要媒介,是實現航電設備綜合化的基礎[2]。ARINC429作為一種廣泛應用于民航客機的航空數據總線,它詳細說明了系統規(guī)范中所定義的電氣和電子接口,將飛機的各系統通過雙絞線互連起來,定義了航電系統之間以及航電與非航電系統之間的接口和傳輸數據的格式[3]。

      在實際航電設備的檢測與維護中,要重點考慮被檢測設備和ARINC429總線間的接口是否存在問題[4],但是采集到的ARINC429數據是32位二進制總線數據,不能直觀地反映系統狀態(tài)和參數的變化。工程人員需要根據接口控制文件ICD(Interface Control Document)逐個查詢并將采集到的二進制數換算為系統參數。而目前ICD都是基于文檔,以表格和段落注釋的方式進行描述,翻閱查詢都十分不便,且增加了系統調試的時間,這與總線測試需要快速準確地分析數據,以便及時定位并排除故障產生了矛盾。因此,如何才能簡化文檔管理,高效、準確地利用ICD對航電系統進行測試成為了航空總線測試領域研究的熱點[2]。

      許多學者對ICD進行了研究并提出了不同的ARINC429數據描述方法。文獻[5]提出了將ARINC429數據按照數據類型打斷、拆分,使用數據類型與位定義描述的方法;文獻[6]在對嵌入式軟件進行測試時,將ARINC429數據以類的形式直接寫在程序中;文獻[7]則將ICD文件轉換成文本形式,獨立于測試軟件。本文在前人研究的基礎上再結合實際需求,提出基于樹形結構的ARINC429數據描述方法,并基于可擴展標記語言XML(eXtensible Markup Language)建立了相應的解碼庫。該解碼庫使用同一種描述規(guī)范對ARINC429數據進行完整描述,能夠很方便地使用程序進行解碼,并且解碼庫獨立于測試軟件,實現了測試軟件與解碼庫的分離,便于后期修改與移植。

      2 ARINC429規(guī)范特征分析及樹形結構建模

      ICD定義了航電系統之間的接口關系,十分龐雜。它定義了一整套總線系統數據,包括系統的控制邏輯,信號類型和方向,傳輸速度,參數名稱、意義和單位,最大值和最小值,分辨率,最大/小傳輸間隔,比例關系,編碼形式,故障代碼等各種信息[8]。本文基于“ARINC SPECIFICATION 429 PART 1-17”分析了ARINC429規(guī)范并對其數據特征進行了提取。

      樹的概念在計算機中隨處可見,對樹結構的檢索只需要進行一次搜索就可以完成遍歷,當根節(jié)點確定了,樹中任意兩點間的關系也唯一確定了。為了方便對樹形結構進行處理,研究人員提出了許多專門針對樹的算法,也通過樹形結構解決了數據儲存和程序調用問題。因此,本文利用樹形結構來設計ARINC429解碼庫,并將ICD映射為樹形結構。由于ICD包含了一整套總線數據的定義,本文設計了一套合理的描述規(guī)范,不僅包含信號類型、傳輸速度、參數名稱和信號單位等各種在仿真測試中有用的信息,而且還方便工程人員查閱。

      2.1 ARINC429數據字分析及樹形結構規(guī)則制定

      本文基于“ARINC SPECIFICATION 429 PART 1-17”對ARINC429數據進行分析。標準的32位ARINC429數據字被分為標志位(LABEL)、源/目的識別碼(SDI)、數據區(qū)(DATA)、符號狀態(tài)矩陣(SSM)和奇偶校驗位(PARITY)5個部分,如表1所示。

      Table 1 Typical dataword format of ARINC429

      (1) ARINC429規(guī)范對傳輸的每一個數據字都規(guī)定了LABEL號來識別其數據類型和相關參數。標號采用八進制編碼,將1~8位分成3組,代表八進制數0~377。每個ARINC429數據字都有自己的LABEL號,因此LABEL號可以作為數據檢索標記,用來定位數據位置。下面給出樹形結構規(guī)則1:

      規(guī)則1樹形結構的根元素定義為“ARINC429”,標志位定義為樹形結構根元素的子元素,記作“LABEL”,并為其添加屬性“LABEL ID”,用來存放LABEL號。

      (2) 雖然每個數據字都有自己的LABEL號,但是一個LABEL號可能包含多種不同編碼方式,一種編碼方式又可能適用于多個設備,如圖1所示。因此,只用LABEL號無法對數據進行準確定位,還需要配合其他參數進行數據定位。下面給出樹形結構規(guī)則2:

      規(guī)則2為LABEL元素定義子元素,包含該LABEL號下所有的編碼方式,記作“Code”,為編碼方式“Code”添加子元素——“設備”,記作“Equipment”。

      Figure 1 Relationship between LABEL and encoding mode圖1 LABEL與編碼方式的關系

      考慮到采用同一種編碼方式的ARINC429數據字的傳輸速率、最小傳輸間隔和最大傳輸間隔是一致的,于是為“Code”元素添加屬性“Speed”“MinInterval”和“MaxInterval”,分別用于表示傳輸速度、最小傳輸間隔和最大傳輸間隔。并為“Equipment”添加屬性——“Equipment ID”,用來記錄設備號。

      (3)ARINC429規(guī)范將一個數據字分為5個部分,但是其中數據區(qū)可能包含多種數據類型或空閑位,因此除了按照ARINC429規(guī)范中給定的分割方式外還需要對數據區(qū)進一步分割。數據區(qū)按照數據類型(也可看作是按照不同的參數)可以被劃分為多個部分,每個部分被稱為一個數據塊,用“Parameter”表示?!癙arameter”中包含多種用來描述該數據塊信息的屬性。下面給出樹形結構規(guī)則3:

      規(guī)則3為元素“Code”添加子元素——參數,記作“Parameter”并添加名稱、數據類型(包括BNR(Binary NumbeR)、DIS(DIScrete)和BCD(Binary-Coded Decimal))、數據起始位與結束位、單位和分辨率等屬性。

      補充:增加數據類型BCD3。如圖2所示的LABEL號“031”、設備號“020”的“Beacon Transponder Code”,該數據的18~29位不是標準的BCD數據,這里不是用4位二進制數表示而是用3位二進制數表示1位BCD數據。為了方便起見把該類型命名為一個新的數據類型——BCD3。

      Figure 2 Data section of Beacon Transponder Code圖2 Beacon Transponder Code數據區(qū)

      (4) ARINC429數據在按照數據類型進行解碼之后得到的數據不一定有真實的物理含義,還需要根據分辨率或者基值等進行調整。例如,甚高頻全向信標頻率字“VOR/ILS Frequency”,如圖3所示,LABEL號為“034”,設備號為“002”。

      Figure 3 Data section of VOR/ILS Frequency圖3 VOR/ILS Frequency 數據區(qū)

      對圖3直接進行解碼,得到的數據為9.3 MHz,已知甚高頻全向信標的頻率范圍為108.00~117.95 MHz,很明顯解得的數據不正確。這是由于甚高頻全向信標的頻率需要精確到小數點后2位,如果要完整表示甚高頻全向信標的頻率需要5位BCD類型的數據,而每個BCD類型的數據需要4位二進制來表示,因此數據區(qū)需要20位才能精確到小數點后2位,這已經超出了數據區(qū)的長度,很顯然用1個ARINC429數據字無法表示。考慮到甚高頻全向信標的頻率都大于100,所以利用ARINC429數據進行傳輸時不傳輸百位數,傳輸的數據范圍縮小為8.00~17.95 MHz,這樣就可以用1個ARINC429數據字來表示該數據。所以,直接解碼得到的數據需要進行數據還原才能得到真實的物理含義,下面給出樹形結構規(guī)則4:

      規(guī)則4為“Parameter”添加屬性——基值(調整數)和分辨率,分別記作“Adjustment”和“Resolution”,用來對數據進行還原。

      (5) 除了以上情況之外仍然有一些數據值較大,單獨使用1個ARINC429數據字無法完整表示的數據,必須要使用多個ARINC429數據字進行聯合解碼才能得到其完整的釋義。因此,在利用樹形結構進行表述時需要明確指出當前數據需要幾個數據字聯合解碼,當前數據字是第幾個。下面給出樹形結構規(guī)則5:

      規(guī)則5為“Code”添加屬性——成員個數,記作“Index”,用來描述解碼所需的ARINC429數據字個數以及當前數據字所處的位置。

      使用一個分數的形式來表示Index信息,分母表示聯合解碼需要的數據字個數,分子表示當前數據字所處的位置。在對數據解碼時先判斷是否需要聯合解碼,例如若當前ARINC429數據字的“Index”值為“2/3”,則表示需要3個ARINC429數據字才能描述當前數據的完整含義,并且當前ARINC429數據字為聯合解碼數據字中的第2個;當只需要1個ARINC429數據字就可以完整表示當前數據時,“Index”屬性的值為“1/1”,也可以簡寫為“1”。

      2.2 ARINC429樹形結構描述規(guī)范整體結構

      2.1節(jié)基于“ARINC SPECIFICATION 429 PART 1-17”文件對ARINC429數據進行了分析,并根據數據特點定義了5條規(guī)則。本文使用這些規(guī)則建立了樹形結構的描述規(guī)范。描述規(guī)范的整體結構圖及釋義分別如圖4和表2所示。通過圖4可以很明顯地看出其樹形結構以及解碼所需的必要信息。

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

      Table 2 Description specification of ARINC429 based on XML tree structure

      3 基于XML的ARINC429總線解碼庫的實現

      3.1 使用XML語言的優(yōu)勢及實現

      XML是一種標記性、半結構化語言[9],存儲數據具有內容與樣式分離的特點,使用時只需關心數據本身的含義,不需要考慮如何處理數據樣式[10],可以對數據進行標記、對數據類型進行定義以使其具有結構性[11]。XML文檔能夠表示為有序的樹結構。在XML樹中,內部節(jié)點表示元素或者屬性,葉節(jié)點表示元素或屬性的值,邊表示元素子元素、元素值和屬性值等結構關系[12]。

      XML提供一個跨平臺機制,不僅能夠完整清晰地表達數據的結構和內容,方便對數據進行管理、儲存和溝通;而且還具有適應性強、靈活性高、擴展性好、語義性強、結構性強、格式簡單、具備自描述性、獨立性和支持豐富的數據類型等特點[13,14]。XML作為一種數據交換格式,能夠實現數據內容與形式的分離,可以根據實際需求建立有復雜層次的數據模型,并能夠保持嚴密的規(guī)范使之具有較高的可讀性。XML還可以很方便地對各種不同類型的數據進行描述,便于對數據進行整合和處理,能夠提升數據管理效率[15]?;谝陨蟽?yōu)勢,XML在許多領域得到了廣泛應用,具有良好的可靠性與互操作性[16]。因此,XML對于大型的復雜文檔是一種較為理想的語言。

      基于XML使用STDU XML Editor Portable建立的ARINC429總線數據解碼庫如圖5所示。

      Figure 5 Example of ARINC429 decoding library in XML format圖5 XML格式的ARINC429解碼庫示例

      3.2 基于XML的解碼庫解碼算法

      基于XML建立的ARINC429總線數據解碼庫需要配套的解碼軟件進行解碼。解碼軟件對采集到的ARINC429數據字解碼并展示當前數據字具體參數的含義,這樣工程人員能夠直觀地看到系統狀態(tài)和參數的變化,進而縮短系統調試時間。解碼軟件和解碼數據庫在仿真測試平臺中的位置如圖6所示。

      Figure 6 Position of decoding software in simulation platform圖6 解碼軟件在仿真平臺中的位置

      在ARINC429規(guī)范中,以BNR、BCD和DIS共3種數據類型組合而成的數據字最為常見。在對ARINC429數據字進行解碼時,首先按照數據塊Parameter的大小對ARINC429數據字進行分割,然后根據XML文件中的“DataType”屬性獲取當前數據塊的數據類型,根據不同的數據類型執(zhí)行相應的子函數進行解碼。其中,離散型數據利用一個二進制位來表示,諸如開關的斷開與閉合之類的狀態(tài)量,比較簡單不再做詳細介紹,本文主要說明BNR和BCD類型的解碼。

      3.2.1 BNR數據類型的解碼

      BNR是二進制編碼,解碼時首先需要將二進制數據轉化為十進制;然后根據“SigBits”獲取BNR數據的起始位與終止位;接著判斷符號位,若符號位為正則直接進行加權求和,反之需要先將有效位的二進制碼取補碼(即反碼加一),對補碼進行加權求和。

      計算公式如式(1)所示:

      (1)

      其中,i表示當前二進制數的位置,即第幾位;L表示二進制數的總位數減1;Ei表示當前二進制數的值。

      3.2.2 BCD數據類型的解碼

      BCD碼是二進制編碼的十進制數,即用二進制數來表示十進制數。首先根據“SigBits”獲取BCD數據的起始位與終止位;然后通過移位再相與的方式取出特定的部分;最后將取出來的數據轉換為十進制數。

      計算公式如式(2)所示:

      (2)

      其中,i表示當前BCD數的位置,即第幾位;L表示BCD數的總位數減1;Bi表示當前BCD數轉換的十進制數值。

      3.2.3 數據還原

      為了獲取數據真實的物理含義,需要使用之前定義的調整數“Adjustment”和分辨率“Resolution”對數據進行還原,先用分辨率“Resolution”進行比例調整,再用調整數“Adjustment”進行基值調整。

      計算公式如式(3)所示:

      Dacc=Value×Res+Adj

      (3)

      其中,Dacc表示精確值;Value表示直接解碼得到的數據;Res表示分辨率;Adj表示調整數。

      以圖2所示的甚高頻全向信標頻率字為例進行解碼,如式(4)所示:

      100×0+101×3+102×9+103×0=930 MHz

      (4)

      由于甚高頻全向信標頻率字的分辨率為0.01 MHz,調整數為100,因此精確值如式(5)所示:

      Dacc=Value×Res+Adj=

      930×0.01+100=109.3 MHz

      (5)

      4 實驗結果及分析

      將建立的XML解碼庫接入到某型國產飛機航電系統通信導航半實物仿真平臺上對本文提出的描述進行驗證。該平臺主要仿真部分通信和導航組件的輸入輸出接口特性,包含HF(High Frequency)、VHF(Very High Frequency)、NAV(NAVigation)、DME(Distance Measuring Equipment)、GPS(Global Positioning System)5類10個組件的接口仿真,具體表現為VHF4000、HF9301A、DME4000和NAV4000系列組件的邏輯功能仿真以及符合 ARINC429標準的電氣接口仿真。仿真平臺從數據采集板卡接收組件的ARINC429數據字,按照組件工作邏輯完成數據字的解碼和轉譯,然后根據組件功能邏輯在對應的ARINC429輸出接口上輸出數據。

      以該型飛機航電系統通信導航半實物仿真平臺中DME的動態(tài)仿真為例,在進行總線數據測試時,通過編寫的程序調用XML格式的解碼庫查找該數據并進行解析。解碼結果如圖7所示。

      Figure 7 Dynamic simulation interface of DME in simulation platform圖7 仿真平臺中DME的動態(tài)仿真界面

      由圖7可知,DME仿真組件的“Tune Port A”接收到的ARINC429數據字為0x060001B8,查找相應的DME頻率數據字定義可知,解析結果應為:

      DME頻率:118.00 MHz;

      NAV模式:VOR;

      DME模式:Standby Off。

      仿真平臺解析得到的結果與預期結果一致。

      為了驗證該解碼庫的普適性,對該平臺采集到的所有數據進行測試。經測試,仿真平臺中的5類10個仿真組件共32路數據都可以正確地對ARINC429數據字進行解碼,這表明基于XML建立的ARINC429數據解碼庫能夠對航電系統通信導航半實物仿真平臺采集到的數據進行正確解碼。

      利用這種方法進行總線測試時,工程人員不需要翻閱查詢ICD就可以快速獲取到直觀的測試數據,縮短了故障定位時間。通過對比在半實物仿真平臺中使用基于XML建立解碼庫的方式與原系統直接將數據寫入到程序中的方式,前者具有以下優(yōu)勢:

      (1) 實現了測試軟件與數據庫的分離。編碼庫與測試軟件相互獨立,測試軟件中不直接包含編碼庫,而是以調用的方式進行使用。還可以方便地修改解碼庫中編碼的定義,無需再修改軟件代碼和重新編譯。

      (2) 降低了軟件維護的工作量。相同的數據類型具有相同的解碼算法,可以使用同一個解碼子函數進行解碼,與將ICD中的數據直接寫入到程序中相比減少了代碼量。

      (3) XML具有良好的跨平臺性,為后期系統的擴展性以及數據庫的移植提供了便利。

      5 結束語

      本文基于ARINC429規(guī)范中的“MARK 33 DIGITAL INFORMATION TRANSFER SYSTEM (DITS) PART 1”文件分析了ARINC429編碼的一般類型,提出了使用樹形結構的ARINC429數據映射方法,并基于XML的樹形結構與相關ICD文件建立了ARINC429數據的解碼庫。該解碼庫保留了數據的原結構,能夠使用一個節(jié)點對數據進行完整描述;而且該解碼庫獨立于仿真測試軟件,采用調用解碼庫的方式進行解碼,相較于之前將數據定義寫入解碼程序中的方式,該描述方法實現了編碼庫與編程語言、開發(fā)平臺的分離,因此不需要修改解碼程序就能夠方便地對數據的定義進行增減刪改,統一的描述規(guī)則使得解碼程序可以復用,降低了編解碼代碼總量,大大降低了維護難度,且具有高度可移植性。

      猜你喜歡
      航電數據類型二進制
      用二進制解一道高中數學聯賽數論題
      中等數學(2021年8期)2021-11-22 07:53:38
      詳談Java中的基本數據類型與引用數據類型
      如何理解數據結構中的抽象數據類型
      數碼世界(2020年5期)2020-06-23 00:14:36
      有趣的進度
      二進制在競賽題中的應用
      中等數學(2019年4期)2019-08-30 03:51:44
      民用飛機航電系統虛擬教學資源建設
      電子制作(2019年7期)2019-04-25 13:18:30
      某型無人直升機航電艙熱設計優(yōu)化
      航電樞紐清污系統改造
      株洲航電樞紐增效擴容淺析
      一個生成組合的新算法
      如皋市| 科技| 孟连| 阿荣旗| 三原县| 瑞昌市| 广昌县| 临洮县| 黔江区| 凉城县| 土默特右旗| 石嘴山市| 县级市| 台北市| 那坡县| 南宫市| 石林| 卢龙县| 白山市| 大荔县| 高台县| 文成县| 泾阳县| 新兴县| 通海县| 巨鹿县| 安泽县| 绥阳县| 盖州市| 黑山县| 安图县| 福清市| 婺源县| 喀什市| 墨竹工卡县| 垫江县| 梁平县| 昭平县| 石景山区| 易门县| 衡南县|