常永亮 王霖萱 常馨蓉
1(中國飛行試驗研究院 陜西 西安 710089) 2(貴州大學 貴州 貴陽 550025) 3(榆林學院 陜西 榆林 719000)
MIL-STD-1553數(shù)據(jù)總線[1]是美國軍方專為飛機上設備制定的一種信息傳輸總線標準,也就是設備間傳輸?shù)膮f(xié)議。由于它具有雙向輸出特性、實時性和可靠性高,廣泛應用在當代的運輸機和相當數(shù)量的民航客機以及軍用飛機上,航天系統(tǒng)也有廣泛的應用。 現(xiàn)代軍用飛機將武器、雷達等電子系統(tǒng)通過總線系統(tǒng)交聯(lián),實現(xiàn)了飛行控制、智能化地面指揮,使各系統(tǒng)間通信效率增高,修改、擴充和維護簡便,大幅度提升軍機的作戰(zhàn)能力。在飛機試飛領域,主要通過1553B總線數(shù)據(jù)對武器、雷達、飛機平臺等電子系統(tǒng)總線系統(tǒng)數(shù)據(jù)的準確判讀,鑒定各系統(tǒng)性能。在飛行實驗中1553B總線數(shù)據(jù)源于機載記錄100%1553B總線數(shù)據(jù),將數(shù)據(jù)準確處理是飛機定型或后續(xù)排故的關鍵環(huán)節(jié)。
1553B總線數(shù)據(jù)處理在飛機定型或后續(xù)各電子系統(tǒng)交聯(lián)應用期間占據(jù)非常重要的位置,準確、快速地處理更是提高飛機各系統(tǒng)定型的關鍵環(huán)節(jié)。目前使用的1553B總線數(shù)據(jù)處理程序包括兩大部分:一是接口控制文件ICD(Interface Control Document)管理數(shù)據(jù)庫ICD_MDb(ICD management database);二是基于ICD數(shù)據(jù)庫處理程序。1553B總線數(shù)據(jù)處理流程為:先在機載記錄盤中卸載相關1553B總線數(shù)據(jù),再將數(shù)據(jù)轉(zhuǎn)換成目前程序要求處理的格式,再按要求處理相關總線消息(每條消息最長由32個字組成,所有的字分為三類:命令字、數(shù)據(jù)字和狀態(tài)字)。目前應用的總線處理程序處理每一個消息都要對總線數(shù)據(jù)遍歷一遍查找對應的消息。找到后再在數(shù)據(jù)庫中查找相應消息定義,并按消息中字的定義進行解析輸出。處理一個消息用時與飛行時間大體相當,處理用時會隨消息多少而增減,處理效率較低。
針對目前1553B總線數(shù)據(jù)處理用時長、越來越不能滿足飛機試飛中客戶急切的需求。研究新的1553B總線數(shù)據(jù)處理模式,縮短總線處理用時,提高總線數(shù)據(jù)處理效率已成為必然。本文提出新的處理理念:一是重新設計ICD_MDb,減少數(shù)據(jù)庫檢索層次、次數(shù);二是基于新ICD_MDb設計程序架構(gòu)采用并行處理思路;三是精簡數(shù)據(jù)處理環(huán)節(jié)。通過對上述思路的實現(xiàn),使1553B總線數(shù)據(jù)處理用時大幅減少,處理消息越多,處理減少倍數(shù)越多,最終達到高效處理1553B總線數(shù)據(jù)的目的。
為了更好地闡述本文所關注的問題,通過圖表介紹傳統(tǒng)1553B總線處理技術的處理效率。在同一處理設備環(huán)境、飛行時間、處理時間下,對不同個數(shù)消息處理用時結(jié)果如表1所示。
表1 1553B總線數(shù)據(jù)不同消息數(shù)處理用時
通過表1可以看出,1553B總線消息處理用時隨著消息個數(shù)遞增,處理用時大約會成倍增加,并且每個PC只能運行一個處理例程,解析1553B消息總體是串行處理。如果處理多個1553B消息要對1553B數(shù)據(jù)進行多次搜索消息操作,導致1553B總線數(shù)據(jù)處理用時多、效率較低。
提高1553B總線數(shù)據(jù)處理效率、減少數(shù)據(jù)處理用時。關鍵技術是將ICD_MDb數(shù)據(jù)庫中表結(jié)構(gòu)進行全新設計,從機載數(shù)據(jù)源卸載到處理數(shù)據(jù)減少人工處理環(huán)節(jié),減少讀寫數(shù)據(jù)與訪問ICD_MDb次數(shù),分析消息、字解釋都在內(nèi)存中完成,對消息、字的處理采用并行處理模式,減少輸出文件。如圖1所示。
圖1 1553B總線數(shù)據(jù)高效處理設計思路框圖
2.2.1ICD_MDb表設計
1553B ICD詳盡描述了武器各電子設備之間互聯(lián)的接口信號組成,1553B總線數(shù)據(jù)正確處理關鍵之一是對ICD信息合理管理。本著一切從簡從易的原則,在此選用Microsoft Office Access。Microsoft Office Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個數(shù)據(jù)庫管理系統(tǒng)。其最大的優(yōu)點是易學、數(shù)據(jù)處理能力強大,滿足對ICD信息合理管理的要求。還有一個好處,能同時運行幾個程序加載不同或相同ICD_MDb并行處理1553B總線數(shù)據(jù),并行處理大幅減少數(shù)據(jù)處理時間,大大提高對1553B總線數(shù)據(jù)處理效率。傳統(tǒng)處理技術在同一臺PC上處理兩個起落1553B數(shù)據(jù)只能是串行處理模式,現(xiàn)在用新的數(shù)據(jù)庫技術可以并行處理兩個起落1553B數(shù)據(jù)而互不影響。ICD_MDb表結(jié)構(gòu)圖見圖2。
圖2 ICD_MDb表結(jié)構(gòu)圖
總線消息表:入庫、編輯1553B ICD消息的管理。
消息中數(shù)據(jù)字表:入庫、編輯1553B ICD消息中字的解析管理。
處理消息表:要處理消息的增減管理。
消息中命令字表:管理命令字及字地址信息。
2.2.21553B數(shù)據(jù)處理結(jié)構(gòu)設計
1553B數(shù)據(jù)高效處理不但要優(yōu)化、組合處理環(huán)節(jié),而且對重要環(huán)節(jié)重新設計。傳統(tǒng)技術要對原始數(shù)據(jù)進行二次轉(zhuǎn)換處理才能進行1553B消息處理操作。現(xiàn)在,直接對原始數(shù)據(jù)進行操作,取消中間二次轉(zhuǎn)換環(huán)節(jié),這樣一來,節(jié)約了數(shù)據(jù)文件轉(zhuǎn)換操作時間。原始數(shù)據(jù)文件中1553B消息正確搜索,是正確處理的關鍵,1553B消息搜索算法主要基于以下三種情況:
① BC->RT數(shù)據(jù)傳輸;
② RT->BC數(shù)據(jù)傳輸;
③ RT->RT數(shù)據(jù)傳輸。
1553B數(shù)據(jù)是由命令字、數(shù)據(jù)字、狀態(tài)字組成消息序列,命令字由遠程終端地址、發(fā)送/接收、子地址、數(shù)據(jù)字計數(shù)組成。通過對命令字、狀態(tài)字解析,在數(shù)據(jù)中查找相應的消息,通過查詢命令字搜索消息,并按要求將數(shù)據(jù)字解析輸出。
ICD_MDb中的消息、字通過以下3個數(shù)據(jù)結(jié)構(gòu)進行操作。
(1) 消息數(shù)據(jù)結(jié)構(gòu)定義:
typedef struct DBTABLE1{
BOOL 總線類型;
Char* 消息名;
BYTE 發(fā)送終地址;
BOOL 收/發(fā);
BYTE 子地址;
WORD 參數(shù)個數(shù);
Char* 字集合;
}dbTable1;
(2) 字數(shù)據(jù)結(jié)構(gòu)定義:
typedef struct DBTABLE2{
BOOL 符號位;
Char* 字名;
BYTE 操作類型;
double 系數(shù);
Char* 起始結(jié)束位;
Char* 位說明1;
Char* 位說明2;
BYTE 備用1;
Char* 備用2;
}dbTable2;
(3) 數(shù)據(jù)處理結(jié)構(gòu)定義:
typedef struct DIS1553B_DATA_CONFIG{
BusMsg_1553B 1553B文件數(shù)據(jù)結(jié)構(gòu);
dbTable1 表1;
dbTable2 表2;
char* 1553B消息;
}Dis1553B_Data_Config;
通過以上數(shù)據(jù)結(jié)構(gòu)將ICD_MDb要處理1553B消息組結(jié)構(gòu)化,三個數(shù)據(jù)結(jié)構(gòu)對應三個數(shù)據(jù)庫表,簡化了數(shù)據(jù)庫結(jié)構(gòu),操作在不影響結(jié)果的情況下更加簡潔。在數(shù)據(jù)處理前先將要處理的1553B消息組、相關字解析說明一次讀入內(nèi)存,數(shù)據(jù)文件中查找要處理1553B消息時不用再訪問ICD_MDb中相應1553B消息、字等信息,訪問ICD_MDb次數(shù)控制將大大減少1553B數(shù)據(jù)處理時間。
2.2.31553B數(shù)據(jù)并行處理技術設計
通過簡化數(shù)據(jù)源操作、ICD_MDb數(shù)據(jù)庫設計、數(shù)據(jù)處理數(shù)據(jù)結(jié)構(gòu)設計已經(jīng)大幅減少1553B總線數(shù)據(jù)處理時間,再對數(shù)據(jù)處理技術進行全新設計,讓1553B數(shù)據(jù)處理進一步縮短用時提高數(shù)據(jù)處理效率。在此應用了并行處理技術,并行處理技術是很成熟的技術,充分利用系統(tǒng)資源將串行處理轉(zhuǎn)換成并行處理,節(jié)約數(shù)據(jù)處理時間。
并行處理指操作系統(tǒng)中能同時執(zhí)行兩個或更多個處理的一種計算方法。并行處理可同時工作于同一程序的不同方面。并行處理的主要目的是節(jié)省大型和復雜問題的解決時間。將1553B數(shù)據(jù)中將要處理的每個消息用單獨的線程處理,有幾個要處理1553B消息就創(chuàng)建幾個線程,如圖3所示。
圖3 1553B數(shù)據(jù)消息并行處理框圖
從理論上講1553B數(shù)據(jù)中消息并行處理,在n個并行處理速度可能會是串行處理的速度的n倍。如圖4所示。
圖4 1553B數(shù)據(jù)處理流程圖
1553B數(shù)據(jù)處理流程如下:
① 加載正確的1553B原始數(shù)據(jù),如果加載失敗或沒加載則重新加載;
② 加載正確ICD_MDb數(shù)據(jù)庫,如果加載失敗或沒加載則重新加載;
③ 加載要處理的1553B消息組;
④ 創(chuàng)建處理1553B消息組線程,每個處理線程處理一個1553B消息;
⑤ 創(chuàng)建原始數(shù)據(jù)中搜索相應消息、消息中字信息提取、與相應消息處理線程進行數(shù)據(jù)交互等線程;
⑥ 并行同步處理,主要對消息搜索、數(shù)據(jù)字解析、結(jié)果輸出的同步處理,如果沒有同步處理會有數(shù)據(jù)丟失現(xiàn)象;
⑦ 搜索到相應1553B消息后對數(shù)據(jù)字進行解析處理,如果沒有1553B消息則輸出文件為空;
⑧ 1553B消息、1553B數(shù)據(jù)字處理結(jié)果輸出。
新技術通過實踐應用才能得到驗證,用新1553B數(shù)據(jù)消息處理技術與傳統(tǒng)1553B數(shù)據(jù)消息處理技術對同一架次1553B總線數(shù)據(jù)處理用時進行比較。
處理條件:
① 數(shù)據(jù)記錄時間200分鐘;
② 處理相同的1553B消息;
③ 全程進行1553B消息分析,輸出結(jié)果;
④ 比較用時。
表2是兩種技術處理不同消息數(shù)的用時比較。
表2 兩種技術處理不同消息數(shù)用時
通過處理用時可以看出,新技術比傳統(tǒng)技術數(shù)據(jù)處理用時大幅減少,新技術結(jié)果輸出文件只有兩個。一個是消息、字解析文件,通過此文件可直觀查看結(jié)果。另一個是消息中數(shù)據(jù)字十六進制全部輸出文件,通過此文件與相應1553B ICD中消息、字說明可方便查比輸出結(jié)果是否準確。
本文針對傳統(tǒng)1553B總線數(shù)據(jù)處理方法用時長等缺點,提出新的1553B總線數(shù)據(jù)處理技術。新的技術針對ICD管理數(shù)據(jù)庫、數(shù)據(jù)源選用、查詢數(shù)據(jù)源消息方法、消息及字解析等進行技術優(yōu)化創(chuàng)新,總體將傳統(tǒng)串行處理技術改為并行處理技術。使1553B總線數(shù)據(jù)處理用時大幅減少,提高數(shù)據(jù)處理效率。經(jīng)一段時間對飛行數(shù)據(jù)處理結(jié)果表明,高效數(shù)據(jù)技術用時短,結(jié)果準確,ICD_MDb簡潔方便。本文提出的1553B總線數(shù)據(jù)高效處理思路及方法,可應用到其他領域1553B數(shù)據(jù)處理,也可對其他較復雜數(shù)據(jù)處理具有一定借鑒與參考意義。
[1] Richter J.Windows核心編程[M].北京:機械工業(yè)出版社出版,2008.
[2] 正鴻航科.MIL-STD-1553B總線協(xié)議規(guī)范[S/OL].2005.
[3] 曹陽,陸樂,齊韡.基于IRIG106 Chapter 10標準的數(shù)據(jù)記錄系統(tǒng)[J].航空電子技術,2014(2):14-17.
[4] 潘巍,李戰(zhàn)懷.大數(shù)據(jù)環(huán)境下并行計算模型的研究進展[J].華東師范大學學報(自然科學版),2014,2014(5):43-54.
[5] 舒?zhèn)魅A,唐海波,曹贛.1553B總線消息解析方法研究和應用[J].遙測遙控,2015,36(6):57-63.
[6] IRIG-106標準07版,第十章[S].
[7] IRIG-106標準07版,程序員手冊[S].
[8] GJB289A-87標準[S].