(91550部隊 大連 116023)
現(xiàn)代航空電子系統(tǒng)通常采用的是MIL-STD-1553B時分制指令/響應(yīng)多路傳輸數(shù)據(jù)總線通信系統(tǒng),它包括總線控制器(BC)、遠程終端(RT)、總線監(jiān)控器(BM)及電纜等,是一種集中控制、分布式處理的系統(tǒng)[1~2]。為了保證通信系統(tǒng)正常運行,使系統(tǒng)在調(diào)試、互聯(lián)、檢測等過程中,對發(fā)生的故障、技術(shù)問題能夠準確定位、及時排除,需要一種能夠完成這種任務(wù)的檢測仿真設(shè)備。
LabVIEW是虛擬儀器概念的首創(chuàng)者,是美國National Instruments(簡稱NI)公司推出的一款圖形化軟件開發(fā)環(huán)境[3~6]。LabVIEW版本中首次引入了面向?qū)ο缶幊痰乃枷耄脩艨蓜?chuàng)建更易維護的代碼,令代碼的修改不影響應(yīng)用程序中的其它代碼,也可用于創(chuàng)建用戶定義的數(shù)據(jù)類型[7~8]。
Unified Modeling Language(簡稱UML)是一種面向?qū)ο蟮慕UZ言,用來描述軟件從需求分析到實現(xiàn)和測試的全過程。它涵蓋了面向?qū)ο蟮姆治?、設(shè)計和實現(xiàn),融合了早期面向?qū)ο蠼7椒ê透鞣N建模語言的優(yōu)點,為面向?qū)ο笙到y(tǒng)的開發(fā)、軟件自動化工具與環(huán)境提供了豐富的、嚴謹?shù)摹U充性強的表達方式[9~10]。UML 是由圖和元模型組成的。圖是UML的語法,而元模型則給出了圖的意思,是UML的語義。UML語言中的核心概念包括用例圖、用例、角色、協(xié)作圖、順序圖、狀態(tài)圖、類圖、組件圖、配置圖等。
本文基于UML采用面向?qū)ο缶幊痰姆椒ǎ?1],在LabVIEW中實現(xiàn)了某型號武器火控系統(tǒng)內(nèi)部的1553B通訊仿真。其具有以下特點:
1)與面向過程的編程方法相比,極大地降低了模塊之間的耦合性,保證了不同模塊可以完全獨立的開發(fā)、測試、維護和升級;
2)LabVIEW與傳統(tǒng)的面向?qū)ο缶幊陶Z言不同,它采用強大的圖形化語言(G語言)編程,面向測試工程師而非專業(yè)程序人員,編程非常方便,人機交互界面直觀友好,開發(fā)周期短,具有強大的數(shù)據(jù)可視化分析和儀器控制能力等特點。
某型號武器火控系統(tǒng)內(nèi)部的1553B通訊系統(tǒng)由總線監(jiān)控器(BM)、總線控制器(BC)和三個遠程終端(RT),通過1553B總線接口并經(jīng)過總線介質(zhì)互連而成,各自操作獨立,資源和功能則可通過網(wǎng)絡(luò)共享。其中,BC用來控制RT的接收和發(fā)送信息,BM負責(zé)接收總線上傳輸?shù)臄?shù)據(jù),并截取選定的信息作為備份。
為了實現(xiàn)上述1553B總線通訊系統(tǒng)的功能,本文利用自行開發(fā)的某型號武器火控1553B綜合仿真系統(tǒng)和一塊QCP-1553板卡模擬BC,采用三片BU65170模擬RT。
本某型號武器火控1553B綜合仿真系統(tǒng)采用LabVIEW開發(fā),利用該軟件中提供的面向?qū)ο蟮木幊碳夹g(shù),用戶可以使用已創(chuàng)建的類和對象,也可以自己創(chuàng)建新的類和對象;同時可創(chuàng)建更易維護的代碼,令代碼的修改不影響應(yīng)用程序中的其他代碼[12~13]。
本某型號武器火控1553B綜合仿真系統(tǒng)需要的硬件資源主要包括:一臺筆記本電腦、一個PCMCIA卡、兩根專用通訊電纜、一臺NI公司的PXI-1036機箱、一塊NI公司的PXI 8310板卡、兩塊Condor公司的QCP1553單功能板卡、兩根1553B通訊電纜和三片DDC的BU65170等。硬件資源的安裝連接示意圖見圖1所示。
為了模擬BC的功能,某型號武器火控1553B綜合仿真系統(tǒng)需要通過1553B總線向每個RT發(fā)送控制命令和參數(shù),實時接收并處理RT反饋的參數(shù),并能監(jiān)測總線上異常數(shù)據(jù)。該系統(tǒng)向每個RT發(fā)送8種類型的消息,接收RT反饋的12種類型的消息,所有消息的接收、發(fā)送和處理按照如下的設(shè)計思想實現(xiàn)。
圖1 硬件資源的安裝連接示意圖
1)廣播時間數(shù)據(jù)
通過1553B總線向每個RT廣播系統(tǒng)時間,所有RT均以該廣播時間作為自己內(nèi)部的系統(tǒng)時鐘時間,廣播周期為512ms,廣播的時間精度為0.5ms。為確保廣播時間的精準,采用硬件中斷而非軟件定時的方式來計時;
2)發(fā)送控制命令
通過突發(fā)方式向RT發(fā)送一條系統(tǒng)維護命令和一條控制命令,這兩條命令之間的時間間隔為1s,在此時間內(nèi),1553B總線上禁止發(fā)送和接收任何消息;
3)廣播平臺參數(shù)
向RT廣播平臺參數(shù),廣播周期為512ms;廣播的平臺參數(shù)用戶可以自定義,也可以隨機生成;
4)發(fā)送工作數(shù)據(jù)
以突發(fā)方式向RT發(fā)送工作數(shù)據(jù),每條工作數(shù)據(jù)的長度最多為64字節(jié),相鄰兩條工作數(shù)據(jù)的發(fā)送間隔最短為800μs;
5)發(fā)送長抱環(huán)測試數(shù)據(jù)
向RT發(fā)送長抱環(huán)測試數(shù)據(jù),發(fā)送周期為512ms;
6)發(fā)送模式碼指令
向RT發(fā)送四種模式碼指令。其中,發(fā)送狀態(tài)字和啟動自測試以突發(fā)方式發(fā)送,發(fā)送矢量字的發(fā)送周期為32ms,發(fā)送BIT字的發(fā)送周期為1s;
7)顯示并回放接收的參數(shù)
接收、解析并保存RT發(fā)送給BC的各種工作參數(shù),對接收的各種工作參數(shù)能夠?qū)崿F(xiàn)多種方式的回放;
8)監(jiān)控總線故障
對于RT中產(chǎn)生的通信故障和消息傳輸過程中產(chǎn)生的故障進行監(jiān)控,這些故障包括無響應(yīng)、校驗錯、格式錯和終端故障等,對于檢測出的故障應(yīng)能通過界面實時顯示給用戶;能模擬各種通信故障,監(jiān)測RT對錯誤的反應(yīng)和處理能力;
9)異常報警
實時監(jiān)測1553B總線上的異常參數(shù)和數(shù)據(jù),對異常情況進行報警。
某型號武器火控1553B綜合仿真系統(tǒng)的軟件結(jié)構(gòu)如圖2所示。
某型號武器火控1553B綜合仿真系統(tǒng)使用UML(統(tǒng)一建模語言)建立系統(tǒng)仿真模型,在詳細設(shè)計階段通過設(shè)計類圖來描述各個類的屬性、操作以及類與類之間的接口。該系統(tǒng)的軟件功能主要是由MessageType、SimOperation和AbnormalData三個類完成。
圖2 某型號武器火控1553B綜合仿真系統(tǒng)軟件結(jié)構(gòu)
通過創(chuàng)建MessageType實例來增加、刪除或者修改總線上每條消息的序號、控制字、下一條消息的序號、命令字、消息間隔和消息內(nèi)容等,實現(xiàn)總線上消息的任意修改。
通過創(chuàng)建AbnormalData實例,描述了總線上關(guān)鍵消息參數(shù)的名稱、數(shù)據(jù)類型、分辨率、顯示格式和轉(zhuǎn)換公式等,一旦總線上該關(guān)鍵參數(shù)產(chǎn)生異常,本系統(tǒng)會立即發(fā)出報警信號。
通過創(chuàng)建SimOperation實例,實現(xiàn)了對總線上各種消息的接收和發(fā)送,顯示和回放接收的各種工程參數(shù),監(jiān)控總線故障并對異常報警等功能。
此外,通過創(chuàng)建InterfaceRelation實例,定義了本仿真系統(tǒng)對各種消息的發(fā)送和接收關(guān)系。
某型號武器火控1553B綜合仿真系統(tǒng)的核心類如圖3所示。
完成了某型號武器火控1553B綜合仿真系統(tǒng)的仿真模型和系統(tǒng)設(shè)計類圖后,在LabVIEW中創(chuàng)建了 MessageType.lvclass、SimOperation.lvclass、AbnormalData.lvclass、InterfaceRelation.lvclass和 Data.lvclass,其中AbnormalData類是Data類的子類,兩者都包含了同名的Display.vi,該vi為動態(tài)vi。某型號武器火控1553B綜合仿真系統(tǒng)的項目類視圖如圖4所示。
圖3 某型號武器火控1553B綜合仿真系統(tǒng)核心類
圖4 某型號武器火控1553B綜合仿真系統(tǒng)的項目類視圖
某型號武器火控1553B綜合仿真系統(tǒng)的交聯(lián)關(guān)系較為復(fù)雜,對總線上消息傳輸?shù)膶崟r性提出了很高的要求。由于總線上需要處理20種消息的接收和發(fā)送,尤其當不同長度不同周期的消息交替的接收和發(fā)送,同時存在異步數(shù)據(jù)需要處理時,處理難度異常的大。
解決上述問題的傳統(tǒng)方法是采用軟件定時的辦法,設(shè)置多個定時器,每條消息發(fā)送和接收的周期設(shè)置為定時器的定時周期。經(jīng)過多次實驗證明,當總線上處理的周期消息的種類在10種以上,同時相鄰兩條非周期消息的發(fā)送間隔為1ms以下時,軟件定時1min會產(chǎn)生5s的誤差。因此,軟件定時的方法不能夠滿足系統(tǒng)的實時性要求。
為了保證1553B總線通訊的可靠性和實時性,避免出現(xiàn)消息遺漏和通訊延誤的現(xiàn)象,采用中斷技術(shù),在每個消息傳輸結(jié)束,產(chǎn)生消息結(jié)束中斷,在中斷服務(wù)程序?qū)鬏斖甑南⑦M行處理。然而,Windows操作系統(tǒng)對中斷不開放,在Windows下開發(fā)中斷處理程序是非常困難的,Windows操作系統(tǒng)的非實時性,決定了在其下開發(fā)的程序的非實時性。但是,Windows提供了消息循環(huán)機制和線程機制,采用Windows的線程機制和QCP1553板卡的中斷機制相結(jié)合可以解決這個問題。
當一條消息運行結(jié)束時,QCP1553板卡產(chǎn)生消息結(jié)束中斷,QCP1553板卡將該條消息數(shù)據(jù)存儲到板卡的雙口存儲器中。在Windows應(yīng)用系統(tǒng)中創(chuàng)建一個線程,該線程在平時處于“睡眠等待”狀態(tài),當查詢到有中斷產(chǎn)生時,線程被“喚醒”,中斷服務(wù)程序?qū)ο⑦M行處理。采用Windows消息循環(huán)機制和板卡實時中斷機制相結(jié)合,保證了消息傳輸?shù)膶崟r性。實驗證明,在周期消息和非周期消息混合發(fā)送的前提下,非周期消息之間的間隔可以達到μs級。
該套基于LabVIEW開發(fā)的某型號武器火控1553B綜合仿真系統(tǒng)自投入使用以來,能夠正確地組織消息進行傳輸,能夠?qū)ο⑦M行實時監(jiān)控,并將消息實時地顯示給用戶,全面跟蹤系統(tǒng)的工作狀態(tài),人機界面良好,為系統(tǒng)數(shù)據(jù)分析、故障定位、系統(tǒng)排故等提供了有力的支持,保證了某型號武器火控系統(tǒng)各項綜合試驗的順利進行?;赨ML的某型號武器火控1553B綜合仿真系統(tǒng)稍加修改即可用于外場檢測,也可用于其它型號設(shè)備數(shù)據(jù)總線的檢測,具有良好的可擴展性。