PCI5565 PCI-5565 PMC5565 VMIC5565 反射內存 反射內存卡 GE反射內存
1引言
半實物仿真是評價反艦導彈抗干擾性能的一種有效技術手段,在導彈武器系統作戰效能評估的整個過程中占有重要地位。在導彈半實物仿真中,實時數據采集系統發揮著重要作用,一方面,在仿真運行過程中需要實時采集導引頭及各仿真設備的輸出數據用于解算彈道模型,實現閉環仿真另一方面,在實驗結果分析過程中,需要豐富、詳實的實驗過程數據作為支撐,以保證實驗結論的準確、可靠。鑒于導彈半實物仿真數據采集的實際需求,需要綜合考慮體系結構、軟硬件組成及技術實現細節等多個方面的因素,設計實時數據采集系統以滿足數據采集的準確性、實時性和靈活性要求。本文以主動式雷達制導反艦導彈半實物仿真系統為應用背景,分析數據采集任務特點,通過軟硬件體系結構設計和實時性優化設計,實現對實驗數據的實時采集,以滿足反艦導彈半實物仿真的數據采集需求。
2實時數據采集任務分析
2.1數據采集的內容
反艦導彈半實物仿真系統采用分布式體系結構,利用通信網絡將被試雷達導引頭、三軸飛行轉臺、射頻環境模擬器和仿真主機相連,基于通用計算機和通用操作系統實現導彈閉環仿真,系統組成結構見圖1。在半實物仿真中,依據信息的來源不同,可將待采集的信息分為以下幾類l2I【:被試雷達導引頭工作狀態信息及目標檢測信息;三軸飛行轉臺角位置反饋信息;射頻環境模擬器目標信號及干擾信號控制信息;模型解算所得彈道及控制信息;以及實驗過程狀態信息。可見,本系統的采集數據具有來源分散、形式多樣、實時性要求高、記錄內容多變等特點。

圖1反艦導彈半實物仿真系統結構圖
2.2數據采集實時性分析
數據的實時采集、處理和交互,是實現閉環仿真實驗的必要前提。而在仿真系統中由于實物(導引頭)的引入,要求仿真的推進應該與實時的外部事件相適應…。因此,數據的采集與處理應該在仿真模型解算要求的時限內完成,從而對數據采集系統的實時性提出了很高的要求。在仿真運行過程中,仿真系統在每一個幀周期內需要完成數據的采集、處理、交互和保存等工作,于是可將仿真運行幀周期大致劃分為六個部分,如圖2所示。

圖2仿真運行幀周期組成圖
在圖2所示的幀周期中,有效工作內容包括:以A/D轉換為核心的數據采集、節點的數據處理、數據傳輸與交互、數據保存等。如果系統采用非實時操作系統,會因為任務調度及資源分配等因素導致進程掛起,形成操作系統打斷時間。為了彌補操作系統打斷時間等不確定性,結合系統實時性需求,一般設置幀周期稍大于有效工作時間,形成幀等待時間。半實物仿真中的實時性問題,可以從快速性、穩定性和同步性三個方面進行考慮:
1)在快速性方面,數據的采集和傳輸部分可通過高性能硬件提高A/D轉換效率,減少數據傳輸時間;在數據保存部分,寫人數據庫一般耗時較多,需要在軟件設計與實現中進行優化設計,提高數據保存效率。
2)數據采集時間的穩定性,主要是指數據采集、傳輸和存儲過程所用時間的穩定性。在本系統中,由于采用通用計算機平臺和非實時操作系統(WindowsNT),必然帶來操作系統打斷問題,影響數據采集時間的穩定性。
3)數據采集的同步性,是指各仿真節點所采集數據在時間上的一致性。導彈半實物仿真實驗采用固定幀周期控制,為數據采集的同步性提供了實現基礎。針對系統分布式結構特征,分解數據采集任務,并可通過幀周期內部的時間片劃分可以實現時間同步的數據采集。
3系統體系結構設計
3.1系統體系結構
導彈半實物仿真按工作時序可劃分為實驗準備、仿真運行和實驗后結果分析三個階段,在實驗準備和實驗后結果分析兩個階段,要求數據交互形式靈活,但實時性要求較低;在仿真運行階段,數據交互內容可事先確定,但需要嚴格按照系統工作幀周期進行,對實時性要求嚴格。鑒于此,實時數據采集系統的通信網絡采用以太網和實時網,以太網用于實驗準備和實驗后結果分析兩個非實時工作階段,滿足數據傳輸靈活的需求;實時網用于仿真運行階段,滿足數據傳輸的強實時要求。系統其它硬件主要包括:數據庫服務器、數據采集上位機及I/O接口子系統,其中,數據庫服務器為實驗數據存儲及管理的平臺;數據采集上位機通過I/O接口子系統與導引頭進行信息的實時交互,系統硬件組成如圖3所示。

圖3采集系統硬件組成示意圖
3.2硬件選型
為滿足系統數據采集準確性和實時性指標要求,選取系統主要硬件配置如下:
1)數據庫服務器和數據采集上位機均采用工控機,其CPU為PD一3.2G,內存為DDR2—1G,和160G硬盤存儲器高配置工控機強大的運算能力可以有效縮短數據處理時間提高數據采集的快速性。
2)I/O接口子系統利用32路D/A、32路A/D高速接口進行模擬量處理,32路DI、32路DO高速接口進行開關量處理,8路串行接口進行數字量傳輸。其中,模擬量采集通過
l2位的ADS7805完成,其A/D轉換時間不超過lO微秒,實現了對數據的快速采集。
3)實時網由美國VMIC公司生產的5565系列反射內存卡組成。利用該反射內存卡加上光纖傳輸介質,可實現174M字節/秒的數據傳輸速率,同時保證網絡傳輸延遲不超過400納秒,使得網絡傳輸時間主要取決于共享內存讀寫時間,保證了數據傳輸的快速性。
4數據采集流程設計
在本系統中,物理設備的分布式特征決定了數據采集任務的分布實現;數據的時間一致性、管理使用的復雜性又要求集中、統一的綜合數據管理。因此,系統軟件結構在設計上呈現分布采集與集中管理相結合的特征。基于數據采集系統的數據源分散特征,可將數據采集任務分解為各仿真節點的數據采集和數據庫服務器的數據存儲兩個部分,采集數據通過反射內存網絡送至數據庫進行存儲。為保證數據采集的實時性,在流程主要進行了以下優化設計:
1)利用反射內存網絡中斷機制實現精確的幀同步。
VMIC反射內存卡支持多個中斷事件,利用中斷事件可以實現快速的節點通信,推進各仿真節點按幀周期同步運行,有效保證采集數據的時問一致性。
2)通過時間片劃分避免讀寫沖突。由于反射內存機制的特殊性,不同仿真節點有可能同時對同一地址進行操作,發生讀寫沖突。為了避免讀寫沖突問題,在統一幀周期的基礎上進行時間片劃分:在同一幀周期內部,負責數據采集的節點先進行自身的運算處理,在幀周期后半部分采集數據并寫入反射內存網;負責數據存儲的節點則在幀周期前半部分讀取實時網數據,然后進行存儲。通過這種時間片劃分機制,可以避免讀寫沖突,而且不會影響各仿真節點的運行效率。
3)實驗后數據入庫,提高仿真運行實時性。對于數據存儲節點,相對于仿真運行幀周期,寫入數據庫花費時間較長;同時,數據記錄長度的靈活多變也給數據入庫時間帶來了不確定性。為了保證在幀周期內完整記錄實驗數據,采用如下方法:數據存儲節點首先開辟一塊較大內存區;然后在仿真運行幀周期內,讀取實時網數據,通過內存拷貝記錄到已開辟內存區內;仿真運行結束后,將內存區數據寫入數據庫。
通過以上技術措施,形成優化后的數據采集流程如圖4。
5通用操作系統實時性優化設計

圖4優化的實時采集流程圖
為提高系統通用性和可擴展性,本系統采用了通用計算機平臺和WindowsNT操作系統。通常情況下,作為非實時操作系統,WindowsNT在任務調度、內存管理等機制上難以滿足導彈半實物仿真實驗的實時性需求。為完成嚴格的實時數據采集任務,系統在設計與實現過程中,主要在以下幾個方面進行優化設計:
5.1中斷管理
在WindowsNT操作系統中,中斷主要由I/O設備、處理器時鐘或定時器產生,可以被啟用(打開)或禁用(關閉)。WindowsNT采用基于優先級可搶先的中斷管理機制,通過“中斷請求級”(IRQL)可以將中斷源按優先級排序,較高優先級的中斷可搶先較低優先級中斷得到服務l5J。在默認狀態下,WindowsNT的外部中斷大部分都是開啟的,而且其優先級高于任何用戶進程。因此,對于實時性要求較高的應用場合,需要屏蔽非必要的外部中斷,保證實時進程對CPU資源的優先使用權。
每個處理器都有一個IRQL設置,其值決定了處理器可以接收哪些中斷。在WindowsNT系統中,核心態線程可以通過內核函數KeRaiseIrql()提高它所使用的處理器的IRQL優先級,從而可以封鎖所有等于或低于此IRQL的中斷,確保正在服務于該中斷的的處理器不會被同級或較低級的中斷搶先。被屏蔽的中斷將被另一個處理器處理或阻擋,直到IRQL降低。在本系統中,通過核心態的設備驅動程序設置處理器IRQL優先級來屏蔽非必要中斷,保證相應服務的實時性。
5.2優先級控制
通過中斷管理可以屏蔽非必要中斷,在一定程度上減少了操作系統的不確定性;但WindowsNT是搶先式多任務操作系統,采用基于優先級的搶先式調度策略,從而給線程的執行帶來了不可預測性,因此有必要進行優先級控制。在操作系統內部,WindowsNT使用32個線程優先級,范圍從0到31。依據Win32API觀點,Win32API首先依據在創建進程時分配的優先級等級(實時級、高級、中級或空閑級)組織進程,然后依據進程中各個線程的相對優先級(時間緊要級、最高級、中上級、中級、中下級、最低級和空閑級)組織線程。WindowsNT以線程為單位進行調度,而不考慮給予調度的線程屬于哪個進程。
在本系統中,通過win32函數SetPriorityClass()和SetThreadPriority()設置線程優先級為時間關鍵級J,在系統調度意義上保證數據讀寫的實時性。
5.3虛擬內存管理
WindowsNT采用基于平面32位地址空間的虛擬內存系統,頁面的換入/換出會影響實時系統的可預測性。考慮到實時應用需求,WindowsNT通過以下措施減小影響:實時優先級線程不采用內存交換,不受換頁影響;NT允許應用程序把自己鎖到內存(使用VirtualLock()API),免受換頁的影響。
因此,在本系統中,通過頁面鎖定方法將關鍵頁面鎖定到內存中,不被交換出內存。Win32API函數VirtualLock()可將VirtualAlloc()指定的內存區域進行鎖定;當不在需要鎖定時,通過VirtualUnlock()進行解鎖,最后通過VirrualFree()進行釋放。
6仿真結果分析
為了驗證所設計數據采集系統的實時性,設計如下條件開展數字仿真:
1)利用一個仿真節點進行數據采集,數據庫服務器完成數據存儲;
2)為統計實際的數據采集時間,仿真以幀同步方式推進。即完成一次數據采集之后,通過中斷事件進行節點間通信,進入下一幀;
3)每個幀周期采集數據量為30個double型數據,采集次數為30萬次;
4)仿真運行中,在數據庫服務器上運行其它程序作為干擾因素,考察數據采集的穩定性。設置計時區間為實時網寫入數據、數據傳輸、讀取實時網數據和內存拷貝的總時間,開展仿真試驗,得結果如圖5所示。

圖5數據采集時間統計結果圖
由圖5可知,在同時運行其它程序的干擾條件下,一次數據采集時間不超過100微秒,均方差為1.17微秒,表明該實時數據采集系統能夠實現快速、穩定的數據采集、傳輸和存儲。
另外,在相同條件下屏蔽針對操作系統的優化程序,發現一次數據采集時間最大可達4.5毫秒,超過了系統幀周期要求,從而驗證了通用操作系統實時性優化設計的有效性。
7結束語
通過針對性的系統軟硬件結構設計,優化數據采集工作流程,以及通用操作系統實時性優化設計等步驟,實現了功能完備的實時數據采集系統。實踐應用表明,該系統能夠適應半實物仿真嚴格的幀周期控制,且運行性能穩定,未出現丟幀或數據錯誤現象,滿足了反艦導彈半實物仿真系統的實時數據采集與管理需求。
應用通用計算機平臺和成熟的反射內存網絡產品構建
實時數據采集系統,可以有效利用電子、信息技術的最新成果,方便系統的升級和改造,本文的設計思想也可為類似系統建設提供一定的參考和借鑒。
|