在WSN中,单个传感器节点有两个很突出的特点。一个是它的并发性很密集;另一个是传感器节点模块化程度很高。这两个特点使得WSN仿真需要解决可扩展性与仿真效率、分布与异步特性、动态性、综合仿真平台等问题。
WSN常用的仿真工具有NS-2、OPNET、OMNET++、TinyOS,本书简要介绍它们各自的性能和特点。
1.NS-2
NS-2是一种可扩展、以配置和可编程的时间驱动的仿真工具,它是由REAL仿真器发展而来。在NS-2的设计中,使用C++和OTCL两种程序设计语言,C++是一种相对运行速度较快但是转换比较慢的语言,所以C++语言被用来实现网络协议,编写NS底层的仿真引擎;OTCL是运行速度较慢,但可以快速转换的脚本语言,正好和C++互补,所以OTCL被用来配置仿真中各种参数,建立仿真的整体结构,OTCL的脚本通过调用引擎中各类属性、方法,定义网络的拓扑,配置源节点、目的节点建立链接,产生所有事件的时间表,运行并跟踪仿真结果,还可以对结果进行相应的统计处理或制图。NS-2可以提供有线网络、无线网络中链路层及其上层精确到数据报的一系列行为仿真。NS-2中的许多协议都和真实代码十分接近,其真实性和可靠性是非常高的。
2.OPNET
OPNET是在MIT研究成果的基础上由MIL3公司开发的网络仿真软件产品。OPNET的主要特点包括以下几个方面:采用面向对象的技术,对象的属性可以任意配置,每一对象属于相应行为和功能的类,可以通过定义新的类来满足不同的系统要求;OPNET提供了各种通信网络和信息系统的处理构件和模块;OPNET采用图形化界面建模,为使用者提供三层(网络层、节点层、进程层)建模机制来描述现实的系统;OPNET在过程层次中使用有限状态机来对其他协议和过程进行建模,用户模型及OPNET内置模型将会自动生成C语言实现可执行的高效、高离散事件的模拟流程;OPNET内建了很多性能分析器,它会自动采集模拟过程的结果数据;OPNET几乎预定义了所有常用的业务模型,如均匀分布、泊松分布和欧拉分布等。(www.daowen.com)
3.OMNET++
OMNET++是面向对象的离散事件模拟工具,为基于进程式和事件驱动两种方式的仿真提供了支持。OMNET++采用混合式的建模方式,同时使用了OMNET++特有的网络描述(NetworkDescription,NED)语言和C++进行建模。OMNET++主要由六个部分组成:仿真内核库、网络描述语言的编译器、图形化的网络编译器、仿真程序的图形化用户接口、仿真程序的命令行用户接口和图形化的向量输出工具。OMNET++的主要模型拓扑描述语言NED,采用它可以完成一个网络模型的描述。网络描述包括下列组件:输入申明、信道定义、系统模块定义、简单模块和复合模块定义。使用NED语言描述网络,产生.NED文件,该文件不能直接被C++编译器使用,需要首先采用OMNET++提供的编译工具NEDC将.NED文件编译成.cpp文件。最后使用C++编译器将这些文件与用户和自己设计的简单模块程序连接成可执行程序。
4.TinyOS
TinyOS是专门针对传感器研发出的操作系统,TinyOS程序采用的是模块化设计,所以它的程序核心往往都很小,能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器上并去执行相应的管理工作等。TinyOS的特点主要体现在六个方面:组件化编程(Componented-Based Architecture),包括硬件抽象组件、合成组件、高层次的软件组件,硬件抽象组件将物理硬件映射到TinyOS组件模型,合成硬件组件模拟高级硬件的行为,高层次软件模块完成控制、路由以及数据传输等;事件驱动模式(Event-Driven Architecture),分为硬件驱动和软件事件驱动;任务和事件并发模式(Tasks And Events Concurrency Model),任务用在对于时间要求不是很高的应用中,任务之间是平等的,即在执行时是按顺序先后来的,而不能相互抢占,TinyOS对任务是按简单的FIFO队列进行处理的。事件用在对于时间的要求很严格的应用中,而且它可以占先优于任务和其他事件执行;分段执行(Split-Phase Operations);轻量级线程(Lightweight Thread);主动通信消息(ActiveMessage)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。