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