引言
无线传感器网络是由一个个具有数据采集、计算和通信能力的传感器节点,通过自组织网络形成的一个动态、自适应的分布式计算平台。每个传感器都是典型的嵌入式系统,具有存储容量小、运算能力差、功耗低、易失效的特点。因此,它对传统嵌入式应用开发者提出了更高的要求,迫切需要系统软件的精心设计,以满足其可靠性和持久性的要求。无线传感器网络的特点决定了尽可能地降低系统功耗成为系统设计的核心要素之一。为此,在目前开发的一些传感器网络操作系统中,都把功耗管理作为一个重要的模块来设计。例如美国加州大学伯克利分校的TinyOS,加州大学纽约分校的SOS和美国科罗拉多大学的MantisOS等专为传感器网络节点设计的操作系统都有自己的低功耗管理策略。
本文主要从软件的角度研究降低无线传感器网络系统功耗的机制与策略控制工程网版权所有,提出了基于μC/OS-II的低功耗改进策略。这对于延长无线传感器网络系统生存周期和普及应用有着重要意义。
1 低功耗软件系统设计原理
嵌入式系统中,在硬件平台已经确定的情况下,软件系统主要从CPU和外部设备两方面来降低功耗。
CPU相关的功耗管理可以通过控制CPU的工作模式来实现。CPU一般有运行模式、空闲模式、休眠模式、睡眠模式和掉电模式控制工程网版权所有,分别对应CPU内部的不同工作频率。它们之间的转化关系以及功耗消耗顺序如图1所示。省电的原则就是处理器只有在有用户操作或任务处理时才处于运行模式,其他时间都处于睡眠模式,以最大程度地提高电源效率。
外围设备的功耗管理,可以根据系统在进入特定功耗模式时所发出的事件进入设备相应的功耗模式来宴现,也可以由用户设定外围设备控制器来使能外围设备,达到控制外围设备功耗的目的。在最近的研究中,已经开始考虑同时动态改变处理器的电压和频率来进一步降低功率,这是一个更为复杂、更为系统的工程,涉及从硬件到操作系统以及应用层的有关内容。
2 无线传感器网络操作系统的低功耗策略
无线传感器网络操作系统是传感器节点硬件和应用软件的结合部分控制工程网版权所有,对功耗的管理模块也在此实现。该模块设计的好坏直接决定着整个传感器网络系统寿命的长短。下面介绍几种典型无线传感器网络操作系统的功耗管理方式。
TinyOS是美国加州大学伯克里分校开发的,一个专为无线嵌入式传感器网络设计的开放源代码的操作系统。它具有基于组件的特性,在传感器网络天生就严格限制内存的条件下,可以用最小代码快速来创新和实现。其功耗管理主要体现为以下几点:
◇TinyOS的每项服务都可以通过StdControl.stop命令被停止;
◇控制外围设备的构件可以将外围设备切换到低功耗模式;
◇TinyOS的HPLPowerManagement构件通过检查处理器的I/O引脚和寄存器状态,将处理器置于相应的低功耗模式;
◇调度器会在就绪任务队列为空时,自动将处理器置于低功耗模式。
SOS是加州大学纽约分校开发的一个采用动态重编程思想,实现在单个节点动态装卸代码模块的无线传感器网络操作系统。与TinyOS类似,它提供一般的抽象接口来管理传感器节点外围设备的功耗状态,且调度器也会在就绪任务队列为空时自动将处理器置于低功耗模式。
MantisOS是美国科罗拉多大学开发的是一个以易用性和灵活性为主要目标的无线传感器操作系统控制工程网版权所有,支持快速、灵活地搭建无线传感器网络原型系统。它通过管理与Unix系统类似的SLEEP函数来实现能量的优化配置。当所有的用户线程都睡眠后CONTROL ENGINEERING China版权所有,调度器就可以控制系统进入低功耗模式,从而避免进入耗费能量的忙等待状态。具体任务调度过程如图2所示。
Contiki是瑞典科学院开发的一款专门为8位机设计的轻量级操作系统。它没有显式的功耗管理策略,但是它将控制权转交给各个应用模块,由调度