黃丹
摘 要:由于傳統網絡搭建的飛控系統仿真試驗平臺有一定的延遲性,所以文章提出用反射內存網來搭建飛控系統的通訊網絡。文章首先簡單介紹了該設備的特點,然后根據飛控系統仿真平臺環境選擇硬件載體,在硬件載體的基礎上設計硬件和軟件,最后提出在設計過程中地址分配和實時性兩個關鍵技術的解決辦法。
關鍵詞:反射內存網;飛控系統仿真;實時性
中圖分類號:TP393 文獻標志碼:A 文章編號:2095-2945(2018)11-0152-02
Abstract: Due to the flight control system simulation test platform built by traditional network has certain delay, this paper proposes to build the communication network of flight control system by using reflective memory network. This paper first introduces the characteristics of the equipment, then selects the hardware carrier according to the simulation platform environment of the flight control system, and designs the hardware and software on the basis of the hardware carrier. Finally, the solution of two key technologies in the design process, address allocation and real-time, is put forward.
Keywords: reflective memory network; flight control system simulation; real-time
1 概述
飛控系統是飛機上的關鍵功能系統,其性能優劣直接影響飛機的操作品質和飛機性能的發揮。因此為了減小飛控系統設計周期,降低研制成本,在試飛之前做半實物仿真試驗已成為必備步驟。所謂半實物仿真,是指在仿真試驗系統的回路中接入部分實物,以考核飛控系統關鍵設備的性能。由于回路中接入了實物,仿真模型的時間推進與物理系統的時間推進同步,即必須實時運行[1-3]。文獻[4]和文獻[5]對飛控系統半實物仿真系統的實時性指標進行了詳細分析,并指出傳統的半實物仿真平臺對于高性能的飛行器有延時,建議采用實時性更高的仿真系統,因此本文提出用反射內存網來搭建飛控系統仿真試驗的通訊系統以此來提高該系統的實時性。
2 反射內存網的特點
反射內存網(Reflective memory network)是一種基于高速網絡的共享存儲器技術的實時網絡。它主要是由反射內存板卡通過光纖或同軸電纜等傳輸介質按照星型或環型拓撲結構連接而成,能夠在異構的總線結構和操作系統之間以確定的速率實時傳輸數據。它與傳統的網絡技術相比,除了具有嚴格的傳輸確定性和可預測性外,還具有速度高、通信協議簡單、宿主機負載輕、軟硬件平臺適應性強、支持中斷信號的傳輸等特點[6-7]。
3 反射內存網實時通訊系統的設計
3.1 硬件設計
飛控系統仿真試驗實時通訊系統采用反射內存網,硬件載體為VMIPCI-5565,該硬件載體具有高速、易用、標準總線方式,支持最大256個網絡節點等特點,通過使用反射內存通訊卡可以實現多個網絡節點的數據交互,數據傳輸速率最高可達到174Mbyte/sec。
實時通訊網絡主要是通過反射內存卡由光纖連接而成,每個節點的反射內存卡上的存儲器保存實時通訊網絡上其它節點的共享數據。每個節點上的反射內存卡采用雙口內存工作方式,節點自身可以讀寫這些內存,當數據被寫入自身相應內存后會自動通過光纖傳輸至網絡其它節點的內存中,實時通訊網絡上所有節點訪問數據時,只要訪問本地的反射內存卡中的內存即可。實時通訊網絡系統組成圖如圖1所示。
3.2 軟件設計
反射內存通訊載體VMIPCI-5565提供了完整的底層驅動程序,包括設備的打開、設備的關閉、數據的讀寫等各種操作,該反射內存通訊載體的操作流程如圖2所示。
反射內存通訊設備開啟主要程序設計如下所示:
RFM2G_STATUS result;
result = RFM2gOpen("\\\\.\\rfm2g1", &Handle;);
if(result != RFM2G_SUCCESS)
{
MessageBox("實時網卡打開失敗","系統提示");
}
反射內存通訊設備數據讀取主要程序設計如下所示:
offset = offset + sizeof(double) * j;
u.ul = ((ULONG *)((void*)rfm))[offset/4];
mathChannel[startnum + j] = u.f;
反射內存通訊設備數據寫入主要程序設計如下所示:
u.f=(float)mathChannel[realNetOutDescribe->m_channelnum];
pattern = u.ul;
RFM2gPoke32(Handle,offset,pattern);
offset += 4;
4 關鍵技術
4.1 網絡節點內存地址的分配
飛控系統仿真試驗實時通訊系統由多個網絡分支節點組成,如何合理分配各網絡節點的內存地址,避免在運行過程中出現地址沖突,是確保實時通訊系統成功建立的關鍵點之一。
在構建實時通訊系統時,采用了網絡節點的內存地址容錯技術,在該技術中,設立內存地址的獨立存儲區,在各網絡節點確定自身內存地址分配前先讀取獨立內存存儲區的內容,通過分析處理該讀取結果來合理分配自身的內存地址,同時對自身確定的內存地址進行獨立內存存儲區的標識處理,當自身確定的內存地址出現與其它分支節點內存地址發生沖突時可提示操作人員對當前分配的內存地址進行修改,直至所確定的內存地址不與其它分支節點內存地址沖突為止,操作流程如下圖3所示。
4.2 網絡節點通訊實時性
飛控系統仿真試驗實時通訊系統中各網絡節點間存在相互的數據傳輸,且對數據傳輸的實時性要求高,數據量大,因此確保各網絡節點間數據傳輸的實時性、準確性也是實時通訊系統系統成功建立的關鍵點之一。
在實時通訊軟件設計中采用了系統高精度定時器、數據讀寫后臺線程機制相結合的技術手段來保證各網絡節點通訊實時準確的同時不影響其它軟件進程的正常運行,確保飛控系統仿真試驗各項任務不沖突,運行合理。
高精度定時器開啟主要程序設計如下:
timeGetDevCaps(&tc;, sizeof(TIMECAPS);
wTimerRes=min(max(tc.wPeriodMin,1),tc.wPeriodMax);
timeBeginPeriod(wTimerRes);
timeSetEvent(m_frequency,1, OneShotTimer,NULL, TI
ME_PERIODIC);
數據讀取后臺線程主要程序設計如下:
::AfxBeginThread((AFX_THREADPROC)Send,this,THR
EAD_PRIORITY_TIME_CRITICAL,CREATE_SUSPENDED,0);
::AfxBeginThread((AFX_THREADPROC)Recv,this,TH
READ_PRIORITY_TIME_CRITICAL,0,0);
5 結束語
與傳統的以太網通訊系統比較,反射內存網具有更低的傳輸延遲、更快的傳輸速度,更簡單靈活的使用操作,可以滿足實時系統快速響應周期的要求。自2012年開始,由反射內存網搭建的實時通訊系統已成功應用于飛控系統半實物仿真平臺中。通過幾年的試驗驗證,由該平臺得到試驗數據可靠有效,滿足試驗任務要求。
參考文獻:
[1]劉菊紅,袁紅眼.飛機飛行控制系統仿真平臺建設[J].測控技術,2013:135-139.
[2]廖瑛,梁加紅,等.實時仿真理論與支撐技術[M].長沙:國防科技大學出版社,2002.
[3]彭曉源.系統仿真技術[M].北京:北京航空航天大學出版社,2016.
[4]鄧紅德,鮑鑫,吳佳楠.小型無人機飛控系統半實物仿真平臺實時性研究[J].測控技術,2012,31(1):121-123.
[5]姚新宇,黃柯棣.半實物仿真系統的實時性分析[J].計算機仿真,1999,16(4):51-54.
[6]郭翠珍,郭劍,梁穎紅,等.分布式飛行仿真中通信方案的設計和實現[J].蘇州市職業大學學報,2011:14-16.
[7]鄭銳,傅鵬,何詩英.反射內存網在EAST極向場電源控制系統中的實現[J].化工自動化及儀表,2009,36(3):64-66.