无线传感器网络及应用

1无线传感器网络简介

近年来随着微型制造技术、无线通信技术和电池技术的进步,促使低成本、低功耗的微型无线传感器的大规模生产制造成为可能,这些微型无线传感器能同时具有数 据采集、无线通信和信息处理的能力。无线传感器网络就是将成百上千的此类传感器节点布置在一个特定的区域内而形成的网络,它们通过特定的协议高效、稳定、 正确的自组织起来,协同工作完成某项应用任务。

人们依靠无线传感器网络可以实时监测外部环境,实现大范围、自动化的信息采集。它具有快速构建、部署方便的特点,不易受到目标环境的限制,特别适合布置在 电源供给困难的区域或人员不易到达(环境恶劣地区、敌军阵地等)的区域可应用在军事侦察、环境监测、医疗监护、空间探索、城市交通管理、仓储管理等领域, 应用前景非常巨大。

无线传感器网络最早来源于军事领域,1978年卡内基-梅隆大学就在美国国防高级研究项目署(DARPA)的资助下成立了分布式传感器网络工作组 (DistributedSensorNetWorkshop)[1],专门研究以无线传感器网络为基础的军事监视系统[2]。但是由于当时技术条件的限 制,研究和应用的范围十分有限。

进入到21世纪,随着技术水平的大规模提高,当前对无线传感器网络的研究与开发已成为目前信息领域的一个热点,有越来越多的研究机构和公司正加入到这方面 的研究工作中来。国际上的一些大型研究项目包括有:加州大学洛杉矶分校的WINS网络[3],几乎涵盖了从信号处理到网络协议的所有研究;加州大学伯克利 分校的PicoRadio项目[4],专注于信道选择,冲突避免的媒介访问层(MAC)协议;麻省理工大学的μAMPS项目[5],利用节点簇算法来尽量 降低功耗。还有其它众多的研究项目如Terminodes[6],MANET[7]等。

所有的无线传感器网络的组织结构类似,一个典型应用是军事上的侦测系统,用来探测某一区域内的敌军行动。如图1所示,利用飞机投掷或其它合适手段按一定密 度布置传感器节点在所要侦测的范围。传感器节点自动启动,并采集周边的敌方情报(温度、湿度、声音强度、物体移动等)。由于传感器节点功率的限制,一般传 递的距离有限,因此它会寻找临近的一个节点用来作为传输中继,如图中传感器A将通过传感器B、C的帮助将侦测数据传送至网关节点D处。网关节点是一个较为 特殊的节点,视侦测范围的大小无线传感器网络可以有一个或多个网关。网关应该拥有相对较强的处理器和较大的存储器空间,它的功能是首先对网络中普通节点 (如节点A、B、C)汇总过来的传感数据进行一些初步的处理(如计算、压缩、去除冗余等),然后与某一外部网络(如互联网)相联,将侦测的数据发送给我方 指挥部的监控中心。通过这种手段,我方就可以远程精确掌握敌方情报,而无需付出人员损失的代价。

2无线传感网络的软硬件组成

无线传感器网络的传感器节点个数通常很多,它们不仅体积小、成本低,另外还要求传感器节点功耗非常低,以满足用电池即可维持长时间的工作状态。因此这些特 点决定了对传感器节点的设计需要在尽可能简单的情况下满足应用需求。无线传感器节点是由硬件层和软件层共同配合完成任务(见图2)。

硬件层一般都包括以下四个单元:供电单元、数据采集单元(包括传感器和A/D模数转换器件)、数据处理单元(包括存储器和微控制器)、无线通信单元。微控 制器作为传感器节点运“心脏”,在上面运行着嵌入式系统软件,从而对另外三个单元的工作进行控制。在硬件的选取上,尽量采用低功耗器件,还可以考虑在无数 据采集和无数据通信的时候命令微控制器进入“睡眠”状态并可切断无线通信单元的部分电源,从而降低功耗。

软件层用来控制硬件层,是整个传感器的“大脑”,除了最基本的数据采集和发送之外,根据应用的场合,还需要实现关于网络拓扑、自组织、路由选择、能耗节 约、错误处理、可靠性保证等一系列的算法与设计。对于一些简单的应用可以使用单一循环逻辑的软件来完成。而一些复杂性较高的应用场景就有必要使用针对无线 传感器网络特点的嵌入式操作系统。这类操作系统,除了要满足对于资源有限、可移植性、实时性等方面的需求外,重点还要考虑节能性的需求,另外使用事件驱动 的方式也可以适应无线传感器网络以数据流为中心的特点。

无线传感器网络的软件层会包括三个层次:硬件抽象层、系统服务层和应用层。硬件抽象层实现对硬件平台(供电、数据采集、数据处理和无线通信单元)的抽象, 为上层屏蔽底层硬件细节,简化系统平台移植。系统服务层包括通信服务、传感服务、能耗管理服务、实时内核四部分,在这个层次中除了实现操作系统如任务调 度、信号量等内核服务外,还将完成各种路由、安全算法的实现,并支持各类通信传输协议。应用层是由用户根据具体应用的需要定义,利用系统服务层提供的接 口,能方便的设计出上层软件。

3新兴的无线传感器网络技术标准Zigbee

针对无线传感器网络的技术特点,一项新的技术标准在2002年被提出并不断被更新和完善,并获得了广泛的支持这就是Zigbee技术。Zigbee拥有一 套非常完整协议层次结构(见图3),由IEEE802.15.4和ZigBee联盟共同制订完成,其设计目标是通用性强、低功耗、低成本和低复杂度。

Zigbee在物理层上,使用全球通用、无需申请的工业、科研和医疗(ISM)频段,有助于Zigbee设备的推广和成本的降低。Zigbee的数据链路 层分成逻辑链路控制(LLC)和媒介访问控制(MAC)两个子层。其中LLC在IEEE802.6标准中定义,为IEEE802标准所共用。而 Zigbee的MAC层为了增加灵活性,具有两类地址,一类是16bits的局部地址,处理起来更方便,节约功耗;另一类是64bits的扩展地址,可以 为全球任一个设备分配唯一的地址。为了节约功耗,提高电源使用效率,AC层的访问方式还支持信标(beacon)访问。由主节点每隔一段时间群发一个 Beacon帧,而子节点首先保持在“睡眠”状态,每隔同样一段时间醒来一次,查看这个Beacon帧内是否有其地址,有则可以发送数据,否则仍然进入 “睡眠”.这个间隔时间可以从15毫秒至252秒不等。避免了节点一直“苏醒”状态下功耗的浪费。

Zigbee技术将节点从器件上分成两类。1.全功能器件(FFD:FullFunctionDevice),它拥有足够的存储空间来存放路由信息并且处 理能力也相应增强;2.简化功能器件(RFD:ReduceFunctionDevice),它内存较小,功耗低。全功能器件主

要起到网关的作用,而简化功能器件是最基本的传感器节点,用来捕获数据信息并传递给其范围内的网关节点。根据上层的应用环境,FFD和RFD互相组合,可以共同协调工作,不仅扩大了网络的覆盖范围,同时由于RFD的加入,节省了整体功耗。

采用Zigbee技术的设备节点成本一般只有几美元,功耗非常低,仅几个mW,使用普通五号电池就可以维持长达数年的工作时间;单个Zigbee设备的通 信距离约20~50米,可将多个设备配合起来覆盖更大的范围;节点的时延很短,信道接入时延仅为15ms,休眠激活的时延为30ms;网络容量较大,一个 网络内可容纳65000多个节点设备;可靠性和安全性较
高,可以根据应用场景实施不同级别的安全加密算法。

Zigbee技术的出现弥补了以往无线通信市场上低成本低功耗设备领域的空缺,目前,已有上百家半导体、通信领域的公司加入了Zigbee联盟,支持Zigbee技术的芯片和产品也纷纷开始面世,市场潜力非常巨大。

4无线传感器网络的应用

(一)应用领域

无线传感器网络可以被广泛应用在军事和民用领域,特别适用于那些设备成本较低,传输数据量较少,使用电池供电并且要求工作时间较长的应用场合。如在工业控 制中,许多大型设备需要对关键部件的技术参数进行监控,以掌握设备的运行情况;在环境监测中,可以监测大气成分的变化,从而对城市空气污染进行监控;在医 疗方面,可以在病人身上安置传感器,让医生可随时远程了解病情。此外,无线传感器网络在智能家居、智能办公环境等方面也可一展身手。

(二)无线智能家居系统的应用实例

无线传感器网络可以被广泛应用在军事和民用领域,特别适用于那些设备成本较低,传输数据量较少,使用电池供电并且要求工作时间较长的应用场合。如在工业控 制中,许多大型设备需要对关键部件的技术参数进行监控,以掌握设备的运行情况;在环境监测中,可以监测大气成分的变化,从而对城市空气污染进行监控;在医 疗方面,可以在病人身上安置传感器,让医生可随时远程了解病情。此外,无线传感器网络在智能家居、智能办公环境等方面也可一展身手。

智能家居系统的设计目标是将住宅中各种家居设备联系起来,使它们能够自动运行,相互协作,为居住者提供尽可能多的便利和舒适。在以往的解决方案中大都是有 线方式,设备难以自由灵活的移动和接入,成本较高。而无线传感器网络Zigbee技术的出现则带来了一个完美的解决方案,这是由于:住宅的面积一般有限, Zigbee设备节点的几十米的覆盖范围基本够用,并且还可以通过增加新的协调节点来扩展覆盖范围;设备之间的数据传递无需大流量、高带宽;家居系统中的 报警装置和定时装置对时间精度要求较高;Zigbee设备自身的低功耗和低成本延长了设备的工作时间,降低了整体花销。

本文的智能家居系统按功能分成四个部分:照明控制系统、警报门禁系统、家电控制系统和PC机系统。每个部分都分配一个核心节点,共四个核心节点,它们之间 可以互相进行无线通信。核心节点用来收集本部分的设备子节点所采集的数据,最终所有的数据会汇集到PC机系统上的核心节点中,而PC机通过网络连入 Internet,这样就可以通过外部网络远程访问和控制整套系统了(见图4)。

在硬件平台方面,我们选择的是Freescle公司出品的MC13192芯片和MC908GB60芯片。MC13192芯片是一款针对Zigbee标准的 无线电收发芯片,MC908GB60则是一款8位微控制器芯片,用来控制MC13192,它片上有60K的Flash和4K的Ram,足够存放 Zigbee的协议栈,并运行简单的应用程序。两块芯片的运行电压都比较低,功耗也小,使用电池即可完成供电。两块芯片通过串行外围接口(SPI)进行连 接。

在软件方面,我们使用Codewarrior嵌入式集成开发环境进行开发调试。首先需要编写通过SPI接口控制MC13192的驱动程序,接着在其上再完 成Zigbee的MAC层开发。然后我们的应用就可以利用MAC层提供的服务方便的进行无线传感器网络的搜索、接入、退出以及数据的传递任务。MAC层与 应用层间的接口是通过四个句柄函数来完成的,如图5所示。

NWK_MLME_Handler()和MLME_NWK_Handler()用来传递MAC层的控制命令(如网络接入等), NWK_MCPS_Handler()和MCPS_NWK_Handler()用来传递要求MAC层传输的数据。可以看到在MAC层会有两个队列分别保存 着应用层发送的命令和数据,并在MAC_Main()里面进行进一步的处理。在Mlme_Main()里面会根据命令的不同,决定如何利用SPI驱动程序 操作无线收发芯片MC13192。另外在Mlme_Main()内也会将MAC层收到的控制指令和别的节点发来的数据传送回应用层,以驱动用户进行处理。

完成上述接口后,就主要关心设备节点的上层逻辑设计,这部分相对比较直观,我们以照明系统的核心节点为例,其流程图如图6所示:

这里要注意的是网络组成是动态的,有些设备可能有时开启有时关闭,因此对于核心节点来说要定时检测内部网络的节点情况,并及时进行更新。

你可能感兴趣的:(算法,工作,网络,网络协议,任务,嵌入式操作系统)