APP下载

基于Contiki OS 的低功耗无线传感器网络节点设计

2015-11-26刘嘉宇高德云

计算机与现代化 2015年3期
关键词:低功耗温湿度数据包

刘嘉宇,高德云

(北京交通大学电子信息工程学院,北京 100044)

0 引言

无线传感器网络[1-2](Wireless Sensor Network,WSN)是一种由大量分布于特定区域的节点构成的分布式系统,节点通过协作的方式对其所在区域环境进行监测或控制。由于其可广泛应用于环境监测与控制、动物监控、健康监护、仓库管理等场合[3-6],已经成为物联网的一个重要组成部分。无线传感器节点体积受限,使其携带的能量受到极大的限制,又由于节点通常部署于难以接近的场所,无法频繁地更换电池,因此在无线传感器网络设计中,必须要其节点具有低功耗的特性,网络设计也必须首先考虑能量因素[7-9]。

传统的无线传感器节点软件通常采用前后台的软件设计思想,系统在后台循环中处理任务,通过中断(前台)来响应外部事件。这样的设计较容易实现,但缺乏模块化,使得移植较为困难,且不易新增加功能,任务间没有有效的通信机制。Contiki OS[10-12]是一种适用于资源受限环境下的无线传感器网络操作系统,它使得无线传感器节点软件设计摆脱了传统的前后台设计思想,通过操作系统实现多任务管理与调度,资源分配与进程间通信。

1 节点硬件设计

合理的硬件设计是系统高效稳定工作的基础,本文实现的节点由微处理器模块、IEEE802.15.4 射频模块、传感器模块、配置存储器模块与能量供应及评估模块构成。节点的硬件结构框图如图1 所示。

图1 节点硬件结构框图

1.1 微处理器模块

微处理器是整个节点的核心。微处理器利用其计算能力进行无线网络的组网,计算路由信息;利用其存储能力进行程序及数据的存储,暂存其他节点发来的数据包用以转发;利用其各类总线接口与各类其他模块进行互联,控制其他模块的工作。

本文以低功耗为重点,兼顾处理能力,存储容量及总线接口情况,选用TI 公司的16 位微功耗处理器MSP430F5438A[13]。该处理器拥有16 bit 位宽,最大运行频率为25 MHz,具有256 kB Flash 与16 kB RAM 及丰富的总线接口;在活动模式下,每MHz 功耗仅为230 uA。此外,该款微处理器支持多种LPM(Low Power Mode,低功耗模式),可进一步降低系统功耗。

1.2 IEEE802.15.4 射频模块

IEEE802.15.4 射频模块用于处理微处理器模块传来指令集数据,将物理层载荷经调制后以电磁波的形式发送至空间,同时接收其他节点发送来的无线数据包,经解调还原为物理层载荷供微处理器模块处理。常见的射频通信芯片总结见表1。

表1 常用射频芯片对比表

由表1,本文IEEE802.15.4 无线通信模块采用Atmel 公司的AT86RF231[14]芯片。它除了具有巨大的功耗优势之外,还支持IEEE802.15.4MAC 层加速功能,可自动进行MAC 确认帧发送,CSMA/CA 及帧重传,自动进行地址匹配及FCS(Frame Check Sequence,帧校验序列)计算。它具备128 bit 硬件AES加密的计算能力,可提高网络安全性。

AT86RF231 可以直接使用集成Balun(Balance-Unbalance Converter,双向式平衡至非平衡转换器)2450FB15L0001 进行信号匹配,不需要设计分立元件组成Balun。2450FB15L0001 可将AR86RF231 射频前端的100 Ω 差分阻抗转换为天线系统所需要的50 Ω 单端特征阻抗。AR86RF231 使用4 线SPI 的方式与微处理器模块进行通信,此外还需要占用主机2 个GPIO 对其进行状态/休眠控制,一个外部中断引脚进行中断请求。

1.3 传感器模块

本文选择高精度数字温湿度传感器SHT21[15]与数字光强传感器TSL2561[16]进行环境数据采集。SHT21 是一款集成的数字温湿度计,其分辨率可通过命令编程进行改变。可配置输出校验和,保证数据完成性,传感器自带有I2C 接口,在测量状态仅需要消耗300 uA 的电流,非常适合在能量受限的无线传感器节点上使用。光强传感器TSL2561 也是一款数字传感器,通过I2C 接口与微处理器相连接。传感器具有2 个宽带光敏二极管,分别对应可见光与红外光,通过一定的公式可将2 个通道的数字输出转换为当前的光强值。

I2C 总线简化了传感器与微处理器模块的连接。SHT21 及TSL2561 分别占用了微处理器的USCI 的B0/B1 接口模块。由于I2C 总线具有开漏特性,需要在总线的引脚上加上拉电阻使得其能输出高电平。

1.4 能量管理模块

本文的无线传感器节点采用锂聚合物电池供电,与其他电池相比,其能量大,且3.7 V 的放电平台高,配合低压差稳压电路,在其整个放电区间内几乎都能为节点供电,效率高。受节点体积限制,使用电池容量为1500 mAh。本文采用Linear Technology 公司的LT1761-3.0 作为低压差稳压器(LDO),其静态电流极低,仅20 uA,能在节点自供电的情况下节约宝贵的能量。

锂离子电池的充电方式为CC-CV,即恒流-恒压方式。本文采用南京拓微集成公司的TP4056 对节点电池进行充电。由于USB2.0 接口能提供的最大电流为500 mA,为了保护接口,将其恒流阶段电流设置为400 mA,TP4056 Pin2 的编程电阻RProg=3 kΩ。

图2 DS2762 模块电路原理图

为了进行精确的能量管理,准确知道节点消耗的电流,本文使用独立的电池监测芯片DS2762。在对节点能量进行监测的同时,也能提供锂电池过充、过放保护,提高安全性。DS2762[17]模块电路原理图如图2 所示。

DS2762 的SNS 引脚与VSS 引脚在芯片内部串联有一个25 mΩ 的检流电阻,通过电阻两端的电压采样,可知流入或流出电池的电流大小。电流值对时间积分可得电池的充电或放电容量。其1,3 引脚分别控制一个低开启电压低导通电阻的PMOS 管,当发生过压、过流等危险情况时,相应引脚输出高电平,MOS 管关断,将电池从电路中断开,有效保护电池。图3 为整个节点的实物图。

图3 低功耗无线传感器网络节点实物图

2 节点软件设计

本文无线传感器节点运行Contiki 操作系统。Contiki 是一个小型的非抢占非实时开源操作系统,任务(进程)间采用共享堆栈的方式,上下文切换时采用2 字节来保存现场,充分节约系统资源。模块化的设计使其易于裁剪与移植,系统支持uIP 及Rime协议栈,方便进行网络互联。这些特点使其非常适用于无线传感器网络。

2.1 Contiki OS 平台设计

Contiki OS 代码完全由C 语言编写,这种设计降低了其移植难度。本文采用IAR Embedded Workbench for MSP430 v5.4.03 作为软件集成开发环境。

不同硬件配置在Contiki OS 中反映为不同的Platform(平台),Platform 下的代码与节点使用的硬件紧密相关。本文为第一节介绍的传感器节点硬件在Contiki OS 新添加一个Platform,称为MSN(Mobile Sensor Node)。

节点时钟源采用MSP430F5438A 内部的REFO,它是一个经过校准的RC 振荡器。REFO 直接作为MSP430 的ACLK(Auxiliary Clock,辅助时钟);同时REFO 还经过FLL 倍频之后由DCO 输出作为MCLK(Master Clock,主时钟),DCO 时钟输出分频之后作为SMCLK(Sub-Main Clock,子系统时钟)。MCLK 时钟频率约为4 MHz,SMCLK 时钟频率约为2 MHz,ACLK时钟频率为32.768 kHz。

在此之后初始化UART(通用异步收发传输器)模块与能量评估模块。UART 模块用于显示调试信息与进行节点的配置。能量评估模块用于测量无线传感器节点剩余能量,为上层路由协议运行提供相关信息。随后判断外置配置存储器配置引脚的电平,以决定进入节点配置写入模式或读取模式。正常状态下,节点从配置存储器中读取自身配置信息,并加载至Contiki 操作系统。随后进行IEEE802.15.4 射频模块初始化,IEEE802.15.4 MAC 层初始化与网络层的初始化。

随后初始化系统的定时器,Contiki 操作系统使用etimer 事件定时器来产生系统节拍,驱动操作系统的运行。MSN 平台上,系统时钟节拍的频率为128 Hz,即每秒钟产生128 次时钟中断。etimer 利用MSP430F5438A 的Timer B0 实现,使用ACLK 时钟源经分频得到。此后,启动TCP/IP 进程,用于处理TCP/IP 数据包的发送与接收,随后启动其他自启动进程链表中包含的进程,包含传感器数据采集进程,网络协议进程等。完成以上的操作之后,操作系统启动完成,进入实际的任务处理过程,Contiki 操作系统依次检查进程是否需要处理,是否有定时器到期,并根据其调度算法选择一个进程进行执行。Contiki OS运行流程图如图4 所示。

图4 Contiki OS 运行流程图

2.2 温湿度光强信息采集进程

Contiki OS 使用轻量级的Protothreads 模型进程编程。本文编写程序,采集传感器信息,发送至网关,程序流程图如图5 所示。

图5 传感器信息采集发送流程图

程序首先声明sensor_process,并将其加入自动启动进程列表。之后初始化SHT21 温湿度传感器及TSL2561 数字光强传感器。设定一个etimer,用于传感器事件的定时。本文中定时间隔设置为30 s。等待etimer 到期使用系统宏PROCESS_WAIT_EVENT(),调用该宏导致本进程挂起,系统进行任务调度,并等待定时器超时。待定时器到期事件PROCESS_EVENT_TIMER 发生,读取传感器输出信息,包括温度、湿度及2 个通道的光强信息,之后调用协议栈数据发送函数collect_common_send(),向网关通过UDP 数据包发送传感器信息,UDP 数据包的载荷格式如图6 所示。发送完成后,重新设定etimer,程序循环。

图6 节点发送UDP 数据包载荷格式

采集到的温湿度及光强数据通过UDP 数据报发送,温度,湿度及2 个通道的光强数据均为16 bit,按照大端顺序组包发送。序列号占用8 bit,节点类型、簇首编号、簇成员编号与节点组网时进行的分簇有关,各占用8 bit,整个UDP 数据包载荷为12 Byte。

3 实验测试

搭建测试平台对本文节点进行测试,实验中,将约80 个节点密集地部署于建筑内,节点采集建筑物内温湿度光强信息,节点间采用IEEE802.15.4 协议进行通信,将采集得到的数据发送至Sink(汇聚)节点,Sink 与高性能节点通过USB 接口以SLIP 协议通信,高性能节点间使用IEEE802.11 协议进行通信。高性能节点最终将数据汇聚至网关,网关经以太网将数据传递至服务器进行存储并显示。测试使用的网络拓扑如图7 所示。

图7 多点环境监控测试网络拓扑图

使用IEEE802.15.4 数据包嗅探器捕获节点发送的数据包,并使用Wireshark 软件进行分析,一个典型的数据包如图8 所示。

图8 Wireshark 捕获到数据包图

这是一个UDP 数据包,发送的12 Byte 数据格式如图8 所示,包含节点类型、序列号及传感器信息等。数据由节点3ffe:3240:8007:d708:4613::发送至3ffe:3240:8007:d708:4600::,适配层采用6LoWPAN[18]协议,数据链路层采用IEEE802.15.4协议。

本文还对节点功耗进行测试。在节点设计中,处理器(CPU)模块及IEEE802.15.4 射频模块设计了单独的跳线。将跳线替换为小阻值的检流电阻,可使用万用表对电流进行测量。实验中,微处理器频率为4 MHz,射频发送功率为0 dBm,接收灵敏度设置为最大高-101 dBm,使用检流电阻阻值为2.2 Ω,测试仪器为胜利万用表VC86D。测试结果如表2 所示。

表2 不同状态下节点功耗(单位:mA)

4 结束语

本文设计并实现了一款采用MSP430 系列单片机与AT86RF231 射频芯片的低功耗无线传感器网络节点。详细描述节点各模块的选型及设计,并设计软件平台,在节点上实现Contiki OS 的运行与环境信息采集发送。通过搭建实验环境,进行多点环境信息采集实验与节点功耗测试,证明节点能按照预期组网完成温湿度光强监测功能,同时具备低功耗特性,具有较强的实用性。

[1]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005:5-10.

[2]Akyildiz I F,Su W,Sankarasubramanian Y,et al.Wireless sensor networks:A survey[J].Computer Networks,2002,38:393-422.

[3]Torfs T,Sterken T,Brebels S,et al.Low power wireless sensor network for building monitoring[J].IEEE Sensors Journal,2013,13(3):909-915.

[4]Bellavista P,Cardone G,Corradi A,et al.Convergence of MANET and WSN in IOT urban scenarios[J].IEEE Sensors Journal,2013,13(10):3558-3567.

[5]Cao Xianghui,Xiao Yang,Sun Youxian.Building-environment control with wireless sensor and actuator networks:Centralized versus distributed[J].IEEE Transactions on Industrial Electronics,2010,57(11):3596-3605.

[6]翟海翔,陈敏克,焦彩菊,等.基于Zigbee 技术的温室多参数采集节点设计[J].农业网络信息,2014(9):45-48.

[7]Hempstead M,Lyons M J,Brooks D,et al.Survey of hardware systems for wireless sensor networks[J].Journal of Low Power Electronics,2008,4:11-20.

[8]Somov A,Baranov A,Spirjakin D,et al.Circuit design and power consumption analysis of wireless gas sensor nodes:One-sensor versus two-sensor approach[J].IEEESensors Journal,2014,14(6):2056-2063.

[9]李小敏,臧英,罗锡文,等.基于发射功率自适应的稻田无线传感器网络节点设计[J].农业工程学报,2014,30(7):140-146.

[10]Dunkels A,Gronvall B,Voigt T.Contiki-a lightweight and flexible operating system for tiny networked sensors[C]//Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks.2004:455-462.

[11]Oikonomou G,Phillips I.Experiences from porting the Contiki operating system to a popular hardware platform[C]// Proceedings of the 2011 International Conference on Distributed Computing in Sensor Systems and Workshops.2011:1-6.

[12]张岩.基于Contiki 系统的物联网应用平台设计与实现[D].哈尔滨:哈尔滨工程大学,2013.

[13]Texas Instruments.MSP430F543xA,MSP430F541xA Mixed Signal Microcontroller[EB/OL].http://www.ti.com/lit/ds/symlink/msp430f5438a.pdf,2014-11-01.

[14]Atmel Corporation.AT86RF231/ZU/ZF Datasheet[EB/OL].http://www.atmel.com/images/doc8111.pdf,2014-11-01.

[15]Sensirion.Datasheet SHT21[EB/OL].http://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/Humidity/Sensirion_Humidity_SHT21_Datasheet_V4.pdf,2014-11-01.

[16]TAOS.TSL2561,TSL2561 Light-to-Digial Convert[EB/OL].http://www.taosinc.com/getfile.aspx?type=press&file=tsl2560-e58.pdf,2014-11-01.

[17]Maxim.DS2762 High-Precision Li+Battery Monitor With Alerts [EB/OL].http://datasheets.maximintegrated.com/en/ds/DS2762.pdf,2014-11-01.

[18]朱晓荣,李凤国.基于Contiki 的6LoWPAN 适配层的研究与实现[J].信息通信技术,2013(3):66-70.

猜你喜欢

低功耗温湿度数据包
温湿度控制器在回收砂冷却系统中的应用
一种高速低功耗比较器设计
基于DSP的多路温湿度监测系统
SmartSniff
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
ADI推出三款超低功耗多通道ADC
IDT针对下一代无线通信推出低功耗IQ调制器
低功耗加权cache替换策略
视觉注意的数据包优先级排序策略研究