CN106775867A - Windows操作系统环境下的飞行模拟系统 - Google Patents

Windows操作系统环境下的飞行模拟系统 Download PDF

Info

Publication number
CN106775867A
CN106775867A CN201611156344.7A CN201611156344A CN106775867A CN 106775867 A CN106775867 A CN 106775867A CN 201611156344 A CN201611156344 A CN 201611156344A CN 106775867 A CN106775867 A CN 106775867A
Authority
CN
China
Prior art keywords
data
memory
module
node
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611156344.7A
Other languages
English (en)
Other versions
CN106775867B (zh
Inventor
杜承烈
王延钊
蒋泽军
陈进朝
彭寒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhiying Future Xi'an Information Technology Co ltd
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201611156344.7A priority Critical patent/CN106775867B/zh
Publication of CN106775867A publication Critical patent/CN106775867A/zh
Application granted granted Critical
Publication of CN106775867B publication Critical patent/CN106775867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种Windows操作系统环境下的飞行模拟系统,包括:组件化节点部分,其用于为飞行模拟器中各节点程序提供统一的管理和注册方式;内存数据库部分,其用于为组件化节点部分内数据提供一种快速索引、查找方式;通信部分,其为内存数据库部分提供统一的读写数据接口,用于为内存数据库部分屏蔽底层通信细节的复杂性,提供统一的抽象,提高飞机模拟系统部署环境的灵活性。本发明解决模拟器节点间数据管理、共享的问题,满足飞行模拟器在各种使用场景下的需求,实现了代码的可重用、可移植。

Description

Windows操作系统环境下的飞行模拟系统
技术领域
本发明涉及飞行模拟技术领域,更具体地说,本发明涉及一种在Windows操作系统下的飞行模拟系统。
背景技术
随着数字计算机的出现和发展,自20世纪80年代起,数字技术逐渐被应用到飞行模拟器的开发研究中,目前数字式飞行模拟器已成为国内外众多知名飞行模拟器研究机构和生产厂商的主要研究对象。
国外从事飞行模拟器研制的公司主要有:加拿大的CAE公司和Mechtrontix公司,英国的Thales公司、美国的Flight Safety公司和Frasca公司以及法国Thomson公司等。国外众多的大学和科研机构也纷纷开展了高逼真度飞行模拟器的研究工作,著名的有荷兰Delft大学的Simona研究所、荷兰NLR航空实验室和加拿大多伦多大学等,这些研究机构为飞行模拟器提供了从仿真软件体系结构、运动系统设计到模拟座舱设计等多方面具有前瞻性和基础性的研究工作。
与国外相比,我国飞行模拟器的研究工作起步较晚,研究技术尚不成熟。仅有极少数公司能够从事飞行模拟器的研制工作,如北京航空模拟器公司和北京蓝天航空模拟器公司等。1993年北京航空模拟器公司联合北京航空航天大学研制成功的运七-100飞机飞行模拟器,它是国内首台采用数字计算机技术研制而成的飞行模拟器,其性能已达到了国外80年代末先进水平,对国内飞行模拟器的发展具有里程碑意义。2003年北京蓝天航空模拟器公司研制成功的新舟-60飞机飞行模拟器,它是国内首台获得民航总局C级认证的飞行模拟器,代表了国产飞行模拟器的最高水平。新舟-60飞行模拟器的主仿真计算机系统是基于VME总线的X86单板计算机构建出的并行多处理器,采用共享内存机制、Vxworks嵌入式实时操作系统和信号灯机制等完成了对并行执行仿真任务的时钟控制、数据流控制和接口控制。同时它还具备完善的航电设备模拟系统,视景系统和运动系统等。对飞行模拟器开展研究的国内大学和科研机构主要有北京航空航天大学、西北工业大学、哈尔滨工业大学、空军军训器材研究所和空军哈尔滨仿真技术研究所等,其中比较有代表性的飞行模拟器是空军哈尔滨仿真技术研究所研制成功的Y12-M飞机飞行模拟器和伊尔-76飞机飞行模拟器。
传统的飞行模拟器依赖单个计算机对模拟系统中节点进行调度和运算,而单机性能难以大幅提高,因此传统基于单机的飞行模拟系统性能受限于单机性能。同时单机的系统故障会导致整个整个模拟系统的运行异常,因此基于单机的飞行模拟系统健壮性较差。
现有基于分布式的飞行模拟器通常节点间通信采用对整块共享内存进行分段存储的方式,每个节点的内存块映射到整个共享内存中的一段,没有对数据进行有效管理,存在数据索引困难、查找速度慢的问题。此外现有飞行模拟器分布式通信主要依赖GE公司的VMIC反射内存卡,GE公司反射内存卡在Windows操作系统下不开放源代码,因此存在安全性上的问题。若需要搭建基于VMIC反射内存卡的星形网络,还需搭配专用交换机,组网成本较高。另外分布式程序开发与调试较单机困难。现有飞行模拟器各节点模型无统一的抽象模型,造成了代码冗余、不规范的问题,不利于软件开发和后期维护。
发明内容
本发明的一个目的是解决上述至少一个问题或缺陷,并提供后面将说明的至少一个优点。
本发明还有一个目的是提供一种Windows操作系统环境下的飞行模拟系统,其通过内存数据库解决模拟器节点间数据管理、共享的问题。通过在通信部分提供基于以太网的分布式共享内存、VMIC反射内存卡共享内存和本地共享内存三种运行方式,解决飞行模拟器在各种使用场景下的需求。通过采用节点模型组件化的方式,以XML格式为配置文件,定义了标准的接口规范和体系结构标准,实现了代码的可重用、可移植。
为了实现根据本发明的这些目的和其它优点,提供了一种Windows操作系统环境下的飞行模拟系统,包括:
组件化节点部分,其用于为飞行模拟器中各节点程序提供统一的管理和注册方式;
内存数据库部分,其用于为所述组件化节点部分内数据提供一种快速索引、查找方式;以及
通信部分,其为所述内存数据库部分提供统一的读写数据接口,用于为所述内存数据库部分屏蔽底层通信细节的复杂性,提供统一的抽象,提高飞机模拟系统部署环境的灵活性;
其中,所述组件化节点部分以XML格式为配置文件,定义了标准的Model基类接口和体系结构标准,实现了代码的可重用、可移植;所述内存数据库部分采用B+树的数据结构建立表索引,变量索引及映射索引;所述通信部分采用三种运行方式,解决飞行模拟器在各种使用场景下的需求。
优选的是,其中,所述组件化节点部分包括:组件标准接口模块、组件注册模块和组件管理模块,所述组件标准接口模块为节点提供标准的接口;所述组件注册模块负责对组件完成注册相关操作;所述组件管理模块用链表的方式对所有节点实现统一的管理。
优选的是,其中,内存数据库部分包括:数据操作模块、映射操作模块和索引树模块,所述数据操作模块为节点提供内存数据库的访问接口;所述内存映射操作模块为节点提供读取映射数据的接口,映射用于将节点产生实际数据和所述内存数据库实际存放数据进行转换;所述索引树模块用于存放所述内存数据库的实际数据。
优选的是,其中,所述通信部分包括:反射内存操作模块、本地共享内存模块和分布式共享内存模块,所述反射内存操作模块采用基于VMIC反射内存卡,为飞行模拟器提供高性能分布式通信支撑;所述本地共享内存模块可以让人员方便对模拟系统在单机上进行调试、开发;所述分布式共享内存模块采用基于以太网的共享内存方案,为飞行模拟系统提供分布式数据共享支撑,保证网络中各节点可以进行快速的数据交换。
优选的是,其中,所述索引树模块包括三个用于索引的B+树和五个用于存放临时数据的链表。
优选的是,其中,所述反射内存操作模块包括用户态接口单元和内核态驱动单元,所述用户态接口单元为内存数据库提供访问反射内存操作模块的接口,并将数据发送给所述内核态驱动单元,所述内核态驱动单元接收由所述用户态单元传入的数据并将其写入板卡自身内存;所述本地共享内存模块由内存管理单元构成,所述内存管理单元负责将同一块物理内存映射到各节点的虚拟内存地址空间内,实现了节点间数据共享;所述分布式共享内存模块包括:接口单元、协议处理单元和通信单元,所述接口单元向内存数据库部分提供读写数据的接口,协议处理单元调用所述通信单元将数据包组播到网络上各节点,所述通信单元同时负责接受所接受的数据包并交给协议处理单元进行解包,解析出数据包种信息后交给接口单元将数据写入节点本地内存。
优选的是,其中,VMIC反射内存卡网络拓扑结构采用环形网络或星形网络拓扑结构。
优选的是,其中,三个用于索引的B+树为索引变量表的变量表树、索引变量的变量树与索引映射的映射树;五个用于存放临时数据的链表为节点信息链表、空闲块链表、变量表链表、映射表链表和主机链表。
优选的是,其中,所述分布式共享内存模块的网络结构采用星型拓扑结构。
本发明至少包括以下有益效果:
1、利用提供采用以B+树为数据结构的内存数据库,为节点内数据提供一种快速索引、查找方式;
2、通过三种通信方式,提高飞行模拟系统应用范围灵活性:以太网的分布式共享内存可以提供一种在对实时性要求不高场景下低成本分布式通信方式,VMIC反射内存卡可以提供一种低延时、高带宽的通信方式,本地共享内存可以让人员方便对模拟系统在单机上进行调试、开发;
3、利用采用组件化思想的节点模型,为各节点程序提供统一的管理、注册方式,降低了程序的开发难度并提高了程序的可扩展性。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明的一个实施例中Windows操作系统环境下的飞行模拟系统的结构示意图;
图2说明的是Windows操作系统环境下的飞行模拟系统中组件化节点部分组件化实现流程图;
图3为数据操作模块结构示意图;
图4说明的映射操作模块结构示意图;
图5说明的是索引树模块结构示意图;
图6说明的是本地共享内存模块结构示意图;
图7说明的是反射内存操作模块结构示意图;
图8说明的是分布式共享内存模块结构示意图;
图9说明的是组件标准接口模块结构示意图;
图10说明的是组件注册模块结构示意图;
图11说明的是组件管理模块结构示意图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
图1示出了根据本发明的一种实现形式,示出了Windows操作系统环境下的飞行模拟系统。其中包括:
组件化节点部分,其用于为飞行模拟器中各节点程序提供统一的管理和注册方式;
内存数据库部分,其用于为所述组件化节点部分内数据提供一种快速索引、查找方式;以及
通信部分,其为所述内存数据库部分提供统一的读写数据接口,用于为所述内存数据库部分屏蔽底层通信细节的复杂性,提供统一的抽象,提高飞机模拟系统部署环境的灵活性;
其中,所述组件化节点部分以XML格式为配置文件,定义了标准的Model基类接口和体系结构标准,实现了代码的可重用、可移植;所述内存数据库部分采用B+树的数据结构建立表索引,变量索引及映射索引;所述通信部分采用三种运行方式,解决飞行模拟器在各种使用场景下的需求。
所述组件化节点部分包括:组件标准接口模块、组件注册模块和组件管理模块,所述组件标准接口模块为节点提供标准的接口;所述组件注册模块负责对组件完成注册相关操作;所述组件管理模块用链表的方式对所有节点实现统一的管理。
所述内存数据库部分包括:数据操作模块、映射操作模块和索引树模块,所述数据操作模块为节点提供内存数据库的访问接口;所述内存映射操作模块为节点提供读取映射数据的接口,映射用于将节点产生实际数据和所述内存数据库实际存放数据进行转换;所述索引树模块用于存放所述内存数据库的实际数据。
所述通信部分包括:反射内存操作模块、本地共享内存模块和分布式共享内存模块,所述反射内存操作模块采用基于VMIC反射内存卡,为飞行模拟器提供高性能分布式通信支撑;所述本地共享内存模块可以让人员方便对模拟系统在单机上进行调试、开发;所述分布式共享内存模块采用基于以太网的共享内存方案,为飞行模拟系统提供分布式数据共享支撑,保证网络中各节点可以进行快速的数据交换。
内存数据库部分为节点内数据提供一种快速索引、查找方式;通信部分为内存数据库屏蔽掉底层通信细节的复杂性,提供统一的抽象,提高模拟系统部署环境的灵活性;组件化的节点部分为各节点程序提供统一的管理、注册方式,降低了程序的开发难度并提高了程序的可扩展性。
在其中一种实施例中,内存数据库为各节点间数据交换提供支撑,将数据进行统一管理,对上层节点屏蔽了底层操作细节。
内存数据库通过通信部分屏蔽了底层通信网络的复杂性,支持本地和分布式的数据交互。在单机式的应用场景下,采用本地共享内存机制。在分布式的应用场景下,采用分布式共享内存或者VMIC反射内存卡进行通信。
在实现内存数据库时,以表方式将数据统一存储,与此同时为了加快数据的读写速度,采用B+树建立表索引,变量索引及映射索引。为了保证数据存取的一致性,在本地缓存与内存数据库进行数据交互时,采取同步机制,保证整个内存数据库数据的全局一致性。
内存数据库部分由数据操作模块、映射操作模块和索引树模块构成,数据操作模块为上层节点模型提供数据读写接口,映射操作模块为程序提供读取映射关系的接口,索引树模块存放内存数据库实际的数据。
在其中一种实施例中,通信部分为内存数据库提供统一的读写数据接口,屏蔽掉底层复杂的通信模型。通信部分由基于以太网的分布式共享内存模块、依据反射内存卡的反射内存操作模块和本地共享内存模块构成。
分布式共享内存模块采用一种基于以太网的共享内存方案,被用来为飞行模拟系统提供分布式数据共享支撑,在组播技术和共享内存技术的支持下,保证网络中各节点可以进行快速的数据交换,为用户提供简单的内存读写接口,降低了对相关技术人员的要求,同时还具有低成本的特点,可以进行大型分布式仿真系统部署。
分布式共享内存模块包括:接口单元、协议处理单元和通信单元。接口单元向内存数据库部分提供读写数据的接口。内存管理单元写入操作由两个部分组成:将数据写入本地内存和调用协议处理单元对所写入的数据进行打包,然后协议处理单元调用通信单元将数据包组播到网络上各节点。通信单元同时负责接受所接受的数据包并交给协议处理单元进行解包,解析出数据包种信息后交给接口单元将数据写入节点本地内存。
分布式共享内存模块网络结构采用星型拓扑结构。网络中每个节点开辟具有相同大小的内存块,当网络中任意节点根据其地址偏移量所对应的内存块数据进行了更新,经过修改的内存块立即通过组播将本机所对应内存块数据映射到其他节点的共享内存区相同偏移地址的内存块上。即每个节点将数据写入本地内存的同时也写入其他所有节点的相同地址,用户对本地内存的读写也相当于对全局内存进行读写,而全局内存对所有节点都是可见且共享的,从而在节点间实现了全局数据共享。通过这种方式,所有节点都能够透明并确定地传送数据块到其他节点,同时根据组播的工作方式,所有节点数据的更新时间与网络上实际链接的节点数量无关。
反射内存操作模块是基于VMIC反射内存卡的共享内存模块,VMIC共享内存是一种基于反射内存卡的快速实时网络,可以为飞行模拟器提供高性能分布式通信支撑。网络中各节点反射内存卡间通过光纤进行互联,数据的发送与接收直接通过板卡上硬件完成,从而具有了高带宽、低延时的特性。
反射内存操作模块包括:用户态接口单元和内核态驱动单元。用户态接口单元为内存数据库部分提供访问共享内存的接口,并将数据发送给内核态驱动单元。内核态驱动单元接收由用户态接口单元传入数据并将其写入板卡自身内存。
VMIC反射内存卡网络拓扑结构采用环形网络或星形网络。每块板卡拥有独立的板载内存,其通过DMA的方式映射到本机内存地址上。当驱动单元通过读写内存的方式对板载内存进行修改后,板卡立刻将该数据及其地址广播出去,其他节点上板卡收到数据后立刻对板卡上相同地址的数据进行修改,从而实现了各节点间的全局数据共享。当VMIC反射内存卡采用星形拓扑结构时,数据刷新时间与节点数量无关。
本地共享内存为飞行模拟器提供单机环境下的通信支撑,此时各节点以进程的形式进行模拟,因为其接口定义与各种分布式内存操作接口一致,所以可以让模拟系统的分布式开发在单机下运行。
本地共享内存由内存管理单元构成,其负责将同一块物理内存映射到各节点的虚拟内存地址空间内,当某一个节点对该物理内存进行修改,其他节点地址空间内相应页面同样收到修改,从而实现了节点间数据共享。
在其中一种实施例中,组件化节点部分中的节点模型采用了标准、统一的模型接口,从而实现了组件模型注册、管理,并能够驱动各个组建模型运行;通过底层虚拟总线的支撑,可完成各个模型之间的通信,由于该虚拟总线基于内存数据库且拥有粗粒度锁机制,因此各个组件模型彼此通信时具有较高的实时性和数据的一致性。
为了使用户自定义的组件模型能够被模拟系统加载、运行,需要用户自定义的组件模型遵守一定的接口规范。组件化整体实现流程如图2所示。
组件模型定义了标准的接口规范,即Model基类。在Model类中,定义了所有组建模型必须遵从的接口标准,所有用户自定义的组件模型必须继承该Model类,并按照自身需求实现Model基类中定义的虚方法,完成组件的实现。
组件化节点部分由组件标准接口模块、组件注册模块和组件管理模块构成,组件标准接口模块为节点提供标准的接口,组件注册模块负责对组件完成注册相关操作,组件管理模块用链表的方式对所有节点实现统一的管理。
在其中一种实施例中,内存数据库部分为各节点间数据交换提供支撑,将数据进行统一管理,对上层节点屏蔽了底层操作细节,其由数据操作模块、映射操作模块和索引树模块构成。
数据操作模块为节点提供内存数据库部分的访问接口。
如图3,在使用内存数据库部分时,首先需要加载内存数据库,读取配置文件,根据配置信息初始化通信层,然后初始化共享内存,将空闲块链表、变量表链表、映射链表和主机链表设置为空。之后将B+树载入共享内存:获取B+树在当前地址空间中的偏移量和B+树的大小。之后根据配置文件,获取配置文件中的主机信息并将其插入主机链表。之后创建变量表根据配置文件初始化变量表链表和映射表链表。此时,配置文件中所有的信息都已经加载到内存数据库的内存之中,然后通过遍历链表的方式分别将内存中的信息插入变量树、变量表树和映射树。遍历MMDB的变量表树,根据当前的指向的变量表在变量树中查找变量,将其从内存数据库中拷贝到当前节点的内存空间中。遍历完变量表树后开始遍历映射树,根据映射树中的数据解析映射关系,用于实际数据和内存数据库中数据之间的转换。此时,可以开始内存数据库读写操作。
对通过数据操作模块进行读写操作时,首先应用程序需要通知模块其在上一步获取的映射名和实际的数据。然后调用数据操作模块中的读写操作,将数据放入节点的读写缓存,等待模块进行同步,完成数据从本地内存到内存数据库内存的拷贝。
当数据操作模块开始同步时,首先进入临界区,然后遍历节点的输入输出缓存,将缓存中存储的数据按照其映射中解析的地址写入内存数据库内存中,完成数据同步,使节点本地缓存和内存数据库中数据一致。
如图4所示,内存映射操作模块为节点提供读取映射数据的接口,映射用于将节点产生实际数据和内存数据库实际存放数据进行转换。节点首先将要使用的映射名传给映射模块用于注册该映射,映射操作模块以该映射名为查询条件,在映射树中进行查询,如果可以查询到该映射关系,则将该节点相应数据位设置为该映射,完成注册。
索引树模块结构如图5所示:
索引树模块负责存放内存数据库部分的实际数据,其中包含有三个用于索引的B+树和五个用于存放临时数据的链表。链表如下:
1)节点信息链表,在分布式通信模式下,记录每个节点的锁信息;
2)空闲块链表,存放未使用的空闲块;
3)变量表链表,存放通过配置文件解析到的表内容;
4)映射表链表,存放通过配置文件解析到的映射关系;
5)主机链表,存放通过配置文件解析到的主机信息。
为了快速查询变量表,变量和映射信息,建立B+树来进行索引,加快查询速度。B+树如下:
1)变量表树,索引变量表
2)变量树,索引变量
3)映射树,索引映射。
同时B+树内存中包含一张空闲块链表,以供B+树内存创建B+树时使用。
在其中一种实施例中,MMDB数据库分为本地共享内存(LSM)、基于以太网的分布式共享内存(DSM)和基于反射内存网(VMIC)的分布式共享内存三种方式的内存数据模式,本地共享内存主要以共享内存的方式实现对本地存储数据操作,基于以太网的分布式内存和VMIC共享内存主要实现对数据的分布式操作。
通过本地共享内存在不同进程间共享数据的原理是将同一块物理页面映射到多个进程的虚拟地址空间内,这样当某个进程修改该段地址内容的时候其他进程对应的地址空间也会收到内容,从而实现了进程间的数据共享。
本地共享内存模块结构如图6所示:
本地共享内存模块的接口如下:
LoadLSM 加载本地共享内存
CopyToLSM 将数据拷贝到本地共享内存
CopyFromLSM 将本地共享内存的数据拷贝出来
在使用本地共享内存时,首先需要使用LoadLSM函数初始化本地共享内存,将CopyToSM和CopyFromSM函数指针指向CopyToLSM和CopyFromLSM,然后使用CreateFileMapping函数申请一块内存地址并返回句柄,然后使用MapViewOfFile函数将该段内存地址映射到调用进程的内存空间中,之后将SystemManager初始化为0,从而完成本地共享内存初始化。CopyToLSM和CopyFromLSM由memcpy函数实现,用于将一段数据拷贝到内存数据库部分的地址空间内。
基于VMIC反射内存卡的反射内存操作模块
每块VMIC板卡拥有独立的板载内存,其通过DMA的方式映射到本机内存地址上。当驱动模块通过读写内存的方式对板载内存进行修改后,板卡立刻将该数据及其地址广播出去,其他节点上板卡收到数据后立刻对板卡上相同地址的数据进行修改,从而实现了各节点间的全局数据共享。
基于VMIC反射内存卡的反射内存操作模块的结构如图7所示:
基于VMIC反射内存卡的反射内存操作模块的接口如下:
LoadVMIC 加载反射内存网共享内存
CopyToVMIC 将数据拷贝到反射内存网中
CopyFromVMIC 将反射内存网的数据拷贝出来
在使用基于VMIC反射内存卡的反射内存操作模块时,首先需要使用LoadVMIC函数初始化本地共享内存模块,将CopyToSM和CopyFromSM函数指针指向CopyToVMIC和CopyFromVMIC,然后使用反射内存卡厂商提供的RFM2gOpen打开内存卡设备,之后获取板载内存大小,并将该内存映射到节点的地址空间内。之后获取该节点的ID,如果该节点为Master,则将SystemManager初始化为0,打开反射内存卡中断,完成基于VMIC反射内存网的反射内存的初始化。
CopyToVMIC和CopyFromVMIC由RFM2gWrite和RFM2gRead封装,负责将数据拷贝到反射内存卡板载内存。
基于VMIC反射内存卡的反射内存操作模块由用户态接口单元和内核态驱动单元构成,用户态接口单元负责和上层内存数据库进行交互并将数据传给驱动部分,内核态驱动单元接收到数据后传给VMIC反射内存卡硬件。
基于以太网的分布式共享内存模块
网络中每个节点开辟具有相同大小的内存块,当网络中任意节点根据其地址偏移量所对应的内存块数据进行了更新,经过修改的内存块立即通过组播将本机所对应内存块数据映射到其他节点的共享内存区相同偏移地址的内存块上。即每个节点将数据写入本地内存的同时也写入其他所有节点的相同地址,用户对本地内存的读写也相当于对全局内存进行读写,而全局内存对所有节点都是可见且共享的,从而在节点间实现了全局数据共享。
基于以太网分布式共享内存模块的结构如图8所示:
基于以太网的分布式共享内存模块的接口及实现:
LoadDSM 加载分布式共享内存
CopyToDSM 将数据拷贝到共享内存中
CopyFromDSM 将分享内存的数据拷贝出来
在使用基于以太网的分布式共享内存模块时,首先需要使用LoadDSM函数初始化本地共享内存模块,将CopyToSM和CopyFromSM函数指针指向CopyToDSM和CopyFromDSM。然后为SystemManager申请一块内存空间并设置为0,然后分别为发送和接收线程以组播的方式创建套接字。之后创建发送和接收线程,并开辟一块缓冲区用于暂存收发数据。发送线程负责将缓冲区中经协议处理单元打包的字节流组播到网络中。接收线程负责保持挂起状态等待接收数据,一旦网络中传来数据负责将字节流转交给解包线程,然后立刻继续等待数据。解包线程接收到数据后根据字节流首部的4字节内存可以得知字节流所含的数据包个数。得知数据包数量后开始遍历,按照偏移、数据段大小和数据的格式进行解包,得出实际的数据,并调用接口单元的CopyFromDSM将数据写入节点本地内存。CopyToDSM函数负责接收偏移地址、数据段大小和数据,然后调用协议处理单元将数据转换为网络中可发送的字节流。
接口单元负责将协议处理单元传入的数据写入节点本地内存并将本地节点传出的数据转交给协议处理单元。协议处理单元负责将传输部分传入的字节流进行解包交给接口,并将内存管理部分的数据转换为字节流交给通信部分用于发送,通信部分负责收发打包后的字节流
在其中一种实施例中,组件化节点部分包括:组件标准接口模块、组件注册模块与组件管理模块
组件标准接口模块
为了使用户自定义的组件模型能够被模拟系统加载、驱动运行,需要用户自定义的组件模型遵守一定的接口规范。框架为组件模型定义了标准的接口规范,即Model基类。在Model类中,定义了所有组建模型必须遵从的接口标准,所有用户自定义的组件模型必须继承该Model类,并可选择性的重写Model类中规定的外部接口。
Model组件所定义的可供用户自定义的外部标准接口如图9所示。
Model类其实为模型接口规范,其中定义了Init()、Start()、Step()、Stop、Worker()和Unload()6个外部接口,可供用户选择性实现。
如果开发诸如FMS、DISP、NAV等组件时,仅需该组件类继承Model类,并且选择性实现相关接口即可。模拟器运行平台为用户自定义组件模型提供了开发向导,方便用户自定义开发不同功能、不同类型的组件。为了使用户自定义开发的所有组件都遵循Model定义的接口,从而被系统调度,需要所有组件类都必须继承Model类,且按实际需要重写以上6个用户外部接口。
组件注册模块
如图10所示,当用户自定义组件完成之后,便可以将其以插件的形式被系统所识别、驱动运行。为了使调度框架识别新的插件,需要在配置文件中进行相关配置,根据配置文件中的配置信息,调度框架便可自行完成组件的注册工作。
在配置文件中,与组件注册相关的信息至少应包含:组件类所属插件名称(插件以动态库的形式被加载)、组件类名、实例化组件对象的名称等信息。调度框架读取上述信息后,会加载插件,并且调用该组件类的工厂方法实例化组件对象,完成组件的注册工作。
组件管理模块结构如图11所示:
系统为了能够管理已经加载的插件,需要专门的数据结构对注册的插件进行管理。运行平台会维护一个主机链表,在每个主机节点上,都会根据配置文件中的定义,存储每个将要被载入的模型对象的基本属性。
各个插件配置好之后,系统会根据上述的节点链表中各个节点项中记录的信息,调用插件中模型类的工厂方法生成对应的对象实例。
这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的Windows操作系统环境下的飞行模拟系统的应用、修改和变化对本领域的技术人员来说是显而易见的。
如上所述,根据本发明,本方案主要由三个模块组成:内存数据库部分、支持基于以太网的分布式共享内存、基于VMIC反射内存卡的反射内存和本地共享内存的三大功能的通信部分和组件化节点部分。通过内存数据库部分解决模拟器节点间数据管理、共享的问题。通过在通信部分提供基于以太网的分布式共享内存、基于VMIC反射内存卡的反射内存和本地共享内存三种运行方式,解决飞行模拟器在各种使用场景下的需求。通过采用节点模型组件化的方式,以XML格式为配置文件,定义了标准的接口规范和体系结构标准,实现了代码的可重用、可移植。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (9)

1.一种Windows操作系统环境下的飞行模拟系统,包括:
组件化节点部分,其用于为飞行模拟器中各节点程序提供统一的管理和注册方式;
内存数据库部分,其用于为所述组件化节点部分内数据提供一种快速索引、查找方式;以及
通信部分,其为所述内存数据库部分提供统一的读写数据接口,用于为所述内存数据库部分屏蔽底层通信细节的复杂性,提供统一的抽象,提高飞机模拟系统部署环境的灵活性;
其中,所述组件化节点部分以XML格式为配置文件,定义了标准的Model基类接口和体系结构标准,实现了代码的可重用、可移植;所述内存数据库部分采用B+树的数据结构建立表索引,变量索引及映射索引;所述通信部分采用三种运行方式,解决飞行模拟器在各种使用场景下的需求。
2.如权利要求1所述的Windows操作系统环境下的飞行模拟系统,其中,所述组件化节点部分包括:组件标准接口模块、组件注册模块和组件管理模块,所述组件标准接口模块为节点提供标准的接口;所述组件注册模块负责对组件完成注册相关操作;所述组件管理模块用链表的方式对所有节点实现统一的管理。
3.如权利要求1所述的Windows操作系统环境下的飞行模拟系统,其中,内存数据库部分包括:数据操作模块、映射操作模块和索引树模块,所述数据操作模块为节点提供内存数据库的访问接口;所述内存映射操作模块为节点提供读取映射数据的接口,映射用于将节点产生实际数据和所述内存数据库实际存放数据进行转换;所述索引树模块用于存放所述内存数据库的实际数据。
4.如权利要求1所述的Windows操作系统环境下的飞行模拟系统,其中,所述通信部分包括:反射内存操作模块、本地共享内存模块和分布式共享内存模块,所述反射内存操作模块采用基于VMIC反射内存卡,为飞行模拟器提供高性能分布式通信支撑;所述本地共享内存模块可以让人员方便对模拟系统在单机上进行调试、开发;所述分布式共享内存模块采用基于以太网的共享内存方案,为飞行模拟系统提供分布式数据共享支撑,保证网络中各节点可以进行快速的数据交换。
5.如权利要求3所述的Windows操作系统环境下的飞行模拟系统,其中,所述索引树模块包括三个用于索引的B+树和五个用于存放临时数据的链表。
6.如权利要求4所述的Windows操作系统环境下的飞行模拟系统,其中,所述反射内存操作模块包括用户态接口单元和内核态驱动单元,所述用户态接口单元为内存数据库提供访问反射内存操作模块的接口,并将数据发送给所述内核态驱动单元,所述内核态驱动单元接收由所述用户态单元传入的数据并将其写入板卡自身内存;所述本地共享内存模块由内存管理单元构成,所述内存管理单元负责将同一块物理内存映射到各节点的虚拟内存地址空间内,实现了节点间数据共享;所述分布式共享内存模块包括:接口单元、协议处理单元和通信单元,所述接口单元向内存数据库部分提供读写数据的接口,协议处理单元调用所述通信单元将数据包组播到网络上各节点,所述通信单元同时负责接受所接受的数据包并交给协议处理单元进行解包,解析出数据包种信息后交给接口单元将数据写入节点本地内存。
7.如权利要求4所述的Windows操作系统环境下的飞行模拟系统,其中,VMIC反射内存卡网络拓扑结构采用环形网络或星形网络拓扑结构。
8.如权利要求5所述的Windows操作系统环境下的飞行模拟系统,其中,三个用于索引的B+树为索引变量表的变量表树、索引变量的变量树与索引映射的映射树;五个用于存放临时数据的链表为节点信息链表、空闲块链表、变量表链表、映射表链表和主机链表。
9.如权利要求4所述的Windows操作系统环境下的飞行模拟系统,其中,所述分布式共享内存模块的网络结构采用星型拓扑结构。
CN201611156344.7A 2016-12-14 2016-12-14 Windows操作系统环境下的飞行模拟系统 Active CN106775867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611156344.7A CN106775867B (zh) 2016-12-14 2016-12-14 Windows操作系统环境下的飞行模拟系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611156344.7A CN106775867B (zh) 2016-12-14 2016-12-14 Windows操作系统环境下的飞行模拟系统

Publications (2)

Publication Number Publication Date
CN106775867A true CN106775867A (zh) 2017-05-31
CN106775867B CN106775867B (zh) 2020-01-17

Family

ID=58888271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611156344.7A Active CN106775867B (zh) 2016-12-14 2016-12-14 Windows操作系统环境下的飞行模拟系统

Country Status (1)

Country Link
CN (1) CN106775867B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729613A (zh) * 2017-09-18 2018-02-23 中国商用飞机有限责任公司 飞行模拟机数据包架构的构建方法
CN109412868A (zh) * 2018-12-07 2019-03-01 江西洪都航空工业集团有限责任公司 一种基于动态接口的飞行模拟器网络通信方法
CN111104228A (zh) * 2018-10-26 2020-05-05 通号城市轨道交通技术有限公司 列车自动监控系统的共享式通信平台
CN111381980A (zh) * 2020-02-12 2020-07-07 上海机电工程研究所 用于混合仿真的互联系统、方法
CN112069190A (zh) * 2019-06-11 2020-12-11 腾讯科技(深圳)有限公司 一种分批数据获取方法、装置、设备及介质
CN113359124A (zh) * 2021-05-20 2021-09-07 陕西长岭电子科技有限责任公司 机载悬停指示器
CN113836675A (zh) * 2021-09-26 2021-12-24 清鸾科技(成都)有限公司 一种仿真器仿真系统、方法及仿真器
CN113867287A (zh) * 2021-09-28 2021-12-31 浙江华章科技有限公司 一种工业数据采集方法及系统
CN115509146A (zh) * 2022-11-22 2022-12-23 天津华翼蓝天科技股份有限公司 一种飞行维护模拟机分布式通讯资源整合方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309239A (zh) * 2012-03-07 2013-09-18 中国航空工业集团公司沈阳飞机设计研究所 一种多级信息管理与通信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309239A (zh) * 2012-03-07 2013-09-18 中国航空工业集团公司沈阳飞机设计研究所 一种多级信息管理与通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
伍智锋,唐硕,杜承烈: ""基于共享内存机制的分布式飞行仿真研究"", 《计算机仿真》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729613A (zh) * 2017-09-18 2018-02-23 中国商用飞机有限责任公司 飞行模拟机数据包架构的构建方法
CN111104228A (zh) * 2018-10-26 2020-05-05 通号城市轨道交通技术有限公司 列车自动监控系统的共享式通信平台
CN109412868B (zh) * 2018-12-07 2021-06-04 江西洪都航空工业集团有限责任公司 一种基于动态接口的飞行模拟器网络通信方法
CN109412868A (zh) * 2018-12-07 2019-03-01 江西洪都航空工业集团有限责任公司 一种基于动态接口的飞行模拟器网络通信方法
CN112069190B (zh) * 2019-06-11 2023-06-09 腾讯科技(深圳)有限公司 一种分批数据获取方法、装置、设备及介质
CN112069190A (zh) * 2019-06-11 2020-12-11 腾讯科技(深圳)有限公司 一种分批数据获取方法、装置、设备及介质
CN111381980B (zh) * 2020-02-12 2023-04-07 上海机电工程研究所 用于混合仿真的互联系统、方法
CN111381980A (zh) * 2020-02-12 2020-07-07 上海机电工程研究所 用于混合仿真的互联系统、方法
CN113359124A (zh) * 2021-05-20 2021-09-07 陕西长岭电子科技有限责任公司 机载悬停指示器
CN113359124B (zh) * 2021-05-20 2024-02-23 陕西长岭电子科技有限责任公司 机载悬停指示器
CN113836675A (zh) * 2021-09-26 2021-12-24 清鸾科技(成都)有限公司 一种仿真器仿真系统、方法及仿真器
CN113836675B (zh) * 2021-09-26 2024-03-26 清鸾科技(成都)有限公司 一种仿真器仿真系统、方法及仿真器
CN113867287A (zh) * 2021-09-28 2021-12-31 浙江华章科技有限公司 一种工业数据采集方法及系统
CN113867287B (zh) * 2021-09-28 2023-12-05 浙江华章科技有限公司 一种工业数据采集方法及系统
CN115509146A (zh) * 2022-11-22 2022-12-23 天津华翼蓝天科技股份有限公司 一种飞行维护模拟机分布式通讯资源整合方法
CN115509146B (zh) * 2022-11-22 2023-02-24 天津华翼蓝天科技股份有限公司 一种飞行维护模拟机分布式通讯资源整合方法

Also Published As

Publication number Publication date
CN106775867B (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN106775867A (zh) Windows操作系统环境下的飞行模拟系统
Piekarski et al. An object-oriented software architecture for 3D mixed reality applications
CN106462505B (zh) 同步计算环境中对状态指示符的更新
Concepcion et al. DEVS formalism: A framework for hierarchical model development
CN104281060B (zh) 一种飞行器半实物接入试验测控系统
CN103297492B (zh) 用于在联网计算环境之间迁移数据的方法和系统
CN107229584A (zh) 航空电子仿真测试平台i/o管理系统
CN102426424B (zh) 基于分布式架构的临近空间飞行器视景仿真方法
JPH08502842A (ja) 並列形計算処理とボリューム視覚化のための方法と装置
USH2201H1 (en) Software architecture and design for facilitating prototyping in distributed virtual environments
CN106933500A (zh) 访问存储在存储系统中的数据对象的方法和系统
CN103870287A (zh) 为医疗成像产生和运行软件应用程序的系统
CN109739618A (zh) 虚拟机迁移方法及装置
CN113283075B (zh) 一种面向大规模卫星场景的轻量化仿真架构设计方法
CN106453618A (zh) 基于G‑Cloud云计算的遥感图像处理服务云平台系统
CN115457224B (zh) 一种三维地理空间数字孪生架构方法及系统
CN111966748A (zh) 分布式空基仿真运行控制管理方法
CN110413595A (zh) 一种应用于分布式数据库的数据迁移方法和相关装置
CN108932154A (zh) 一种分布式虚拟机管理器
Konovalov et al. Fortran dvm-a language for portable parallel program development
CN114186348A (zh) 一种多飞行器协同运用仿真环境精细化敏捷构建方法
CN105608249A (zh) 精益产品建模的系统和方法
CN110502861A (zh) 基于卫星信息流的全数字化仿真系统
CN105116758A (zh) 一种工业电子嵌入式系统的仿真方法
CN107741874A (zh) 一种gis云虚拟机自动创建方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221031

Address after: 710065 Room 11805, Unit 1, Building 1, No. Chazhang Road, Hi tech Zone, Xi'an, Shaanxi

Patentee after: Zhiying Future (Xi'an) Information Technology Co.,Ltd.

Address before: 710072 No. 127 Youyi West Road, Shaanxi, Xi'an

Patentee before: Northwestern Polytechnical University