第15章 无线传感器网络的软件开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
典型的无线传感器网络中间件软件体系结构
3.应用开发层 应用框架接口:提供无线传感器网络的各种功能描述和定义,具体的实 现由基础软件层提供; 开发环境:是无线传感器网络应用的图形化开发平台,建立在应用框架 接口基础上,为应用业务提供更高层次的应用编程接口和设计模式; 工具集:提供各种特制的开发工具,辅助无线传感器网络各种应用业务 的开发与实现。
nesC应用程序的分析
nesC程序的仿真
1.运行环境 在PC上安装TinyOS的运行平台,具体安装过程和安 装Windows系统一样。 为了避免与PC自身系统的冲突,可将安装包tinyos1.1.0.exe(软件版本以实际仿真的版本为主,现升级到 TinyOS-2.1)安装到指定路径(本仿真软件环境是安装在 D盘下)。这个安装包已经包含了Java、Cygwin、TinyOS 相关软件和编译器,同时提供像mica、micaz等硬件驱动, 并针对不同硬件编译生成可执行文件以供下载。
软件开发的内容
3.网络应用
描述整个网络应用的任务和所需要的服务,为用户提供操作界 面来管理网络评估运行效果。网络应用层次的框架组件结构如图15.3 所示。
无线传感器网络软件开发的主要技术挑战
尽管无线传感器网络的软件开发研究取得了很大的进展,但还是有一些问题 尚未得到完全解决,总地来说,还面临着以下挑战。 1.安全问题 无线传感器网络因其分布式的部署方式很容易受到恶意侵入和拒绝服务之类的攻 击,因此在软件开发中要考虑到安全的因素,需要将安全集成在软件设计的初级 阶段,以实现机密性、完整性、及时性和可用性。 2.可控的QoS操作 应用任务在网络中的执行需要一定的QoS保证,用户通常需要调整或设置这些QoS 要求。如何将QoS要求通过软件的方式抽象出来,为用户提供可控的QoS操作接口, 是无线传感器网络软件开发所面临的又一技术挑战。 3.中间件系统 中间件封装了协议处理、内存管理、数据流管理等复杂的底层操作,用来协调网 络内部服务,配置和管理整个网络。设计具有可扩展、通用性强和自适应特点的 中间件系统也是无线传感器网络软件开发所面临的技术挑战之一。
第十五章 无线传感器网络的软件开发
第十五章 无线传感器网络的软件开发
无线传感器网络软件开发概述
主要开发环境
无线传感器网络中间件设计
软件开发特点和设计要求
无线传感器网络的软件系统 用于控制底层硬件的工作行为, 为各种算法、协议的设计提供一 个可控的操作环境,同时便于用 户有效地管理网络,实现网络的 自组织、协作、安全和能量优ห้องสมุดไป่ตู้ 等功能,从而降低无线传感器网 络的使用复杂度。
nesC语言结构
模块和配件的定义格式如下:
nesC应用程序的分析
Blink程序是一个简单的nesC应用程序。它的主要功能是每隔1 s的间隔亮一次, 关闭系统时红灯亮。其程序主要包括3个子文件Blink.nc、BlinkM.nc和 SingleTimer.nc。 1.Blink.nc文件 Blink.nc文件为整个程序的顶层配件文件,关键字为configuration,通过“->” 连接各个对应的接口。文件关键代码如下。 2.BlinkM.nc文件 BlinkM.nc为模块文件,关键字为module、command,通过其调用StdControl接 口中的3个命令“init”、“start”、“stop”连接接口实现Blink程序的具体功 能 3.SingleTimer.nc文件 SingleTimer.nc为一个配件文件,主要通过TimerC和StdControl组件接口实现与 其他组件之间的调用关系,配件文件还定义了一个唯一时间参数化的接口Timer。
nesC程序的仿真
2.执行步骤 ①打开生成的cygwin图标(Linux建立在Windows下的软件平台), 在光标下进入仿真环境路径(安装在D盘下)。 cygdrive/d/tinyos/cygwin/opt/…/tinyos/sim— 寻找软件仿真路 径 ②输入make,之后将生成一个执行脚本文件Tinyviz.jar。 ③进入应用程序路径,在相同的路径下进入blink目录下。 ④输入“make pc-”,在PC上对Blink程序进行编译、仿真,若有相 关硬件,则输入硬件名称,如make micaz,在blink文件下会生成一 个pc文件夹,里面包含了在PC上blink主程序main.exe。 ⑤打开blink/pc路径,输入“tinyviz-run main.exe20”(20为传感器 节点的仿真个数)。 利用可视化Tinyviz将调用接口使Blink程序执行的仿真结果通过图形显 示出来。
软件开发的内容
无线传感器网络软件开发的本质是从如何从工程的思想出发,在软 件体系结构设计的基础上开发应用软件。无线传感器网络软件设计的主 要内容就是开发这些基于框架的组件,以支持下面三个层次的应用: 1.传感器应用 提供传感器节点必要的本地基本功能,包括数据采集、本地存储、硬件 访问、直接存取操作系统等。 2.节点应用 包含针对专门应用的任务和用于建立与维护网络的中间件功能,其设计 分为三个部分:操作系统、传感驱动、中间件管理。
软件开发特点和设计要求
无线传感器网络因其资源受限、动态性强、以数据为中心等特点,对 其软件系统的开发设计提出了以下要求: 1.软的实时性 由于网络变化不可预知,软件系统应当能够及时调整节点的工作状态, 自适应于动态多变的网络状况和外界环境,其设计层次不能过于复杂,且 具有良好的时间驱动与响应机制。 2.能量优化 由于传感器节点电池的能量有限,设计软件系统应尽可能考虑节能, 这需要用比较精简的代码或指令来实现网络的协议和算法,并采用轻量级 的交互机制。
4.应用业务适配层
应用业务适配层对各种应用业务进行封装,解决基础软件层的变化和接 口的不一致性问题。
软件开发的内容
操作系统:操作系统由裁剪过的只针对于特定应用的软件组成,专门处理与节点硬 件设备相关的任务,包括启动载入程序、硬件的初始化、时序安排、内存管理和过 程管理等。 传感驱动:初始化传感器节点,驱动节点上的传感单元执行数据采集和测量工作, 它封装了传感器应用,为中间件提供了良好的API接口。 中间件管理:该管理机制是一个上层软件,用来组织分布式节点间的协同工作。 模块:封装网络应用所需的通信协议和核心支撑技术。 算法:用来描述模块的具体实现算法。 服务:包含用来与其他节点协作完成任务的本地协同功能。 虚拟机:能够执行与平台无关的程序。
主要开发环境
TinyOS是当前无线传感器网络开发所使用的主流操作系统,在 TinyOS上编写程序使用的主要是nesC语言。 nesC是C语言的扩展,精通C语言的程序员可比较快地掌握这种语言。 与C语言的存储格式不同,用nesC语言编写的文件以“.nc”为后缀, 每个nc文件实现一个组件功能(组件化/模块化)。在nesC程序中,主要 定义两种功能不同的组件——模块(Module)和配件(Configuration)。 模块主要用于描述组件的接口函数功能以及具体的实现过程,每个模块 的具体执行都由4个相关部分组成:命令函数、事件函数、数据帧和一组 执行线程。 配件主要描述组件不同接口的关系,完成各个组件接口之间的相互连接 和调用
无线传感器网络中间件设计
典型的无线传感器网络中间件软件体系结构
典型的无线传感器网络中间件软件体系结构
1.网络适配层 在该层中,网络适配器实现对网络底层(无线传感器网络基础设施、操 作系统)的封装。 2.基础软件层 基础软件层包含各种无线传感器网络中间件组件,具备灵活性、模块性 和可移植性。包括 网络中间件组件:完成无线传感器网络接入、网络生成、网络自愈合、 网络连通性服务等; 配置中间件组件:完成无线传感器网络的各种配置工作,如路由配置, 拓扑结构调整等; 功能中间件组件:完成无线传感器网络各种应用业务的共性功能,提供 功能框架接口; 管理中间件组件:完成网络应用业务实现各种管理功能,如资源管理、 能量管理、生命期管理; 安全中间件组件:完成应用业务实现各种安全功能,如安全管理、安全 监控、安全审计。
软件开发特点和设计要求
无线传感器网络因其资源受限、动态性强、以数据为中心等特点,对 其软件系统的开发设计提出了以下要求: 3.模块化 为使软件可重用,便于用户根据不同的应用需求快速进行开发,应当将软 件系统的设计模块化,让每个模块完成一个抽象功能,并制定模块之间的 接口标准。 4.面向具体应用 软件系统应该面向具体的应用需求进行设计开发,使其运行性能满足应用 系统的QoS要求。 5.可管理 为维护和管理网络,软件系统应采用分布式的管理办法,通过软件更新和 重配置机制来提高系统运行的效率。
无线传感器网络中间件设计
围绕无线传感器网络在信息交互、任务分解、节点 协同、数据处理和异构抽象等方面的设计目标,目前提 出了众多不同的无线传感器网络中间件设计方法。主要 可分为以下几类:
(1)基于虚拟机的无线传感器网络中间件。
(2)基于数据库的无线传感器网络中间件。 (3)基于应用驱动的无线传感器网络中间件。 (4)面向消息的无线传感器网络中间件。 (5)基于移动代理的无线传感器网络中间件。
nesC程序的仿真
无线传感器网络中间件设计
中间件是介于操作系统(包括底层通信协议)和各 种分布式应用程序之间的一个软件层,其主要作用是建 立分布式软件模块之间互操作的机制,屏蔽底层分布式 环境的复杂性和异构性,为处于上层的应用软件提供运 行与开发环境。
无线传感器网络中间件设计
无线传感器网络的中间件软件设计必须遵循以下的原则: (1)由于节点能量、计算、存储能力及通信带宽有限,因此无 线传感器网络中间件必须是轻量级的,且能够在性能和资源消耗 间取得平衡。 (2)传感网环境较为复杂,因此中间件软件还应提供较好的容 错机制、自适应机制和自维护机制。 (3)中间件软件的下层支撑是各种不同类型的硬件节点和操作 系统(如TinyOS、MANTIS OS、SOS等),因此,其本身必须能 够屏蔽网络底层的异构性。 (4)中间件软件的上层是各种应用,因此,它还需要为各类上 层应用提供统一的、可扩展的接口,以便于应用的开发。