CN115827168A - 一种二进制仿真环境下虚拟机通信的优化方法 - Google Patents
一种二进制仿真环境下虚拟机通信的优化方法 Download PDFInfo
- Publication number
- CN115827168A CN115827168A CN202310049460.2A CN202310049460A CN115827168A CN 115827168 A CN115827168 A CN 115827168A CN 202310049460 A CN202310049460 A CN 202310049460A CN 115827168 A CN115827168 A CN 115827168A
- Authority
- CN
- China
- Prior art keywords
- dma
- data
- simulation
- virtual machine
- plug
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种二进制仿真环境下虚拟机通信的优化方法,搭建一种仿真系统数据通信方法,实现对航电系统软件数据通信过程的仿真,包括配置二进制仿真环境下虚拟机所使用的仿真模块,配置参与仿真模型的发布订阅关系,配置二进制仿真环境中所仿真硬件的基本参数;在仿真模块的操作系统中,创建DMA组件用于二进制仿真环境与宿主机环境间的数据交互,在DMA组件创建时;在虚拟机中,创建用于DMA数据处理的插件,以实现不同的数据处理需求。通过本方法实现航电系统仿真模块与外部虚拟总线之间的通信,利用统一的内部接口,简化对硬件的依赖,减少对硬件进行模拟的过程,降低开发难度,减少开发维护的工作量,提升仿真效率。
Description
技术领域
本发明涉及仿真领域,具体为一种二进制仿真环境下虚拟机通信的优化方法。
背景技术
随着航电软件信息化规模越来越大,系统之间的连接越来越复杂,对互联、互通、互操作的要求越来越高,使用虚拟机对航电系统的软件模块进行二进制仿真的需求也越来越多。
由于航电软件之间无法直接进行数据交换,但又需要使用不同的航电软件进行联合仿真,以验证仿真模块功能的正确性,在以往航电软件仿真过程中,往往需要大量的前期准备工作,需要根据仿真模块所使用的总线进行硬件及驱动的编写和模拟。针对不同硬件模块,都需要在虚拟机中进行模拟,以满足航电软件运行的基本需求。随着硬件厂家的增多,硬件型号的不断变化,使得在进行二进制仿真时增加大量硬件模拟的工作;由于硬件的型号、厂家各不相同,硬件的模拟及对应驱动的开发需要消耗大量的人力,同时对开发人员的专业性要求也非常高,大大增加了二进制仿真的难度及任务执行周期。
因此需要本发明设计一种二进制仿真环境下虚拟机通信的优化方法来解决上述出现的问题。
发明内容
本发明目的在于提供一种二进制仿真环境下虚拟机通信的优化方法,以解决上述背景技术中提出的问题。
为达成上述目的,本发明提出如下技术方案:一种二进制仿真环境下虚拟机通信的优化方法,所述方法包括如下步骤:
配置二进制仿真环境下虚拟机所使用的仿真模块,配置参与仿真模型的发布订阅关系,配置二进制仿真环境中所仿真硬件的基本参数;
在仿真模块的操作系统中,创建DMA组件用于二进制仿真环境与宿主机环境间的数据交互,在DMA组件创建时,需事先依据仿真模块中的系统调用号进行对应功能的定义;
在虚拟机中,创建用于DMA数据处理的插件,以实现不同的数据处理需求;
在仿真模块中,当需要对外进行数据发送或对内进行数据接收时,仿真模块通过执行系统调用的方式通过DMA的操作来实现数据的发送及接收;
在虚拟机中,DMA插件在接收到发送、接收请求后,依据请求的不同进行数据操作,从而实现仿真模块与外部总线之间的通信。
进一步的,在本发明中,所述仿真模块通过虚拟机与其他模块通信时,使用真实或虚拟硬件进行通信。
进一步的,在本发明中,二进制仿真过程中所使用通信方法至少包括以下步骤的一步:
S1、仿真模块在进行多模块联合仿真时,进行实时数据交互;
S2、仿真模块间进行数据通信时,使用虚拟总线或物理总线进行数据交互;
S3、仿真模块与虚拟机间通过DMA进行通信数据传输;
S4、虚拟机与外部物理总线通信时使用DMA插件进行数据传输;
S5、虚拟机的DMA插件可动态加载,不影响仿真模块的独立运行。
进一步的,在本发明中,包括:
仿真模块为二进制模块,为真实软件模块,无需单独编译;
仿真过程中模块与虚拟机通信基于操作系统提供的DMA驱动,与实际的通信硬件类型无关;
仿真模块配置,需要根据仿真模块对操作系统的调用情况,在操作系统的DMA驱动中配置不同类型数据通信所使用的系统调用号;
在虚拟机中,根据不同类型的数据通信,编写DMA插件的处理逻辑,以适应于仿真模块的数据通信过程;
在进行多模块仿真或联合仿真时,DMA插件可通过以太网DDS协议或MQTT协议进行虚拟总线的模拟,也可通过物理板卡实现物理总线的数据接入;
在进行多模块仿真或联合仿真使用虚拟总线时,需事先配置参与仿真模型的发布订阅关系。
进一步的,在本发明中,所述多模块仿真或联合仿真时,仿真模块可通过本发明中的方法实现分布式部署的功能。
进一步的,在本发明中,所述传输总线模块集成了UDP、DDS、MQTT传输协议。
进一步的,在本发明中,包括如下模块:
仿真模块,仿真模块是要通过虚拟机进行二进制仿真的模块,主要目的是要在虚拟机的环境下,运行仿真模块的二进制文件,以验证仿真模块的正确性;
DMA驱动,DMA驱动是一个直接内存访问的数据模型,用于操作系统与虚拟机DMA插件的数据传输,使用一个DMA驱动进行各种物理总线的模拟;
DMA插件,DMA插件是工作在虚拟机上的数据处理插件,用于处理来自DMA驱动的数据收发请求以及各总线的数据融合;
虚拟总线,虚拟总线使用以太网DDS协议及MQTT协议作为虚拟总线中各仿真节点的数据通信协议,在虚拟总线中,数据通过与DMA插件的交互来实现各仿真模块之间的数据通信。
进一步的,在本发明中,仿真模块进行数据发送时的逻辑如下:
S1、仿真模块根据业务的需要进行数据的发送;
S2、操作系统接收到仿真模块数据发送的请求后,查找对应的系统调用号,并将数据发送指令及要发送数据的内存地址、总线类型等数据发送到DMA驱动中;
S3、在DMA驱动中,接收到对外发送数据的命令之后,开始构建DMA指令,并根据总线类型调用对应的参数设置接口;
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据发送;
S5、在DMA插件中,接收到DMA数据发送的指令后,在虚拟机的DMA插件中进行DMA数据拷贝,拷贝完成后将数据发送至虚拟总线;
S6、虚拟总线在接收到来自DMA插件的数据后,返回数据发送的结果。
进一步的,在本发明中,仿真模块进行数据接收时的逻辑如下:
S1、仿真模块根据业务需要进行数据接收;
S2、操作系统接收到数据接收的请求,查询系统调用号后进入到DMA驱动对应的消息接收逻辑中;
S3、在DMA驱动中,构建DMA数据接收命令,包括要接收数据的总线类型、消息主题、数据长度及接收后数据保存的内存地址;
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据接收操作;
S5、DMA插件接收到数据接收的请求之后,查询本地的数据缓存中是否有新数据到达,若有新数据到达,则将新数据通过DMA的内存数据拷贝将数据返回给DMA驱动,并返回数据接收结果;若没有新数据到达,则直接通过DMA返回没有新消息到达。
进一步的,在本发明中,DMA插件与虚拟总线之间的数据接收逻辑如下:
S1、DMA插件与虚拟总线之间的数据传输以消息的发布/订阅形式存在;
S2、DMA插件首先需要读取仿真模块的发布/订阅配置表,DMA插件将读取到的主题发送到虚拟总线上进行注册;
S3、虚拟总线在接收到来自DMA插件的主题订阅请求后完成主题订阅的操作;
S4、当虚拟总线接收到来自其他仿真模块发送的消息后,将DMA插件订阅的消息通过以太网发送给DMA插件;
S5、在DMA插件接收到新消息后,将新消息保存到本地的缓存中,等待仿真模块的读取。
有益效果,本申请的技术方案具备如下技术效果:
本发明能够实现仿真模块与驱动分离,利用统一的系统驱动接口即可完成仿真模块的数据传输配置,让开发及测试人员不需要关注具体的硬件实现,专注于仿真模块中的软件功能实现,利用本发明中所述方法,可轻松实现仿真模块的分布式部署及多模块联合仿真验证,大大减少了仿真模块前期的配置准备工作,提高了联合仿真的效率,保证了仿真结果的正确性、实效性。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1为本发明的系统整体框架图;
图2为本原始物理总线框架连接示意图;
图3为本发明的系统部署框图;
图4为本发明的数据发送逻辑流程图;
图5为本发明的数据接收逻辑流程图;
图6为本发明的DMA插件与虚拟总线数据订阅接收逻辑流程图;
图7为本发明的多模块仿真的模块交互图。
实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定义在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
一种二进制仿真环境下虚拟机通信的优化方法,所述方法包括如下步骤:
配置二进制仿真环境下虚拟机所使用的仿真模块,配置参与仿真模型的发布/订阅关系,配置二进制仿真环境中所仿真硬件的基本参数;
在仿真模块的操作系统中,创建DMA组件用于二进制仿真环境与宿主机环境间的数据交互,在DMA组件创建时,需事先依据仿真模块中的系统调用号进行对应功能的定义;
在虚拟机中,创建用于DMA数据处理的插件,以实现不同的数据处理需求;
在仿真模块中,当需要对外进行数据发送或对内进行数据接收时,仿真模块通过执行系统调用的方式通过DMA的操作来实现数据的发送及接收;
在虚拟机中,DMA插件在接收到发送、接收请求后,依据请求的不同进行数据操作,从而实现仿真模块与外部总线之间的通信。
在本发明中所使用的核心数据结构及定义如下:
1,DMA驱动初始化结构定义:
typedef struct _st_xch_dma_cmd_init {
uint32_t ui_CmdType;
int32_t ui_ReturnCode;
uint32_t ui_ConfigAddress;
uint32_t ui_ConfigLength;
uint32_t ui_ResultAddress;
uint32_t ui_ResultLength;
uint64_t ui_CurrentTime;
uint32_t ui_Padding[7];
uint32_t ui_CRC;
} st_xch_dma_cmd_init;
st_xch_dma_cmd_init结构中的ui_CmdType字段用于DMA的初始化状态;ui_ConfigAddress字段表示在DMA模块初始化时所使用内部参数的地址;ui_ConfigLength字段表示DMA模块初始化时所使用内部参数的数据长度;ui_ResultAddress字段表示DMA模块的初始化结果的地址,初始化的结果在DMA插件中将结果拷贝到此地址中,以完成整个DMA的初始化过程。
DMA数据发送命令结构定义:
typedef struct _st_xch_dma_cmd_publish {
uint32_t ui_CmdType;
int32_t ui_ReturnCode;
uint32_t ui_TopicId;
uint32_t ui_DataAddress;
uint32_t ui_DataLength;
uint64_t ui_CurrentTime;
uint32_t ui_publishType;
uint32_t ui_Padding[6];
uint32_t ui_QoS;
uint32_t ui_CRC;
} st_xch_dma_cmd_publish;
st_xch_dma_cmd_publish 结构是DMA驱动中对外进行数据发送的接口结构,ui_publishType用于表示当前传输的数据所使用的虚拟总线的类型,该字段使用不同类型的值分别表示光纤、1394、429、422、485、1553B、模拟量等总线。
ui_DataAddress字段表示当前对外进行发送的数据的地址;ui_DataLength字段表示对外进行发送数据的长度;ui_CurrentTime字段表示数据发送的时间戳;ui_TopicId字段表示,若当前发送的消息使用订阅/发布的形式进行发送的,ui_TopicId为当前发送消息的ID。
3,DMA数据接收命令结构定义:
typedef struct _st_xch_dma_cmd_fetch_data {
uint32_t ui_CmdType;
int32_t ui_ReturnCode;
uint32_t ui_TopicId;
uint32_t ui_DataAddress;
uint32_t ui_DataLength;
uint64_t ui_CurrentTime;
uint32_t ui_fetchType;
uint32_t ui_Padding[7];
uint32_t ui_CRC;
} st_xch_dma_cmd_fetch_data;
st_xch_dma_cmd_fetch_data结构是DMA驱动中接收数据的核心结构,ui_fetchType字段表示要接收来自哪一个数据总线的数据;ui_DataAddress字段表示当有数据时,接收到的数据所保存到的内存地址;ui_DataLength字段表示当有数据时,接收到的数据的真实长度;ui_CurrentTime字段表示数据接收的时间戳;ui_TopicId字段表示,当总线上的消息是以订阅/发布的形式进行收发的,ui_TopicId表示当前所要接收的数据的ID。
通过以上定义的三个结构体,可在虚拟机的操作系统中实现基于DMA的数据收发框架,并且可实现硬件无关的特性。
如图1所示,仿真模块与外部进行数据通信所涉及到的总线包含光纤总线、1394总线、429总线、1553B总线、串行数据总线等多种总线;在真实硬件环境中,不同的总线系统使用物理板卡进行连接通信。
如图2所示,在真实的硬件环境中,需要在仿真环境下对每种硬件设备单独进行驱动开发及配置,每个虚拟机还需要为每种总线单独配置一块物理板卡,与本发明中的方法相比,硬件成本及仿真的时间周期要远远高于本发明中所描述的方法。
进一步的,在本发明中,所述方法用于分布式部署时,仿真模块及虚拟机之间识别、连接和通信,提供主题发布、主题订阅、消息发送和消息接收。
进一步的,在本发明中,所述方法通过DMA插件将本应由真实硬件进行收发的数据转换到以太网中,进一步减少对真实硬件的依赖。
进一步的,在本发明中,二进制仿真过程中所使用通信方法至少包括以下步骤的一步:
S1、仿真模块在进行多模块联合仿真时,进行实时数据交互;
S2、仿真模块间进行数据通信时,使用虚拟总线或物理总线进行数据交互;
S3、仿真模块与虚拟机间通过DMA进行通信数据传输;
S4、虚拟机与外部物理总线通信时使用DMA插件进行数据传输;
S5、虚拟机的DMA插件可动态加载,不影响仿真模块的独立运行。
一种二进制仿真环境下虚拟机通信的优化方法,包括:
仿真模块为要进行仿真二进制模块,为真实软件模块,无需单独编译。
仿真过程中模块与虚拟机通信基于操作系统提供的DMA驱动,与实际的通信硬件类型无关。
仿真模块配置,需要根据仿真模块对系统调用进行配置,在操作系统的DMA驱动中配置不同类型数据通信所使用的系统调用号。
在虚拟机中,根据不同类型的数据通信,编写DMA插件的处理逻辑,以适应于仿真模块的数据通信过程。
在进行多模块仿真或联合仿真时,DMA插件可通过以太网DDS协议或MQTT协议进行虚拟总线的模拟。
在进行多模块仿真或联合仿真使用虚拟总线时,需事先配置参与仿真模型的发布订阅关系。
进一步的,在本发明中,所述方法包括仿真模块、DMA驱动及配置模块、虚拟机DMA插件模块。
进一步的,虚拟机DMA插件模块实现仿真软件的分布式部署后的数据通信功能。
进一步的,在本发明中,所述虚拟机DMA插件模块集成UDP、以太网DDS传输协议以及MQTT传输协议。
如图1所示,一种二进制仿真环境下虚拟机通信的优化方法,包括如下几个部分:
S1、仿真模块,仿真模块是要通过虚拟机进行二进制仿真的模块,主要目的是要在虚拟机的环境下,运行仿真模块的二进制文件,以验证仿真模块的正确性。
S2、DMA驱动,DMA驱动是一个直接内存访问的数据模型,用于操作系统与虚拟机DMA插件的数据传输,在本发明中,使用一个DMA驱动进行各种物理总线的模拟,真正做到了减少二进制仿真数据通信准备的工作量,减少了开发人员的工作强度,有效缩短了二进制仿真工作的难度。
S3、DMA插件,DMA插件是工作在虚拟机上的数据处理插件,用于处理来自DMA驱动的数据收发请求以及各总线的数据融合。
S4、虚拟总线,虚拟总线使用以太网DDS协议及MQTT协议作为虚拟总线中各仿真节点的数据通信协议。在虚拟总线中,数据通过与DMA插件的交互来实现各仿真模块之间的数据通信。使用虚拟总线,真正做到了硬件无关性。
如图3所示,图3为使用本发明后进行多二进制模块联合仿真的示意图,使用本发明所述方法后,各虚拟机可通过虚拟总线进行连接,虚拟总线基于以太网进行数据传输。
如图4所示,仿真模块进行数据发送时的逻辑如下:
S1、仿真模块根据业务的需要进行数据的发送;
S2、操作系统接收到仿真模块数据发送的请求后,查找对应的系统调用号,并将数据发送指令及要发送数据的内存地址、总线类型等数据发送到DMA驱动中。
S3、在DMA驱动中,接收到对外发送数据的命令之后,开始构建DMA指令,并根据总线类型调用对应的参数设置接口。
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据发送。
S5、在DMA插件中,接收到DMA数据发送的指令后,在虚拟机的DMA插件中进行DMA数据拷贝,拷贝完成后将数据发送至虚拟总线。
S6、虚拟总线在接收到来自DMA插件的数据后,返回数据发送的结果。
如图5所示,仿真模块进行数据接收时的逻辑如下:
S1、仿真模块根据业务需要进行数据接收。
S2、操作系统接收到数据接收的请求,查询系统调用号后进入到DMA驱动对应的消息接收逻辑中。
S3、在DMA驱动中,构建DMA数据接收命令,包括要接收数据的总线类型、消息主题、数据长度及接收后数据保存的内存地址。
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据接收操作。
S5、DMA插件接收到数据接收的请求之后,查询本地的数据缓存中是否有新数据到达,若有新数据到达,则将新数据通过DMA的内存数据拷贝将数据返回给DMA驱动,并返回数据接收结果;若没有新数据到达,则直接通过DMA返回没有新消息到达。
如图6所示,DMA插件与虚拟总线之间的数据接收逻辑如下:
S1、DMA插件与虚拟总线之间的数据传输以消息的发布/订阅形式存在。
S2、DMA插件首先需要读取仿真模块的发布/订阅配置表,DMA插件将读取到的主题发送到虚拟总线上进行注册。
S3、虚拟总线在接收到来自DMA插件的主题订阅请求后完成主题订阅的操作。
S4、当虚拟总线接收到来自其他仿真模块发送的消息后,将DMA插件订阅的消息通过以太网发送给DMA插件。
S5、在DMA插件接收到新消息后,将新消息保存到本地的缓存中,等待仿真模块的读取。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (10)
1.一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:所述方法包括如下步骤:
配置二进制仿真环境下虚拟机所使用的仿真模块,配置参与仿真模型的发布订阅关系,配置二进制仿真环境中所仿真硬件的基本参数;
在仿真模块的操作系统中,创建DMA组件用于二进制仿真环境与宿主机环境间的数据交互,在DMA组件创建时,需事先依据仿真模块中的系统调用号进行对应功能的定义;
在虚拟机中,创建用于DMA数据处理的插件,以实现不同的数据处理需求;
在仿真模块中,当需要对外进行数据发送或对内进行数据接收时,仿真模块通过执行系统调用的方式通过DMA的操作来实现数据的发送及接收;
在虚拟机中,DMA插件在接收到发送、接收请求后,依据请求的不同进行数据操作,从而实现仿真模块与外部总线之间的通信。
2.根据权利要求1所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:所述仿真模块通过虚拟机与其他模块通信时,使用真实或虚拟硬件进行通信。
3.根据权利要求1所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:二进制仿真过程中所使用通信方法至少包括以下步骤的一步:
S1、仿真模块在进行多模块联合仿真时,进行实时数据交互;
S2、仿真模块间进行数据通信时,使用虚拟总线或物理总线进行数据交互;
S3、仿真模块与虚拟机间通过DMA进行通信数据传输;
S4、虚拟机与外部物理总线通信时使用DMA插件进行数据传输;
S5、虚拟机的DMA插件可动态加载,不影响仿真模块的独立运行。
4.根据权利要求1所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:包括:
仿真模块为二进制模块,为真实软件模块,无需单独编译;
仿真过程中模块与虚拟机通信基于操作系统提供的DMA驱动,与实际的通信硬件类型无关;
仿真模块配置,需要根据仿真模块对操作系统的调用情况,在操作系统的DMA驱动中配置不同类型数据通信所使用的系统调用号;
在虚拟机中,根据不同类型的数据通信,编写DMA插件的处理逻辑,以适应于仿真模块的数据通信过程;
在进行多模块仿真或联合仿真时,DMA插件可通过以太网DDS协议或MQTT协议进行虚拟总线的模拟,也可通过物理板卡实现物理总线的数据接入;
在进行多模块仿真或联合仿真使用虚拟总线时,需事先配置参与仿真模型的发布订阅关系。
5.根据权利要求4所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:所述多模块仿真或联合仿真时,仿真模块可通过本发明中的方法实现分布式部署的功能。
6.根据权利要求4所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:所述传输总线模块集成了UDP、DDS、MQTT传输协议。
7.根据权利要求1所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:包括如下模块:
仿真模块,仿真模块是要通过虚拟机进行二进制仿真的模块,主要目的是要在虚拟机的环境下,运行仿真模块的二进制文件,以验证仿真模块的正确性;
DMA驱动,DMA驱动是一个直接内存访问的数据模型,用于操作系统与虚拟机DMA插件的数据传输,使用一个DMA驱动进行各种物理总线的模拟;
DMA插件,DMA插件是工作在虚拟机上的数据处理插件,用于处理来自DMA驱动的数据收发请求以及各总线的数据融合;
虚拟总线,虚拟总线使用以太网DDS协议及MQTT协议作为虚拟总线中各仿真节点的数据通信协议,在虚拟总线中,数据通过与DMA插件的交互来实现各仿真模块之间的数据通信。
8.根据权利要求1所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:仿真模块进行数据发送时的逻辑如下:
S1、仿真模块根据业务的需要进行数据的发送;
S2、操作系统接收到仿真模块数据发送的请求后,查找对应的系统调用号,并将数据发送指令及要发送数据的内存地址、总线类型数据发送到DMA驱动中;
S3、在DMA驱动中,接收到对外发送数据的命令之后,开始构建DMA指令,并根据总线类型调用对应的参数设置接口;
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据发送;
S5、在DMA插件中,接收到DMA数据发送的指令后,在虚拟机的DMA插件中进行DMA数据拷贝,拷贝完成后将数据发送至虚拟总线;
S6、虚拟总线在接收到来自DMA插件的数据后,返回数据发送的结果。
9.根据权利要求8所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:仿真模块进行数据接收时的逻辑如下:
S1、仿真模块根据业务需要进行数据接收;
S2、操作系统接收到数据接收的请求,查询系统调用号后进入到DMA驱动对应的消息接收逻辑中;
S3、在DMA驱动中,构建DMA数据接收命令,包括要接收数据的总线类型、消息主题、数据长度及接收后数据保存的内存地址;
S4、在DMA驱动命令准备完毕之后,调用DMA命令进行数据接收操作;
S5、DMA插件接收到数据接收的请求之后,查询本地的数据缓存中是否有新数据到达,若有新数据到达,则将新数据通过DMA的内存数据拷贝将数据返回给DMA驱动,并返回数据接收结果;若没有新数据到达,则直接通过DMA返回没有新消息到达。
10.根据权利要求9所述的一种二进制仿真环境下虚拟机通信的优化方法,其特征在于:DMA插件与虚拟总线之间的数据接收逻辑如下:
S1、DMA插件与虚拟总线之间的数据传输以消息的发布/订阅形式存在;
S2、DMA插件首先需要读取仿真模块的发布/订阅配置表,DMA插件将读取到的主题发送到虚拟总线上进行注册;
S3、虚拟总线在接收到来自DMA插件的主题订阅请求后完成主题订阅的操作;
S4、当虚拟总线接收到来自其他仿真模块发送的消息后,将DMA插件订阅的消息通过以太网发送给DMA插件;
S5、在DMA插件接收到新消息后,将新消息保存到本地的缓存中,等待仿真模块的读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310049460.2A CN115827168B (zh) | 2023-02-01 | 2023-02-01 | 一种二进制仿真环境下虚拟机通信的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310049460.2A CN115827168B (zh) | 2023-02-01 | 2023-02-01 | 一种二进制仿真环境下虚拟机通信的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827168A true CN115827168A (zh) | 2023-03-21 |
CN115827168B CN115827168B (zh) | 2023-05-12 |
Family
ID=85520665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310049460.2A Active CN115827168B (zh) | 2023-02-01 | 2023-02-01 | 一种二进制仿真环境下虚拟机通信的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827168B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108707A (zh) * | 2023-04-14 | 2023-05-12 | 合肥安迅精密技术有限公司 | 虚拟贴片机仿真系统、方法及存储介质 |
CN116755844A (zh) * | 2023-08-17 | 2023-09-15 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278263A (zh) * | 2005-10-08 | 2008-10-01 | 国际商业机器公司 | 虚拟机环境中的输入/输出设备与物理存储器之间的直接存储器访问 |
CN105242588A (zh) * | 2014-02-28 | 2016-01-13 | 洛克威尔自动控制技术股份有限公司 | 增强的电机驱动通信系统和方法 |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机系统和存储访问装置 |
CN107908578A (zh) * | 2017-12-12 | 2018-04-13 | 成都能通科技有限公司 | 基于PXIe总线和VISA驱动的通用DMA传输方法 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN109213702A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 虚拟机环境中的虚拟双控制模块之间的通信 |
US20200053004A1 (en) * | 2018-08-09 | 2020-02-13 | Tata Consultancy Services Limited | Method and system for message based communication and failure recovery for fpga middleware framework |
CN112181890A (zh) * | 2020-09-30 | 2021-01-05 | 北京锐马视讯科技有限公司 | Pcie_dma数据传输装置和方法及系统 |
CN112463614A (zh) * | 2020-12-01 | 2021-03-09 | 北京计算机技术及应用研究所 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
CN114116024A (zh) * | 2021-09-29 | 2022-03-01 | 北京智芯微电子科技有限公司 | 面向嵌入式操作系统的外设驱动处理方法、虚拟机及系统 |
CN114398747A (zh) * | 2021-09-30 | 2022-04-26 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 飞行训练模拟器通信导航仿真松耦合架构 |
-
2023
- 2023-02-01 CN CN202310049460.2A patent/CN115827168B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278263A (zh) * | 2005-10-08 | 2008-10-01 | 国际商业机器公司 | 虚拟机环境中的输入/输出设备与物理存储器之间的直接存储器访问 |
CN105242588A (zh) * | 2014-02-28 | 2016-01-13 | 洛克威尔自动控制技术股份有限公司 | 增强的电机驱动通信系统和方法 |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机系统和存储访问装置 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
CN109213702A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 虚拟机环境中的虚拟双控制模块之间的通信 |
CN107908578A (zh) * | 2017-12-12 | 2018-04-13 | 成都能通科技有限公司 | 基于PXIe总线和VISA驱动的通用DMA传输方法 |
US20200053004A1 (en) * | 2018-08-09 | 2020-02-13 | Tata Consultancy Services Limited | Method and system for message based communication and failure recovery for fpga middleware framework |
CN112181890A (zh) * | 2020-09-30 | 2021-01-05 | 北京锐马视讯科技有限公司 | Pcie_dma数据传输装置和方法及系统 |
CN112463614A (zh) * | 2020-12-01 | 2021-03-09 | 北京计算机技术及应用研究所 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
CN114116024A (zh) * | 2021-09-29 | 2022-03-01 | 北京智芯微电子科技有限公司 | 面向嵌入式操作系统的外设驱动处理方法、虚拟机及系统 |
CN114398747A (zh) * | 2021-09-30 | 2022-04-26 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 飞行训练模拟器通信导航仿真松耦合架构 |
Non-Patent Citations (2)
Title |
---|
商临峰,李卓成: "COSIX64设备驱动程序开发技术综述" * |
商临峰,李卓成: "COSIX64设备驱动程序开发技术综述", 计算机工程与应用 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108707A (zh) * | 2023-04-14 | 2023-05-12 | 合肥安迅精密技术有限公司 | 虚拟贴片机仿真系统、方法及存储介质 |
CN116108707B (zh) * | 2023-04-14 | 2023-06-16 | 合肥安迅精密技术有限公司 | 虚拟贴片机仿真系统、方法及存储介质 |
CN116755844A (zh) * | 2023-08-17 | 2023-09-15 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
CN116755844B (zh) * | 2023-08-17 | 2023-11-24 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115827168B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115827168B (zh) | 一种二进制仿真环境下虚拟机通信的优化方法 | |
CN100454285C (zh) | 用于改变网络拓扑的方法 | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
CN112463614B (zh) | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 | |
CN114253740A (zh) | 基于Linux内核的协议栈数据传输方法及装置 | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN111859832B (zh) | 一种芯片仿真验证方法、装置及相关设备 | |
CN102664953B (zh) | 基于hla的高通量分布式仿真支撑平台、系统及仿真方法 | |
CN112527647B (zh) | 基于NS-3的Raft共识算法测试系统 | |
CN110618956B (zh) | 一种bmc云平台资源池化方法与系统 | |
CN103713940A (zh) | 一种基于rtx-hla-反射内存卡的可重构分布式实时仿真方法 | |
CN105487403A (zh) | 一种基于can的运动控制系统建立及其仿真建模方法 | |
CN115348126A (zh) | 一种网络靶场实体设备接入方法、装置及实现系统 | |
CN101668036A (zh) | 分布式设备的模拟系统和模拟分布式设备处理业务的方法 | |
CN112433826B (zh) | 混合异构虚拟化通信方法及芯片 | |
CN117667781A (zh) | 一种基于AM64x的EtherCAT主站设计与实时性优化方法 | |
CN116401065A (zh) | 一种服务器、异构设备及其数据处理装置 | |
CN113342456A (zh) | 一种连接方法、装置、设备和存储介质 | |
CN108055186B (zh) | 一种主从处理器通信方法及装置 | |
CN110098989A (zh) | 一种基于canfd总线的多路can仿真系统及测试方法 | |
CN107395478A (zh) | 一种用于高速卷烟包装设备的网络控制系统以及网络通信模块 | |
CN115509146B (zh) | 一种飞行维护模拟机分布式通讯资源整合方法 | |
US12034604B2 (en) | MQTT protocol simulation method and simulation device | |
CN111290793A (zh) | 一种most网络初始化的方法 | |
CN113709029B (zh) | 一种基于MODBUS通讯协议及Microblaze平台实现的标准MVB网卡系统 |
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 |