紀 錄,吳國東,王志軍,尹建平,劉亞昆
(中北大學機電工程學院,太原 030051)
在彈箭飛行仿真系統中,為了避免通信過程中的不可預測性,因此應盡量縮短整套半實物仿真系統的響應延遲,從而提高彈箭飛行仿真系統的真實度。彈箭飛行半實物仿真技術對系統實時性及可操作性的要求很高,而現在應用最廣泛的Windows操作系統實時性較差,難以滿足高精度的彈箭半實物仿真系統對實時性的要求,但其操作的界面和通用性比較優秀,而且其具有良好的人機交互功能。因此在文中采用在Windows操作系統的內核中引入RTX的實時通訊和控制系統的方式,形成了Windows + RTX的實時系統,該系統既保留了Windows系統傳統的優勢又解決了實時性較差的問題[1-4]。
文中根據彈箭飛行半實物仿真平臺的具體要求和總體方案要求,設計了彈箭飛行仿真系統的整體系統,并對彈箭飛行仿真系統的整體通訊協議進行了定義,在引入的RTX實時系統,采用了VC++對RTX中的子系統RTSS進行開發,并利用開發的RTSS程序完成彈道控制模型的實時解算、彈載計算機的實時控制、整體飛行質量的實時評估及數據的實時采集和轉換等實時任務。
RTX(real-time eXtension)實時操作系統是Interval Zero公司的一款嵌入式軟件產品。在Windows 下安裝RTX 實時操作系統,拓展了Windows操作系統內核體系,修改并擴展了整個硬件抽象層HAL(hardware abstraction layer),實現在Windows下獨立的內核驅動模式,形成與Windows 操作系統并列的實時子系統。RTX運行于系統內核層,實時子系統RTSS的線程優先于所有Windows線程,提供了對IRQ、I/O、內存的精確直接控制,以確保實時任務的100%可靠性[5-6]。通過高速的IPC通訊和同步機制,RTX方便地實現與Windows之間進行高速實時的數據交換。RTX系統其使用的成本相比其他的實時開發軟件比較低,而且開發的周期比較短,支持VC++6.0開發環境。

圖1 RTX工作原理圖
光纖反射內存網絡(OFRMN, optical fiber reflective memory network)是一種基于光纖的超高速共享內存的解決方案,其主要是由光纖反射內存板卡通過光纖等傳輸介質相互連接而成,其實質就是一個雙口可以讀寫的RAM, 本地計算機和網絡端可以自由訪問該RAM,進行透明的數據接收和發送[7-9]。因此其有以下優點:
1)高速,最大傳輸速率可達174 MB/s;
2)簡單易用,主機負載輕,與操作系統和處理器無關;
3)反射內存網絡上的數據傳輸是純硬件操作,只需要幾行代碼就可以完成反射內存卡的讀、寫操作,徹底省去軟件開發開銷和周期;
4)允許采用不同的總線結構和不同操作系統的計算機以確定的速率分享實時數據;
5)節點距離可達10 km(單模)、300 m(多模);
6)簡單的軟件,較強的抗干擾能力和傳輸糾錯能力。
整個彈箭飛行的半實物仿真系統的結構圖和控制系統設計圖如圖2和圖3所示。其中圖2主要是對整個彈箭飛行仿真系統組成的硬件設備及各設備之間的關系進行簡要的說明,各設備都連接在高速的反射內存網絡中,再通過實時軟件連接,可以滿足彈箭飛行仿真過程中的實時性要求。圖3主要是對整個系統的通訊和控制方案做了簡要的說明,該圖顯示了主控機發送初始化命令,然后再發送飛行仿真的位置、姿態、軌跡、速度及數防加速度等命令,首先將這些命令傳遞到數據服務器中,然后轉臺、衛星信號模擬器、彈道仿真機、模擬負載設備等設備從數據服務器中讀取自己所需要的命令或者數據,最后進行彈箭飛行仿真系統試驗,在此過程中,評估系統在不斷的工作,對轉臺的飛行姿態和衛星信號模擬器的軌跡進行不斷的調整,從而實現飛行仿真的準確性和逼真度,在次過程中軟件系統的閉環測試模塊從硬件系統中讀取轉臺控制模塊收到飛行轉臺的位置數據,實現飛行轉臺的閉環監測。

圖2 彈箭飛行仿真系統的結構圖

圖3 飛行仿真控制系統方案設計圖
在彈箭飛行仿真系統中,其通訊協議方案的設計是十分重要的,如果沒有通訊協議,整個彈箭飛行仿真系統就不能協同工作以實現信息交換及資源共享,因此設計的仿真系統采用了UDP+TCP通訊方式,其通訊進程為:1)設備上線廣播發送上線報文,在線設備收到后刷新設備列表,并回復收到上線報文,主設備記錄各個從設備,從設備至少記錄主設備和數據服務器;2)設備下線時發下線報文;3)主設備心跳方式,間隔時間發送更新列表;4)設備掉線后發掉線報文,重新連接;5)設備發送消息后,可以要求回復接收報文;6)設備間傳輸數據使用TCP協議。
//通訊端口
#define MFSS_UDP_PORT 0x1a85 //6789
#define MFSS_TCP_PORT 0x1a85 //6789
//通訊協議格式
版本號;消息序號;系統名;設備名;消息命令;消息內容
//協議版本號(雙字節)
#define MFSS_VERSION 0x0100//高字節 版本號 低字節 小版本號
//消息序號 ID(4字節)
唯一ID,時間函數獲取 time(),可以轉換時間
//系統名(字符串)
#define MFSS_NAME_SYSTEM_CHS“彈箭飛行仿真系統”
#define MFSS_NAME_SYSTEM_CHS “Missile flight simulation system ”
//設備名(字符串)
#define MFSS_NAME_DEVICE_CHS“衛星信號模擬器”
#define MFSS_NAME_DEVICE_ENG “GNSS 8000”
#define MFSS_NAME_DEVICE_CHS “飛行轉臺”
#define MFSS_NAME_DEVICE_ENG “Flight turntable”
//各設備RTX-Win32通訊定義 (可分別定義多個)
//共享內存 Shared memory
#define MFSS_SHM_XXX “MFSS_XXX.SHM”
//互斥量 Mutex
#define MFSS_Mutex_XXX “MFSS_XXX.MUTEX”
//信號量 Semaphore
#define MFSS_SMP_XXX “MFSS_XXX.SMP”
//事件量 Event
#define MFSS_EVENT_XXX “MFSS_XXX.EVENT”
彈箭飛行仿真系統由Windows + RTX實時控制系統和光纖反射內存網絡兩大部分組成,Windows + RTX實時系統主要是實現各個設備之間的實時控制和通訊,而光纖反射內存網絡是實現在實時控制和通訊過程中的準確性和穩定性的保證。
3.1.1 RTX和Windows通訊對比
彈箭飛行仿真系統的各個設備之間控制和通訊,主要是在RTX實時系統下完成的,如圖4和圖5是分別在Windows下和RTX下進行通信的傳輸速率及傳輸時間。在相同的電腦上,同時進行Win32和RTX測試,可以發現RTX數據傳輸速率可以達到11.5 MB/s左右,而Win32下只有1.7 MB/s左右,RTX下傳輸速率大約是Win32的6.7倍;傳輸過程中反應時間在Win32下Minimum Time=489 μs,Maximum Time=1 797 μs,而在RTX下Minimum Time=158 μs,Maximum Time=580 μs,傳輸過程中的時間遠小于Win32下,足以證明RTX系統相比于Windows系統具有更好的實時性。

圖4 Windows下網絡傳輸速率及時間圖

圖5 RTX下網絡傳輸速率及時間圖
3.1.2 實時控制系統方案設計
整個彈箭半實物仿真平臺的實時控制系統由Windows和RTX進程兩大部分組成[10],整個系統的整體架構圖如圖6所示。

圖6 實時控制系統的架構圖
從圖6 可知Win32和RTX是通過共享內存進行通信。如圖7所示,采用VC++編寫的共享內存程序的Win32界面,經過測試可以實現共享內存的調用和回收,能夠滿足Windows和RTX程序的連接及信息的傳遞。如圖8所示,顯示出RTX程序下共享內存的建立過程。

圖7 共享內存Win32操作界面圖

圖8 RTX下共享內存創建圖
3.1.3 實時控制系統接口程序設計
對本系統中實時控制系統的接口程序進行了設計和測試,其中包括RTX下的PCI總線接口、普通的通信和接收數據的串口和并口及MOXA的4 口RS-232 通用 PCI 多串口通訊卡、API 接口的VC++6.0程序的編寫和測試,通過對編寫程序的測試,可以實現接口在RTX下實時的開關及數據的實時傳輸。如圖9~圖11是各個接口的測試圖。由于在該系統中工控機自帶單串口,傳輸速率達不到實時系統串口通訊的速率921.6 kbit/s,滿足不了兩個分系統之間數據的快速傳輸與實時通訊的需求,因此本系統外插入了MOXA CP-104UL V2的多串口卡,可以支持4個接口進行實時數據交換,從而達到所需要的實時性。

圖9 RTX下PCI總線接口測試圖

圖10 單串口、并口及API接口測試圖
3.2.1 反射內存板卡傳輸速率及工作流程
本系統采用通用電氣公司的VMICPCIE5565反射內存卡構建拓撲結構網絡。經過反射內存卡測試程序對數據傳輸速率進行了測試,可以得到連續接收和發送數據85 082 MB,該板卡組成的網絡穩定傳輸數據的速率可以達到153 MB/s,而且經過測試在高速數據傳輸過程中,沒有數據的丟失,可以滿足彈箭飛行系統的數據傳輸的實時性要求,測試圖如圖12所示。圖13準確的反應了光纖內存反射內存板卡的整個工作流程圖,其采用的是中斷式通訊,其主要特點是發送方和接收方通過事件進行同步,CPU占用少;發送方可以向多個指定的接收方發送數據,即1→n方式,也可以采用UDP廣播的方式。

圖12 反射內存卡速度測試圖

圖13 光纖反射板卡通訊流程
3.2.2 RTX下反射內存板卡程序設計及測試
本系統將反射內存板卡在RTX子程序下運行,如圖14所示的VMI-PCI-5565板卡進行數據傳輸測試的界面,其可以實現數據連續實時的傳輸,傳輸過程中沒有出現數據的丟失,延時時間在1 μs左右,可以實現彈箭飛行仿真系統的實時性要求。

圖14 RTX下光纖反射內存卡程序測試圖
本次試驗,通過運行Win32界面,在RTX下運行實時系統,進行飛行姿態的測試和飛行軌跡的測試,其測試結果如圖15和圖16所示。經過測試,通訊命令和通訊數據能夠滿足彈箭飛行仿真系統的實時性、準確性和穩定性的要求。

圖15 飛行轉臺姿態試驗圖

圖16 GNSS衛星信號模擬器試驗圖
文中將Windows良好的人機交互性和RTX高效實時性結合起來建立實時控制系統,并通過反射內存網絡的設計,實現數據的實時和準確傳輸,該設計系統具有較好通用性和靈活性,可實現彈箭飛行仿真的實時通訊和控制要求。通過對整個系統進程進行試驗測試,取得了大量的飛行參數和數據,試驗結果為以后進行某型號導彈的研究提供了參考。