低功耗无线传感器网络节点的设计与实现
2015-12-20潘琢金刘继磊
潘琢金,刘继磊,罗 振,杨 华
(沈阳航空航天大学 计算机学院,辽宁 沈阳110136)
0 引 言
无线传感器网络是由长期部署在监测区域内的无线传感器节点互相通信形成的多跳自组织系统[1]。由于无线传感器网络的能量受限,所以降低系统的能耗成为无线传感器网络研究的重点。目前,对降低无线传感器网络能耗的研究主要集中在拓扑控制策略和能量有效路由控制等网络协议方面。然而无线传感器节点是整个系统的基础[2],如果能够降低单个节点自身的能耗,那么整个网络的能耗也会随之降低[3]。针对上述问题,分析了现有一些典型节点的优缺点;提出并设计实现了以EFM32TG842 和CC2520为核心的节点,完成了Contiki操作系统在节点的移植,并设计实现了低功耗应用进程。
1 现有节点设计方案分析
无线传感器网络节点的结构通常有4部分组成:处理器模块、射频模块、传感器模块和能量供应模块[4]。无线传感器网络节点结构如图1所示。
图1 无线传感器网络节点结构
目前,无线传感器网络节点的设计方案主要有两类,一类采用独立MCU 和独立RF芯片的节点设计方案,例如Crossbow 的Micaz节点。另一类采用集成了RF 收发器的MCU 系统级芯片 (SoC)的节点设计方案,例如TI公司的CC2530节点。
第一类节点可以灵活地嵌入Zigbee等协议栈、TinyOS或Contiki等无线传感器网络操作系统,有丰富的外设接口可以扩展,但是体积相对较大。第二类节点有效地缩小了节点的体积,但没有在体系结构上进行优化,只是将处理器和射频芯片简单整合,并没有显著地降低能耗,且不易于扩展[5]。
2 硬件设计
无线传感器网络中节点需要进行频繁的数据处理和收发,处理器模块和射频模块消耗了节点的绝大部分能量,所以本文针对这两个模块进行选型和低功耗设计。处理器选用高性能、低功耗的EFM32TG842,RF 芯片选用低功耗的CC2520,两者通过串行外设接口 (SPI)进行通信。
2.1 处理器模块
处理器模块是无线传感器网络节点的核心,主要完成数据处理、能耗管理以及运行协议栈等,因此,处理器除具有较强的数据处理能力外,必须满足低功耗的特点。
目前应用于传感器节点的MCU 主要有MSP430 系列单片机、AVR 系列的单片机以及51 内核的单片机。本文采用Silicon Labs 公 司 的EFM32TG842 作 为 节 点MCU。EFM32系列被公认为目前全球最节能的MCU,不仅比8位、16位的MCU 的处理效率要高,而且具备更低的功耗。表1从工作电流、工作电压、睡眠电流以及字长这4个方面对EFM32TG842和MSP430、ATmega128L进行了比较。
表1 EFM32TG842与MSP430、ATmega128比较
通过对比,不难发现EFM32TG842相对于其它MCU有更低的工作功耗和睡眠功耗。此外,EFM32TG842的外设反射系统 (RPS)允许不同外设之间可直接进行通信而无需CPU 的参与,这非常有利于节点对信息的快速采集和传输。EFM32TG842有一个可在深度睡眠模式下工作的低功耗感应接口 (LESENSE),在无需CPU 介入的情况下可控制16路外部模拟传感器,能够非常方便地采集外部环境的多样信息并且有利于节点的扩展。因此选择EFM32TG842单片机作为节点的处理器模块。
2.2 射频模块
射频模块负责节点的数据发送和接收,该模块决定了节点的工作频率、灵敏度、抗干扰能力等。目前传感器节点普遍采用的射频模块芯片主要有Chipcon公司的CC2520和Nordic公司的NRF24L01。表2从发射功率、接收灵敏度、抗干扰能力、工作频带以及是否符合IEEE802.15.4协议,对CC2520与NRF24L01进行了比较。CC2520不仅在接收灵敏度、抗干扰能力以及工作频带宽度方面优于NRF24L01,而 且 其 MAC 层 和 PHY 层 协 议 符 合IEEE802.15.4协议规范[6],更有利于进行快速规范化开发。综合考虑后,本节点选择Chipcon公司的CC2520。
表2 CC2520与NRF24L01比较
2.3 节点其它模块的设计
节点除了处理器模块和射频模块以外,还需要存储器模块以临时存储节点需要转发的数据,USB 转串口模块实现节点与终端处理器的通信。
在大规模多跳网络中无线传感器网络节点可能会作为中转节点对数据进行转发,节点需要对转发的数据做临时存储[7]。处理器模块自身虽然有一定的存储空间,但是这些存储空间主要用来运行节点的操作系统和网络协议栈,因此节点需要外扩存储器用来临时存数数据。本节点的外扩存储器采用W25X16 系列Flash存储器,该存储芯片具有8192个可编程页,每页256 字节,并且体积小、引脚少、功耗低的特点,能够满足节点转发数据的临时存储,和低功耗需求。
节点作为汇聚节点或者网关节点时,可能需要与终端处理器进行通信,因此需要一个与终端处理器通信的接口[8]。一般的终端处理器是PC,PC最常见的通信接口就是USB,而节点的处理器模块一般采用串口进行通信,本节点单独设计一个USB转串口模块,实现节点与PC进行通信。
该模块采用CP2012作为控制器,CP2012是一个高度集成的USB转串口控制器,其工作原理是通过驱动程序将USB口虚拟成COM 口已达到扩展的目的。CP2012的优势在于价格相对较低、外围电路相对简单、稳定性强。本节点在 设计时将CP2102 的3.3 V 和USB 的5 V 电 源 接 出,当节点需要在户外与PC 通信,而没有额外电源的情况下,完全可以使用该接口对节点直接供电。
3 软件设计
无线传感器网络节点的硬件设计决定了节点可扩展的IO 口数量、数据处理能力、通信频率等基本要素,但是作为一个嵌入式系统需要有良好的软件系统来管理协调这些硬件资源,从而使节点的性能达到最优,并且软件系统要兼顾网络通信功能。节点软件系统的主要作用是,对节点的资源和网络协议栈进行有效的管理,在满足节点正常工作的前提下,使节点的能量消耗得到进一步优化。因此,除了硬件本身的功耗,决定节点能耗和性能的还有运行在硬件上的软件系统[9]。
无线传感器网络操作系统负责节点的资源管理和任务调度,甚至可以实现网络协议栈。目前主流无线传感器网络操作系统有两种:Contiki和TinyOS。TinyOS使用专用的NesC语言进行开发,需要专用的编译器,而Contiki使用标准C 语言和通用的C 语言编译器,简单且易于移植。Contiki主要包括一个多任务内核、程序集、以及实现6LoWPAN 适配层的TCP/IP堆栈[10]。
无线传感器网络协议栈将孤立的节点互联成一个系统,决定着系统节点之间的通信规则,在很大程度上决定了节点的能量消耗。ZigBee和6LoWPAN 是目前研究和应用最为广泛的两个无线传感器协议栈。与ZigBee 协议相比,6LoWPAN 协议允许路由节点可以休眠和电池供电,功耗更低,不仅节点之间可以组网,还可以通过IPv6接入下一代互联网[11]。
本文将Contiki操作系统移植到节点硬件平台,设计了运行和休眠这两种工作模式,以实现对节点硬件资源的有效管理和任务的合理调度。在网络层次对Contiki中所集成的6LoWPAN 协议栈进行了配置和使用,以进一步优化整个网络的能耗。节点的软件层次体系结构如图2所示。
图2 节点的软件体系结构
4 Contiki操作系统的移植
官方的Contiki源码是在Linux 环境开发的,相比于Linux中的GCC编译环境,Windows中的IAR 使用起来更加简单灵活。本文采用IAR 作为开发环境将Contiki移植到节点,需要完成开发环境相关的代码修改和传感器节点上操作系统的移植这两方面内容。
4.1 开发环境相关的代码修改
不同开发环境中的编码规范存在着很大的差异,需要修改Contiki代码使之符合IAR 的编码规范。Contiki代码在GCC和IAR 中的差异主要体现在内嵌汇编格式、中断服务程序格式以及底层头文件名称这3部分[12]。在代码修改过程中,首先要全面修改Contiki出现内嵌汇编的地方,使之符合IAR 编码规范;然后将GCC中定义的中断处理程序和底层头文件名称修改成IAR 格式。与GCC中通过Makefile管理工程编译不同,IAR 中通过工程文件目录反应文件之间的关系,需要将必要的文件路径添加到preprocesses,为下一步硬件节点方面的移植做好基础。
4.2 传感器节点相关的移植
传感器节点上操作系统的移植,需要在Contiki/cpu和Contiki/platform 文件夹中分别创建新的MCU 模块和节点平台模块的支持文件,实现与这两个模块相关的驱动和操作系统应用进程。
Contiki是事件驱动的,它的内核工作依赖于时钟事件的驱动,修改MCU 模块主要目的是使用EFM32TG842的SysTick定时器产生Contiki时钟。SysTick定时器有两个时钟源,分别是:高频内核时钟和RTC计数器0位。高频内核时钟作为SysTick的默认时钟,在MCU 进入深度睡眠模式时会停止工作,而RTC依旧正常工作。为了使节点能够进入休眠模式并能成功唤醒,需要将SysTick的时钟源改用为RTC。然后在cpu文件夹下实现Contiki时钟模块的4个时钟驱动函数,它们分别是时钟初始化函数clock_init()、时钟中断处理函数SysTick_Handler()、时钟延迟处理函数clock_delay()、以及当前时钟获取函数clock_time()。
在platform 文件夹下创建一个节点平台文件夹,实现4部分内容:
(1)dev:放置编写的设备驱动,主要是射频芯片以及接口部分。
(2)platform-conf.h:说明编译器的特性,定义clock等模块特性。
(3)contiki-conf.h:配置Contiki以及网络协议栈的特性。
(4)Contiki-main.c:编辑启动Contiki系统代码和进程初始化、时钟初始化、网络初始化、应用进程启动等。
为了降低节点功耗,节点除了在组网和数据收发阶段外,其它时间应进入休眠。节点休眠时,RF 模块关闭MCU 进入深度睡眠。在dev文件下创建一个应用模块,实现两个相关的工作进程,运行模式下的进程实现节点的组网、数据收发,休眠模式下的进程实现节点的休眠。主程序中配置节点大部分时间都处在休眠模式,节点功耗得到进一步降低。
5 测试结果分析
为了评估节点的实际能耗,我们测量节点在运行模式和休眠模式的电流。运行模式:节点数据正在发送,EFM32TG842处在运行模式,CC2520 处在发射模式,发射功率是0dm。休眠模式:EFM32TG842处在深度睡眠模式,CC2520 处在关闭状态。测得本节点电流与Mica2、Imote的电流比较见表3。
表3 本节点与Mica2、Imote的电流比较
从表3可以看出本节点的休眠电流只有Mica2休眠电流的1/10、Imote休眠电流的1/200,运行电流虽然比Mica2的运行电流稍高,但是只有Imote运行电流的一半左右。由于无线传感器网络节点长期处在休眠模式,因此本节点平均电流远小于Mica2和Imote节点。
假设每个工作周期是1小时,则2s内足够完成组网、数据的采集、数据处理和发送的操作[13]。使用Silicon Labs公司为EFM32系列设计的Energy Aware Battery工具对节点的使用寿命进行仿真。配置仿真电源为一个225mAH 的CR2032纽扣电池,节点分别处在运行模式和休眠模式。节点的寿命曲线如图3所示,从图中可以看出节点能够稳定工作354天,计算的节点的平均电流只有21.95μA,符合低功耗的设计要求。
图3 节点寿命曲线
6 结束语
本文在节点硬件设计时,分析了无线传感器网络节点结构,对节点的主要模块进行了对比和选型,实现了以EFM32TG842为处理器和CC2520 为射频芯片的无线传感器网络节点。同时,节点外扩了存储器能够对数据进行临时存储,实现了USB转串口模块能够方便的与PC 进行通信,并且具有丰富的低功耗外设接口,有利于对节点进行扩展。在节点软件设计时,首先对比分析了TinyOS 和Contiki的优缺点,对Contiki为核心的节点的软件系统做了整体设计,详细介绍了Contiki操作系统移植到节点的具体方法,在节点配置了6LoWPAN 网络协议栈并设计了低功耗的应用进程。该节点具备更高的数据处理效率、更丰富的外部接口以及更低的能量消耗,可广泛应用于农业信息采集等节点长期处在休眠状态的无线传感器网络中[14]。下一步主要工作是研究配置节点能量分析工具,自动记录每个节点的工作状态、时间,并计算出能量消耗,在无需额外硬件的情况下完成网络级别的能量分析,用于估算传感器网络的生命周期。
[1]QIAN Zhihong,WANG Yijun.Internet of things-oriented wireless sensor networks review [J].Journal of Electronics &Information Technology,2013,35 (1):215-223 (in Chinese).[钱志鸿,王义君.面向物联网的无线传感器网络综述[J].北京:电子与信息学报,2013,35 (1):215-223.]
[2]QIN Ling,HU Rongqiang.Node’s minimized efficient power protocols in wireless sensor networks[J].Journal of Wuhan University of Technology,2010,32 (2):112-114 (in Chinese).[秦岭,胡荣强.无线传感器网络节点的有效能耗最小化策略 [J].武汉理工大学学报,2010,32 (2):112-114.]
[3]PAN Hao,DONG Qifen,ZHANG Guijun,et al.The operating system of wireless sensor TinyOS [M].Beijing:Qinghua University Press,2011:7-80 (in Chinese).[潘浩,董齐芬,张贵军,等.无线传感器网络操作系统TingOS [M].北京:清华大学出版社,2011:7-80.]
[4]SU Lingyong.Research and implementation of wireless sensor network’s hardware platform [D].Jinan:Shandong University,2008:15-29(in Chinese).[苏令永.无线传感器网络硬件平台的研究与实现[D].济南:山东大学,2008:15-29.]
[5]YU Kai,XIE Zhijun,JIN Guang,et al.Design and Implementation of low-power wireless sensor network node [J].Microelectronics & Computer,2012,29 (9):157-163 (in Chinese).[于凯,谢志军,金光,等.低功耗无线传感器网络节点设计与实现 [J].微电子学与计算机,2012,29 (9):157-163.]
[6]IEEE Std 802.15.4TM-2009,Part15.4:Wireless medium access control(MAC)and physical Layer (PHY)for low-rate wireless personal area networks(LR-WPAN)[S].2009.
[7]WEI Hanming,LIU Wenyi,ZHANG Yanjun.Design of acquisition system based on wireless sensor network node [J].Computer Measurement and Control,2014,22 (9):2926-2930 (in Chinese).[魏汉明,刘文怡,张彦军.基于无线传感器网络节点采集存储系统设计 [J].计算机测量与控制,2014,22 (9):2926-2930.]
[8]XU Zhenfeng,YIN Jingjing,CHEN Xiaolin,et al.Design of wireless sensor networks based on ZigBee stack [J].Electronic Design Engineering,2012,20 (1):75-77(in Chinese).[徐振峰,尹晶晶,陈小林,等.基于ZigBee协议栈的无线传感器网络的设计[J].电子设计工程,2012,20 (1):75-77.]
[9]QIAN Zhihong,WANG Yijun.Internet of things-oriented wireless sensor networks review [J].Journal of Electronics &Information Technology,2013,35 (1):216-223 (in Chinese).[钱志鸿,王义君.面向物联网的无线传感器网络综述[J].电子与信息学报,2013,35 (1):216-223.]
[10]YANG Yong.The design of 6LoWPAN gateway based on Contiki[D].Wuhan:Central China Normal University,2013:29-41(in Chinese).[杨勇.基于Contiki的6LoWPAN 网关节点设计[D].武汉:华中师范大,2013:29-41.]
[11]SUN Xia,LIANG Wei,CHENG Hongbin,et al.Performance modeling analysis of energy consumption for 6LoWPAN[J].Microelectronics &Computer,2012,29 (11):79-81 (in Chinese).[孙霞,梁伟,程宏斌,等.6LoWPAN 网络能耗性能建模分析[J].微电子与计算机,2012,29 (11):79-81.]
[12]YUAN Xia,LUO Kelu.Design of smart home gateway based on STM32 and CC2520 [J].Microcontrollers& Embedded Systems,2013,5 (13):70-73 (in Chinese). [袁霞,罗克露.STM32和CC2520的智能家居系统网关设计 [J].单片机与嵌入式系统应用,2013,5 (13):70-73.]
[13]AnarA Hady,Sherine M AbdEI-kader,Hussein S Eissa.Intelligent sleeping mechanism for wireless senor networks[J].Enyptian Informatics Journal,2013,14 (2):109-115.
[14]LI Shihan,BAI Yuebin,QIAN Depei.Research on software technology for wireless sensor networks[J].Application Research of Computer.2007 (1):1-4 (in Chines). [李世晗,白跃彬,钱德沛.无线传感器网络软件研究 [J].计算机应用研究,2007 (1):1-4.]