(92941部隊94分隊 葫蘆島 125000)
基于RTX的數字仿真報文錄取系統*
史強
(92941部隊94分隊 葫蘆島 125000)
針對目前數字仿真系統數據錄取過程中存在的時延過大等問題,提出應用時序控制軟件RTX來提高系統的實時性。分析了RTX程序運行機理,并在數字仿真試驗中采用RTX與Windows2000系統相結合的方法完成數據錄取。實踐表明錄取數據的時延指標滿足要求。
RTX;實時性;RTSS;硬件抽象層;數據錄取
ClassNumberTP391.9
數字仿真要求系統具有很高的實時性,以確保錄取的數據真實可信。另一方面,又要求系統具有良好的硬件兼容性與界面可操作性。而目前最常用的Windows NT內核操作系統,雖然具有較強的圖像處理功能,較好的硬件兼容性,但其內部的多任務處理方式造成其系統實時性不好[1~2],特別是在同時運行多個程序的狀態下,其系統時延非常大;VxWorks是目前實時性最好的操作系統[3],但其圖形顯示功能一般。為解決上述問題,選擇了美國Ardence公司出品的時序控制軟件RTX,采用RTX與Windows NT內核操作系統相結合的方法,此方法架構簡單,易于實現。
Windows內部線程之間的中斷與調用存在步調不一致的問題,僅單個線程的中斷與調用,時延可達幾十μs到上百μs[4];Windows的線程優先級只有32個,遠不能滿足處理復雜程序時系統時實性要求;為應付多任務狀態下內存空間不足的問題,Windows采用了虛擬內存技術,但其分頁尋址方式造成尋址時間不可預知[5];Windows內部的普通定時器定時精度只有幾百毫秒[6],即使經過軟件修正,也僅僅能達到幾十毫秒。
如圖1所示,RTX工作于Windows NT內核操作系統下,其系統配置,包括定時器時鐘周期的選擇、RTSS子系統的開關均由Windows系統發送控制命令控制[7~8]。

圖1 RTX工作原理
RTX創建了獨立的實時子系統RTSS,同時,修改并拓展了硬件抽象層(HAL:Hardware Abstract Layer)。RTSS具有獨立的時鐘、中斷、尋址等進程管理機制,RTSS通過拓展了的硬件抽象層,可以不經Windows系統而直接訪問I/O接口設備。以上保證了RTSS所屬進程可以優先于所有Windows進程之上,只要RTSS所屬的程序有中斷要求,RTSS就可以搶在所有其它進程之前調用該進程,從而使系統的實時性得到保證[9]。
此外,RTSS子系統及RTSS進程均工作于Windows系統的非分頁內存,這就防止了其數據被其它程序誤覆蓋,其內部擁有的線程優先級多達128個[7],而其內部時鐘定時精度可達0.1ms,這更確保了在多任務、高時鐘頻率下的系統實時性[10]。
如圖2所示,某數字仿真測試系統,要求其報文錄取分系統能夠時實在線錄取并保存仿真數據。其采樣頻率高(一個時鐘周期20ms),采樣任務多(五種網絡報文),要求丟禎、誤禎率為十萬分之一,要求操作界面美觀,功能復雜。在Windows NT內核操作系統下已無法滿足實時性要求,故其報文錄取分系統采用了Windows2000+RTX架構。硬件采用P43.0GCPU、2G內存與雙冗余網卡,直接從系統總線網絡錄取網絡報文數據的方式工作。

圖2 某數字仿真測試系統
4.1 報文錄取系統程序結構
RTX程序安裝完畢后,會自動向Visual C++中添加有關向導程序。Visual C++中的RTXDriverWizard向導生成的RTSS進程文件可以建立與PCI網卡之間的通訊,RTXApplicationWizard向導可生成基于RTX的應用程序。程序分為Windows2000系統內部的程序與RTSS子系統內部的程序兩部分??蓪indows系統看作是上位機,而RTSS子系統看作是下位機。Windows2000內部程序完成共享內存配置、RTSS分系統的參數配置、圖形界面顯示與程序功能控制;RTSS內部程序完成網絡報文的錄取與存儲;共享內存供兩部分程序之間交流信息。
4.2 程序流程
如圖3所示,Windows2000內部程序首先依據數據量的大小開辟共享虛擬內存區域,確定共享內存指針,之后,向共享內存寫入RTSS配置信息、發出啟動RTSS命令,并啟動Windows系統定時器,等待讀取、轉存、顯示共享內存中的錄取數據。其創建共享內存函數如下:

圖3 Windows2000內部程序流程
RtCreatesharememory(
Int size, //內存尺寸參數
DWORD highbyteadress, //內存上界地址
DWORD lowbyteadress, //內存下界地址
Void **address, //定義內存指針
Bull memorefull, //內存溢出標志
);//創建共享內存函數
如圖4所示,接收到啟動命令后,RTSS內部程序啟動。依據配置信息設定RTSS內部時鐘、中斷方式、并讀取虛擬共享內存指針,將網絡接口地址映射至虛擬內存。此時偵聽進程啟動,等待Windows系統發出RTSS定時器啟動命令,啟動RTSS內部定時器,每20ms申請一次中斷,進行數據錄取、存儲至共享內存,直到有RTSS進程結束命令的到來。RTSS進程響應時間僅為50μs,遠遠小于Windows進程響應時間,其進程管理體制可保證所有RTSS進程高于Windows進程。因此,程序的關鍵是設定好中斷函數DataInterrupt()、RTSS進程管理函數Rtthread()、數據接收函數DataReceive()、數據存儲函數DataSave(),設定一個時鐘周期內完成一幀數據接收與存儲,數據接收進程高于數據存儲進程。其中的中斷函數如下:

圖4 RTSS內部程序流程
DataInterrupt(
Long lowStack==&stack, //棧初始地址
Long Clockstack=size ,//棧長
Bull datairq,//中斷標志
Priority, //中斷優先級設定
……)//定義中斷函數
4.3 程序測試結果
報文錄取系統共接收三個模塊五種報文,采樣頻率20ms,運行時間1小時,僅出現一種報文的一次數據延遲到下一時鐘周期的現象,時延附近的數據圖象,如圖5所示,其時延處報文內容如表1所示。測試結果表明,報文錄取系統錄取的多種網絡報文數據無丟禎,偶爾出現錄取的數據延遲至下一個采樣周期的現象,原因為RTX系統本身亦存在微小的時序誤差所至,完全符合誤禎率十萬分之一的要求。此外,系統運行過程中還發現,數據在圖形界面的實時顯示存在延遲現象。原因是讀取、顯示錄取數據的Windows線程優先級別比較靠后,同時也說明了Windows NT內核操作系統不是一個實時性很好的操作系統。

圖5 存在數據延遲的報文圖像

表1 時延處的報文數據
RTX與Windows NT內核操作系統相結合,可以很好地解決多任務操作系統實時性不好的問題。特別是在系統多任務、多線程等惡劣工作條件下,RTX對操作系統實時性的提高效果明顯。
[1]盧雁,談鴻韜,李煒.基于HLA的??諏狗抡娣桨冈O計[J].艦船電子工程,2012,32(7):88-91.
[2]徐海,崔連虎,徐光耀.RTX環境下時統信息實時采集方法研究[J].艦船電子工程,2012,32(4):59-61.
[3]方立新,陳海飛,邵東青.全數字仿真試驗系統建設[J].艦船電子工程,2012,32(6):13-16.
[4]袁立軍,龔濤,王向軍.一種高精度信號采集系統的設計和研究[J].艦船電子工程,2012,32(12):92-94.
[5]劉同栓,郭曉月.RTX在半實物仿真系統中的應用[J].航空精密制造技術,2010,46(4):50-52.
[6]王明惠,劉增明,呂梅柏.一種基于DSP目標板的嵌入式軟件仿真系統設計[J].航空兵器,2001(1):52-55.
[7]武文峰,張泓.基于RTX的PXI板卡驅動程序開發[J].航空兵器,2012(3):51-54.
[8]周林雪,李巖,王建軍,等.基于RTX的激光制導武器半實物仿真研究[J].計算機仿真,2013,30(1):45-49.
[9]孫繼紅.RTX技術在半實物仿真中的應用及開發[J].計算機仿真,2010,27(8):83-86.
[10]王偉,袁寶君,吳佳楠.基于RTX的數據采集系統設計[J].測控技術,28(10):22-25.
DigitalSimulationDataRecordingSystemBasedonRTX
SHI Qiang
(Unit 94, No. 92941 Troops of PLA, Huludao 125000)
Aiming at shortcomings in digital simulation data recording system like too large time delay, using timing control software RTX is put forward to improve real-time ability. The paper analyses the operational principle of RTX. It also combines RTX with Windows 2000 for data recording in digital simulation test. Practice shows that time delay in data recording can meet the requirement.
RTX, real-time ability, RTSS, hardware abstract layer, data recording
2013年11月19日,
:2013年12月25日
史強,男,工程師,研究方向:艦炮武器系統試驗。
TP391.9DOI:10.3969/j.issn1672-9730.2014.05.027