(航空工業(yè)雷華電子技術(shù)研究所 航空電子系統(tǒng)射頻綜合仿真航空科技重點(diǎn)實(shí)驗(yàn)室,江蘇 無(wú)錫 214063)
隨著作戰(zhàn)環(huán)境的日益復(fù)雜,越來(lái)越多的電子干擾設(shè)備投入使用,使機(jī)載雷達(dá)往往工作在很強(qiáng)的電磁干擾環(huán)境下。復(fù)雜多變的空戰(zhàn)環(huán)境要求機(jī)載雷達(dá)在強(qiáng)地/海雜波、強(qiáng)電磁干擾環(huán)境下對(duì)多個(gè)高速、高機(jī)動(dòng)目標(biāo)同時(shí)探測(cè)和跟蹤,因此要求我們不斷探索新技術(shù)和新算法。但機(jī)載雷達(dá)的新功能、新技術(shù)需要經(jīng)過(guò)大量且多樣的功能試驗(yàn)和驗(yàn)證才能通過(guò)設(shè)計(jì)定型。如果絕大部分功能均由試飛驗(yàn)證,需要耗費(fèi)大量時(shí)間、人力資源及經(jīng)費(fèi)。通過(guò)半實(shí)物仿真方法模擬試飛場(chǎng)景,能夠完成機(jī)載雷達(dá)大部分功能試驗(yàn),既驗(yàn)證雷達(dá)系統(tǒng)功能,又控制研發(fā)進(jìn)度和成本[1-2]。
美國(guó)、西歐、日本等早在上世紀(jì)70年代起就陸續(xù)建立了針對(duì)機(jī)載雷達(dá)、導(dǎo)引頭的半實(shí)物仿真系統(tǒng)。國(guó)內(nèi)在該方面起步較晚,從上世紀(jì)90年代起航空工業(yè)601所等科研單位以及航空院校陸續(xù)建立了小型且針對(duì)性較強(qiáng)的半實(shí)物仿真系統(tǒng)。國(guó)內(nèi)完整且系統(tǒng)性地針對(duì)機(jī)載雷達(dá)構(gòu)建的大型射頻仿真試驗(yàn)系統(tǒng)屈指可數(shù)。為了模擬機(jī)載雷達(dá)高逼真試驗(yàn)場(chǎng)景,本項(xiàng)目開(kāi)展了機(jī)載雷達(dá)射頻仿真試驗(yàn)技術(shù)研究,構(gòu)建了由屏蔽暗室、陣列控制與鏈路饋電系統(tǒng)、三軸轉(zhuǎn)臺(tái)、載機(jī)/目標(biāo)環(huán)境模擬系統(tǒng)、目標(biāo)和環(huán)境仿真系統(tǒng)、視景顯示系統(tǒng)、總控系統(tǒng)等設(shè)備組成的機(jī)載雷達(dá)半實(shí)物射頻仿真試驗(yàn)系統(tǒng),能夠模擬多目標(biāo)環(huán)境、復(fù)雜電磁環(huán)境、復(fù)雜作戰(zhàn)環(huán)境,具備機(jī)載雷達(dá)系統(tǒng)性能的開(kāi)/閉環(huán)測(cè)試和評(píng)估能力,滿足機(jī)載雷達(dá)射頻仿真試驗(yàn)需求。
總控軟件是機(jī)載雷達(dá)半實(shí)物射頻仿真系統(tǒng)的顯示控制核心,它通過(guò)以太網(wǎng)、反射內(nèi)存網(wǎng)等方式與各參試設(shè)備相連,具備對(duì)整個(gè)仿真系統(tǒng)和試驗(yàn)過(guò)程進(jìn)行參數(shù)配置、試驗(yàn)進(jìn)程管理和監(jiān)控等功能。一般試驗(yàn)總控軟件是根據(jù)參試設(shè)備的數(shù)據(jù)協(xié)議開(kāi)發(fā)解析模塊,未嚴(yán)格劃分軟件功能模塊和數(shù)據(jù)交互接口,當(dāng)試驗(yàn)參試設(shè)備發(fā)生變化或數(shù)據(jù)交互協(xié)議發(fā)生更改時(shí),相應(yīng)的軟件功能模塊將無(wú)法重復(fù)使用,往往需要針對(duì)新的數(shù)據(jù)交互協(xié)議、接口重新開(kāi)發(fā)。
為了提高軟件的復(fù)用性,本文提出一種基于模塊化架構(gòu)和可變更數(shù)據(jù)協(xié)議的軟件設(shè)計(jì)方法。該方法基于層次化和模塊化的架構(gòu)自頂向下分層級(jí)設(shè)計(jì)開(kāi)發(fā)軟件功能模塊,并基于可變更的XML數(shù)據(jù)協(xié)議配置文件實(shí)現(xiàn)軟件數(shù)據(jù)接口的配置。該方法將數(shù)據(jù)交互協(xié)議與軟件功能模塊隔離,當(dāng)試驗(yàn)參試設(shè)備發(fā)生變化或數(shù)據(jù)交互協(xié)議發(fā)生更改時(shí),無(wú)需重新開(kāi)發(fā)軟件功能模塊,縮短軟件開(kāi)發(fā)周期,便于軟件移植和升級(jí)。
總控軟件支持仿真試驗(yàn)的參數(shù)設(shè)置、試驗(yàn)進(jìn)程控制、狀態(tài)監(jiān)控,具備與參試設(shè)備數(shù)據(jù)傳輸通信的功能。仿真開(kāi)始之前,總控軟件對(duì)各參試設(shè)備進(jìn)行初始化配置;仿真開(kāi)始后,總控軟件控制整個(gè)系統(tǒng)的運(yùn)行,包括開(kāi)始、暫停、停止,并接收各參試設(shè)備的狀態(tài)回報(bào)和部分試驗(yàn)數(shù)據(jù),完成試驗(yàn)過(guò)程監(jiān)控和可視化顯示。同時(shí),通過(guò)總控軟件可以遠(yuǎn)程登錄參試設(shè)備進(jìn)行參數(shù)加載、文件傳輸?shù)炔僮鳌?/p>
總控軟件自頂向下設(shè)計(jì)為三層架構(gòu):應(yīng)用服務(wù)層、基礎(chǔ)功能層、數(shù)據(jù)接口層,如圖1所示。應(yīng)用服務(wù)層,主要是人機(jī)交互界面;基礎(chǔ)功能層,分為業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層兩部分,能夠?qū)Ψ抡嬖囼?yàn)回路中的各設(shè)備發(fā)送控制指令和參數(shù),同時(shí)接收各設(shè)備返回的狀態(tài)字和試驗(yàn)數(shù)據(jù);數(shù)據(jù)接口層,實(shí)現(xiàn)總控軟件與參試設(shè)備的底層通信,主要包括以太網(wǎng)通信模塊、反射內(nèi)存網(wǎng)通信模塊。
圖1 總體架構(gòu)
本軟件采用兩種方法提高了總控軟件的復(fù)用性:
① 通過(guò)架構(gòu)設(shè)計(jì)將各層級(jí)間的功能模塊相互獨(dú)立,即將軟件中與參試設(shè)備和數(shù)據(jù)交互協(xié)議無(wú)關(guān)的功能模塊化,提高軟件模塊的重用性;
② 針對(duì)依賴數(shù)據(jù)交互協(xié)議較大的數(shù)據(jù)收發(fā)、數(shù)據(jù)解析等功能,提出一種基于配置文件的接口協(xié)議配置方法,將數(shù)據(jù)交互協(xié)議與軟件功能模塊隔離,方便軟件功能模塊移植復(fù)用。
設(shè)計(jì)的總控軟件通過(guò)以太網(wǎng)、反射內(nèi)存網(wǎng)與參試設(shè)備相連,采用面向?qū)ο蟮姆绞椒謩e實(shí)現(xiàn)通信功能。
(1) 以太網(wǎng)通信模塊。
以太網(wǎng)通信模塊主要用于各參試設(shè)備之間數(shù)據(jù)文件傳輸以及互聯(lián)設(shè)備遠(yuǎn)程登錄。
本仿真系統(tǒng)選用Intel 82573系列網(wǎng)卡作為以太網(wǎng)絡(luò)節(jié)點(diǎn)板卡,采用基于Socket的網(wǎng)絡(luò)通信方式實(shí)現(xiàn)總控系統(tǒng)與其他參試設(shè)備之間的通信。具體方法為通過(guò)創(chuàng)建Socket,實(shí)現(xiàn)Socket與本地IP地址以及指定端口號(hào)的綁定,以此協(xié)調(diào)和控制各個(gè)節(jié)點(diǎn)機(jī)之間的UPD通信,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送、接收[3-4]。
(2) 反射內(nèi)存網(wǎng)模塊。
反射內(nèi)存網(wǎng)是一種專用的高速實(shí)時(shí)網(wǎng)絡(luò),主要由反射內(nèi)存卡和光纖連接組成,每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的內(nèi)存區(qū)域中的數(shù)據(jù)在整個(gè)網(wǎng)絡(luò)中處于共享狀態(tài)[5]。
本仿真系統(tǒng)基于VMIPCI-5565反射內(nèi)存卡搭建反射內(nèi)存網(wǎng)絡(luò),采用HUB的星形連接方式實(shí)現(xiàn)了各參試設(shè)備之間的試驗(yàn)數(shù)據(jù)、試驗(yàn)控制命令與試驗(yàn)狀態(tài)字的傳輸(見(jiàn)圖2)。具體方法為定義每個(gè)參與設(shè)備的反射內(nèi)存卡的Node ID值(區(qū)分參與設(shè)備的身份);分配反射內(nèi)存網(wǎng)的存儲(chǔ)空間,明確每個(gè)設(shè)備存儲(chǔ)空間的首地址和數(shù)據(jù)長(zhǎng)度;再定義每個(gè)參數(shù)的地址和長(zhǎng)度。參試設(shè)備之間的數(shù)據(jù)交互是通過(guò)發(fā)生中斷事件來(lái)實(shí)現(xiàn)的,具體而言是調(diào)用RFM2gWrite、RFM2gEnableEvent、RFM2gSendEvent等函數(shù)來(lái)實(shí)現(xiàn)交互[6]。
圖2 機(jī)載雷達(dá)仿真系統(tǒng)抽象通信模型
數(shù)據(jù)訪問(wèn)層中的接口協(xié)議配置模塊具有非常重要的功能,承載著業(yè)務(wù)邏輯層與數(shù)據(jù)接口層之間的數(shù)據(jù)交互和解析功能。主要是根據(jù)數(shù)據(jù)交互協(xié)議完成軟件接口的配置,實(shí)現(xiàn)與數(shù)據(jù)接口層之間的對(duì)接;實(shí)現(xiàn)與業(yè)務(wù)邏輯層之間的試驗(yàn)控制命令、參試設(shè)備狀態(tài)字和試驗(yàn)數(shù)據(jù)的發(fā)送/接收等功能。
(1) 接口配置。
通過(guò)配置文件對(duì)通信接口進(jìn)行配置,配置文件是按照xml文件的形式實(shí)現(xiàn)并規(guī)范[7],如圖3所示。對(duì)于總控軟件與不同參試設(shè)備的數(shù)據(jù)接口,可以按照協(xié)議修改配置文件,將需要傳輸?shù)臄?shù)據(jù)按照約定的數(shù)據(jù)協(xié)議進(jìn)行定義和修改,實(shí)現(xiàn)了接口協(xié)議的可變更。
圖3 數(shù)據(jù)接口配置文件
(2) 數(shù)據(jù)的打解包。
總控軟件在數(shù)據(jù)收發(fā)過(guò)程中,是按照正在使用的通信板卡的數(shù)據(jù)協(xié)議進(jìn)行數(shù)據(jù)的打解包,不同的通信板卡有不同的打包和解包算法。例如傳輸?shù)脑囼?yàn)數(shù)據(jù)、試驗(yàn)控制命令等,就要按照約定的反射內(nèi)存網(wǎng)數(shù)據(jù)協(xié)議進(jìn)行打包和解包。
在打包和解析過(guò)程中,需要檢查報(bào)文的合法性,幀頭不正確的報(bào)文會(huì)被認(rèn)為解包失敗。同時(shí),為避免數(shù)據(jù)傳輸中的精度損失,需要進(jìn)行一定的數(shù)據(jù)類型變換和比例縮放。例如在打包發(fā)送時(shí),需要將浮點(diǎn)型轉(zhuǎn)換為無(wú)符號(hào)整型,在解包時(shí)進(jìn)行反變換;如果傳輸?shù)臄?shù)據(jù)數(shù)值較大,需要按照一定的比例進(jìn)行變換,如目標(biāo)距離、載機(jī)經(jīng)緯度等數(shù)據(jù),需要進(jìn)行比例縮放確保精度。
接口協(xié)議配置將數(shù)據(jù)交互接口與業(yè)務(wù)邏輯層中的軟件功能模塊完全隔離,避免因?yàn)閿?shù)據(jù)接口或協(xié)議更改導(dǎo)致代碼重新編寫的問(wèn)題,提髙代碼的重用性。
業(yè)務(wù)邏輯層向下借助數(shù)據(jù)訪問(wèn)層進(jìn)行數(shù)據(jù)讀寫,向上為應(yīng)用服務(wù)層提供服務(wù),完成邏輯定義和邏輯執(zhí)行。業(yè)務(wù)邏輯層主要由參數(shù)配置模塊、試驗(yàn)進(jìn)程控制模塊、狀態(tài)監(jiān)控模塊組成,以下對(duì)每個(gè)模塊的功能進(jìn)行具體介紹。
2.3.1 參數(shù)配置模塊
參數(shù)配置模塊主要包括界面參數(shù)獲取、參數(shù)有效性檢查兩項(xiàng)功能。
(1) 界面參數(shù)獲取。
試驗(yàn)中在總控軟件界面上設(shè)置試驗(yàn)任務(wù)參數(shù)、雷達(dá)參數(shù)、通道參數(shù)、參試設(shè)備參數(shù),通過(guò)從界面上獲取參數(shù)實(shí)現(xiàn)總控軟件對(duì)整個(gè)試驗(yàn)的設(shè)置。
(2) 參數(shù)有效性檢查。
總控軟件從界面上獲取參數(shù)后,需要通過(guò)參數(shù)有效性檢查功能驗(yàn)證所設(shè)置的參數(shù),以及從全局角度驗(yàn)證設(shè)置參數(shù)的合理性。在參數(shù)設(shè)置合理的情況下進(jìn)行系統(tǒng)參數(shù)配置,如果參數(shù)不合理,向用戶發(fā)出告警。
2.3.2 試驗(yàn)進(jìn)程控制模塊
機(jī)載雷達(dá)射頻仿真試驗(yàn)的試驗(yàn)流程包括試驗(yàn)準(zhǔn)備階段、試驗(yàn)執(zhí)行階段,如圖4所示。
圖4 試驗(yàn)流程圖
(1) 試驗(yàn)準(zhǔn)備階段。
總控軟件通過(guò)掃描設(shè)備、任務(wù)分配、設(shè)備初始化等步驟,可以根據(jù)不同的試驗(yàn)任務(wù)選擇參加本次試驗(yàn)的設(shè)備進(jìn)行初始化配置。
(2) 試驗(yàn)執(zhí)行階段。
試驗(yàn)準(zhǔn)備階段完成后進(jìn)入試驗(yàn)執(zhí)行階段,即開(kāi)始試驗(yàn)進(jìn)程控制,根據(jù)功能可分為自檢進(jìn)程控制和仿真進(jìn)程控制。只有在自檢進(jìn)程成功后,才能開(kāi)始仿真進(jìn)程。
① 自檢進(jìn)程控制。
在自檢狀態(tài)下,由總控軟件發(fā)出自檢指令,所有參試設(shè)備在接收到指令后進(jìn)行自檢,并返回自檢結(jié)果。總控軟件在自檢進(jìn)程中只發(fā)送自檢開(kāi)始控制字,并設(shè)定一定的時(shí)限,參試設(shè)備超時(shí)未返回自檢信息,則認(rèn)為自檢失敗。
② 仿真進(jìn)程控制模塊。
仿真進(jìn)程主要控制仿真模式下的雷達(dá)仿真試驗(yàn)。通過(guò)總控軟件設(shè)置仿真試驗(yàn)?zāi)J胶头抡鎱?shù),各參試設(shè)備根據(jù)仿真模式?jīng)Q定是否參與試驗(yàn)和接收參數(shù)??偪剀浖刂普麄€(gè)仿真系統(tǒng)的仿真進(jìn)程,包括參數(shù)下載、開(kāi)始仿真、暫停仿真、繼續(xù)仿真、停止仿真和急停斷電。仿真進(jìn)程控制的工作流程如圖5所示。
圖5 仿真進(jìn)程控制流程圖
2.3.3 狀態(tài)監(jiān)控模塊
狀態(tài)監(jiān)控模塊主要是刷新參試設(shè)備狀態(tài)并反饋至總控軟件界面顯示,主要包括狀態(tài)刷新、圖表刷新兩個(gè)功能,刷新頻率為50 ms/次。
(1) 狀態(tài)刷新模塊。
狀態(tài)刷新模塊主要是通過(guò)以太網(wǎng)對(duì)仿真系統(tǒng)中各參試設(shè)備的狀態(tài)進(jìn)行實(shí)時(shí)刷新顯示在軟件界面上,并能夠以不同的顏色對(duì)不同的狀態(tài)進(jìn)行區(qū)分。狀態(tài)轉(zhuǎn)換圖如圖6所示。
圖6 參試設(shè)備四種狀態(tài)轉(zhuǎn)換圖
試驗(yàn)開(kāi)始前各個(gè)設(shè)備處于Offline狀態(tài)(參試設(shè)備離線),當(dāng)掃描設(shè)備時(shí),掃描成功的設(shè)備狀態(tài)轉(zhuǎn)為Normal(設(shè)備連接正常),掃描失敗的設(shè)備狀態(tài)認(rèn)為Error(設(shè)備連接斷開(kāi))。在正常狀態(tài)下,當(dāng)任務(wù)分配成功后設(shè)備狀態(tài)轉(zhuǎn)為Enable(可以對(duì)設(shè)備進(jìn)行遠(yuǎn)程登錄操作),任務(wù)分配失敗設(shè)備狀態(tài)仍為Normal,在Normal和Enable下如果網(wǎng)絡(luò)連接斷開(kāi)直接轉(zhuǎn)為Error,在Error情況下掃描設(shè)備成功只能轉(zhuǎn)為Normal。
(2) 圖表刷新模塊。
在試驗(yàn)過(guò)程中,圖表刷新模塊會(huì)對(duì)參試設(shè)備的狀態(tài)數(shù)據(jù)通過(guò)圖表的形式實(shí)時(shí)更新顯示在軟件界面上。
應(yīng)用服務(wù)層主要是人機(jī)交互界面(見(jiàn)圖7),按照功能的不同,該界面可以進(jìn)一步分為菜單欄、工具欄、狀態(tài)顯示區(qū)、參數(shù)設(shè)置區(qū)、狀態(tài)顯示區(qū)等幾個(gè)部分。
圖7 人機(jī)交互界面
通過(guò)軟件界面可根據(jù)不同的試驗(yàn)任務(wù)進(jìn)行自檢、掃描設(shè)備、任務(wù)分配、參數(shù)設(shè)置、初始化等試驗(yàn)準(zhǔn)備工作,以及進(jìn)行開(kāi)始試驗(yàn)、停止試驗(yàn)、斷電急停等試驗(yàn)進(jìn)程控制;軟件通過(guò)接收業(yè)務(wù)邏輯層發(fā)送的數(shù)據(jù)并實(shí)時(shí)刷新軟件界面,將參試設(shè)備狀態(tài)、試驗(yàn)進(jìn)程在界面上進(jìn)行圖表顯示。
目前,本軟件已經(jīng)用于某項(xiàng)目的仿真試驗(yàn)中。在該仿真系統(tǒng)中,總控計(jì)算機(jī)通過(guò)反射內(nèi)存網(wǎng)、以太網(wǎng)與轉(zhuǎn)臺(tái)、載機(jī)/目標(biāo)環(huán)境模擬系統(tǒng)、視景系統(tǒng)、陣列、各類模擬器通信,系統(tǒng)硬件結(jié)構(gòu)見(jiàn)圖8。圖9是某型機(jī)載雷達(dá)天線校準(zhǔn)試驗(yàn)的試驗(yàn)界面。
圖8 系統(tǒng)硬件結(jié)構(gòu)
圖9 某型機(jī)載雷達(dá)天線校準(zhǔn)試驗(yàn)界面
本文基于層次化、模塊化的軟件架構(gòu),以及可變更的接口協(xié)議設(shè)計(jì)開(kāi)發(fā)了機(jī)載雷達(dá)半實(shí)物射頻仿真試驗(yàn)系統(tǒng)的總控軟件,解決了傳統(tǒng)總控軟件不具備復(fù)用性的問(wèn)題,并提高了軟件的可擴(kuò)展性和可維護(hù)性。本文設(shè)計(jì)開(kāi)發(fā)的總控軟件具備試驗(yàn)參數(shù)配置、試驗(yàn)進(jìn)程控制、試驗(yàn)狀態(tài)監(jiān)控等功能,實(shí)現(xiàn)了通過(guò)軟件選擇參試設(shè)備、設(shè)置試驗(yàn)參數(shù)的方式對(duì)試驗(yàn)?zāi)J竭M(jìn)行動(dòng)態(tài)配置,擴(kuò)展了仿真試驗(yàn)系統(tǒng)的功能。目前該軟件已用于機(jī)載雷達(dá)半實(shí)物射頻仿真試驗(yàn),取得了較好的使用效果。但該軟件還有一些可改進(jìn)之處,后續(xù)還會(huì)根據(jù)需求發(fā)展變化擴(kuò)展出許多不同的模塊功能,進(jìn)一步提高軟件的實(shí)用性。