謝前進(jìn),張梅梅,張 俊,汪高峰,王利祥
(中航工業(yè)洪都,江西南昌330024)
在航電系統(tǒng)地面聯(lián)試中,由于航電系統(tǒng)頂層設(shè)計(jì)經(jīng)常需要修改和完善,因而航電系統(tǒng)也需要進(jìn)行相應(yīng)的修改和調(diào)試。一般而言,對(duì)航電系統(tǒng)的修改和調(diào)試需要相應(yīng)的航電系統(tǒng)設(shè)備配合才能完成。但是,在型號(hào)試驗(yàn)前期,通常只有部分航電成件參與航電系統(tǒng)的調(diào)試、試驗(yàn),因此,為了保證試驗(yàn)中航電系統(tǒng)的完整性,需要使用各種航電系統(tǒng)設(shè)備仿真器來(lái)替代真實(shí)成件,仿真各種相關(guān)的總線信號(hào)。現(xiàn)階段,國(guó)內(nèi)各飛機(jī)總體所開(kāi)發(fā)的航電系統(tǒng)設(shè)備仿真器都是根據(jù)某個(gè)具體航電設(shè)備的要求“量身定做”的,一般是直接用軟件代碼描述被仿真對(duì)象的行為和屬性等信息,再配合一些底層硬件接口來(lái)實(shí)現(xiàn)的。這樣的方法有兩個(gè)缺點(diǎn),一個(gè)是缺乏通用性,不同航電設(shè)備的仿真系統(tǒng)不能通用;再一個(gè)是缺乏靈活性,因?yàn)樗苯訉⒈环抡鎸?duì)象的信息描述于軟件代碼中,而這些信息在航電系統(tǒng)的設(shè)計(jì)過(guò)程中可能經(jīng)常需要改變,這時(shí)就要頻繁地修改仿真軟件。按照軟件工程的要求,軟件的每次修改都要經(jīng)過(guò)嚴(yán)格的測(cè)試,這就使得仿真系統(tǒng)難以維護(hù)。
為了克服現(xiàn)有航電系統(tǒng)仿真器的不足,該仿真平臺(tái)通過(guò)建立仿真數(shù)據(jù)庫(kù),從待仿真的航電系統(tǒng)設(shè)備中的接口信息抽象出屬性和行為,然后用數(shù)據(jù)庫(kù)的方式來(lái)描述。仿真軟件的主要功能是在接收到激勵(lì)數(shù)據(jù)時(shí)通過(guò)對(duì)仿真數(shù)據(jù)庫(kù)分析,進(jìn)行相應(yīng)的數(shù)據(jù)處理,返回合理的響應(yīng)數(shù)據(jù)。該仿真平臺(tái)采用“仿真軟件+仿真數(shù)據(jù)庫(kù)”的系統(tǒng)結(jié)構(gòu),通過(guò)數(shù)據(jù)庫(kù)來(lái)描述待仿真的航電設(shè)備總線接口信息的抽象屬性和行為,實(shí)現(xiàn)仿真軟件和仿真對(duì)象的分離,從而使該仿真平臺(tái)具備了通用性和可擴(kuò)展性。
圖1 通用仿真平臺(tái)和非通用仿真設(shè)備比較
參照?qǐng)D1,與非通用的仿真設(shè)備(圖1a)相比,通用仿真平臺(tái)(圖1b)的主要變化是增加了仿真數(shù)據(jù)庫(kù),將原來(lái)用代碼實(shí)現(xiàn)的被仿真設(shè)備接口的信息抽象出來(lái)用仿真數(shù)據(jù)庫(kù)描述。在仿真時(shí),仿真軟件根據(jù)所接收到的激勵(lì)數(shù)據(jù)對(duì)仿真數(shù)據(jù)庫(kù)進(jìn)行分析和相應(yīng)的數(shù)據(jù)處理,返回符合設(shè)計(jì)要求的響應(yīng)數(shù)據(jù)。這種結(jié)構(gòu)實(shí)現(xiàn)了仿真軟件與仿真對(duì)象的分離,使得仿真軟件不再只是針對(duì)某個(gè)航電設(shè)備專用,而是針對(duì)總線式航電系統(tǒng)的通用仿真軟件。同時(shí),由于仿真數(shù)據(jù)庫(kù)的填寫(xiě)和修改都很容易,所以該仿真平臺(tái)具有很好的靈活性。該仿真平臺(tái)中還增加了網(wǎng)絡(luò)接口卡,用于連接航電系統(tǒng)中飛行數(shù)據(jù)源,仿真設(shè)備可以從飛行數(shù)據(jù)包中取出相關(guān)的參數(shù)來(lái)更新自身狀態(tài),實(shí)現(xiàn)動(dòng)態(tài)仿真。總線接口卡為該仿真平臺(tái)提供所需的電氣接口和物理特性,根據(jù)目前航電系統(tǒng)所使用的總線類(lèi)型,選用的接口卡包括1553總線卡、422總線卡和429總線卡。這就使該仿真平臺(tái)具備3種常用的接口卡,能夠?qū)Σ煌暮诫娫O(shè)備進(jìn)行仿真,實(shí)現(xiàn)了總線接口仿真。
在實(shí)際工作中,設(shè)計(jì)人員用接口控制文件和詳細(xì)設(shè)計(jì)需求文件來(lái)定義航電設(shè)備的行為。其中,詳細(xì)設(shè)計(jì)需求文件主要用來(lái)描述設(shè)備接收到總線數(shù)據(jù)或指令后的行為、狀態(tài)切換和響應(yīng),而接口控制文件用來(lái)描述接收和響應(yīng)的數(shù)據(jù)塊的格式,兩種文件結(jié)合在一起就可以作為航電設(shè)備的設(shè)計(jì)要求。為了用軟件描述航電設(shè)備,可將航電設(shè)備的行為抽象為一個(gè)接收到特定激勵(lì)并返回特定響應(yīng)的激勵(lì)響應(yīng)體,并根據(jù)接口控制文件的描述,將數(shù)據(jù)塊的描述要點(diǎn)抽象出來(lái),在軟件中設(shè)定設(shè)備的激勵(lì)響應(yīng)行為和數(shù)據(jù)?;谝陨系目紤],本平臺(tái)將對(duì)航電系統(tǒng)各功能組成部件進(jìn)行抽象,將航電系統(tǒng)各部件的總線行為歸納為各種數(shù)據(jù)庫(kù)表格,完成航電部件的建模過(guò)程。
仿真平臺(tái)需要對(duì)航電系統(tǒng)的422設(shè)備、429設(shè)備、1553總線設(shè)備進(jìn)行仿真,根據(jù)該仿真平臺(tái)要實(shí)現(xiàn)的功能以及各功能之間的關(guān)系,將仿真系統(tǒng)軟件分為以下3個(gè)主要部分:初始化模塊、網(wǎng)絡(luò)數(shù)據(jù)處理模塊、主仿真模塊。
初始化模塊主要是將仿真數(shù)據(jù)庫(kù)中的各個(gè)表格加載到內(nèi)存中,并按照各表之間的聯(lián)系重新鏈接,另外提供對(duì)仿真數(shù)據(jù)完整性的檢查。初始化模塊會(huì)按照硬件資源表中的信息對(duì)硬件進(jìn)行初始化。初始化模塊也會(huì)檢測(cè)網(wǎng)絡(luò)連接情況、初始化網(wǎng)絡(luò)接口,此外初始化用戶界面和建立仿真數(shù)據(jù)記錄文件的工作也是在該部分完成的。
網(wǎng)絡(luò)數(shù)據(jù)處理模塊主要負(fù)責(zé)處理飛行數(shù)據(jù)源送出的動(dòng)態(tài)飛行數(shù)據(jù)包,實(shí)現(xiàn)動(dòng)態(tài)仿真。飛行數(shù)據(jù)源利用UDP協(xié)議定時(shí)發(fā)出動(dòng)態(tài)飛行數(shù)據(jù)包。UDP協(xié)議只規(guī)定了接收端的端口號(hào)而不指定IP地址,所以網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)可以用同一端口號(hào)同時(shí)接收通過(guò)UDP協(xié)議傳送來(lái)的數(shù)據(jù),從而保證了多臺(tái)仿真計(jì)算機(jī)動(dòng)態(tài)仿真的同步性。仿真軟件接收到網(wǎng)絡(luò)數(shù)據(jù)包后,即查找網(wǎng)絡(luò)數(shù)據(jù)映射表,根據(jù)源數(shù)據(jù)和目的數(shù)據(jù)間的對(duì)應(yīng)關(guān)系依次轉(zhuǎn)換,刷新目的數(shù)據(jù)的值。這就使得仿真設(shè)備的狀態(tài)跟隨飛行數(shù)據(jù)源上虛擬飛機(jī)的飛行過(guò)程變化,從而實(shí)現(xiàn)了動(dòng)態(tài)仿真。
主仿真模塊是仿真軟件的核心,主要負(fù)責(zé)接收總線上傳來(lái)的激勵(lì)數(shù)據(jù)塊,然后按照仿真數(shù)據(jù)庫(kù)的要求對(duì)激勵(lì)數(shù)據(jù)進(jìn)行處理并返回對(duì)應(yīng)的響應(yīng)數(shù)據(jù)。在仿真過(guò)程中,系統(tǒng)接收到外部的激勵(lì)數(shù)據(jù)后,仿真軟件將按照激勵(lì)數(shù)據(jù)的來(lái)源及內(nèi)容并配合其它輔助的檢索詞在激勵(lì)響應(yīng)表及數(shù)據(jù)塊表中檢索。在檢索到相應(yīng)的記錄后,仿真軟件首先將接收到的數(shù)據(jù)按照數(shù)據(jù)元素表中的處理方式進(jìn)行處理,并將處理結(jié)果更新到數(shù)據(jù)元素表中,仿真軟件將按照激勵(lì)響應(yīng)表填寫(xiě)的返回塊名稱和返回塊標(biāo)識(shí)到數(shù)據(jù)塊表中檢索響應(yīng)數(shù)據(jù)塊,組織返回響應(yīng),比如確定系統(tǒng)響應(yīng)的次數(shù),響應(yīng)的周期以及通過(guò)哪一子地址返回等。全部響應(yīng)數(shù)據(jù)塊返回完畢后,仿真軟件會(huì)將這個(gè)激勵(lì)響應(yīng)過(guò)程中的數(shù)據(jù)保存到仿真記錄文件中以備回放之用。
系統(tǒng)對(duì)實(shí)時(shí)性要求較高,一般的數(shù)據(jù)刷新都在50ms以內(nèi),在軟件實(shí)現(xiàn)上,采取了以下兩點(diǎn)措施以提高仿真的實(shí)時(shí)性。
1)在軟件初始化時(shí),將仿真數(shù)據(jù)信息加載到內(nèi)存,仿真運(yùn)行過(guò)程中不再檢索硬盤(pán)上的仿真數(shù)據(jù)信息,由于計(jì)算機(jī)訪問(wèn)內(nèi)存的速度遠(yuǎn)遠(yuǎn)高于訪問(wèn)硬盤(pán)的速度,因而仿真速度大大提高;
2)使用多線程技術(shù),將處理底層板卡事件和響應(yīng)用戶事件的代碼置于不同線程。實(shí)際測(cè)試表明,這些措施極大地提高了軟件的實(shí)時(shí)性,滿足了仿真平臺(tái)對(duì)實(shí)時(shí)性的要求。
仿真平臺(tái)硬件采用計(jì)算機(jī)結(jié)合接口板卡的結(jié)構(gòu),計(jì)算機(jī)是仿真系統(tǒng)軟件運(yùn)行平臺(tái),而接口板卡是各種被仿真設(shè)備接口的硬件實(shí)現(xiàn)。系統(tǒng)硬件由一臺(tái)4U工控機(jī)插入429卡、422卡組成429、422仿真計(jì)算機(jī)。429卡和422卡均為8入8出的PCI總線卡,由一臺(tái)2U工控機(jī)插入1塊雙通道1553B總線卡組成1553設(shè)備接口仿真器。采用以上硬件結(jié)構(gòu)可保證對(duì)各種航電系統(tǒng)設(shè)備仿真的硬件支持。
仿真數(shù)據(jù)庫(kù)是通用仿真平臺(tái)的一個(gè)設(shè)計(jì)重點(diǎn),因?yàn)樗枋霰环抡鎸?duì)象的行為和屬性等方面信息。為了確定仿真數(shù)據(jù)庫(kù)的結(jié)構(gòu),對(duì)仿真航電設(shè)備可能需要的信息進(jìn)行抽象:
1)硬件信息:
航電設(shè)備接口部分的硬件信息,包括了各種接口類(lèi)型及其相關(guān)參數(shù),如1553總線設(shè)備的RT號(hào)、422總線設(shè)備的波特率以及429總線設(shè)備的通訊速率等信息;
2)激勵(lì)響應(yīng)信息:
航電設(shè)備接口仿真過(guò)程中的數(shù)據(jù)、行為以及激勵(lì)響應(yīng)處理方式;
3)設(shè)備狀態(tài)信息:
仿真設(shè)備所有的自身狀態(tài)信息,比如傳感器數(shù)據(jù),這些狀態(tài)應(yīng)該顯示在仿真界面上并容易被修改;
4)網(wǎng)絡(luò)數(shù)據(jù)映射信息:
飛行數(shù)據(jù)源發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包中含有多種設(shè)備的參數(shù),由于每個(gè)航電設(shè)備所使用的參數(shù)只是該網(wǎng)絡(luò)數(shù)據(jù)包的一部分,因此需要為仿真設(shè)備從中選出和該設(shè)備有關(guān)的參數(shù),并指定這些參數(shù)與設(shè)備信息之間的映射關(guān)系。
圖2 仿真數(shù)據(jù)庫(kù)設(shè)計(jì)原理
根據(jù)上述要求,提出了如圖2所示的仿真數(shù)據(jù)庫(kù)的組成結(jié)構(gòu)。它是由硬件資源表、網(wǎng)絡(luò)數(shù)據(jù)映射表、激勵(lì)響應(yīng)表、數(shù)據(jù)塊表、條件表、數(shù)據(jù)元素表和設(shè)備狀態(tài)表共7類(lèi)表格組成。硬件資源表和網(wǎng)絡(luò)數(shù)據(jù)映射表在仿真數(shù)據(jù)庫(kù)中是唯一的,而另外5類(lèi)表格的個(gè)數(shù)由用戶所需仿真設(shè)備的個(gè)數(shù)決定,并且格式也因設(shè)備的總線類(lèi)型不同而略有不同。硬件資源表主要用于記錄仿真設(shè)備的硬件接口信息,它包括設(shè)備名稱、設(shè)備類(lèi)型和相關(guān)的幾個(gè)參數(shù) (如1553設(shè)備的RT號(hào)、422設(shè)備的通道號(hào)和波特率等)。每個(gè)仿真設(shè)備在硬件資源表中必須有且僅有一條記錄。激勵(lì)響應(yīng)表、數(shù)據(jù)塊表和數(shù)據(jù)元素表組合起來(lái)用于描述航電設(shè)備接口的行為。因?yàn)樵O(shè)備的激勵(lì)響應(yīng)數(shù)據(jù)多表現(xiàn)為數(shù)據(jù)塊的形式,所以用數(shù)據(jù)塊表來(lái)描述所有數(shù)據(jù)塊的信息。而數(shù)據(jù)塊又是由多個(gè)數(shù)據(jù)元素組成,所以用數(shù)據(jù)元素表進(jìn)一步描述數(shù)據(jù)塊的內(nèi)部信息。激勵(lì)響應(yīng)表主要用來(lái)記錄仿真設(shè)備所有激勵(lì)響應(yīng)的對(duì)應(yīng)關(guān)系。以1553總線設(shè)備為例,它的激勵(lì)響應(yīng)表主要由以下3部分組成:激勵(lì)數(shù)據(jù)塊的來(lái)源及內(nèi)容(包括激勵(lì)數(shù)據(jù)分地址、激勵(lì)數(shù)據(jù)塊名稱)、響應(yīng)數(shù)據(jù)塊的去向及內(nèi)容(包括響應(yīng)數(shù)據(jù)分地址、響應(yīng)數(shù)據(jù)塊名稱)、返回響應(yīng)的行為描述(包括是否返回響應(yīng)、返回次數(shù)、返回周期、返回延遲、下一響應(yīng)塊等)。激勵(lì)響應(yīng)表通過(guò)數(shù)據(jù)塊名稱與數(shù)據(jù)塊表連接。數(shù)據(jù)塊表記錄了激勵(lì)響應(yīng)表中的所有數(shù)據(jù)塊,它包括數(shù)據(jù)塊名稱、數(shù)據(jù)塊描述、包含的數(shù)據(jù)元素?cái)?shù)及其組成結(jié)構(gòu)。1553總線設(shè)備數(shù)據(jù)塊的組成結(jié)構(gòu)一般為控制字(0~M個(gè))+數(shù)據(jù)字(0~N個(gè))??刂谱值膬?nèi)容是不變的,可直接填于表中配合激勵(lì)響應(yīng)表中的其它信息用于激勵(lì)數(shù)據(jù)的檢索;數(shù)據(jù)字內(nèi)容是變化的,所以將它們的索引碼填于表中,根據(jù)索引碼到數(shù)據(jù)元素表中查找每一個(gè)數(shù)據(jù)字的內(nèi)容和處理方法等。數(shù)據(jù)塊表通過(guò)元素的索引碼與數(shù)據(jù)元素表連接。數(shù)據(jù)元素表用于描述數(shù)據(jù)塊中所有數(shù)據(jù)元素的處理方法。處理方法多是將總線上傳輸?shù)亩M(jìn)制數(shù)值轉(zhuǎn)換成具有物理意義的十進(jìn)制數(shù)值或反之,這種轉(zhuǎn)換通常具有線性關(guān)系,所以數(shù)據(jù)元素表主要描述數(shù)據(jù)元素的線性處理方法,它主要包括兩部分:元素描述(包括元素名、索引碼)和處理方法描述(包括是否處理、符號(hào)位、數(shù)據(jù)高位、數(shù)據(jù)低位、比例和偏移等)。設(shè)備狀態(tài)表中包含所有跟設(shè)備自身狀態(tài)信息有關(guān)的數(shù)據(jù)元素,它包括元素名、元素索引碼和元素默認(rèn)值。在仿真過(guò)程中這些元素被顯示在界面上,使用戶可以隨時(shí)修改這些狀態(tài)。修改后通過(guò)索引碼更新數(shù)據(jù)元素表中相應(yīng)的數(shù)據(jù)元素。網(wǎng)絡(luò)數(shù)據(jù)映射表主要用于描述網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)據(jù)(源數(shù)據(jù))與仿真設(shè)備的狀態(tài)(目的數(shù)據(jù))之間的映射信息,它包括設(shè)備名稱、源數(shù)據(jù)的個(gè)數(shù)、源數(shù)據(jù)偏移、源數(shù)據(jù)類(lèi)型、目的數(shù)據(jù)索引號(hào)以及處理函數(shù)等信息。目的數(shù)據(jù)通過(guò)索引碼與數(shù)據(jù)元素表的數(shù)據(jù)相連。
該仿真平臺(tái)在某型機(jī)航電系統(tǒng)地面聯(lián)試中得到了應(yīng)用。在試驗(yàn)中,本仿真平臺(tái)對(duì)多個(gè)航電系統(tǒng)設(shè)備進(jìn)行了仿真,有力的支持了航電系統(tǒng)試驗(yàn),大大縮短型號(hào)研制周期,節(jié)省研制成本,方便了軟件開(kāi)發(fā)調(diào)試和航電系統(tǒng)試驗(yàn)驗(yàn)證。
本仿真平臺(tái)采用仿真數(shù)據(jù)庫(kù)描述航電系統(tǒng)設(shè)備的接口信息,以填表的方法,用戶可以通過(guò)在仿真數(shù)據(jù)庫(kù)中填寫(xiě)不同的仿真要求來(lái)仿真不同的設(shè)備,將航電設(shè)備的接口特性輸入到該仿真平臺(tái)中。在此平臺(tái)上,不同的設(shè)備只需填寫(xiě)不同的仿真數(shù)據(jù)庫(kù)表即可構(gòu)建相應(yīng)的仿真器,不需要修改軟件代碼,因此具有通用性和靈活性。由于對(duì)仿真數(shù)據(jù)庫(kù)的填寫(xiě)和修改都很簡(jiǎn)單,因此使用本平臺(tái)構(gòu)建和修改航電系統(tǒng)仿真器方便快捷,大大加快了航電設(shè)備仿真器的開(kāi)發(fā)速度,減少了開(kāi)發(fā)工作量和時(shí)間。該仿真平臺(tái)已經(jīng)在某型機(jī)的航電系統(tǒng)地面聯(lián)試中得到應(yīng)用,取得了良好的效果。
[1]饒學(xué)軍,陳紅林.慣導(dǎo)仿真系統(tǒng)的設(shè)計(jì) [J].系統(tǒng)仿真學(xué)報(bào),2005,17(3):617-619.
[2]張健東,高曉光,吳勇.綜合航電顯控仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].火力與指揮控制,2006,31(2):40-43.
[3]李海鷗,張忠亭,姜守達(dá).基于VXI總線的通用測(cè)試軟件研究[J].高技術(shù)通訊,2000,10(2):75-77.