第15章--无线传感器网络的软件开发.ppt
第十五章无线传感器网络的软件开发;无线传感器网络软件开发概述
主要开发环境
无线传感器网络中间件设计;软件开发特点和设计要求;无线传感器网络因其资源受限、动态性强、以数据为中心等特点,对其软件系统的开发设计提出了以下要求:
1.软的实时性
由于网络变化不可预知,软件系统应当能够及时调整节点的工作状态,自适应于动态多变的网络状况和外界环境,其设计层次不能过于复杂,且具有良好的时间驱动与响应机制。
2.能量优化
由于传感器节点电池的能量有限,设计软件系统应尽可能考虑节能,这需要用比较精简的代码或指令来实现网络的协议和算法,并采用轻量级的交互机制。;无线传感器网络因其资源受限、动态性强、以数据为中心等特点,对其软件系统的开发设计提出了以下要求:
3.模块化
为使软件可重用,便于用户根据不同的应用需求快速进行开发,应当将软件系统的设计模块化,让每个模块完成一个抽象功能,并制定模块之间的接口标准。
4.面向具体应用
软件系统应该面向具体的应用需求进行设计开发,使其运行性能满足应用系统的QoS要求。
5.可管理
为维护和管理网络,软件系统应采用分布式的管理方法,通过软件更新和重配置机制来提高系统运行的效率。;无线传感器网络软件开发的本质是从如何从工程的思想出发,在软件体系结构设计的根底上开发应用软件。无线传感器网络软件设计的主要内容就是开发这些基于框架的组件,以支持下面三个层次的应用:;操作系统:操作系统由裁剪过的只针对于特定应用的软件组成,专门处理与节点硬件设备相关的任务,包括启动载入程序、硬件的初始化、时序安排、内存管理和过程管理等。
传感驱动:初始化传感器节点,驱动节点上的传感单元执行数据采集和测量工作,它封装了传感器应用,为中间件提供了良好的API接口。
中间件管理:该管理机制是一个上层软件,用来组织分布式节点间的协同工作。
模块:封装网络应用所需的通信协议和核心支撑技术。
算法:用来描述模块的具体实现算法。
效劳:包含用来与其他节点协作完成任务的本地协同功能。
虚拟机:能够执行与平台无关的程序。;3.网络应用
描述整个网络应用的任务和所需要的效劳,为用户提供操作界面来管理网络评估运行效果。网络应用层次的框架组件结构如图15.3所示。;无线传感器网络软件开发的主要技术挑战;主要开发环境;模块和配件的定义格式如下:;nesC应用程序的分析;nesC应用程序的分析;nesC程序的仿真;2.执行步骤
①翻开生成的cygwin图标〔Linux建立在Windows下的软件平台〕,在光标下进入仿真环境路径〔安装在D盘下〕。
cygdrive/d/tinyos/cygwin/opt/…/tinyos/sim—寻找软件仿真路径
②输入make,之后将生成一个执行脚本文件Tinyviz.jar。
③进入应用程序路径,在相同的路径下进入blink目录下。
④输入“makepc-”,在PC上对Blink程序进行编译、仿真,假设有相关硬件,那么输入硬件名称,如makemicaz,在blink文件下会生成一个pc文件夹,里面包含了在PC上blink主程序main.exe。
⑤翻开blink/pc路径,输入“tinyviz-runmain.exe20”〔20为传感器节点的仿真个数〕。
利用可视化Tinyviz将调用接口使Blink程序执行的仿真结果通过图形显示出来。;nesC程序的仿真;无线传感器网络中间件设计;无线传感器网络的中间件软件设计必须遵循以下的原那么:
〔1〕由于节点能量、计算、存储能力及通信带宽有限,因此无线传感器网络中间件必须是轻量级的,且能够在性能和资源消耗间取得平衡。
〔2〕传感网环境较为复杂,因此中间件软件还应提供较好的容错机制、自适应机制和自维护机制。
〔3〕中间件软件的下层支撑是各种不同类型的硬件节点和操作系统〔如TinyOS、MANTISOS、SOS等〕,因此,其本身必须能够屏蔽网络底层的异构性。
〔4〕中间件软件的上层是各种应用,因此,它还需要为各类上层应用提供统一的、可扩展的接口,以便于应用的开发。;围绕无线传感器网络在信息交互、任务分解、节点协同、数据处理和异构抽象等方面的设计目标,目前提出了众多不同的无线传感器网络中间件设计方法。主要可分为以下几类:
〔1〕基于虚拟机的无线传感器网络中间件。
〔2〕基于数据库的无线传感器网络中间件。
〔3〕基于应用驱动的无线传感器网络中间件。
〔4〕面向消息的无线传感器网络中间件。
〔5〕基于移动代理的无线传感器网络中间件。;无线传感器网络中间件设计;典型的无线传感器网络中间件软件体系结构;1.网络适配层
在该层中,网络适配器实现对网络底层〔无线传感器网络根底设施、