- 相關推薦
飛控系統半物理仿真平臺通訊網絡構建論文
1、前言
飛控系統半物理仿真是型號研制和試驗過程中的一個重要環節,飛控系統作為一種強實時性的系統,其半實物仿真是時間約束非常強的過程,其計算、數據通訊和關鍵信號的處理如果出現超時將可能導致整個仿真實驗的失敗。因此,實時算法和通訊技術的研究是半實物仿真系統的關鍵技術。
隨著計算機技術和通訊技術的迅速發展,仿真主機的速度大大提高,為飛行器非線性動力學方程的高速、高精度求解提供了條件;其次,采用實時網絡通訊技術,可以實現兩結點數據傳輸時延遲為納秒級或微秒級。
2、仿真平臺構建
為保證飛控系統半物理仿真平臺的可擴展性,系統構建時引入分布式布局的思想,不同于傳統一對一的宿主機-目標機模式,設計一對多的分布式模式;窘Y構如圖1所示。采用RTW-xPC作為實時仿真的框架(仿真主計算機-仿真目標計算機模式),子任務被分布在系統的各個成員上,成員之間通過網絡連接在一起,通過各子任務并發運行來提高解算速度,滿足實時應用的要求。
飛控計算機一般每10ms讀取一幀數據,這要求飛控仿真系統的仿真周期遠小于10ms。最初的設計是通過以太網絡完成計算機之間的數據傳輸,但是難以保證該飛控仿真系統強實時性的要求。以任一仿真目標機為例,若每毫秒產生1000個數據,按每數據大小4字節計算,其數據量4KB,按照千兆以太網的數據傳輸率,則在以太網絡上的時間延遲32ms,無法滿足系統實時性要求。反射內存網具有可高達170MB/s的數據傳輸率,在反射內存網上傳輸的時間延遲為24us,遠低于1ms的要求。
圖1 仿真平臺基本結構組成
本方案采用標準以太網和反射內存網(內存映射網)結合的方法進行通訊。系統中對實時性要求不高的部分采用普通的以太網絡傳輸;系統中實時性要求較高的部分采用反射內存網搭建。以太網卡實現計算機與局域網傳輸介質之間的物理連接和電信號匹配,主要針對飛控系統仿真過程中仿真主機-仿真目標機的網絡通訊檢測,以及實時仿真過程中接受控制信號和發送各種控制命令信號。反射內存網作為一種快速的實時網絡,用來實現仿真目標計算機和信號轉換計算機的數據交互。這樣做的好處是既可以保證系統實時性要求,又能夠節省建設費用,減少系統復雜度。
3、實時網絡通訊系統
3.1反射內存網
3.1.1反射內存的概念
反射內存光纖網絡采用了先進特殊的技術,具備很強的支持分布實時系統的數據傳輸能力。在每個需要實時通訊的節點上插入反射內存網卡(節點卡),反射內存卡上有一塊專門的存儲器,并且它們都映射在同一個地址空間,構成了分布式共享存儲器。用戶可以在分布式共享存儲器中定義多個全局公用的數據存儲區。當某個節點的處理器對存儲器進行了“寫”操作,接口板將修改的數據通過光纖自動實時的寫到另一節點的對應存儲器中,這樣,另一節點的用戶只需讀取本地接口板上的相應的存儲器就可以獲得修改的數據。采用反射內存通訊方式的好處是:數據傳輸速度快,讀/寫操作延時為納秒級,能夠大大降低總的網絡延時,減小仿真周期,滿足系統的實時性要求。在反射內存網上,節點之間的通訊對軟件是透明的。用戶不需采用消息傳遞方式進行節點間的通訊,只需在本機系統中對共享存儲器進行直接讀寫操作就可實現多機之間的通訊,大大簡化了應用軟件結構的復雜度,減少了用戶的編程負擔,能準確地算出節點之間通訊的最大延遲時間。
3.1.2反射內存網絡構建
本方案采用的VMIC5565反射內存(RFM)是基于環狀/星狀的,高速復制的共享內存網絡。它支持不同總線結構的多計算機系統,并且可以使用不同的操作系統來共享高速的、穩定速率的實時數據。
VMIPCI-5565反射內存卡可以不通過HUB直接構成環形拓撲結構的連接,也可以通過HUB構成星型拓撲結構的連接,每個結點的TX接口同下一個結點的RX接口交叉連接。這種環形拓撲結構的連接可靠性不如星型拓撲結構的連接,因為環網中任一個節點出現故障會造成整個實時網絡聯接中斷,而星型拓撲結構下不存在這樣的問題,考慮到平臺節點較多,故采用星型拓撲結構的連接。
3.1.3反射內存卡使用
VMIPCI-5565反射內存卡之間或與智能型HUB之間通過兩條光纖進行數據傳送。其中TX插口連接發送光纖,RX插口連接接收光纖。在組網前,需要對每塊反射內存卡進行統一編址,不同計算機擴展槽內的VMIPCI-5565板卡必須具有不同的地址,此地址的分配是通過板卡上的跳線來選擇的。地址跳線總共有8條,通過這8條地址跳線可以選擇0~255總共256個地址范圍。
建立反射內存網絡的通訊設計,在WindowsXP系統下安裝反射內存卡驅動程序,然后在C++ Builder 6.0開發環境中添加VMIPCI-5565反射內存卡的頭文件:rfm2g_windows.h,rfm2g_api.h和庫文件rfm2gdll_stdc.lib到工程文件路徑。至此完成了反射內存網配置。
在C++ Builder控件中添加時鐘控件,利用時鐘周期性(周期可設置)工作的原理,在時鐘控件下進行程序設計,實時的通過反射內存卡完成數據通訊,具體方法:
a)先自定義反射內存卡設備名稱,再申明句柄RFM2GHANDLE RFM2gHandle;
b)系統啟動完成后,打開反射內存卡端口,調用函數:RFM2gOpen(char *DevicePath,&RFM2gHandle);
c)在時鐘控件中通過執行函數語句RFM2gRead(RFM2GHANDLE rh,RFM2G_UINT32 Offset,void *Buffer,RFM2G_UINT32 Length)從卡地址讀取指定長度的數據,至此完成了數據的獲取;
d)同樣,如果用戶需要給反射內存卡地址寫入數據達到數據共享,只需執行函數語句RFM2gWrite(RFM2GHANDLE rh,RFM2G_UINT32 Offset,void *Buffer,RFM2G_UINT32 Length)即可;
e)數據校驗:當通過反射內存網接收實時數據時,對每個節點的參數變量值進行求和方法計算,將得到和值與接收到的校驗和信號值進行比較,如果兩個值差值的絕對值小于10-4,則認為數據接收正確,否則丟掉這一包數據。
3.2標準以太網
由于標準以太網已普及使用,在此不對其概念做詳細說明。建立以太網的通訊設計,需要先在網絡連接中的TCP/IP屬性中設置協議約定好的IP地址,子網掩碼和默認網關。然后用C++Builder的網絡通訊控件IdUDPServer和IdUDPClient,以及IdIcmpClient建立通訊。
a)作為客戶端應該在程序設計中設置IdUDPClient需要請求連接目標機的地址和端口,即設置控件的Host和Port屬性,并用Open函數打開IdUDPClient控件或者將Active屬性設置為true。
b)作為服務器端,需要設置接收數據端口,必須與客戶端端口一致才能正確建立通訊,同時還必須用Open函數打開IdUDPServer控件或者將Active屬性設置為true。建立客戶服務器之間連接之后,就可在程序設計上實現數據通訊了。
c)IdIcmpClient主要是在網絡通訊檢測中用到?梢栽O置該控件IP地址屬性,然后調用ping函數,在Reply事件中得到返回值進行網絡連通性檢測判斷。
4、結論
本文主要介紹了飛控系統半物理仿真平臺通訊網絡構建,并給出了具體的通訊協議及注意事項。該半實物仿真平臺經使用驗證,具有通信實時性好,數據傳輸速度快,傳輸可靠性高的特點,滿足實時仿真需要,取得了良好的效果,被實踐證明是一種成熟、有效的方法。
【飛控系統半物理仿真平臺通訊網絡構建論文】相關文章:
配網調度自動化系統方案構建論文05-14
OFDM技術研究及其系統仿真05-11
論文的基本結構和提綱構建06-23
如何構建企業投資風險預警系統08-28
配網調度自動化系統方案構建05-22
配網調度自動化系統方案構建11-10
庫存管理系統論文07-21
物資管理系統論文08-02
物理實驗論文11-03