摘要:介绍了一种基于Sensor-Push协议的低功耗传感器网络系统的实现。该系统具有低功耗、低复杂度、高可靠性以及极强的扩展能力等特点,能够满足农业、环境监测、医疗等行业的大部分应用需求。
随着近年来各种传感器相关核心技术的日益成熟(包括微机械、数字模拟集成电路工艺、无线通信以及高密度电池等),无线传感器网络WSN(Wireless Sensor Networks)[1]逐渐成为研究的热点并得到了广泛应用。传感器网络的主要任务是对分布在传感区域的环境参数进行采集、处理并传输至用户终端。本文所介绍的低功耗传感器网络系统在有效完成以上任务的基础上,还具有低功耗、低复杂度、高可靠性以及极强的扩展能力等特点,能够满足农业、环境、建筑等行业的大部分应用需求。
该传感器网络系统由传感采集节点、网关节点以及远程用户终端组成,如图1所示。
其中,传感采集节点负责环境数据的采集和处理,并将数据传输至相应的网关节点。网络中的传感采集节点只能直接与其一跳范围之内的网关节点通信,并与相应的网关节点一起组成一个子网。
网关节点作为该子网的对外接口,负责收集其子网内所有传感采集节点的信息。整个网络中允许存在一个或多个网关及相应的子网。不同的子网采用不同频率进行通信,以相互区别并防止数据传输冲突。网关节点与远程用户终端可采用无线或有线的主干网络连接,可选择的方案包括无线IP网桥、有线以太网、移动网络等。网关节点与远程用户终端间的连接方案并不在本文的主要研究范畴之内,但本文给出了采用无线IP网桥的实现方法以供参考。
由于在大多数传感器网络应用中,传感采集节点数目众多、体积受限且分布在不易接触的工作环境中,而网关节点则数量相对较少且可以安放在更灵活的位置,因此,在系统设计中假定传感采集节点由普通小容量电池供电,而网关节点则可由交流电源或者大容量锂电池或蓄电池供电。在此条件下,网络的使用寿命主要由传感采集节点的功耗决定,即系统的低功耗主要体现在传感采集节点的低能耗上。
本设计从硬件设计以及网络协议两方面对传感节点的能耗进行了优化,从而保证传感采集节点在系统运作中的低功耗。在硬件设计方面,系统以TI公司低功耗射频单片机CC1110为核心;而网络协议则采用了自主研发的低功耗Sensor-Push传感器网络协议。
1 传感采集节点及网关节点的硬件设计
系统中的传感采集节点由核心电路板、电池以及传感器三部分组成,其实物如图2所示。核心电路板基于TI的低功耗射频单片机CC1110,它包括射频阻抗匹配电路、锂电池接口、外接电源接口、充电电路、线性电压转换电路、传感器接口、传感器电源控制电路、地址设定输入、节点状态指示等功能模块,如图3所示。其中,射频阻抗匹配电路完成CC1110输出至50Ω天线的阻抗转换;锂电池接口连接锂电池,用于提供整个传感采集节点的电源;外接电源接口连接外部直流电源输出,通过充电电路对锂电池实施充电;线性电压转换电路将锂电池电压转为系统所需工作电压;传感器接口连接外部传感器,对环境数据进行采集;传感器电源控制电路用于在空闲时期切断传感器电源供应以节省能源;地址设定通过不同的外部电阻组合配置节点地址;节点状态指示用于标识当前节点状态,包括连接状态及系统错误等。
为了支持低功耗应用,CC1110芯片除正常的Active模式外还支持四种省电模式,即PM0、PM1、PM2和PM3。在本网络协议中,传感采集节点存在以下三种工作状态:数据采集、数据传输及睡眠状态。其中,数据采集和数据传输均对应于CC1110的Active模式,在这两种状态下,节点工作于13MHz内部时钟或外部高频时钟。不同的是,在数据采集状态下,节点将使能传感器电源从而读取传感器数据;而在数据传输状态下,节点打开射频接口进行数据传输,此时可关闭传感器电源以节约能源;睡眠状态对应于芯片的PM2省电模式,CPU将停止工作而仅有内部睡眠定时器仍然处于工作状态,睡眠时钟可选择内部34kHz低频时钟或外部32.768kHz输入,芯片可借助内部睡眠时钟实现唤醒,在该状态下,由于所有外部接口均处于关闭状态,因此,系统电流可维持在10μA以内。借助于Sensor-Push传感器网络协议,节点将在大部分时间内保持在睡眠状态,从而保证了网络的低功耗。
网关节点可采取与传感采集节点相类似的硬件设计,但有以下同之处:
(1)网关节点除了与传感采集节点相通信外,还需要装备相应的无线或有线主干网络连接设备,本设计采用串口转以太网模块连接无线网桥实现远程通信;
(2)网关节点一般没有严格的体积限制,因此可装备大容量锂电池、蓄电池或者直接连接外部电源;
(3)网关节点一般不需要装备传感器模块;
(4)网关节点一般对内存空间有一定要求,需要能够缓存一定时间的节点传感信息。
2 低功耗Sensor-Push传感器网络协议
一个健壮、低功耗的网络协议是无线传感器网络系统运行的关键,本系统采取了自主研发的低功耗Sensor-Push传感器网络协议。该协议针对无线传感器网络的典型周期性数据采集应用进行深度优化,具有实现简单、自组织、低功耗、高可靠性、可扩展等特点。
2.1 传感器网络周期性数据采集应用的特点
在众多无线传感器网络应用中,周期性的数据采集最为典型。该类型的应用一般要求网络内的传感采集节点以一定的采样周期对感兴趣的环境数据进行采样,并在指定时间内将该采样数据传输至远程终端。一般情况下,其对数据延时并不敏感,节点只要能保证在下一个采样来临前将数据成功上传即可。传感采集节点通常只需和网关节点通信,而无需相互通信,如图1所示。
可根据该应用的数据特征对网络协议进行充分优化,从而更好地达到低功耗、高可靠性的设计要求。本文的Sensor-Push协议即在此背景下研究而成,协议中采集节点将主动向网关节点推入采样数据而无需网关节点进行控制或轮询,大大简化了上层应用的编写,提升了用户体验。
2.2 Sensor-Push协议详述
Sensor-Push协议是一个融合了传统意义上的媒体访问接入层及应用层的综合协议。该协议的主要创新点在于实现了低复杂度的时分媒体访问,并与推入方式为主的应用相结合,从而达到了系统层面的优化。该协议对物理层除要求使用无线射频技术外不做特殊要求,但推荐使用频移键控(FSK)或高斯频移键控(GFSK)方式的射频模块,并最好能够支持多个频点,以便在不同子网内配置不同的频点,在最大程度上防止子网间冲突,但这并非强制要求。
与其他协议一样,Sensor-Push协议同样要求网络内的节点拥有唯一的节点地址。协议中的节点地址由子网ID与网内ID拼接组成,其具体位长由网络设计要求决定。例如,假定网络所要求支持的最大子网数目为4,每个子网内支持的节点数目为64,那么节点地址可选择为1B,其中高2bit表示节点所处的子网编号,而低6bit则表示了节点在相应子网内的序列号。在具体实现中,节点地址可事先烧录或通过焊接不同上下拉电阻改变外部IO管脚电平的方式为每个节点分配唯一的地址,当然实现方法也并不局限于此。为区别传感采集节点及网关节点,本设计限定网关节点的网内ID为全0。
Sensor-Push协议从媒体介入角度上看,属于时分接入协议,与常用的CSMA协议相比,时分协议能更加有效地防止冲突且具有更高的能源利用率,这在节点密度较高的传感器网络应用中尤为突出。根据周期性数据采集的特点,协议将时间分为长度以Tp为采样间隔的各个传输周期,在每个传输周期内再分割为以Tl为间隔的n个时隙,如图4所示。
时钟同步及时隙分配是时分协议的两个研究重点,在这里,为叙述方便,假定时钟同步已经完成,首先对时隙分配进行介绍:Sensor-Push协议规定传感采集节点根据自身的网内ID确定其所拥有的时隙,并在该时隙内进行采样数据传输。例如,网内ID为2的节点将在时隙2内发送采样数据。需要说明的是,为保证节点分配的时隙不重叠,实现中应设定单周期内时隙数目n≥子网内的所允许的最大节点数目。
由于数据流主要从传感采集节点发送至网关节点,因此协议中并未给网关节点分配时隙。由于网关节点供电状态较好且对能源利用率要求相对较低,为简化实现,网关节点将一直处于接收状态以接收任何可能的数据包。与网关节点不同,传感采集节点将仅在其所拥有的时隙内向网关节点发送包含传感信息的数据包。为提高数据传输的可靠性,传感采集节点在发送完数据包后还将等待网关节点发回的应答包(ACK数据包)以确定数据的正确接收。在此过程中,传感节点可设置一定的超时时间Tack,如在该时间内仍然未接收到应答包,传感节点可选择进行重发直至到达最大重发上限Nretry。应答包是网关节点向传感采集节点发送的主要数据包,它除了进行数据包确认外,另一个重要功能就是嵌入网关节点需要发送给传感采集节点的信息。
实现时钟同步的核心在于确保网关节点能够周期性地向传感采集节点广播参考时钟。在Sensor-Push协议中,将时间戳嵌入应答包中,传感节点在确定传感数据被正确接收的同时,能够获得网关节点发来的参考时钟信息。在获得参考时钟后,传感节点可采用一定的同步算法[2-4]进行时钟调整,从而实现与参考时钟的同步。同步算法的选择可根据应用所要求的同步精度以及节点处理能力而定。若传感网络应用本身对采样时间精度没有特殊要求,那么协议的时钟同步的精度无需太高,仅需保证能够正常运行该时分协议即可,因而建议采用最简单的延时估计TTP算法[2]以降低实现的复杂度。
应答包除了嵌入时钟信息外,甚至还可以嵌入用户发送给网络的控制命令及动态参数等,如网络的采样周期Tp、时隙宽度Tl等。因此,用户可以在远程直接对网络参数进行调整和优化,从而具有更强的灵活度和可扩展性。时隙宽度Tl的最小值受到时钟精度、采样数据包和应答包的传输时间的限制,一般要求Tl大于正常情况下的时钟最大误差与Nretry个采样数据包以及应答包的传输时间之和。
Sensor-Push的时分机制有效地防止了节点间数据传输的冲突,消除了由于冲撞而导致的数据丢失或重发,因此通常情况下,传感采集节点仅需在每个采样周期进行一次传感数据采集、一次传感数据包发送以及一次应答包的接收即可,而在其余时间内均可处于能耗极低的睡眠模式,具有低功耗的特性。为进一步消除由于信道环境变化所导致的少量丢包,Sensor-Push协议使用了重发机制,因而能够具有更高的可靠性。
3 应用实例的设计参数及实现
本系统的实例应用环境为某林园内1000m2范围内的温湿度监测,采样间隔为30min,最大支持的传感采集节点数目为32,采样数据需传输至位于1km外的远端服务器。在系统设计中,使用了TI公司的CC1110芯片,将传输频点定为433MHz,采用1.2Kb/s Machester编码及GFSK调制以获得最远的传输距离及最低的误码率。在本应用中,由于监测范围不大,所有节点均可与网关节点直接通信,因而网络中仅存在一个子网。网关节点通过串口转以太网模块连接无线网桥与1km外的另一个无线网桥进行直接通信。在Sensor-Push协议实现上,将采样周期Tp设定为30min、时隙宽度Tl设定为5s、超时时间为500ms、最大重传次数Nretry为3、传感信息的数据包为15B、应答包亦为15B。应用中采样的温湿度传感器需要开启1s后才能获得准确的数据,因而数据采集将持续1s时间。
在上述条件下,传感采集节点的平均消耗电流Iavg约为15μA,其计算如下:
Iavg=(5mA×1s+33mA×0.1s+20mA×0.1s)/30×60s+10μA=15μA
其中,5mA为数据采集状态下的系统所消耗的电流;1s为节点处于数据采集状态下的时间;33mA为节点发送传感数据包时的工作电流;0.1s为数据包的发送时间或应答包的接收时间;20mA为节点接收应答包时的工作电流;10μA为传感节点处于睡眠状态下系统消耗电流。根据以上计算,在配备400mAh锂电池的情况下,传感采集节点可持续工作3年。
参考文献
[1] AKYILDIZIF,SUW,SANKARASUBRAMANIAMY,et al. A survey on sensor networks[J]. IEEE Communications Magazine,2002,40(8):102-114.
[2] ARVINDK. Probabilistic clock synchronization in distributed systems[J]. IEEE Transactions on Parallel and Distributed Systems,1994,5(5):474-487.
[3] ELSONJ,GIRODL,ESTRIND. Fine-grained network time synchronization using reference broadcasts[A]. Proceedings of Fifth Symposium on Operating Systems Design and Implementation (OSDI0 2002)[C]. 2002:147-163.
[4] Su Ping. Delay measurement time synchronization for wireless sensor networks. IRB-TR-03,Intel Research,june 2003.