雷達操控顯示終端作為雷達系統(tǒng)的重要組成部分,用于雷達空情目標(biāo)顯示、數(shù)字原始視頻顯示、雷達控制、系統(tǒng)監(jiān)測等,隨著計算機性能的提高和多功能需求的日益增強,將雷達的實時控制、數(shù)據(jù)處理等實時應(yīng)用集成在雷達的操控顯示終端中已日益成為趨勢,用戶的界面審美需求也對終端的圖形加速、多媒體以及三維場景的顯示性能提出更高的要求。目前,國內(nèi)外的雷達操控顯示終端產(chǎn)品很難同時滿足上述要求。通常實時操作系統(tǒng)為保證其實時性,對圖形的支持能力都較弱,一般只支持簡單的圖形顯示,目前尚沒有一款獨立的操作系統(tǒng)能夠既滿足實時性要求,又為用戶提供強有力的圖形處理支持。
為了兼顧雷達操控顯示終端的實時性能和強勁的圖形顯示能力,本文提出了一種在嵌入式Window XP(XPE)中基于INtime實時操作系統(tǒng)的雷達實時操控顯示終端設(shè)計方案。終端采用通用PC硬件平臺,利用實時多任務(wù)操作系統(tǒng)INtime的實時性完成雷達系統(tǒng)的實時控制和數(shù)據(jù)處理任務(wù),同時充分利用Windows操作系統(tǒng)強大的圖形界面功能,實現(xiàn)雷達目標(biāo)、狀態(tài)、原始視頻、電子地圖等顯示功能。
1 INtime實時操作系統(tǒng)介紹
INtime是TenAsys公司為滿足Windows平臺上硬實時系統(tǒng)嚴(yán)格的響應(yīng)時間要求而開發(fā)的一個實時子系統(tǒng),其系統(tǒng)結(jié)構(gòu)體系如圖1所示。
INtime實時系統(tǒng)在計算機啟動加載Windows操作系統(tǒng)時同時被加載,共享相同的CPU和中斷硬件,但在其他方面相互獨立。當(dāng)實時活動必須發(fā)生時,計算機上下文將切換到該實時操作系統(tǒng),這些活動完成后,計算機上下文將切換回Windows操作系統(tǒng)。實時進程運行在INtime內(nèi)核上,非實時進程運行在Windows內(nèi)核上。INtime為Windows進程提供了擴展函數(shù)庫(NTX API),使Windows進程能夠共享在實時內(nèi)核上創(chuàng)建的對象,從而實現(xiàn)Windows進程和INtime進程之間的數(shù)據(jù)共享和同步。
INtime內(nèi)核提供了一個基于優(yōu)先級的搶先式多任務(wù)調(diào)度系統(tǒng),可支持256個線程優(yōu)先級,優(yōu)先級高的線程優(yōu)先調(diào)度執(zhí)行,同一優(yōu)先級的線程采用時間片輪轉(zhuǎn)調(diào)度算法。通過對線程賦予不同的優(yōu)先級,嚴(yán)格保證各個任務(wù)的先后執(zhí)行次序。在進程通信和同步方面。INtime通過共享內(nèi)存與Windows進程進行數(shù)據(jù)交換,通過信號量進行進程的同步控制。INtime內(nèi)核提供了高精度的系統(tǒng)計時器,最高精度達100μs,可滿足大多數(shù)要求苛刻的應(yīng)用程序的實時性要求。INtime支持多處理器系統(tǒng),可以劃分出一個處理器為INtime操作系統(tǒng)及其實時進程專用,提高了系統(tǒng)的可靠性。INtime還提供了與Windows環(huán)境兼容的實時編程接口,支持Win32的API,實現(xiàn)了一套實時擴展函數(shù),通過VC++編譯環(huán)境開發(fā),具備良好的實時調(diào)試器。
2 系統(tǒng)總體結(jié)構(gòu)
雷達實時操控顯示終端是一個集實時通信、控制、數(shù)據(jù)處理及顯示的綜合多任務(wù)系統(tǒng),既有實時性要求很高的雷達設(shè)備控制、跟蹤數(shù)據(jù)采集和跟蹤數(shù)據(jù)處理等任務(wù),又有實時性要求較低的數(shù)據(jù)管理,狀態(tài)控制,雷達目標(biāo)、數(shù)字原始視頻、電子地圖顯示等任務(wù),所以在系統(tǒng)結(jié)
構(gòu)設(shè)計時,把實時和非實時任務(wù)分開運行。實時任務(wù)運行在INtime內(nèi)核中,主要完成對跟蹤雷達分系統(tǒng)、光電跟蹤分系統(tǒng)的跟蹤數(shù)據(jù)實時采集和處理。根據(jù)處理結(jié)果實時控制跟蹤伺服分系統(tǒng),并將跟蹤天線對準(zhǔn)目標(biāo),以達到跟蹤功能,同時完成與非實時進程的數(shù)據(jù)同步。非實時任務(wù)運行在Windows內(nèi)核中,主要完成雷達分系統(tǒng)非實時的狀態(tài)控制和數(shù)據(jù)顯示,同時完成系統(tǒng)數(shù)據(jù)的存儲等管理,其系統(tǒng)結(jié)構(gòu)如圖2所示。
雷達操控顯示終端在硬件選型上,選用加固一體計算機,為更好地發(fā)揮計算機的圖形處理能力,計算機顯卡具備2D/3D硬件加速能力。 CPU選用Intel酷睿雙核,并將INtime配置成獨占模式,即INtime獨自占用一個CPU核運行實時進程,Windows占用另一核,這樣可提高系統(tǒng)的穩(wěn)控性和實時性。終端計算機內(nèi)置一塊定時接口板,用于產(chǎn)生雷達系統(tǒng)同步時鐘,板卡通過PCI總線向終端計算機提供時鐘中斷信號。終端與雷達其他分系統(tǒng)之間的通信通過網(wǎng)絡(luò)傳輸。
為保證系統(tǒng)的健壯穩(wěn)定,Windows操作系統(tǒng)采用裁剪的嵌入式XPE操作系統(tǒng),該系統(tǒng)設(shè)計成基于休眠方式啟動、內(nèi)存保護方式運行模式,既保證了系統(tǒng)的快速啟動,又保證了系統(tǒng)的穩(wěn)定可靠。關(guān)于XPE操作系統(tǒng)的設(shè)計已有較多文獻資料參考,本文將不做詳細介紹。
3 終端軟件設(shè)計
終端軟件采用VC++開發(fā),基于上述系統(tǒng)結(jié)構(gòu),軟件主要包括INtime的實時進程和Windows的非實時進程,各進程根據(jù)任務(wù)需求劃分相應(yīng)的任務(wù)和功能模塊,軟件功能結(jié)構(gòu)圖如圖3所示。
3.1 INtime進程
INtime實時進程在INtime內(nèi)核中運行,根據(jù)其功能劃分主要包括系統(tǒng)定時功能模塊、實時跟蹤控制功能模塊、跟蹤數(shù)據(jù)處理功能模塊、網(wǎng)絡(luò)接口通信功能模塊和進程通信管理模塊。軟件采用多線程方式設(shè)計,按實時性要求劃分不同優(yōu)先級的任務(wù),采用適當(dāng)?shù)娜蝿?wù)調(diào)度策略,使每個任務(wù)按要求適時執(zhí)行。進程的軟件結(jié)構(gòu)如圖4所示。
實時進程采用計數(shù)器對外部定時接口板的10ms硬件定時中斷進行計數(shù),分別產(chǎn)生40 ms和200 ms中斷信號量。根據(jù)系統(tǒng)處理實時性要求,將40 ms定時處理線程相對優(yōu)先級設(shè)置為1(高),將200 ms定時處理線程相對優(yōu)先級設(shè)置為2(中),將雷達各分系統(tǒng)與INtime進程的通信線程優(yōu)先級均設(shè)置為0(最高),以保證跟蹤傳感器跟蹤數(shù)據(jù)的實時可靠。
通信線程主要用于接收網(wǎng)絡(luò)上跟蹤傳感器的跟蹤距離、角度偏差和狀態(tài)數(shù)據(jù)。線程通過網(wǎng)絡(luò)中斷方式實時接收數(shù)據(jù),并將數(shù)據(jù)存入相關(guān)的接收數(shù)據(jù)數(shù)組,供40 ms定時處理線程使用。
40ms定時處理線程用于將多跟蹤傳感器的跟蹤數(shù)據(jù)進行融合處理,并建立跟蹤航跡,采用卡爾曼濾波對目標(biāo)進行航跡的平滑、外推和精確跟蹤。根據(jù)目標(biāo)預(yù)測位置和天線位置求取角度偏差量,采用速度回路和位置回路控制跟蹤伺服分系統(tǒng),以使跟蹤天線保持對準(zhǔn)目標(biāo)方向,實現(xiàn)對目標(biāo)的實時跟蹤。40 ms定時處理線程同時將光電及跟蹤雷達傳感器的狀態(tài)數(shù)據(jù)、系統(tǒng)狀態(tài)和目標(biāo)航跡的跟蹤處理結(jié)果等寫入數(shù)據(jù)隊列用于Windows進程顯示。
200ms定時處理線程主要用于INtime實時進程與Windows進程間的數(shù)據(jù)交互。采用共享內(nèi)存和信號量機制,創(chuàng)建共享內(nèi)存對象和信號量對象,定時將數(shù)據(jù)隊列中的數(shù)據(jù)寫入共享內(nèi)存中,主要包括雷達的跟蹤狀態(tài)、跟蹤航跡信息、雷達分系統(tǒng)控制信息、時鐘信號量等。Windows進程在與INtime進程通信時,通過調(diào)用INtime的NTX API,獲得INtime實時內(nèi)核上創(chuàng)建的對象。
3.2 Windows進程
Windows進程與普通桌面Windows系統(tǒng)下的進程設(shè)計方法完全兼容。本終端的顯示設(shè)計采用多線程方式,利用Windows平臺的DirectX圖形接口,通過DirectDraw進行快速、多層次的頁面繪制和顯示。采用圖形控件進行界面布局,通過各控件的功能定義和相應(yīng)的消息機制來驅(qū)動人機界面操控事件,以完成界面中各功能按鈕、對話框、列表框等的操控功能。
雷達圖像的顯示主要為圓形雷達圖像和文字顯示,包括PPI坐標(biāo)背景、電子地圖背景、雷達原始視頻圖像、各種目標(biāo)點跡、航跡、字符以及天線碼盤等信息。采用DirectlDraw圖形加速顯示技術(shù)和頁面的分層設(shè)計,將DirectDraw頁面分為背景層頁面、電子地圖顯示頁面、雷達原始回波視頻頁面、目標(biāo)頁面和動態(tài)狀態(tài)數(shù)據(jù)頁面。通過多線程對各頁面顯示內(nèi)容獨立進行快速繪制,在Windows進程的主定時器中將各頁面疊加繪制到DxDraw主頁面,調(diào)用DirectDraw的換頁函數(shù)(Flip)進行顯示。由于雷達數(shù)字原始視頻數(shù)據(jù)量龐大,顯示任務(wù)資源消耗較多,為保證INtime進程對CPU資源的合理利用,將用于顯示任務(wù)的主定時器線程時間周期設(shè)計為100 ms,既滿足顯示畫面的流暢性,又不致過多的占用CPU。
Windows進程與INtimc間的數(shù)據(jù)交互通過通信管理模塊來完成,調(diào)用INtime的NTX API,訪問INtime系統(tǒng)中創(chuàng)建的共享內(nèi)存數(shù)據(jù)和信號量數(shù)據(jù)。
雷達數(shù)據(jù)的存儲以INtime系統(tǒng)設(shè)置的定時器為時間基準(zhǔn),對接收到的所有網(wǎng)絡(luò)數(shù)據(jù)進行打時標(biāo)和報文重組,以二進制方式記錄在存儲介質(zhì)中,以保證數(shù)據(jù)的真實性。
3.3 軟件的運行
使用XPE+INtime構(gòu)筑的系統(tǒng)作為雷達操控終端軟件運行環(huán)境,主要由Real-time控制應(yīng)用(INtime進程)和GUl應(yīng)用(Windows進程)兩部分構(gòu)成。終端軟件的Windows進程直接雙擊運行,由XPE操作系統(tǒng)載入內(nèi)存并執(zhí)行,INtime實時進程由其系統(tǒng)配套的實時控制應(yīng)用軟件載入器LDRTA.EXE加載到內(nèi)核并執(zhí)行。INtime內(nèi)核將自動創(chuàng)建一個最低優(yōu)先級線程,用于將計算機上下文切換回Windows進程,以保證兩進程在同一硬件平臺同時運行。兩進程通過共享的內(nèi)存和信號量進行數(shù)據(jù)交互,并各自獨立運行完成雷達的實時操控顯示功能。
4 結(jié)語
通過對基于INtime的雷達實時操控顯示終端的實驗室測試與仿真,以及與雷達實裝的現(xiàn)場運行,實時操控顯示終端較好地完成了對雷達的實時控制和數(shù)據(jù)處理運算,滿足系統(tǒng)實時性要求,同時能夠流暢顯示雷達的原始視頻回波、檢測點跡以及雷達工作狀態(tài),表明了該方案能夠成功地將雷達實時控制和實時性要求不高的顯示集成在一起,既降低成本又增加了系統(tǒng)的可靠性。