CN103514087B - 一种测量仪器的软件仿真验证系统 - Google Patents
一种测量仪器的软件仿真验证系统 Download PDFInfo
- Publication number
- CN103514087B CN103514087B CN201210199364.8A CN201210199364A CN103514087B CN 103514087 B CN103514087 B CN 103514087B CN 201210199364 A CN201210199364 A CN 201210199364A CN 103514087 B CN103514087 B CN 103514087B
- Authority
- CN
- China
- Prior art keywords
- software
- measuring instrument
- simulation
- unit
- data
- 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
Abstract
本发明为一种测量仪器软件仿真验证系统,该系统包括硬件测量仪器部分和仿真验证软件部分。其中硬件测量仪器典型部件包括电源、本振产生单元、通道选择及控制单元、中频调理单元、A/D转换单元、硬件时序同步及算法单元、DSP处理单元及仪器主控制器单元等;其中仿真软件实现各种测量功能的仿真插件,负责产生各种测量功能的测量数据,通过进程间通信软件技术,将数据传输给测量仪器软件;测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据。仿真插件采用了一致的插件接口,对各种仿真插件实现了统一管理。仿真插件可以采用VC++,LabView,CVI,MatLab等多种工具开发,适应能力强,扩展性能好,可广泛应用于测量仪器软件的功能验证与性能测试。
Description
技术领域
本发明涉及测量仪器领域,尤其涉及一种基于测量仪器的软件仿真验证系统。
背景技术
在测量仪器软件开发过程中,需要进行大量的调试与测试工作,而基于测量结果的验证工作往往依赖于硬件平台,如果硬件平台进展不顺利,软件研制进度也会受到制约。如果所有测量结果的验证都依赖于硬件资源,不但资源占用率高,而且会增加硬件的消耗与损耗。另外由于测量仪器软件要求适应复杂多变的输入,需要在尽可能多的条件下对软件的功能进行验证,而基于硬件的在系统条件测试,无法模拟多种条件下的输入,只能对一些典型情况进行测试,具有一定的局限性。仿真技术具有高可靠性、无破坏性、可多次重复、安全、经济、不受时间和空间的限制等优点,是降低风险和生产成本的有效途径之一,因此在测量仪器软件开发过程中,对构建软件仿真环境有具体而迫切的需求。为了使测量仪器软件在仿真环境下正确运行,需设计与被测软件功能一致的功能仿真软件和性能测试仿真软件。在测量仪器软件开发过程中,功能和性能仿真软件在程序排错、算法验证、软件优化等方面都有很大的作用。
发明内容
本发明的目的在于解决现有技术中对于硬件平台与软件平台开发进度往往不能同步,仪器软件研制进度不仅受到制约,而且不能尽可能彻底地验证软件功能,从而影响进一步的程序排错与优化。为了实现发明目的,本发明提供了一种高效率的测量仪器软件仿真验证系统,所述系统包括:该系统包括硬件测量仪器部分和仿真验证软件部分:其中硬件测量仪器典型部件包括电源、本振产生单元、通道选择及控制单元、中频调理单元、A/D转换单元、硬件时序同步及算法单元、DSP处理单元及仪器主控制器单元等;仿真验证软件用于生成测量仪器仿真测量数据,并根据仪器的不同输入要求,以软件插件的方式产生各种测量功能的测量数据,使用进程间软件通信技术,将测量数据传输给测量仪器软件。测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据,在此基础上实现进一步的计算分析,减少对硬件平台的依赖性,提前验证测量仪器软件功能,加快软件研制进度。
所述仿真验证软件是集成化工具,内嵌软件插件,以满足测量仪器的不同输入要求模拟产生测量仪器的各种测量功能的仿真测量数据。仿真插件采用了一致的插件接口,对各种仿真插件实现了统一管理。并提供友好便捷的用户界面方便设置测量数据参数,方便分析观测仿真测量数据曲线。
所述进程间软件通信技术,具体是指共享内存技术和全局同步事件,实现仿真工具和测量仪器软件之间的测量数据交互。
测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据。
应用本发明验证测量仪器软件功能时,可以大大降低软件调试与测试对硬件的依赖,大大降低仪器占用并节约成本。通过采用软件插件,使得仿真软件成为一个开放的平台,可以用于多种仪器和多种测量功能的仿真验证,大大加快了仪器软件研制进度,保证软件功能完善。通过定义统一的通信接口,并采用进程间交互和数据共享技术,使得仿真软件和测量仪器软件彼此独立,测量仪器软件中扩展仿真功能简单而方便。
虽然在下文中将结合一些示例性实施及使用方法来描述本发明,但作为本领域技术人员应当理解,并不旨在将本发明限制于这些实施例。反之,旨在覆盖包含在所附的权利要求书所定义的本发明的精神与范围内的所有替代品、修正及等效物。
本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。
附图说明
图1是仿真软件交互界面;
图2是仿真软件和测量仪器软件数据交互示意图;
图3是仿真软件可实现测量仪器软件多种中间层数据的仿真示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图对本发明的具体实施方式作进一步的详细描述。应当理解,此处所描述的具体实施方式仅仅用于解释本发明,并不用于限定本发明。
多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface,API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProcess Communication,IPC),进程通信就是指不同进程间进行数据共享和数据交换。使用Win32API进行进程通信方式有多种,主要有:文件映射、共享内存、管道、动态数据交换(DDE)、动态连接库及Sockets等方式。这里论述的测量仪器软件仿真验证方法基于单机环境、大数据块的进程间通信,为了提高通信效率,将精力集中到测量仪器软件的验证工作中,所以选择较为安全、实现相对容易的共享内存技术,实现仿真软件和测量仪器软件间的通信和数据交换。有了该技术的支持,仿真软件与测量仪器软件的具体通信、数据交互实现方式,具体如下说明:
总体上,首先测量仪器软件初始化时,创建一个内存映射文件对象(共享内存),并将该文件映射对象映射到本进程的地址空间,同时创建有名的读、写全局同步事件;仿真软件初始化时,打开由测量仪器软件事先创建的文件映射对象,并映射到仿真软件的地址空间,同时创建与测量仪器软件同名的读、写全局同步事件;接着,选择仿真软件的功能插件产生测量仪器需要的仿真测量数据,并将数据写入共享区,写完之后置位“读”事件通知测量仪器软件读取共享区中的仿真测量数据,读取完毕后会置位“写”事件通知仿真软件将产生的仿真测量数据继续写入共享区,这样仿真软件和测量仪器软件实现了进程间大数据量的同步交换。
下面结合附图进一步说明本发明的具体实施方式。其中硬件测量仪器典型部件包括电源、本振产生单元、通道选择及控制单元、中频调理单元、A/D转换单元、硬件时序同步及算法单元、DSP处理单元及仪器主控制器单元等;该仿真验证软件用于生成测量仪器仿真测量数据,并根据仪器的不同输入要求,以软件插件的方式产生各种测量功能的测量数据,使用进程间软件通信技术,将测量数据传输给测量仪器软件。测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据,在此基础上实现进一步的计算分析,减少对硬件平台的依赖性,提前验证测量仪器软件功能,加快软件研制进度。
首先,测量仪器软件和仿真软件各自初始化共享内存和全局同步事件,下面提供关键代码段,予以详细说明:
一、测量仪器软件关键代码段:
/////1.创建初始化共享内存
//1.1创建一个名字”SHARED_MEMORY_NAME”指定的内存映射文件对象.
//1.2文件映射对象的视图映射到该进程的地址空间,并返回此映射视图的首址.
/////2.创建初始化有名的全局同步读、写事件
//2.1创建初始化有名的全局读事件
//2.2创建初始化有名的全局写事件
从上面的代码段得知,测量仪器软件初始化部分主要完成了共享内存和全局同步事件的初始化设置。共享内存的初始化,首先通过调用系统函数CreateFileMapping()创建一个内存映射文件对象,若创建成功,则继续通过调用系统函数MapViewOfFile()将此文件映射对象的视图映射到该进程的地址空间,同时返回此映射视图的首地址。对于全局同步事件的初始化,则依次调用系统函数CreateEvent()创建有名的全局读事件和全局写事件,若创建成功返回对应的读、写事件句柄。
二、仿真软件关键代码段:
/////1.初始化共享内存
//1.1打开名字”SHARED_MEMORY_NAME”指定的内存映射文件对象.
//1.2文件映射对象的视图映射到该进程的地址空间,并返回此映射视图的首址.
/////2.创建初始化有名的全局同步读、写事件
//2.1创建初始化有名的全局读事件
//2.2创建初始化有名的全局写事件
从上面的代码段得知,仿真软件初始化部分主要完成了共享内存和全局同步事件的初始化设置。共享内存的初始化,首先通过调用系统函数OpenFileMapping()打开测量仪器软件事先创建的同名的内存映射文件对象,若打开成功,则继续通过调用系统函数MapViewOfFile()将此文件映射对象的视图映射到该进程的地址空间,同时返回此映射视图的首地址。对于全局同步事件的初始化,则依次调用系统函数CreateEvent()创建与测量仪器软件创建的同名的全局读事件和全局写事件,这里因为测量仪器软件事先创建完成了读写同步事件,因此就不再重复创建事件,直接返回已经创建好的全局同步读、写事件的句柄。
其次,基于仪器测量软件和仿真软件配套创建初始化完成的共享内存和全局同步事件,根据测量仪器输入要求,选择合适的仿真软件插件,生成测量数据,如图1所示,选择功能插件生成仿真频谱测量数据,该插件界面分为左右两部分,左侧提供窗口用于观测数据,右侧用于设置测量数据
关联参数,用于决定最终生成的频谱数据的带宽、幅度等。这里,该插件可自动产生正弦、方波及三角波等时域信号,可设定噪声系数,对射频信号进行噪声叠加,并提供多种加窗运算方式,通过设定采样信号,FFT变换模拟生成频谱测量数据。这里,因为仿真软件统一设置实现了进程通信功能,并定义了统一的插件接口,因此基于该平台,可自由添加需要的功能插件,完成多种测量功能的仿真验证,例如原始采样仿真、频谱监测仿真、瞬态测量仿真、IQ仿真等。仿真软件运行插件时,首先获取插件的接口,并运行插件接口中的函数,使插件产生仿真数据并监测同步事件,实现与测量仪器软件的挂钩,进入数据交互过程。下面是仿真软件插件接口设计关键代码段:
从上面的代码段得知,插件接口结构中保存了插件的句柄,由此可方便的调用插件初始化函数,完成必要的初始化工作后,启动插件运行函数,进入了插件的线程函数,生成仿真数据,并通过接口保存的共享内存、全局读、写事件指针,与测量软件完成不间断的大数据量交互。当关闭该插件功能或切换其他插件仿真功能时,会直接调用该插件的结束函数,释放关联资源、结束线程。该接口较为通用,将来随着仿真软件的功能扩展可直接基于该接口结构实现扩展和维护。
最后,通过仪器测量软件和仿真软件配套创建初始化的全局同步读、写事件,两者实现交互测量结果数据。如图2所示,仿真软件生成仿真测量数据,写入共享内存后,置位读事件,通知仪器测量软件从共享内存整块读取测量结果数据,完成后,置位写事件通知仿真软件继续生成数据,并写入共享内存,自此循环有序的完成两方软件的数据交互,由此实现了测量数据生成、测量数据采集、测量数据计算、显示刷新整个测量结果数据调试回路的闭合,解决了以往依赖硬件才能进行调试的缺点,大大加快了整机软件研制进度,保证了软件的健壮性。
同时,由附图3可知,仿真软件可实现测量仪器软件多种中间层数据的仿真。目前测量仪器除了配备基本的CPU统一管理控制各种资源、中断和硬件功能单元等,目前随着仪器信号分析功能的不断增强,需要对大量信号原始采样数据进行诸如:FFT变换、瞬时频率解调、瞬时相位解调等复杂运算,单一处理器是不能高效的完成整机硬件控制、高速数据采集、和用户的实时交互及复杂数据运算这一整套工作,为此就需要采用多处理器协同工作的方式,实现任务合理分工。主处理器实现整机硬件控制、高速数据采集、资源管理和多处理器协同,DSP子系统实现大部分信号处理。那么仿真软件就可以根据调试需要仿真输出多种中间层数据,包括:最基本的原始采样数据、一次计算分析数据到N次计算分析数据。实现了提前验证仪器软件功能,例如:整个顶层到硬件底层数据链路的闭合、人机界面刷新/显示/分析计算、顶层菜单参数到底层硬件分解参数的传递路径等重要软件模块功能。这样,为后期验证真正的DSP硬件功能提供了充足的时间周期。
由此可得知,本发明具有如下优点:
1)通过采用插件实现技术,使仿真软件成为一个开放的平台,
可以用于多种仪器和多种测量功能的仿真验证。
2)通过定义统一的通信接口,并采用进程间交互和数据共享技术,使得仿真软件和测量仪器软件彼此独立,测量仪器软件中扩展仿真功能简单而方便。
3)仿真软件可根据测量仪器输入要求,仿真生成多种中间层计算分析数据,灵活方便地适应各种条件的仪器功能验证。
4)使用软件仿真技术,可以大大降低软件调试与测试对硬件的依赖,大大降低仪器占用并节约成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种测量仪器软件仿真验证系统,其特征在于:该系统包括硬件测量仪器部分和仿真验证软件部分,其中硬件测量仪器典型部件包括电源、本振产生单元、通道选择及控制单元、中频调理单元、A/D转换单元、硬件时序同步及算法单元、DSP处理单元及仪器主控制器单元等;仿真验证软件用于生成测量仪器仿真测量数据,并根据仪器的不同输入要求,以软件插件的方式产生各种测量功能的测量数据,使用进程间软件通信技术,将测量数据传输给测量仪器软件;测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据,在此基础上实现进一步的计算分析,减少对硬件平台的依赖性,提前验证测量仪器软件功能,加快软件研制进度;
首先测量仪器软件初始化时,创建一个内存映射文件对象,并将该文件映射对象映射到本进程的地址空间,同时创建有名的读、写全局同步事件;仿真软件初始化时,打开由测量仪器软件事先创建的文件映射对象,并映射到仿真软件的地址空间,同时创建与测量仪器软件同名的读、写全局同步事件;接着,选择仿真软件的功能插件产生测量仪器需要的仿真测量数据,并将数据写入共享区,写完之后置位“读”事件通知测量仪器软件读取共享区中的仿真测量数据,读取完毕后会置位“写”事件通知仿真软件将产生的仿真测量数据继续写入共享区,这样仿真软件和测量仪器软件实现了进程间大数据量的同步交换。
2.根据权利要求1的测量仪器软件仿真验证系统,其中所述的仿真验证软件是集成化工具,内嵌软件插件,以满足测量仪器的不同输入要求模拟产生测量仪器的各种测量功能的仿真测量数据;仿真插件采用了一致的插件接口,对各种仿真插件实现了统一管理;并提供友好便捷的用户界面方便设置测量数据参数,方便分析观测仿真测量数据曲线。
3.根据权利要求1的测量仪器软件仿真验证系统,其中所述的仿真验证软件提供了插件接口,统一管理实现各种插件功能,该插件接口便于扩展以满足不同的插件功能的需求。
4.根据权利要求1的测量仪器软件仿真验证系统,其中所述的进程间软件通信技术,具体是指共享内存技术和全局同步事件,实现仿真工具和测量仪器软件之间的测量数据交互。
5.根据权利要求4的测量仪器软件仿真验证系统,其中所述的共享内存技术和全局同步事件均是命名的内存映射文件对象和命名的读写同步事件。
6.根据权利要求1的测量仪器软件仿真验证系统,测量仪器软件中实现仿真扩展接口,负责与仿真软件同步并接收仿真数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210199364.8A CN103514087B (zh) | 2012-06-18 | 2012-06-18 | 一种测量仪器的软件仿真验证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210199364.8A CN103514087B (zh) | 2012-06-18 | 2012-06-18 | 一种测量仪器的软件仿真验证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514087A CN103514087A (zh) | 2014-01-15 |
CN103514087B true CN103514087B (zh) | 2016-09-28 |
Family
ID=49896845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210199364.8A Active CN103514087B (zh) | 2012-06-18 | 2012-06-18 | 一种测量仪器的软件仿真验证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514087B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776276B (zh) * | 2016-11-16 | 2019-11-29 | 北京广利核系统工程有限公司 | 一种核级仪控系统传递函数动态特性测试方法 |
CN107220133A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据交互方法、装置及系统 |
CN111240960A (zh) * | 2019-12-30 | 2020-06-05 | 杭州海兴电力科技股份有限公司 | 一种基于gtk的虚拟电表软件调试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847098A (zh) * | 2010-05-28 | 2010-09-29 | 华中科技大学 | 可重构虚拟仪器构件阵列 |
CN102256535A (zh) * | 2008-12-17 | 2011-11-23 | 博士伦公司 | 用于执行远程校准验证的方法和装置 |
CN102467348A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 从测量仪器接收数据的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4965634B2 (ja) * | 2009-12-07 | 2012-07-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション・システムの動作制御方法、プログラム及びシステム |
JP5153904B2 (ja) * | 2010-09-22 | 2013-02-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの動作推測方法及びプログラム |
-
2012
- 2012-06-18 CN CN201210199364.8A patent/CN103514087B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102256535A (zh) * | 2008-12-17 | 2011-11-23 | 博士伦公司 | 用于执行远程校准验证的方法和装置 |
CN101847098A (zh) * | 2010-05-28 | 2010-09-29 | 华中科技大学 | 可重构虚拟仪器构件阵列 |
CN102467348A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 从测量仪器接收数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103514087A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302950B (zh) | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 | |
Tan et al. | A case for FAME: FPGA architecture model execution | |
Lockhart et al. | PyMTL: A unified framework for vertically integrated computer architecture research | |
CN104461810B (zh) | 一种提高嵌入式处理器功能验证效率的方法 | |
CN108051786A (zh) | 一种宽带目标模拟器验证平台及验证方法 | |
Bortolotti et al. | Virtualsoc: A full-system simulation environment for massively parallel heterogeneous system-on-chip | |
Leupers et al. | Virtual platforms: Breaking new grounds | |
CN105930242B (zh) | 一种支持精确访存检测的多核处理器随机验证方法及装置 | |
CN103514087B (zh) | 一种测量仪器的软件仿真验证系统 | |
CN109858111A (zh) | Rlv虚拟仿真平台设计及实现方法 | |
CN105893202A (zh) | 一种基于uvm的存储控制器功能测试方法及系统 | |
CN109194491A (zh) | 一种密码评测试验系统及密码评测试验方法 | |
CN109711071A (zh) | 一种服务器SoC软硬件协同仿真加速方法及系统 | |
CN104598373B (zh) | 一种多技术融合的嵌入式软件测试方法 | |
CN109521755A (zh) | 一种仿真系统、旋变测试系统和旋变测试方法 | |
EP3292467A2 (en) | Efficient waveform generation for emulation | |
CN101013394A (zh) | 一种采用硬件逻辑对ic设计进行验证的方法 | |
CN102073480B (zh) | 基于时分复用实现多核处理器内核模拟的方法 | |
CN103942092A (zh) | 一种支持LabView图形化编程的HLA协同仿真方法 | |
US10331825B2 (en) | Waveform based reconstruction for emulation | |
MX2011001796A (es) | Ejecucion de procesador simulado utilizando supeditar ramificacion. | |
CN103677184B (zh) | 面向虚拟机的cpu温度预测方法及装置 | |
CN103955424B (zh) | 一种虚拟化嵌入式二进制软件缺陷检测系统 | |
CN202041228U (zh) | 一种基于热工参数场监测的建筑群能耗监测装置 | |
Hoisie et al. | Report on the ASCR workshop on modeling and simulation of exascale systems and applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |