本发明专利技术实施例公开了一种实代码仿真的方法和装置,其中方法的实现包括:接收节点发送的注册相关信息;将所述注册相关信息中携带的事件信息仿真为仿真事件,将仿真事件插入仿真事件队列;依据所述注册相关信息携带的注册信息,仿真模拟硬件对节点需要实现的功能进行注册;在所述模拟硬件上执行所述仿真事件队列中的仿真事件。通过节点注册、仿真得到仿真事件和模拟硬件,在模拟硬件上执行仿真事件实现实代码仿真,该架构下的仿真方法可以应用到通用的仿真平台,实现较具有一般性的实代码仿真。
【技术实现步骤摘要】
本专利技术涉及仿真
,特别涉及一种实代码仿真的方法和装置。
技术介绍
“实代码”的仿真模式在算法和实现之间起到桥梁作用,采用实代码的仿真技术可以使从仿真到实现不需要进行二次编码,而是平滑过渡;即仿真时测试及验证通过的代码能够直接在硬件上运行;解决了传统仿真模式中,协议等单独层次仿真通过而却不能在实体硬件上实现的弊端,具有深远意义。TinyOS 节点仿真器(TinyOS mote simulator, T0SSIM)是对采用 Tiny 操作系统(Operating System, OS)的节点(Motes)进行比特(bit)级的一种仿真工具,该工具建立了 TinyOS的底层部分硬件的软件抽象,并增加仿真必须的事件模型和外部通信机制。 TOSSIM将TinyOS环境下的NesC (—种代码语言)代码直接编译为可在个人电脑(Personal Computer,PC)环境下运行的可执行文件,提供了不用将程序下载到实体节点上就可以对程序进行测试的一个平台。T0SSIM还提供了用于显示仿真情况的用户界面(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直到仿真结本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:马奎,单卫龙,
申请(专利权)人:无锡物联网产业研究院,感知物联网集团无锡有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。