韓玉芹,祖先鋒,梁旭榮
(空軍第一航空學院 軍械裝置教研室,河南 信陽 464000)
空空導彈試驗實時測控系統是某型號導彈武器半實物仿真試驗的重要組成部分[1],服務于新型導彈的研制、試驗、優化和評估。依據現代導彈武器發展的特點,仿真試驗系統應具有嚴格的實時響應能力、較強的通用性、較好的開放性、良好的交互方式、分布式的任務協作和廣泛的數據信息源[2]。
在仿真試驗中,信號的檢測和處理、數據的顯示和儲存、性能參數的評價、信息交互的實現、過程的控制等,也是一個比較復雜且非常重要的環節[3]。這就需要根據仿真試驗的要求,將導彈實物與各種仿真設備及仿真機之間進行必要的連接;在不同的仿真設備間進行實時準確的數據通訊和信號傳遞,確保整個仿真系統的協調工作;實現仿真試驗各個環節的全過程控制;實時監控各種仿真設備及仿真機的工作情況;實現仿真試驗的數據顯示及其演算;實現數據輸入輸出的模型仿真驗證及故障重現等。因此,在導彈半實物仿真試驗中的測控系統應該能夠實現實時仿真和實時測控,起到核心控制協調作用。
測試需求分析是測控系統集成最為重要的起點,全面準確合理的需求分析是系統構建和項目成功的關鍵和前提[4]。
該測控系統用于某型號空空導彈半實物仿真試驗中與仿真計算機、轉臺以及參試部件連接,通過實時光纖網將各個仿真分系統和試驗產品組成一個分布式網絡,不僅可以完成綜合供電、時序控制、數據的采集控制、模型仿真驗證、產品動態測試、故障重現與診斷等功能,還通過良好的人機界面,對整個仿真系統包括產品的試驗狀態給出全面的顯示。實時測控系統主要功能如下:
2.1.1 實時采集通訊功能
以0.5ms為幀周期,可同時采集16路A/D數據并實時放到VMIC實時網上,包括數據顯示、狀態監控、綜合測試信號產生(正弦、鋸齒波、方波等)以及實時數據采集均可以通過VMIC實時網輸出。
2.1.2 嚴格的定時器功能
具有嚴格的信號定時能力,能產生試驗所需的各種時序信號,控制仿真設備及參試部件的啟動,時間精度小于0.01ms。
2.1.3 多路電源程控功能
具有多路可編程控制線性直流電源,可提供參試部件所需的工作電源,包括模擬上電過程,設置上電控制。并且,可在控制臺面板上實時顯示部件的電壓、電流情況。
2.1.4 開環測試功能
在實時操作系統的支持下,生成各種測試信號作為參試部件的輸入,同時采集部件的輸出構成開環仿真環境,進行各種開環測試。
2.1.5 仿真驗證功能
可實時將仿真數據、實彈飛行數據作為部件的輸入,同時采集部件的輸出,用于模型仿真驗證及故障重現。
2.1.6 功能模擬功能
具有控制部件功能模擬功能,在單部件半實物仿真時,實時模擬其他部件,完成部件間接口通訊。
2.1.7 實時曲線顯示功能
能夠通過反射式內存接口板(VMIC),實時與仿真計算機及仿真設備進行數據通訊,控制仿真設備的運行,實現仿真彈道、姿態、參試設備指令及反饋等曲線實時顯示。
2.1.8 參數運算功能
在產品半實物仿真結束后,能夠完成指令復算、誤差分析、頻譜分析、特征量統計、曲線顯示及試驗結果的自動生成。
2.1.9 時序檢測功能
能夠完成各種時序檢測功能,給出檢測結果。
2.1.10 接口檢測功能
具有強大的通訊接口檢測功能,在線檢測仿真設備及參試產品的工作狀態,進行故障診斷、報警及應急處理等功能。
系統接口是測控系統硬件的重要組成部分,包括機械接口和電氣接口。機械接口包括:與測試有關的UUT結構特征,如UUT接口連接器型號。電氣接口包括UUT工作接口、專用測試接口、內置檢測接口等,需要編寫每個接口的接口控制文件,詳細分析和確定接口信號的特征、參數、控制關系、功能等。UUT電氣接口分析是UUT測試需求分析的重要部分,UUT測試項目、測試參數、測試方法和測試步驟的確定依賴于接口信號的特征。
導彈試驗實時測控系統是空空導彈制導系統半實物仿真系統的主要設備之一,主要包括實時控制計算機、實時顯示監測計算機、實驗接口箱、操作臺、硬件板卡以及相應的測試軟件等。系統利用實時光纖網將各個仿真分系統和試驗產品組成一個分布式網絡,采用雙聯機柜形式,則導彈試驗實時測控系統組成框圖如圖1所示。

圖1導彈試驗實時測控系統組成框圖
實時測控系統由兩個較為獨立的實時控制部分和實時顯示部分組成,作為VMIC實時網的兩個節點。其中,實時控制計算機采用可靠性高的工控機,作為控制臺的核心,與各仿真單元(仿真計算機、轉臺控制、目標模擬器等)之間通過光纖網連接,進行仿真試驗控制命令的傳達和設備狀態信息的收集。同時,通過測試資源板卡和實驗接口箱完成參試部件的測試和數據采集。實時顯示監測計算機采用可靠性高的工控機,用來通過反射式內存接口板(VMIC),實時與仿真計算機及仿真設備進行數據通訊,控制仿真設備的運行,實現仿真彈道、姿態、參試設備指令及反饋等曲線實時顯示。實驗接口箱實現與參試產品連接和信號適配,將測試資源的A/D、D/A、D/D等接口信號引入參試產品的激勵測試過程。
導彈半實物仿真試驗對計算機操作系統提出了更高的要求:一方面,要求操作系統具有強大的通用功能,例如圖形顯示功能、支持數據庫技術、分布式處理技術、較強的硬件支持;另一方面,要求操作系統具有良好的實時性。而Windows系統不是嚴格意義上的實時系統,在實時應用方面的缺點還比較多,例如,其中斷響應時間有很大的不確定性,任務調度難以滿足時間性要求,而且任務切換時間不可預測。為此,采用RTX實時開發技術,克服了Windows系統實時性差的局限性,解決了測控系統實時與非實時任務兼容處理難的問題。
RTX是美國IntervalZero公司開發的Windows平臺的硬實時系統[5],可以無縫地與Windows 系統結合,并且能夠充分利用其各種資源,包括各種通用資源、大量標準的API函數和高效的內存管理機制。RTX子系統利用IPC通信和同步機制,實現與Windows系統之間的數據交換。RTX時鐘分辨率能夠達到100ns,而最小定時器周期可以做到100μs,這種精確定時機制對于滿足實時性至關重要。RTX應用時被實現為一套庫的集合,包括動態庫和靜態庫[6],利用Windows系統良好的可擴展體系結構增加了一個實時子系統RTSS(Real-Time Subsystem)。運行時,RTSS調用自身的實時RTSS線程而不調用非實時的Win32線程,而且所有的RTSS線程總是優于Win32線程取得調度權,以保證實時線程的優先執行,也包括Windows延遲過程調用和中斷服務等。
儀器板卡的設備驅動程序是應用程序與底層硬件之間的通信橋梁,而在Windows系統中,儀器板卡必須通過設備驅動程序來配置和管理其數據處理的各種信息。為此,利用RTX實時子系統的開放性,重新開發了所用儀器板卡在RTX環境下的驅動程序,以提高其實時性。
RTX子系統對硬件的操作十分方便,只需通過遍歷命令查找到相應硬件的端口,就可以跳過驅動層直接操作硬件資源。PCI總線設備RTX驅動程序的基本結構如圖2所示。PCI總線設備硬件和RTX基本內核處于結構底層,他們之間數據交互采用I/O或中斷方式進行。RTX基本內核服務于RTX庫函數和PCI總線設備驅動程序,并通過他們對RTX基本內核發送系統調用(System Call)來實現交互,而應用程序處于整個結構最上層,通過PCI總線設備驅動程序接口實現信息交互。

圖2 PCI總線設備RTX驅動程序的基本結構
RTX子系統下PCI總線設備完整的驅動程序開發步驟如下[7]:
4.2.1 設備初始化
首先查找PCI總線設備,通過遍歷查找所有的PCI總線插槽,匹配兩個主要參數:設備ID和供應商ID,一直到參數匹配即為找到設備,然后獲得內存端口的基地址和相關中斷資源,便于后續操作。
4.2.2 從接口基地址到系統虛擬地址的映射
硬件設備操作時讀寫的是物理地址,而上層應用程序操作時讀寫的是虛擬地址,驅動程序需要完成從物理地址到虛擬地址的映射工作。
4.2.3 讀取應用程序傳送給設備硬件的數據和回送應用程序
設備驅動程序的主要任務包括:一方面將從上層應用程序下傳的數據通過設備硬件及時準確地發送出去,另一方面及時地將從設備硬件接受到的數據上傳給上層應用程序。在通常情況下,數據處理以及其它服務處理程序都會使用緩沖區,這樣當服務程序處理完數據后,先對緩沖區進行清空便于后續的繼續使用;而某些數據處理時出現錯誤,則服務處理程序僅需收回緩沖區。
4.2.4 基本的控制操作
控制操作包含打開、關閉、等待、發送、清空等,以保證PCI總線設備在有序的情況下正常運行。
4.2.5 檢測和處理設備出現的錯誤
對設備檢測和處理中可能出現的錯誤給出足夠的提示信息,使得返回的錯誤在程序中有相應的解釋。
采集板卡采用日本康泰克公司的16位A/D采集模塊AD16-16U(PCI總線),主要包括16路單端輸入或8路差動輸入,最大轉換速度為1μsec/ch。根據上述驅動程序開發過程,以采集板卡AD16-16U為例開發其驅動程序如下:
4.3.1 初始化PCI設備
// PCI總線掃描,如果找到就使其處于工作狀態
BOOL RTFCNDCL ScanPCI( )
{for (bus = 0; flag; bus++) {
for (i = 0; i < PCI_MAX_DEVICES && flag; i++)
{ SlotNumber.u.bits.DeviceNumber = i;
for (f = 0; f < PCI_MAX_FUNCTION; f++){
//傳送設備ID和供應商ID
if((PciData->VendorID== 0x1221)&&(PciData->DeviceID == 0x9193)){
//獲得基地址
liPhysAddr.QuadPart = PciData->u.type0.BaseAddresses[2];
liPhysAddr_IOControl.QuadPart
=PciData->u.type0.BaseAddresses[3];
flag = FALSE;
//找到PCI 設備
reValue = TRUE;
break; } } } }
return reValue; }
4.3.2 映射基地址
//將基本接口地址映射到系統映射地址
if(!RtTranslateBusAddress(PCIBus, 0, BAR1,&AddressSpace, &tBAR1 )){}
vBAR1 = (PCHAR)tBAR1.LowPart;
AD_PORT0_BASE0 = (PUCHAR)vBAR1 - 1;
4.3.3 對PCI基地址執行讀寫操作
//初始化配置寄存器
RtWritePortUchar((AD_PORT0_BASE0+0x06), 0x03);
RtWritePortUchar((AD_PORT0_BASE0+0x07), 0xc7);
RtWritePortUchar((AD_PORT0_BASE0+0x07), 0x00);
//配置16路采集通道
for (int k=0;k<16;k++){
RtWritePortUchar((AD_PORT0_BASE0+0x06), 0x02);
RtWritePortUchar((AD_PORT0_BASE0+0x07), k);
RtWritePortUchar((AD_PORT0_BASE0+0x07), k);
}
//啟動16路信號采集
for(j=0;j<16;j++){
cY1 = RtReadPortUchar((AD_PORT0_BASE0+0x00));
cY2 = RtReadPortUchar((AD_PORT0_BASE0+0x01));
rp->Buffer[rp->count] = (((cY2<< 8)+cY1)*20.0)/65536.0 - 10;
rp->count = rp->count + 1;
}
4.3.4 控制操作
在PCI總線儀器板卡RTX實時驅動程序退出時,首先要關閉中斷,然后調用RtReleaseInterruptVector釋放中斷、RtUnmapMemory釋放內存、RtDisablePortIO關閉I/O空間。
導彈試驗實時測控系統一方面通過反射內存網實現分布式實時仿真,另一方面基于RTX實時子系統開發實現實時測控,并且具備多項測控任務,主要包括實時測量控制和實時顯示監測兩大部分,分別運行在實時測量控制計算機和實時顯示監測計算機上。
導彈試驗實時測控系統集仿真、測試、控制于一體,具有多項測控功能。其中,實時測量控制部分用來完成導彈產品的狀態控制和性能參數測試,主要包括實時采集通訊功能、嚴格的定時器功能、開環測試功能、仿真驗證功能和時序檢測功能等。實時顯示監測部分用來實現實時數據顯示和數據監測,主要包括實時曲線顯示功能、電源程控功能、參數運算功能、數據管理功能和存儲打印功能等。
其中,實時測控系統中的實時采集通訊功能具有較強的代表性,既有實時采集、精確定時、實時網絡傳輸等實時性任務,也有信號配置、數據曲線顯示、狀態監控等非實時性任務,同時測控計算機和顯示計算機分別作為VMIC實時網絡節點參與實時數據傳輸。實時采集通訊功能要求在0.5ms仿真幀周期內,測控計算機同時采集16路A/D數據并實時放到VMIC實時網上,而顯示計算機通過VMIC實時網及時接收數據并顯示出來。實時采集通訊軟件采用模塊化設計方法,由定時器模塊、D/A模擬量輸出模塊、A/D數據采集模塊、共享內存模塊、VMIC網絡模塊等組成。其中,定時器模塊實現0.5ms定時器的設置、開啟和停止;D/A模擬量輸出模塊內嵌D/A板卡驅動程序,控制板卡輸出模擬信號;A/D數據采集模塊內嵌A/D板卡驅動程序,控制板卡采集數據;VMIC網絡模塊實現數據的網絡傳輸;共享內存模塊實現共享內存的建立、打開、寫入和讀取等。
實時采集通訊功能要求在0.5ms仿真幀周期內實現,是體現半實物仿真實時性的重要指標,為此,在VMIC網絡的發送端和接收端每一個幀周期內均增加時標,然后計算其時間間隔,如圖3所示。由圖3可以看出,作為發送端的測控計算機,由于實時測控程序運行在RTSS子系統下,0.5ms幀周期得到了較好的保證,誤差僅為±0.05ms;而接收端的顯示計算機,由于其非實時程序運行于Win32環境下,幀周期誤差較大,達到0.3ms。

圖3 網絡發送端和接收端時間間隔
實時采集通訊功能要求采集16路信號并通過VMIC實時網傳輸,為此,在接收端用一個文本文件將16路信號數據保存起來,然后以曲線方式顯示出來,如圖4所示為1~3通道數據波形(局部放大)。可以看出,信號波形完整,數據沒有丟失,說明VMIC實時網絡傳輸是穩定可靠的。

圖4 通道1~3信號數據波形(局部放大)
基于RTX子系統的導彈試驗實時測控系統是導彈武器半實物仿真試驗的重要組成部分,它集仿真、測試、控制于一體,通過反射內存網絡將仿真設備、實時測控系統和參試部件等連接起來,構成分布式實時網絡,能夠用于新型導彈的研制、試驗、優化和評估。系統運行穩定可靠、測試精度高、實時性好、自動化程度高、使用操作簡便。系統應用RTX實時子系統開發技術,克服了Windows系統實時性差的局限性,增加了實時和非實時任務兼容處理能力,可完全滿足導彈半實物仿真試驗中實時仿真和實時測控的需要。
[1] 高立娥,康鳳舉,路堯,等.YFK-1仿真試驗控制臺的研究與開發[J].系統仿真學報,2005,17(11):2641-2644.
[2] Palma Rafael Augusto, Fernandes Jose Manoel. Hardware-in-the-loop simulation-A methodology proposal[C]// ISA EXPO 2005 Technical Conference—Technical Papers Collection. Chicago: ISA, 2005:1064-1075.
[3] Frederi Mahieu, Andres Folleco, Edgar An, etc. Software Development of the Hardware-in-the-loop Implementation and 3D Viewer for Ocean Explorer[EB/OL]. [2000-01-01].http://www.eng.fau.edu.
[4] 李行善,左毅,孫杰.自動測試系統集成技術[M].北京:電子工業出版社,2004:344-348.
[5] Ardence, a Citrix Company. RTX_7.1_User_Guide [EB/OL]. [2008-01-01].http://www.Ardence.com.
[6] 閆宇壯,楊祚堂. RTX在半實物仿真中的軟件開發方法[J]. 軟件開發與應用,2006,25(9):89-90.
[7] 單勇.實時半實物仿真平臺關鍵技術研究與實現[D].長沙:國防科學技術大學,2010:8-13.