當前位置:學問君>學習教育>畢業論文>

飛控系統半物理仿真平臺通訊網絡構建論文

學問君 人氣:2.32W

1、前言

飛控系統半物理仿真平臺通訊網絡構建論文

飛控系統半物理仿真是型號研製和試驗過程中的一個重要環節,飛控系統作爲一種強實時性的系統,其半實物仿真是時間約束非常強的過程,其計算、數據通訊和關鍵信號的處理如果出現超時將可能導致整個仿真實驗的失敗。因此,實時算法和通訊技術的研究是半實物仿真系統的關鍵技術。

隨着計算機技術和通訊技術的迅速發展,仿真主機的速度大大提高,爲飛行器非線性動力學方程的高速、高精度求解提供了條件;其次,採用實時網絡通訊技術,可以實現兩結點數據傳輸時延遲爲納秒級或微秒級。

2、仿真平臺構建

爲保證飛控系統半物理仿真平臺的可擴展性,系統構建時引入分佈式佈局的思想,不同於傳統一對一的宿主機-目標機模式,設計一對多的分佈式模式。基本結構如圖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_到工程檔案路徑。至此完成了反射內存網配置。

在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主要是在網絡通訊檢測中用到。可以設定該控件IP位址屬性,然後調用ping函數,在Reply事件中得到返回值進行網絡連通性檢測判斷。

4、結論

本文主要介紹了飛控系統半物理仿真平臺通訊網絡構建,並給出了具體的通訊協議及注意事項。該半實物仿真平臺經使用驗證,具有通信實時性好,數據傳輸速度快,傳輸可靠性高的特點,滿足實時仿真需要,取得了良好的效果,被實踐證明是一種成熟、有效的方法。