基于CC2530的Zig Bee网络节点的低功耗设计
2014-10-10张文静
张文静
(沈阳工学院信息与控制学院,辽宁 抚顺113122)
0 引言
无线传感器网络是由大量集成了传感、数据、收集、处理和无线通信能力的小体积、低成本的传感器节点构成的自组织网络,广泛应用于军事国防、国家安全、环境检测等领域[1]。无线传感器网络主要由传感器节点、汇聚节点、任务管理节点构成。在无线传感器网络中,节点因采用电池供电而能量受限,因此,节点的低功耗设计成为无线传感器网络需要关注的重点因素之一。
ZigBee网络的出现填补了无线通信市场上低成本、低功耗设备领域的空缺,目前已经有上百家半导体、通信领域的公司加入了ZigBee联盟,具有很大的市场潜力。本文主要分析基于CC2530芯片的Zig Bee网络节点低功耗的设计方法。
1 节点低功耗问题
ZigBee技术本身就是一种低功耗的无线数据传输技术,在其协议栈的编写过程中,已经对其电源的使用进行了管理。在网络中低功耗方式仅用于由电池供电的终端设备,对于协调器和路由器来说,它们需要维持网络的存在及路由,需要时时刻刻处于工作状态,因此需要使用主电源供电,不存在低功耗状态。
节点电源管理主要针对的是利用电池供电的终端设备,尽量减少其短暂无线电通信之间的功耗。通常,一个终端设备在禁用功耗的外设和空闲期间进入睡眠模式。Z-Stack还提供了2种睡眠模式,轻度休眠和深度休眠。轻度睡眠在系统需要唤醒去执行与预定时间延迟的活动时被使用。深度睡眠被使用的是没有未来的活动计划,需要外部刺激(如按一个按钮)唤醒设备时。轻度睡眠普遍降低功耗到几毫安,而深度睡眠减少到几微安。睡眠的终端设备的例子产品包括传感器,它被定时地唤醒以报到它们采集到的信息,还有远程控制设备,它被用户按键唤醒发送邮件。这些类型的设备的共同特点是:它们大部分时间处于睡眠模式,最大限度地减少功耗。
但是仅有这些电源管理是不够的,虽然终端节点可以进行睡眠状态,但是在整个数据实时采集系统中,毕竟处于睡眠状态的时间是非常短暂的,而对于终端节点来说,发送和接收数据是能耗最大的时刻,因此还应该采取其他方面(包括软件、硬件)的设计,进一步减少节点的功耗,保证节点的寿命。
2 硬件设计
2.1 微控制器的选择
根据目前市场几个公司提供的Zig Bee通信协议产品特点[2],目前市场上Zig Bee芯片的制造商主要有Freescale、TI、Ember、Jenic。芯片的主要特点如表1所示。通过表中数据可知,CC2530芯片较为合适。TI/chipcon公司的CC2530芯片,采用标准的8051微处理器,微控制器提供时钟分配及电源管理等功能,且根据使用需求不同,其存储器大小可调,使用方便,其他几家生产的Zig Bee芯片都采用自己的微处理器。而采用8051内核的芯片,无需重新学习微处理器结构原理,无需重新熟悉编译/调试工具;对片上系统的I/O、定时器、A/D、PWM、看门狗等,也无需重新学习。
表1 Zig Bee主流芯片参数比较
结合表1所示,从Zig Bee芯片微处理器性能[3]、协议栈及市场价格到最后的开发成本以及对芯片内核的熟悉程度等方面综合考虑,本文最后采用TI公司提供的CC2530模块。该模块存储容量大,并且采用大家熟悉的8051处理器内核,性能满足工业、农业等领域需求,其较低的价格,符合低成本开发、低功耗的要求。
2.2 硬件总体设计方案
根据所选择的微处理器,低功耗节点的硬件总体设计方案如图1所示。微处理器CC2530本身带有射频功能,所以不需要外加射频芯片,CC2530通过I/O口与按键单元、测温单元、串口芯片相联,实现按键的读取、温度传感器的读写、信息的传输。CC2530有32 MHz与32.768 k Hz 2个晶振。
图1 硬件总体设计方案
3 软件设计
从数据采集系统的整个应用环境分析,为了能够将系统功耗降到最小,除了需要在硬件上做一些合理的设计外,更重要的是通过软件设计来降低,这样可以减少整个系统的成本开销。
由于传感器节点长期被放到需要检测的位置,负责采集数据,影响到整个检测系统的性能。对于传感器节点来说,可以使用电池进行供电,能量消耗最大的时刻就是在数据发送和接收的时候,而在其他时刻可以使传感器节点进行数据采集就可以。
在Zig Bee网络协议栈中,为了减小系统的功耗,已经在程序中有一部分的设计。此部分设计如下,主要包含在以下3个文件中:
(1)OSAL_Pwr Mgr.h OSAL电源管理的 API头文件;
(2)OSAL_Pwr Mgr.C OSAL电源管理的 API C文件;
(3)hal_sleep.c底层的电源管理文件。
这3个文件主要是定义了进行的任务是否需要进入低功耗功能、怎么进入低功耗功能以及如何唤醒休眠状态等,这些都是在网络层进行的设置。
对于应用层来说,前面已经介绍过对于传感器节点与汇聚节点来说,消耗能量最大的时刻即为发送和接收阶段,那么当节点在不需要进行信息发送和接收的时候,让节点进入系统休眠阶段,这样就可以降低节点的功耗。同时减少接收和发送数据的次数,也可以减少节点运行的功耗,从而保证节点能够长时间运行。设计低功耗部分程序的流程如图2所示。
图2 软件设计流程图
4 系统测试
本设计中使用万用表进行节点电流的测试,以确定节点的相应特性。我们只测试终端节点的电流消耗,即负责进行数据采集的传感器节点的电流消耗测试。
对于无线传感器网络来说,终端节点使用2节5号电池进行供电,节点入网后即处于休眠状态,使用万用表对节点芯片进行测试,可以得出以下数据:测得休眠时候的电流仅为0.95 mA,在节点发送命令或者数据给协调器或路由器的瞬间,电流为27 mA,发送完毕后,节点定时休眠,定时醒来再次发送提取处理结果。无论在有数据传输还是无数据传输时,终端节点运行过程中的平均电流最高为8.8 mA,假设网络协调器每2 min请求传送数据1次,传感器节点接收请求和处理的时间为2 000 ms,则节点的工作能耗为:
每日总能耗不会超过3.6 mAh,其他传感器节点数据发送频率等于或低于此。使用容量为1 200 mAh的2节7号或者5号电池可供电时间为:
根据式(2)计算,可供电近2年,因此满足了系统的低功耗需求。参数如表2所示。
表2 参数测试表
5 结语
为了实现基于ZigBee的低功耗、高性能的无线传感器节点,选择CC2530芯片作为控制器,在硬件设计与软件设计中采取了一些降低功耗的方法,在软件设计中,通过降低节点发送数据与接收数据的次数,来降低节点在运行过程中的功耗。实验结果表明,节点具有良好的低功耗特性。
[1]孙亭,杨永田,李立宏.无线传感器网络技术发展现状[J].电子技术应用,2006(6)
[2]李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京航空航天大学出版社,2007
[3]Gang Ding,Sahinoglu Z,Bhargava B,et al.Reliable broadcast in Zig Bee net wor ks[R].2005 Second Annual IEEE Co mmunications Society Conference on Sensor and Ad Hoc Co mmunications and Net wor ks,2005