反射内存网在飞控系统仿真试验中的应用
2018-04-25黄丹
黄丹
摘 要:由于传统网络搭建的飞控系统仿真试验平台有一定的延迟性,所以文章提出用反射内存网来搭建飞控系统的通讯网络。文章首先简单介绍了该设备的特点,然后根据飞控系统仿真平台环境选择硬件载体,在硬件载体的基础上设计硬件和软件,最后提出在设计过程中地址分配和实时性两个关键技术的解决办法。
关键词:反射内存网;飞控系统仿真;实时性
中图分类号: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.