雷 桐,沈庆宏,冯兆祥
(1.南京大学电子科学与工程学院,江苏南京210093;2.江苏省长江公路大桥建设指挥部,江苏泰州225321)
由于无线传感器网络工作在比较恶劣的环境中,节点能量一般由电池供应,电源无法更换,但是却要求网络的生存时间长达数月甚至数年,节点能量受限成为其最大制约因素。本文通过研究传感器节点的能耗分布,应用低功耗的无线传感网络[1]Imote 2节点,利用软件开发与实际应用相结合的方式,设计出一种降低节点功耗的方法,将计算算法移植到应用于Imote2[2]的操作系统,根据不同节点模块的需求,用nesC语言编写不同模块的程序,并将其下载到Imote 2节点上,通过实验证明方法的可行性与降低功耗的有效性。
传感器节点由4个部分组成:分别是传感器模块、处理器模块、无线通信模块和能量供应模块。传感器模块负责监测区域内采集信息和转换数据;处理器模块负责控制整个传感器节点的操作,存储和处理本身采集的数据与其他节点发来的数据;无线通信模块负责与其他传感器节点进行无线通信,交换控制信息和收发采集的数据;能量供应模块为传感器节点提供运行所需的能量,通常采用微型电池[3]。传感器节点体积微小,通常携带的电池能量十分有限。由于传感器节点个数多,成本低,分布区域广,而且部署区域环境复杂,有些区域甚至人员不能到达,所以,传感器节点通过更换电池的方式来补充能源是不现实的。如何高效使用能量来最大化网络生命周期是传感网络面临的重要挑战。
图1所示是传感器节点各部分能量消耗的情况[4],从图中可知,传感器节点的绝大部分能量消耗都是在无线通信模块,传感器节点传输信息时要比执行计算时消耗更多的电能。模块存在发送、接收、空闲和睡眠4种状态,无线通信模块在发送状态的能量消耗最大,在空闲状态和接收状态的能量消耗接近,略少于发送状态的能量消耗,而在睡眠状态的能量消耗最小。
Imote 2智能无线传感器是一种设计用于数据密集型应用的智能传感器平台。其主板采用了低功率 X-scale处理器,PXA27x CPU。该处理器可工作于低电压低频率模式,可进行低功耗操作。Imote 2具有256 kB的静态随机存储器(SRAM),32 MB的同步内存(SDRAM),以及32 MB的闪存。它使用的是德州仪器公司的CC2420 IEEE 802.15.4射频发射器。CC2420支持2.4 GHz带宽16通道250 kB/s最大数据传输率。与之配套的传感器集成模块可测三轴加速度、光、温湿度等[5]。
每个Imote 2传感器节点都具有自带的微处理器,可以进行数字信号处理、自我诊断、自我识别以及自适应功能。传感器节点在本地就可进行数据处理,只将少许有用的信息发送至基站或其他传感器节点,有效减少了数据传输量,节省了能耗。相对于其他无线传感器节点(如Mica系列),Imote 2的主要特点是其所能储存的数据量和灵活的通信、信息处理能力,这也是本文选择其作为实验平台的原因。
Imote 2软件采用的是嵌入式操作系统Tiny-OS,其内存占用量少,支持密集布排和自组织性的传感器网络。该系统主要采用nesC语言编写,为无线传感器网络提供了一系列基本的接口、组件和配件文件等[6]。采用nesC语言编写Imote 2程序组件会被下载到每个Imote 2传感器节点,基站收到命令后使Imote 2上的传感器集成板采集数据并暂存在闪存中,最终发送给基站节点。
理论上,低功耗算法可以在用户、应用、操作系统和部件4个层次中的任何一个上实现。但无论是基于性能还是基于状态的措施,都要借助软件编程才能发挥作用。只有应用程序才能决定何时发送数据(基于状态的措施)、何时调整时钟频率(基于性能的措施)。根据节点的硬件信息和实际应用的需求,降低代码量和复杂度、降低各部分能耗和对硬件资源的需求[7]。
数据采集是无线传感网络系统的首要任务[8]。只有通过节点采集到所需信息,才能进一步进行数据处理和传输。根据对传感器各模块的能耗分析可知数据的发送与接收功耗很大。本文根据实际应用需求,将数据处理算法移植至节点操作系统并转换成适合Imote2操作系统的nesC代码,根据整体需求进行改进,减少输出的数据量,从而降低节点的功耗。因此,如何处理传感器的输出数据,提取有意义的信息成为算法移植所要考虑的问题。
在无线传感器网络的应用中,为了分析目标的运动特征,信号在时域范围内的空间信息往往被忽略,傅里叶变换和功率谱密度(PSD)函数包含着信号的基本频域信息和动力系统的性能。而当采样频率和其他用户设定一定时,处理后的数据量恒定(与采集数据量的大小和时间无关)。所以,当系统要求不需要空间信息时,利用节点的处理器处理原始数据得到仅包含频域特性的数据发送回基站能够大大降低发送的数据包数量和时间。本文以移植PSD计算算法为例,用实验证明此原理。
基站模块:协调节点进行数据采集、PSD计算、发送PSD数据至基站。首先,初始化和链接程序中所用到的模块,基站模块向节点模块发送采集数据指令;其次,采集完毕后,定时器计时结束并发送PSD计算参数,待节点模块计算完毕后,基站模块定时器计时结束发送传输数据命令给节点模块,最后,基站模块接收数据并打印至用户预设的txt文件中。
节点模块:主要任务是采集测量数据,并计算PSD,将其数据发送到基站。首先,初始化和链接程序中所用到的模块,接收到采集命令后开始采集数据,采集完毕后等待命令;其次,在接收到计算命令后开始计算PSD,计算完毕后等待命令;最后,在接收到发送数据命令后开始发送PSD数据。
计算模块:首先,进行差错检查和分配存储空间,其次,根据用户设置选择通道与选择窗口,使用改进的离散傅里叶变换算法[9,10]构成的功率谱密度计算函数计算窗口内的频谱并保存,在计算完所有窗口与通道的数据后发送计算结束信号。
图2所示为程序流程,虚线框内为所添加的移植算法部分。
实验采用基于外部电流测量的实测能耗方法,它通过外接设备电路来对节点能耗进行测试,在电源与节点之间串联了1只1Ω的电流取样电阻器,在电阻器两侧接数字示波器对其电压进行测量,最后计算得出节点的能耗。
无线传感节点的功耗测试是通过测量传感节点的工作电流来实现,根据电流乘以电压来计算,电流又通过串入电阻器实现电流/电压转换来测量。电阻大小的选取的原则为:引入的压降可忽略,产生的电压易于测量。为了不影响被测节点的功耗,采用一个单独供电的测量节点来检测被测节点的电流。
图2 程序流程图Fig 2 Flow chart of program
实验将Imote 2传感器射频放大器节点绑定在小型电风扇上测其抖动频率。
1)改进数据与原始数据对比实验
图3(b)为改进后的移植程序由基站接收到的x,y,z 3通道频谱数据直接显示,图3(a)为改进前接收到x,y,z 3通道的原始采集数据经Matlab中的PSD函数处理后的显示,可看出频率点几乎无偏移,幅度的偏差是由于与Matlab算法不同和实验噪声引起的,在误差范围内。
2)功耗测试
节点a下载的是经PSD移植后改良的程序,节点b下载的是初始程序,节点a,b同时绑在电风扇采用恒定4.5V电压并对其电流进行实时监控,实验测试时,持续采集较长一段时间内的加速度信号,表1为采集长度为51712个数据的参数数据。
表1 采集51712个数据的对比实验结果Tab 1 Comparison experimental results of collected 51712 datas
分别测试三组不同长度的数据,由于信号采集部分的功耗主要由硬件和用户定义决定,由表2可知,发送功耗比(改进后的发送功耗/原始发送功耗)仅为2%左右,而在总功耗极限比(采集功耗/实际原始总功耗)约为95.5%的情况下,总功耗也(改进后的功耗/原始功耗)有显著提升。
图3 原始方法与移植方法PSD数据对比图Fig 3 PSD data comparison diagram of original and transplaning methods
表2 改进方法与原始方法的功耗比Tab 2 Power consumption ratio of improved method and primitive method
本文以降低无线传感器网络节点功耗为目标,在对无线传感网络的特点和模块功耗进行分析的基础上,以Imote 2智能无线传感器为核心,采用了嵌入式操作系统Tiny-OS[11],设计了基于算法移植的减少数据发送量程序模块,完成了低功耗软件设计并测试分析,证明了此方法可以大大降低传感器节点的数据发送功耗和有效降低传感器节点的总功耗,实验表明:此方法得到的PSD数据与利用Matlab处理的数据基本一致。
[1]吉 林,丁华平,沈庆宏.基于无线传感器网络的桥梁结构健康监测[J].南京大学学报,2011,47(1):20-24.
[2]陆 慧,沈庆宏,陈 策,等.基于Imote 2的WSNs桥梁结构健康监测系统无线传输研究[J].现代电子技术,2010,332(27):30-34.
[3]田 忠,宋铁成,叶芝慧,等.基于IEEE 802.15.4的无线传感器网络的设计与实现[J].电子工程师,2006,32(7):25-29.
[4]Cintanagonwiwat C,Govindan R,Estrin D.Directed diffusion a scalable and robust communication paradigm for sensor networks[C]∥The 6th Annual ACM/IEEE Int’l Conf on MobiCOM’00,Boston,MA,2000.
[5]Imote 2 hardware reference manual[DB/OL].(2007—09—01)[2008—03—25].http:∥www.xbow.com/Support/Support_pdf_files/Imote2_Hardware_Reference_Manual.pdf.
[6]徐春红,吉 林,沈庆宏,等.基于无线传感器网络的桥梁结构健康监测系统[J].电子测量技术,2008,31(11):95-98.
[7]崔 巍,史殿习,丁 博,等.Linux在无线传感器Imote 2上的移植与应用[J].计算机工程,2010,36(4):292-293.
[8]Arici T,Altunbasak Y.Adaptive sensing for environment monitoring using wireless sensor networks[C]∥Proc of IEEE Wireless Communications and Networking Conference(WCNC),Atlanta,GA:2004.
[9]张宪超,武继刚,蒋增荣,等.AFT离散傅里叶变换的算术傅里叶变换算法[J].电子学报,2000,28(5):105-107.
[10]Alves R G,Osorio P L,Swamy M N S.General FFT pruning[C]∥Proceedings of the 43rd IEEE Midwest Symposium,Michigan,2000:1192-1195.
[11]Spencer B F,Ruiz-sandoval M E,Kurata N.Smart sensing technology:Opportunities and challenges[J].Structural Control and Health Monitoring,2004,11(4):349-368.