CN102541708A - 一种实代码仿真的方法和装置 - Google Patents

一种实代码仿真的方法和装置 Download PDF

Info

Publication number
CN102541708A
CN102541708A CN2010106017544A CN201010601754A CN102541708A CN 102541708 A CN102541708 A CN 102541708A CN 2010106017544 A CN2010106017544 A CN 2010106017544A CN 201010601754 A CN201010601754 A CN 201010601754A CN 102541708 A CN102541708 A CN 102541708A
Authority
CN
China
Prior art keywords
simulated events
simulation
emulation
hardware
information
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.)
Pending
Application number
CN2010106017544A
Other languages
English (en)
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.)
Wuxi Guoke Weina Sensing Network Technology Co ltd
Original Assignee
SENSING NET GROUP (WUXI) CO Ltd
Wuxi Sensing Net Industrialization Research Institute
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 SENSING NET GROUP (WUXI) CO Ltd, Wuxi Sensing Net Industrialization Research Institute filed Critical SENSING NET GROUP (WUXI) CO Ltd
Priority to CN2010106017544A priority Critical patent/CN102541708A/zh
Publication of CN102541708A publication Critical patent/CN102541708A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种实代码仿真的方法和装置,其中方法的实现包括:接收节点发送的注册相关信息;将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;依据所述注册相关信息携带的注册信息,仿真模拟硬件对节点需要实现的功能进行注册;在所述模拟硬件上执行所述仿真事件队列中的仿真事件。通过节点注册、仿真得到仿真事件和模拟硬件,在模拟硬件上执行仿真事件实现实代码仿真,该架构下的仿真方法可以应用到通用的仿真平台,实现较具有一般性的实代码仿真。

Description

一种实代码仿真的方法和装置
技术领域
本发明涉及仿真技术领域,特别涉及一种实代码仿真的方法和装置。
背景技术
“实代码”的仿真模式在算法和实现之间起到桥梁作用,采用实代码的仿真技术可以使从仿真到实现不需要进行二次编码,而是平滑过渡;即:仿真时测试及验证通过的代码能够直接在硬件上运行;解决了传统仿真模式中,协议等单独层次仿真通过而却不能在实体硬件上实现的弊端,具有深远意义。
TinyOS节点仿真器(TinyOS mote simulator,TOSSIM)是对采用Tiny操作系统(Operating System,OS)的节点(Motes)进行比特(bit)级的一种仿真工具,该工具建立了TinyOS的底层部分硬件的软件抽象,并增加仿真必须的事件模型和外部通信机制。TOSSIM将TinyOS环境下的NesC(一种代码语言)代码直接编译为可在个人电脑(Personal Computer,PC)环境下运行的可执行文件,提供了不用将程序下载到实体节点上就可以对程序进行测试的一个平台。TOSSIM还提供了用于显示仿真情况的用户界面(TinyViz)。本申请文件中的节点均指软件意义上的需要测试验证等的对象,例如编写的协议、功能软件等,对此本发明实施例的说明书不再一一说明。
TOSSIM采用的是特定操作系统TinyOS,TinyOS系统中仿真的节点使用的是特定代码语言(NesC),因此该实代码仿真的方法不具一般性。
发明内容
本发明实施例要解决的技术问题是提供一种实代码仿真的方法和装置,实现较具有一般性的实代码仿真。
一种实代码仿真的方法,包括:
接收节点发送的注册相关信息;
将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
依据所述注册相关信息携带的注册信息,仿真模拟硬件对节点需要实现的功能进行注册;
在所述模拟硬件上执行所述仿真事件队列中的仿真事件。
一种实代码仿真的装置,包括:
信息接收单元,用于接收节点发送的注册相关信息;
事件生成单元,用于将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
硬件模拟单元,用于依据所述注册相关信息携带的注册信息,模拟硬件对节点需要实现的功能进行注册;
事件控制单元,用于在所述模拟硬件上执行所述仿真事件队列中的仿真事件。
上述技术方案具有如下有益效果:通过节点注册、仿真得到仿真事件和模拟硬件,在模拟硬件上执行仿真事件实现实代码仿真,该架构下的仿真方法可以应用到通用的仿真平台,实现较具有一般性的实代码仿真。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例系统结构示意图;
图3为本发明实施例装置结构示意图;
图4为本发明实施例装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种实代码仿真的方法,如图1所示,可同时参考图2,包括:
101:接收节点发送的注册相关信息;
可选地,上述注册相关信息为:中断信号量信息;上述接收节点发送的注册相关信息包括:接收节点通过信号量同步方式发送的中断信号量信息。中断信号量信息可以包括:中断类型、中断类型的中断参数;上述中断类型包括:定时中断,射频中断,时钟中断的至少一项。可以理解的中断类型很多上述三种中断类型不是穷举,不应理解为对本发明实施例的限定。
在本步骤之前,可以用开源基于C++的面向对象离散仿真软件(OMNeT++)仿真内核仿真节点的硬件的相关组件,其中包括处理中断的组件和系统启动入口(MAIN)组件等。其维护的仿真事件队列用来模拟中断产生。此层的功能在于模拟节点硬件。如图2所示,节点201的软件资源包括OS层、硬件抽象层(Hardware Access Layer,HAL)、协议栈、应用(APPLICATION)等底层支撑软件。上述节点201包含封装为动态链接库的等底层支撑软件,并以多线程方式加载到基于C++的面向对象离散仿真软件。上述底层支撑软件可以全部可以用C语言代码编写;然后可以将其封装为DLL,以多线程的方式加载到OMNeT++中。需要说明的是,图2中显示有节点1~3实际上节点的个数是根据实际的需求来确定的,可能有几百个也可能只有几个,图2的节点数不应理解为对本发明实施例的限定。
本步骤中,系统开始运行时,由节点201的软件部分采用信号量同步方式通知到仿真器层202,以注册中断类型(定时中断,射频中断,时钟中断),中断参数(定时中断的定时长度,射频中断的数据包、目的节点信息,时钟中断的频率)等详细的事件信息。仿真器层可以与PC机一并处于实体硬件203的下层。
102:将上述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
上述102中,上述将注册相关信息中携带的事件信息仿真为仿真事件包括:将中断类型和中断类型的中断参数对应的中断事件仿真为仿真事件。
103:依据上述注册相关信息携带的注册信息,仿真模拟硬件对节点需要实现的功能进行注册;
上述102和103可以:通过基于C++的面向对象离散仿真软件,将事件信息仿真为仿真事件,仿真模拟硬件对节点需要实现的功能进行注册。
本步骤具体可以是:OMNeT++仿真器接收到中断信号量信息后,OMNeT++将中断模拟成仿真事件插入队列中,然后根据节点201注册的中断详细信息做出相应处理,以模拟硬件的方式实现软件部分注册需要实现的功能。
104:在上述模拟硬件上执行上述仿真事件队列中的仿真事件。
在104中执行仿真事件过程中,通过HAL层、OS层与仿真器层202(OMNeT++仿真得到的模拟硬件层)进行信息和操作等的交互,实现多个节点201系统交互(节点与节点间的消息传递)的源代码调试。可以通过OMNeT++可视化界面监控消息的传递状态。OMNeT++在仿真器层202可模拟实现节点201间信道特征,探索模拟各种复杂物理环境,从而得到仿真的结果用以分析协议的性能。由此验证通过的协议代码可直接在硬件上运行。
在OMNeT++进行具体功能行为的实现:譬如定时中断由OMNeT++根据注册的参数信息,通过间隔设定时间发送消息(OMNeT++提供接口)来实现;射频中断由OMNeT++根据注册的参数信息,将数据包经过模拟信道传输后,发送到指定节点201来实现;时钟中断根据注册的时钟中断频率,按指定的频率发送消息来实现。
模拟行为的完成结果就是OMNeT++经过设定时间后,将接收到完成消息的通知。OMNeT++根据消息的类型,判断是定时中断还是射频中断完成了,判定后将会以信号量同步的方式通知反馈到节点201软件部分:注册的中断已经完成!节点201软件部分再根据此消息,调用中断处理子程序,节点201的中断处理子程序又可以调用命令或者触发其他事件,再向OMNeT++进行注册,重复上述101至104直到仿真结束。
举例说明:处理定时中断信息时,间隔特定时间后OMNeT++将收到自发的消息,然后OMNeT++判别此消息为定时中断完成消息,将会同样以信号量同步的方式,通知到节点201的软件部分:注册的定时中断已经完成!节点201的软件部分再根据此消息,调用定时中断的中断处理子程序,节点201的中断处理子程序又可以调用命令或者触发其他事件,再向OMNeT++进行注册,重复上述101至104直到仿真结束。
举例说明:模拟射频中断的行为结果也是OMNeT++经过一定传输时间后,接收到传输完成消息通知。处理射频中断时,根据节点201的软件部分注册的相关信息:如数据包的内容,目的节点信息等。OMNeT++经过数据包在信道中的传输时间后,接收到数据包发送完成的消息,OMNeT++判别此消息为射频中断完成(数据包发送完成)消息,将会同样以信号量同步的方式,通知到节点201的软件部分:注册的射频中断已经完成,数据包发送完毕!节点201的软件部分再根据此消息,调用射频中断的中断处理子程序,节点201的中断处理子程序又可以调用命令或者触发其他事件,再向OMNeT++进行注册,重复上述101至104直到仿真结束。
进一步地,在执行上述仿真事件队列中的仿真事件过程中还可以:在模拟硬件中模拟物理环境和/或信道特征;执行上述仿真事件队列中的仿真事件之后还可以:显示模拟硬件执行仿真事件的结果。
上述实施例,通过节点注册、仿真得到仿真事件和模拟硬件,在模拟硬件上执行仿真事件实现实代码仿真,该架构下的仿真方法可以应用到通用的仿真平台,实现较具有一般性的实代码仿真。
上述实施例,可以针对目前普遍采用的嵌入式操作系统和C语言开发调试,提供了一种更加通用的网络仿真平台框架。在体验比特级别仿真的同时,将抽象的消息数据包以可视化界面显示,实现算法与实现的平滑过渡。验证通过的软件代码可以直接在硬件上运行。本发明实施例的实代码仿真技术可以应用在测试需求下的在仿真技术的各个领域,尤其可以应用在无线传感网中用于传感网协议栈代码的测试;实现无线传感网中传感网协议栈代码的测试,使验证通过的软件代码可以直接在硬件上运行,提高代码编写效率。
一种实代码仿真的装置,如图3所示,包括:
信息接收单元301,用于接收节点发送的注册相关信息;
可选地,上述注册相关信息为:中断信号量信息;上述信息接收单元301,用于接收节点通过信号量同步方式发送的中断信号量信息。
事件生成单元302,用于将上述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
硬件模拟单元303,用于依据上述注册相关信息携带的注册信息,模拟硬件对节点需要实现的功能进行注册;
事件控制单元304,用于在上述模拟硬件上执行上述仿真事件队列中的仿真事件。
更具体地,上述事件生成单元302,用于通过基于C++的面向对象离散仿真软件,将事件信息仿真为仿真事件;硬件模拟单元303,用于通过基于C++的面向对象离散仿真软件,仿真模拟硬件对节点需要实现的功能进行注册。
如图4所示,上述装置还包括:
特征模拟单元401,用于在执行上述仿真事件队列中的仿真事件过程中,在模拟硬件中模拟物理环境和/或信道特征;
显示单元402,用于执行上述仿真事件队列中的仿真事件之后,显示模拟硬件执行仿真事件的结果。
上述实施例,通过节点注册、仿真得到仿真事件和模拟硬件,在模拟硬件上执行仿真事件实现实代码仿真,该架构下的仿真方法可以应用到通用的仿真平台,实现较具有一般性的实代码仿真。
上述实施例,可以针对目前普遍采用的嵌入式操作系统和C语言开发调试,提供了一种更加通用的网络仿真平台框架。在体验比特级别仿真的同时,将抽象的消息数据包以可视化界面显示,实现算法与实现的平滑过渡。验证通过的软件代码可以直接在硬件上运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种实代码仿真的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种实代码仿真的方法,其特征在于,包括:
接收节点发送的注册相关信息;
将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
依据所述注册相关信息携带的注册信息,仿真模拟硬件对节点需要实现的功能进行注册;
在所述模拟硬件上执行所述仿真事件队列中的仿真事件。
2.根据权利要求1所述方法,其特征在于,所述注册相关信息为:中断信号量信息;所述接收节点发送的注册相关信息包括:
接收节点通过信号量同步方式发送的中断信号量信息。
3.根据权利要求2所述方法,其特征在于,所述中断信号量信息包括:中断类型、中断类型的中断参数;
所述将注册相关信息中携带的事件信息仿真为仿真事件包括:
将中断类型和中断类型的中断参数对应的中断事件仿真为仿真事件。
4.根据权利要求1至3任意一项所述方法,其特征在于,在执行所述仿真事件队列中的仿真事件过程中还包括:
在模拟硬件中模拟物理环境和/或信道特征;执行所述仿真事件队列中的仿真事件之后还包括:
显示模拟硬件执行仿真事件的结果。
5.根据权利要求1至3任意一项所述方法,其特征在于,通过基于C++的面向对象离散仿真软件,将事件信息仿真为仿真事件,仿真模拟硬件对节点需要实现的功能进行注册。
6.根据权利要求3所述方法,其特征在于,所述节点包含封装为动态链接库的等底层支撑软件,并以多线程方式加载到基于C++的面向对象离散仿真软件。
7.一种实代码仿真的装置,其特征在于,包括:
信息接收单元,用于接收节点发送的注册相关信息;
事件生成单元,用于将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;
硬件模拟单元,用于依据所述注册相关信息携带的注册信息,模拟硬件对节点需要实现的功能进行注册;
事件控制单元,用于在所述模拟硬件上执行所述仿真事件队列中的仿真事件。
8.根据权利要求7所述装置,其特征在于,所述注册相关信息为:中断信号量信息;
所述信息接收单元,用于接收节点通过信号量同步方式发送的中断信号量信息。
9.根据权利要求7所述装置,其特征在于,还包括:
特征模拟单元,用于在执行所述仿真事件队列中的仿真事件过程中,在模拟硬件中模拟物理环境和/或信道特征;
显示单元,用于执行所述仿真事件队列中的仿真事件之后,显示模拟硬件执行仿真事件的结果。
10.根据权利要求7至9任意一项所述装置,其特征在于,
所述事件生成单元,用于通过基于C++的面向对象离散仿真软件,将事件信息仿真为仿真事件;
硬件模拟单元,用于通过基于C++的面向对象离散仿真软件,仿真模拟硬件对节点需要实现的功能进行注册。
CN2010106017544A 2010-12-22 2010-12-22 一种实代码仿真的方法和装置 Pending CN102541708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106017544A CN102541708A (zh) 2010-12-22 2010-12-22 一种实代码仿真的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106017544A CN102541708A (zh) 2010-12-22 2010-12-22 一种实代码仿真的方法和装置

Publications (1)

Publication Number Publication Date
CN102541708A true CN102541708A (zh) 2012-07-04

Family

ID=46348656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106017544A Pending CN102541708A (zh) 2010-12-22 2010-12-22 一种实代码仿真的方法和装置

Country Status (1)

Country Link
CN (1) CN102541708A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124700A (zh) * 2018-10-31 2020-05-08 百度在线网络技术(北京)有限公司 仿真软件模型的接入方法和装置
CN112614403A (zh) * 2020-12-25 2021-04-06 深圳市小喵科技有限公司 硬件仿真方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316299A (zh) * 2007-12-30 2008-12-03 中国移动通信集团四川有限公司 基于应用仿真的呼叫中心监控系统
CN101477474A (zh) * 2009-01-04 2009-07-08 中国科学院计算技术研究所 一种联合模拟系统及其工作方法
CN101799767A (zh) * 2010-03-05 2010-08-11 中国人民解放军国防科学技术大学 一种利用模拟器多种运行模式反复切换进行并行模拟的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316299A (zh) * 2007-12-30 2008-12-03 中国移动通信集团四川有限公司 基于应用仿真的呼叫中心监控系统
CN101477474A (zh) * 2009-01-04 2009-07-08 中国科学院计算技术研究所 一种联合模拟系统及其工作方法
CN101799767A (zh) * 2010-03-05 2010-08-11 中国人民解放军国防科学技术大学 一种利用模拟器多种运行模式反复切换进行并行模拟的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《微型机与应用》 20101031 单卫龙等 基于OMNeT++的"实代码"仿真模式研究 第11-12页及图1-8 1-10 第29卷, 第20期 *
单卫龙等: "基于OMNeT++的"实代码"仿真模式研究", 《微型机与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124700A (zh) * 2018-10-31 2020-05-08 百度在线网络技术(北京)有限公司 仿真软件模型的接入方法和装置
CN112614403A (zh) * 2020-12-25 2021-04-06 深圳市小喵科技有限公司 硬件仿真方法及装置

Similar Documents

Publication Publication Date Title
Yang et al. Clairvoyant: a comprehensive source-level debugger for wireless sensor networks
Levis et al. Tossim: A simulator for tinyos networks
Polley et al. ATEMU: a fine-grained sensor network simulator
US11132761B2 (en) Methods and apparatus to emulate graphics processing unit instructions
CN104268074B (zh) 一种基于dcs系统应用软件在线调试方法
US20060282247A1 (en) Combined hardware and network simulator for testing embedded wireless communication device software and methods
CN109800005B (zh) 一种客户端热更新方法及装置
CN102521444A (zh) 软硬件协同仿真/验证方法及装置
CN106126423A (zh) 游戏应用程序的测试方法、装置及系统
AU2019246793A1 (en) Generalized virtualization platform for systems using hardware abstraction software layers
US9690681B1 (en) Method and system for automatically generating executable system-level tests
CN102819450A (zh) 一种在移动终端中模拟硬件设备的模拟器及其实现方法
CN103942092A (zh) 一种支持LabView图形化编程的HLA协同仿真方法
Posadas et al. POSIX modeling in SystemC
Riliskis et al. Symphony: Simulation, emulation, and virtualization framework for accurate WSN experimentation
CN102541708A (zh) 一种实代码仿真的方法和装置
CN108228965B (zh) 一种存储单元的仿真验证方法、装置和设备
US20030045281A1 (en) Mobile transceiver state machine testing device
Ericsson et al. Challenges from research to deployment of industrial distributed control systems
WO2006011308A1 (ja) シーケンサシミュレーション装置およびシーケンサシミュレーションプログラム
CN106503546A (zh) 一种安卓应用程序的检测筛选方法
Förster et al. Flexor: User friendly wireless sensor network development and deployment
US20110161716A1 (en) Systems, methods, and apparatuses for providing access to real time information
CN102595188B (zh) 智能电视的测试方法
Serror et al. Code-transparent discrete event simulation for time-accurate wireless prototyping

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: SENSINGNET GROUP CO., LTD.

Effective date: 20130107

Owner name: WUXI UXSENS MICRONANO SENSOR NETWORK TECHNOLOGY CO

Free format text: FORMER OWNER: WUXI SENSING NET INDUSTRIALIZATION RESEARCH INSTITUTE

Effective date: 20130107

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 214135 Jiangsu Province, Wuxi City District Road No. 18 Wuxi Zhenze National Software Park Gemini A

Applicant after: Wuxi Research Institute of Internet of Things

Applicant after: SENSINGNET GROUP Co.,Ltd.

Address before: 214135 Jiangsu Province, Wuxi City District Road No. 18 Wuxi Zhenze National Software Park Gemini A

Applicant before: Wuxi Research Institute of Internet of Things

Applicant before: Sensing Net Group (Wuxi) Co.,Ltd.

TA01 Transfer of patent application right

Effective date of registration: 20130107

Address after: 214135 Jiangsu Province, Wuxi City District Zhenze Wuxi Road No. 18 (National) Gemini A Software Park Building 9 layer

Applicant after: WUXI GUOKE WEINA SENSING NETWORK TECHNOLOGY Co.,Ltd.

Address before: 214135 Jiangsu Province, Wuxi City District Road No. 18 Wuxi Zhenze National Software Park Gemini A

Applicant before: Wuxi Research Institute of Internet of Things

Applicant before: SENSINGNET GROUP Co.,Ltd.

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 214135 Jiangsu Province, Wuxi City District Zhenze Wuxi Road No. 18 (National) Gemini A Software Park Building 9 layer

Applicant after: WSN TECH LTD.

Address before: 214135 Jiangsu Province, Wuxi City District Zhenze Wuxi Road No. 18 (National) Gemini A Software Park Building 9 layer

Applicant before: WUXI GUOKE WEINA SENSING NETWORK TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: WUXI UXSENS MICRONANO SENSOR NETWORK TECHNOLOGY CO., LTD. TO: PERCEPTIVE TECHNOLOGY WUXI CO., LTD.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120704