新闻中心

EEPW首页>手机与无线通信> 基于无线传感器网络仿真平台的研究

基于无线传感器网络仿真平台的研究

——
作者: 时间:2007-07-06 来源: 收藏

一、引言

网络(WSN)日新月异,各种网络方案和协议日趋复杂,网络规模日趋庞大,对网络研究人员而言,掌握网络仿真的重要性是不言而喻的。WSN仿真能够在一个可控制的环境里研究WSN应用,包括操作系统和网络协议栈,能够仿真数量众多的节点,能够观察由不可预测的干扰和噪声引起的难以琢磨的节点间的相互作用,获取节点间详细的细节,从而提高节点投放后的网络成功率,减少投放后的网络维护工作。目前网络使用的仿真工具主要有NS2、TinyOS、OPNET、OMNET++等等。其中TinyOS是专门针对网络的特点而研究开发的。

二、传感器网络仿真简介

在传感器网络中,单个传感器节点有两个很突出的特点。一个特点是它的并发性很密集;另一个特点是传感器节点模块化程度很高.上述这些特点使得无线传感器网络仿真需要解决可扩展性与仿真效率、分布与异步特性、动态性、综合仿真平台等等问题。

三、无线传感器网络常用仿真工具

无线传感器网络常用仿真工具有NS2、OPNET、OMNET++、TinyOS,下面我们简要介绍它们各自的性能和特点。

3.1 NS2
NS是一种可扩展、以配置和可编程的时间驱动的仿真工具,它是由REAL仿真器发展而来.在NS的设计中,使用C++和OTCL两种程序设计语言, C++是一种相对运行速度较快但是转换比较慢的语言,所以C++语言被用来实现网络协议, 编写NS底层的仿真引擎; OTCL是运行速度较慢,但可以快速转换的脚本语言,正好和C++互补,所以OTCL语言被用来配置仿真中各种参数,建立仿真的整体结构, OTCL的脚本通过调用引擎中各类属性、方法,定义网络的拓扑,配置源节点、目的节点建立链接,产生所有事件的时间表,运行并跟踪仿真结果,还可以对结果进行相应的统计处理或制图.NS可以提供有线网络、无线网络中链路层及其上层精确到数据包的一系列行为仿真。NS中的许多协议都和真实代码十分接近,其真实性和可靠性是非常高的。

3.2 OPNET
OPNET是在MIT研究成果的基础上由MIL3公司开发的网络仿真软件产品。 OPNET的主要特点包括以下几个方面:(1)采用面向对象的技术,对象的属性可以任意配置,每一对象属于相应行为和功能的类,可以通过定义新的类来满足不同的系统要求; (2)OPNET提供了各种通信网络和信息系统的处理构件和模块;(3) OPNET采用图形化界面建模,为使用者提供三层(网络层、节点层、进程层)建模机制来描述现实的系统;(4) OPNET在过程层次中使用有限状态机来对其它协议和过程进行建模,用户模型及OPNET内置模型将会自动生成C语言实现可执行的高效、高离散事件的模拟流程;(5) OPNET内建了很多性能分析器,它会自动采集模拟过程的结果数据;(6)OPNET几乎预定义了所有常用的业务模型,如均匀分布、泊松分布、欧兰分等。

3.3 OMNET++
OMNET++是面向对象的离散事件模拟工具,为基于进程式和事件驱动两种方式的仿真提供了支持。 OMNET++采用混合式的建模方式,同时使用了OMNET++特有的ned(Network Discription,网络描述)语言和C++进行建模。OMNET++主要由六个部分组成:仿真内核库、网络描述语言的编译器、图形化的网络编译器、仿真程序的图形化用户接口、仿真程序的命令行用户接口和图形化的向量输出工具。OMNET++的主要模型拓扑描述语言NED,采用它可以完成一个网络模型的描述。 网络描述包括下列组件:输入申明、信道定义、系统模块定义、简单模块和复合模块定义。使用NED描述网络,产生.NED文件,该文件不能直接被C++编译器使用,需要首先采用OMNET++提供的编译工具NEDC将.NED文件编译成.cpp文件。最后,使用C++编译器将这些文件与用户和自己设计的简单模块程序连接成可执行程序。

3.4 TinyOS
TinyOS是专门针对传感器研发出的操作系统。在TinyOS上编程序使用的语言为nesC(C language for network embedded systems) 语言。

nesC语言是由C语言扩展而来的,意在把组件化/模块化思想和TinyOS基于事件驱动的执行模型结合起来。 nesC 组件有Module(模块)和Configuration(连接配置文件)两种。在模块中主要实现代码的编制,在连接配置文件中主要是将各个组件和模块连接起来成为一个整体。

TinyOS程序采用的是模块化设计,所以它的程序核心往往都很小,能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。TinyOS的特点主要体现在以下几个方面:

(1)组件化编程(Componented-Based Architecture)。TinyOS的组件通常可以分为以下三类:硬件抽象组件、合成组件、高层次的软件组件;硬件抽象组件将物理硬件映射到TinyOS组件模型.合成硬件组件模拟高级硬件的行为.高层次软件模块完成控制、路由以及数据传输等。}

(2)事件驱动模式(Event-Driven Architecture)。事件驱动分为硬件驱动和软件事件驱动。硬件事件驱动也就是由一个硬件发出中断,然后进入中断处理函数。而软件驱动则是通过singal关键字发出一个事件。

(3)任务和事件并发模式(Tasks And Events Concurrency Model)。任务用在对于时间要求不是很高的应用中,任务之间是平等的,即在执行时是按顺序先后来的,而不能相互抢占,TinyOS对任务是按简单的FIFO队列进行处理的。事件用在对于时间的要求很严格的应用中,而且它可以占先优于任务和其他事件执行。

(4)分段执行(Split-Phase Operations)。在TinyOS中由于tasks 之间不能互相占先执行,所以TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实现,以便获得较高的执行效率。

(5) 轻量级线程(lightweight thread)。轻量级线程(task, 即TinyOS中的任务)按FIFO方式进行调度,轻量级线程之间不允许抢占;而硬件处理线程(在TinyOS中,称为硬件处理器),即中断处理线程可以打断用户的轻量级线程和低优先级的中断处理线程,对硬件中断进行快速处理响应。

(6) 主动通信消息(active message)。每一个消息都维护一个应用层和处理器。当目标节点收到这个消息后,就会把消息中的数据作为参数,并传递给应用层的处理器进行处理。应用层的处理器一般完成消息数据的解包操作、计算处理或发送响应消息等工作。

TinyOS操作系统中常用的仿真平台主要是TOSSIM和Avrora

(1)TOSSIM(TinyOS simulation)是一个支持基于TinyOS的应用在PC机上运行的模拟器.TOSSIM运行和传感器硬件相同的代码,仿真编译器能直接从TinyOS应用的组件表中编译生成仿真程序。

(2)Avrora是一种专门为Atmel和Mica2节点上以AVR单片机语言编写的程序提供仿真分析的工具。它的主要特点如下:1) 为AVR单片机提供了cycle accurate级的仿真,使静态程序可以准确的运行。它可以仿真片上(chip-on)设备驱动程序,并为片外(off-chip)程序提供了有规则的接口;2)可以添加监测代码来报告仿真程序运行的性能,或者可以在仿真结束后收集统计数据,并产生报告;3)提供了一套基本的监控器来剖析程序,这有助于分析程序的执行模式和资源使用等等;4)Avrora可以用gdb调试程序;5) Avrora可以为程序提供一个程序流图,通过这个流程图可以清楚的表示机器代码程序的结构和组织;6) Avrora中提供了分析能量消耗的工具,并且可以设置设备的带电大小;7) Avrora可以用来限制程序的最大堆栈空间,它会提供一些关于目前程序中的最大的堆栈结构,和一些关于空间和时间消耗的信息报告。

3.5性能比较

TinyOS 用行为建模,可以仿真跨层协议;仿真程序移植到节点上,不需要二次编码。
通过对上述几种仿真软件的分析比较,我们可以清楚的看到各个仿真软件的特点、适用范围,我们可以根据研究需要选择适合的仿真软件,使得我们的学习研究可以事半功倍。

结束语

网络仿真技术为通信网络规划和优化提供了一种科学高效的方法。网络仿真在国内是近几年才发展起来的,但在国外网络仿真技术已经相当成熟,我们应该大胆地借鉴国外先进技术,促进国内网络仿真技术迅速发展。

参考文献
【1】于海斌,曾鹏等.智能无线传感器网络.科学出版社,2006,p283~p303,
【2】石怀伟,李明生,王少华,网络仿真技术与OPNET应用实践,计算机系统应用2006.第3期
【3】李玥,吴辰文,基于OMNeT++地TCP/IP协议仿真,兰州交通大学学报(自然科学版),2005年8月
【4】袁红林,徐晨,章国安,TOSSIM:无线传感器网络仿真环境,传感器与仪表仪器 ,2006年第22卷第7-1期

c语言相关文章:c语言教程


c++相关文章:c++教程


传感器相关文章:传感器工作原理


风速传感器相关文章:风速传感器原理


评论


相关推荐

技术专区

关闭