CN114047712B - 一种基于反射内存网的半实物仿真***的数据通信方法 - Google Patents
一种基于反射内存网的半实物仿真***的数据通信方法 Download PDFInfo
- Publication number
- CN114047712B CN114047712B CN202111185556.9A CN202111185556A CN114047712B CN 114047712 B CN114047712 B CN 114047712B CN 202111185556 A CN202111185556 A CN 202111185556A CN 114047712 B CN114047712 B CN 114047712B
- Authority
- CN
- China
- Prior art keywords
- simulation
- data
- area
- semi
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于反射内存网的半实物仿真***的数据通信方法,包括以下步骤:S1,对反射内存地址空间进行地址分配,任意地址段只有一个仿真节点有权限进行写操作。还包括以下步骤:S2,校验仿真数据完整性。本发明解决了现有技术存在的同时写操作异常和读写冲突的问题。
Description
技术领域
本发明涉及半实物仿真技术领域,具体是一种基于反射内存网的半实物仿真***的数据通信方法。
背景技术
在半实物仿真***中,因为仿真节点数量多,每个节点工作特性各不相同,各节点之间通信关系复杂,因此仿真***数据通信一直是半实物仿真***的一个技术难点。
VMIC反射内存是一种通过局域网在互连的计算机间提供高效的数据传输的技术,强实时网络设计人员已经越来越多地采用这种技术。VMIC反射内存实时局域网的概念十分简单,就是设计一种网络内存板,在分布***中实现内存至内存的通信,并且没有软件开销。每台结点机上插一块反射内存卡,卡上带有双口内存,各层软件既可以读也可以写这些内存,当数据被写入一台机器的反射内存卡的内存中后,反射内存卡自动地通过光纤传输到其他连在网络上的反射内存卡的内存里,通常,只需几百纳秒的时间延迟,所有的反射内存卡上的内存将写入同样的内容。而各成员在访问数据时,只要访问本地的反射内存卡中的内存即可。反射内存可广泛用于各种领域,例如实时的飞行仿真器、核电站仿真器、电讯、高速过程控制(轧钢厂和制铝厂)、高速测试和测量以及军事***。
对于半实物仿真***,使用反射内存进行数据传输存在以下优点:
高速的、基于2.12G波特率的网络,最大传输速率可达174Mbyte/s;简单易用;与操作***和处理器无关;彻底省去软件开发开销和周期;可以实现实时连接的稳定的数据传输。
使用反射内存进行数据传输优点很突出,但是在半实物仿真***中使用反射内存进行数据通信也存在两个显著问题:
同一地址在同一时刻只能被一个节点写操作,否则会出现异常错误;某一地址的数据在被某个节点读取时,有可能正在被其他节点写操作,造成读取数据错误。
上述两个问题影响了反射内存在半实物仿真***中的使用,因为在仿真***中半实物设备各个节点工作时序各不相同,需要通过复杂的编程避免上述两个情况发生。
发明内容
为克服现有技术的不足,本发明提供了一种基于反射内存网的半实物仿真***的数据通信方法,解决现有技术存在的同时写操作异常和读写冲突的问题。
本发明解决上述问题所采用的技术方案是:
一种基于反射内存网的半实物仿真***的数据通信方法,包括以下步骤:
S1,对反射内存地址空间进行地址分配,任意地址段只有一个仿真节点有权限进行写操作。
作为一种优选的技术方案,步骤S1中,将反射内存地址空间分为基本数据区和仿真数据区。
作为一种优选的技术方案,步骤S1中,按照仿真节点分配基本数据区内地址段,每个仿真节点独占一个地址段。
作为一种优选的技术方案,步骤S1中,每个仿真节点基本数据区内根据半实物仿真数据特性划分为:基本参数区、仿真命令区、仿真状态区、简单数据区;所述基本参数区用于存储仿真节点上报的仿真初始参数,基本参数区数据在仿真过程中不修改;仿真命令区用于其它仿真节点向当前仿真节点发送仿真控制命令;仿真状态区用于存储当前仿真节点上报自身状态信息、命令执行信息;简单数据区用于存储当前仿真节点上报的简单仿真数据信息。
作为一种优选的技术方案,步骤S1中,按照最大可支持仿真节点数量平均分配基本数据区内地址段。
作为一种优选的技术方案,步骤S1中,各个仿真节点在对仿真数据区进行写操作时,采用分段循环写入的方式。
作为一种优选的技术方案,还包括以下步骤:
S2,校验仿真数据完整性。
作为一种优选的技术方案,每段仿真数据均有完整性校验设计,执行写操作时仿真数据的头部和尾部均加入唯一性的校验码,读取时仿真数据的头部校验码和尾部校验码必须匹配,以证明仿真数据是完整的。
作为一种优选的技术方案,进行写操作时,可直接进行,不需要进行状态验证或等待。
作为一种优选的技术方案,进行读操作时:只执行读操作时,不需要进行等待,可直接进行;读取完成后应该执行数据完整性验证,如果仿真数据不完整,应该重复读取验证流程,直至通过验证为止。
本发明相比于现有技术,具有以下有益效果:
本发明地址分配时遵循以下原则:任意地址段只有一个仿真节点有权限进行写操作。本发明采用地址分配的方式来避免同时写操作异常。本发明通过仿真数据完整性校验,可检验读取的仿真数据是否完整正确,避免了读写冲突。
附图说明
图1为本发明的步骤示意图;
图2为仿真数据读取逻辑图;
图3为通信协议使用流程图;
图4为半实物仿真节点通信流程图;
图5为半实物仿真***示意图。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例1
如图1至图5所示,一种基于反射内存网的半实物仿真***的数据通信方法,包括以下步骤:
S1,对反射内存地址空间进行地址分配,任意地址段只有一个仿真节点有权限进行写操作。
本发明地址分配时遵循以下原则:任意地址段只有一个仿真节点有权限进行写操作。本发明采用地址分配的方式来避免同时写操作异常。
作为一种优选的技术方案,步骤S1中,将反射内存地址空间分为基本数据区和仿真数据区。
本发明针对基本数据、仿真数据的数据特性将反射内存地址空间分为两个区域,从而进一步便于避免同时写操作异常。
作为一种优选的技术方案,步骤S1中,按照仿真节点分配基本数据区内地址段,每个仿真节点独占一个地址段。
这进一步便于避免同时写操作异常。
作为一种优选的技术方案,步骤S1中,每个仿真节点基本数据区内根据半实物仿真数据特性划分为:基本参数区、仿真命令区、仿真状态区、简单数据区;所述基本参数区用于存储仿真节点上报的仿真初始参数,基本参数区数据在仿真过程中不修改;仿真命令区用于其它仿真节点向当前仿真节点发送仿真控制命令;仿真状态区用于存储当前仿真节点上报自身状态信息、命令执行信息;简单数据区用于存储当前仿真节点上报的简单仿真数据信息。
每个节点基本数据区内又根据半实物仿真数据特性进行划分。
作为一种优选的技术方案,步骤S1中,按照最大可支持仿真节点数量平均分配基本数据区内地址段。
平均分配有利于提高适用范围,提高可靠性。
作为一种优选的技术方案,步骤S1中,各个仿真节点在对仿真数据区进行写操作时,采用分段循环写入的方式。
分段循环写入便于降低每个内存地址写入频度。
作为一种优选的技术方案,还包括以下步骤:
S2,校验仿真数据完整性。
通过仿真数据完整性校验,可检验读取的仿真数据是否完整正确,避免了读写冲突。
实施例2
如图1至图5所示,作为实施例1的进一步优化,本实施例包含了实施例1的全部技术特征,除此之外,本实施例还包括以下技术特征:
作为一种优选的技术方案,每段仿真数据均有完整性校验设计,执行写操作时仿真数据的头部和尾部均加入唯一性的校验码,读取时仿真数据的头部校验码和尾部校验码必须匹配,以证明仿真数据是完整的。
在仿真数据的头部和尾部设置唯一性的校验码,操作便利;通过校验仿真数据的头部校验码和尾部校验码的完整性,可检验读取的仿真数据是否完整正确,避免了读写冲突。
作为一种优选的技术方案,进行写操作时,可直接进行,不需要进行状态验证或等待。
根据地址分配方案,每个仿真节点分配了专有的写操作地址段,故多个仿真节点同时对反射内存进行写操作时,不会出现多个仿真节点同时写入相同地址段导致写操作异常的情况,因此每个仿真节点写操作可直接进行。
作为一种优选的技术方案,进行读操作时,不需要进行等待,可直接进行;读取完成后应该执行数据完整性验证,如果仿真数据不完整,应该重复读取验证流程,直至通过验证为止。
反射内存读取仿真数据错误主要原因是,某一地址的仿真数据在被某个仿真节点读取时,有可能正在被其他仿真节点写操作,造成读取仿真数据错误;但读取完成后执行数据完整性验证,则可有效避免了读取仿真数据错误的问题。
实施例3
如图1至图5所示,本实施例包含实施例1、实施例2的全部技术特征,本实施例在实施例1、实施例2的基础上,提供更细化的实施方式。
本发明设计了一种基于反射内存网的半实物仿真***数据通信协议,综合考虑了半实物仿真节点的特性,以及半实物仿真***中数据通信特性,以数据通信协议的方式避免了同时写操作异常和读写冲突的问题。
上述两个问题影响了反射内存在半实物仿真***中的使用,因为在仿真***中半实物设备各个节点工作时序各不相同,需要通过复杂的编程避免上述两个情况发生。
本发明通信协议主要包括地址分配方案,数据读写规则,具体采用下面的步骤:
1)地址分配方案:
本通信协议采用地址分配的方式来避免同时写操作异常,地址分配时遵循以下原则:
任意地址段只有一个仿真节点有权限进行写操作;
根据半实物仿真***特性,仿真过程中需要交互的数据可以分为两类,一类为基本数据(例如控制命令,设备状态等),传输特点为数据量小,通信频繁,写操作涉及节点较多;另一类为仿真数据(如仿真场景、仿真处理结果等),传输特点为数据量大,数据率较低,写操作涉及节点较少;本发明主要针对这两种数据特性开展设计。
首先将反射内存地址空间分为两个区域(以128M容量反射内存,64仿真节点仿真***为例进行说明):
基本数据区:占据反射内存1/4容量空间;地址区间为0x0000000-0x1FFFFFF,容量32M;
仿真数据区:占据反射内存3/4容量空间;地址区间为0x2000000-0x7FFFFFF,容量96M;
基本数据区内地址段分配采取按照最大可支持仿真节点数量平均分配原则,每个仿真节点独占一个地址段,该分配方案最大支持64个半实物仿真***节点,则每个仿真节点可以依次分配0.5MB空间,每个仿真节点基本数据区内又根据半实物仿真数据特性进行划分:
表1 仿真节点基本数据区地址段功能分配表
仿真数据区占据反射内存3/4容量空间;以128MB反射内存为例,总共有96MB空间可供分配。在仿真数据区内部采取人工分配的方式,根据各个仿真节点所需要上报数据的容量,分配相应的地址和容量空间(各个仿真节点的仿真数据区地址段均为独占,不可重叠),最小可划分容量空间为1MB。每个仿真节点分配的地址和容量写入该仿真节点的基本参数区。
各个仿真节点在对仿真数据区进行写操作时,采用分段循环写入的方式,以降低每个内存地址写入频度,分段数量一般选取4-8个。仿真节点根据自身仿真数据区起始地址,以及数据分段长度和上次上报数据位置,计算本次数据上报起始地址,数据上报完成后在仿真状态区写入最新上报数据所在地址。
举例如下:
假定某仿真节点分配的仿真数据区地址段为0x2000000-0x2FFFFFF,容量为16MB,数据分段长度为4MB,分段数量为4。则该仿真节点数据上报的起始地址依次为0x2000000、0x2400000、0x2800000、0x2C00000,当第四次数据上报完成后,数据上报地址重新回到0x2000000,开始下一轮循环。
其它仿真节点读取该仿真节点上报的仿真数据时,先从该仿真节点的仿真状态区读取最新数据所在地址,然后从仿真数据区对应位置读取数据,并通过数据完整性校验,避免读写冲突。
2)数据读写规则:
本通信协议通过数据完整性校验来避免读写冲突,读写数据时遵循以下原则:
每段数据均有完整性校验设计(写入时数据头部和尾部有唯一性的校验码,读取时头尾校验码必须匹配,证明数据是完整的);
写操作:因为独占相应区域写操作权限,因此执行写操作可直接进行,不需要进行状态验证或等待;
读操作:因为反射内存可以进行同时读写,因此只执行读取操作时,不需要进行等待,可直接进行,但是读取完成后应该执行数据完整性验证,如果数据不完整,应该重复读取验证流程,直至通过验证为止,软件中应该设置重复读取次数上限,达到该上限则应中断操作上报异常;
本发明通过对半实物仿真***数据通信特性分析,设计了一种及与反射内存的数据通信协议。通过合理分配各个仿真节点的数据地址、以及读写规则,满足了多节点半实物仿真***的数据通信要求。本发明对半实物仿真类型没有限制,可适用于各类多节点半实物仿真***。
实施例4
如图1至图5所示,本实施例包含实施例1~实施例3的全部技术特征,本实施例在实施例1~实施例3的基础上,提供更细化的实施方式。
本实施实例为一个在半实物仿真***中应用本数据通信协议,具体实施步骤:
1、半实物仿真***规模分析确认:
本半实物仿真***包含9台半实物模拟器,10个控制终端,6台数据处理终端,9台结果显示终端,3台数据记录终端,仿真节点数为37,可虑到***可扩展冗余,采用最大64节点进行***设计;
2、地址分配:
半实物仿真***采用128MB反射内存,地址分配如下:
表2 基本数据区地址分配表
表3 仿真数据区地址分配表
3、应用编程;
按照地址分配以及读写规则,选用C++作为程序设计语言,完成通信类data_fiber代码编程,包括data_fiber.h和data_fiber.cpp两个文件,主要类函数简介如下:
表4 类函数简介表
4、应用实现;
在半实物仿真***各个节点控制程序中嵌入data_fiber通信类,实现了各个节点之间仿真数据传输,多种类型数据在各个节点间正常交互,***运行良好。
如上所述,可较好地实现本发明。
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (7)
1.一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,包括以下步骤:
S1,对反射内存地址空间进行地址分配,任意地址段只有一个仿真节点有权限进行写操作;
步骤S1中,将反射内存地址空间分为基本数据区和仿真数据区;
步骤S1中,按照仿真节点分配基本数据区内地址段,每个仿真节点独占一个地址段;
步骤S1中,每个仿真节点基本数据区内根据半实物仿真数据特性划分为:基本参数区、仿真命令区、仿真状态区、简单数据区;所述基本参数区用于存储仿真节点上报的仿真初始参数,基本参数区数据在仿真过程中不修改;仿真命令区用于其它仿真节点向当前仿真节点发送仿真控制命令;仿真状态区用于存储当前仿真节点上报自身状态信息、命令执行信息;简单数据区用于存储当前仿真节点上报的简单仿真数据信息。
2.根据权利要求1所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,步骤S1中,按照最大可支持仿真节点数量平均分配基本数据区内地址段。
3.根据权利要求2所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,步骤S1中,各个仿真节点在对仿真数据区进行写操作时,采用分段循环写入的方式。
4.根据权利要求1至3任一项所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,还包括以下步骤:
S2,校验仿真数据完整性。
5.根据权利要求4所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,每段仿真数据均有完整性校验设计,执行写操作时仿真数据的头部和尾部均加入唯一性的校验码,读取时仿真数据的头部校验码和尾部校验码必须匹配,以证明仿真数据是完整的。
6.根据权利要求5所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,进行写操作时,可直接进行,不需要进行状态验证或等待。
7.根据权利要求6所述的一种基于反射内存网的半实物仿真***的数据通信方法,其特征在于,进行读操作时:只执行读操作时,不需要进行等待,直接进行;读取完成后执行数据完整性验证,如果仿真数据不完整,重复读取验证流程,直至通过验证为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111185556.9A CN114047712B (zh) | 2021-10-12 | 2021-10-12 | 一种基于反射内存网的半实物仿真***的数据通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111185556.9A CN114047712B (zh) | 2021-10-12 | 2021-10-12 | 一种基于反射内存网的半实物仿真***的数据通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047712A CN114047712A (zh) | 2022-02-15 |
CN114047712B true CN114047712B (zh) | 2023-04-18 |
Family
ID=80205332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111185556.9A Active CN114047712B (zh) | 2021-10-12 | 2021-10-12 | 一种基于反射内存网的半实物仿真***的数据通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047712B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116846863B (zh) * | 2023-08-30 | 2023-11-10 | 东方空间技术(山东)有限公司 | 一种光纤反射内存网内存映射方法、装置及计算设备 |
CN117749868A (zh) * | 2024-02-18 | 2024-03-22 | 成都流体动力创新中心 | 一种基于反射内存与dds架构的半实物仿真通信*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3887059B2 (ja) * | 1997-04-17 | 2007-02-28 | 富士通株式会社 | データ書き込み方法、データ読み出し方法、及びメモリ回路 |
CN101493784B (zh) * | 2009-02-24 | 2011-09-21 | 中国运载火箭技术研究院 | 一种基于分布仿真的反射内存网动态内存管理方法 |
CN101562639B (zh) * | 2009-05-14 | 2012-08-08 | 华为终端有限公司 | 信息同步方法、装置和*** |
CN104090847B (zh) * | 2014-06-25 | 2017-01-11 | 华中科技大学 | 一种固态存储设备的地址分配方法 |
CN105472048B (zh) * | 2014-07-14 | 2019-05-10 | 华为技术有限公司 | 一种地址分配方法、信息聚合方法及相关设备 |
CN106483866B (zh) * | 2015-08-26 | 2019-07-23 | 上海机电工程研究所 | 制导控制半实物仿真***定时方法及*** |
CN108267968B (zh) * | 2017-01-03 | 2021-02-05 | 北京机电工程研究所 | 一种协同半实物仿真光纤数据交互安全性校验方法 |
EP3531293A1 (en) * | 2018-02-27 | 2019-08-28 | BAE SYSTEMS plc | Computing system operating a reflective memory network |
KR20200059936A (ko) * | 2018-11-22 | 2020-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN111124992B (zh) * | 2019-10-31 | 2023-05-09 | 北京航天控制仪器研究所 | 一种基于光纤反射内存通讯的转台仿真控制方法 |
CN111949570B (zh) * | 2020-07-02 | 2022-03-18 | 上海机电工程研究所 | 一种基于xml格式的反射内存地址自动分配方法及*** |
-
2021
- 2021-10-12 CN CN202111185556.9A patent/CN114047712B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114047712A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135985B (zh) | 一种区块链上交易的并行执行方法及*** | |
CN114047712B (zh) | 一种基于反射内存网的半实物仿真***的数据通信方法 | |
CN100565472C (zh) | 一种适用于多处理器核***芯片的调试方法 | |
CN100476837C (zh) | 一种支持随机指令测试的微处理器fpga验证装置 | |
CN111611120B (zh) | 一种片上多核处理器Cache一致性协议验证方法、***及介质 | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
CN109557460B (zh) | 一种基于fpga的卷积神经网络算法的测试方法及设备 | |
CN110765032A (zh) | 基于***管理总线接口对i2c存储器进行读写的方法 | |
CN115146568A (zh) | 一种基于uvm的芯片验证***及验证方法 | |
CN103002046A (zh) | 多***数据拷贝的rdma架构 | |
CN105790830A (zh) | 光模块在位检测方法和装置 | |
CN114691578B (zh) | 一种高性能串行通信方法、***、介质、设备及终端 | |
CN113626353A (zh) | 处理加速器架构 | |
CN109445691A (zh) | 一种提高ftl算法开发和验证效率的方法及装置 | |
CN112417802B (zh) | 一种模拟存储芯片的方法、***、设备及存储介质 | |
CN111176926B (zh) | 一种基于双口sram的ip核仿真***及仿真方法 | |
CN112885403B (zh) | 一种Flash控制器的功能测试方法、装置及设备 | |
CN101751311A (zh) | 请求处理设备、请求处理***和存取测试方法 | |
CN114116337A (zh) | 基于pcie链路配置的硬盘测试方法、***、终端及存储介质 | |
CN117008843B (zh) | 控制页链表构建装置和电子设备 | |
CN113742198B (zh) | 测试方法、装置、电子设备及存储介质 | |
JPH10221410A (ja) | Lsiの自動論理検証方式 | |
CN111580751B (zh) | 基于反射内存网的0-1动态数据传输与存储方法及*** | |
CN117785593B (zh) | 一种基于UVM的xHCI驱动的实现***及方法 | |
CN117577164A (zh) | 存储器控制器测试方法及装置 |
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 |