无线传感器网络低功耗设计可从三个方面进行:一是硬件设计低功耗,即通过低功耗芯片选型、低功耗电路设计技巧运用等多种手段降低系统功耗;二是工作模式低功耗,这是低功耗设计中最主要的手段,也是最有效的,它通过转换节点模块“休眠-唤醒”的工作状态实现功耗控制,可以采用节点时间同步、主机模式控制等方法达到降低功耗的目的;三是软件设计低功耗,即在无线传感器网络开发过程中,从软件着手,通过优化程序设计、切换芯片功耗模式、采用中断驱动模式等手段降低系统功耗,从原理上讲工作模式低功耗设计也是软件设计低功耗的一种。
针对某传感器网络应用中,由于小范围内包含大量聚集的传感器节点,且数据采集时间随机,传统Mesh型(网状)网络拓扑结构和基于时间同步算法的星型传感器网络难以实现,而采用基于星型拓扑结构和主机轮询的网络工作模式,能够有效满足系统需求,并可以实现低功耗的系统设计。具体开发中,采用无线微控制器CC1110作为主控芯片,综合硬件设计低功耗、工作模式低功耗和软件设计低功耗实现了系统的低功耗设计。
1 系统组成及硬件电路设计
图1为基于CC1110的无线传感器网络系统结构框图,以节点控制器为核心,与无线节点模块组成星型拓扑结构的网络。节点模块以CC1110为控制核心,一方面控制传感器进行数据采集,另一方面完成与节点控制器的无线通信,接受节点控制器的控制。节点电源模块包含充电电路、可充电电池、多级电源芯片等,是电路低功耗设计的硬件基础。
节点模块采用电池独立供电模式,可以利用无线充电或者太阳能充电,大大扩展了这种传感器网络的应用范围和场合,并且设计中采用了紧缩的电路结构设计、小容量可充电电池以及微小封装外围芯片,所以整个节点模块体积非常小。图2为CC11l0传感器节点模块的电路原理图。采用CC1110为控制核心的优势在于:CC1110是一款低成本SoC,内部集成了一个增强型低功耗8051处理器内核和一个无线收发芯片CC1100,无线通信可工作在315/433/915 MHz的ISM(工业、科学和医学)和SRD(短距离设备)频率波段;芯片配合少量的外围器件,即可成为一个无线传感器网络的通信、控制核心。
图3为电池供电模块电路原理图,采用RICHTECH公司的低压差稳压芯片RT9161A-42CX,可输出4.2V电压和最大500mA电流,在驱动电流为100 mA时,典型压降为200 mV,能够提升无线充电和太阳能充电时的能量利用率。内置可充电电池容量为150 mA,能够满足系统能量需求,也可以有效减小模块的体积。
图4为CC1110电池电压检测电路及供电模块电路原理图。电池在满电状态下能够输出4.2 V的电压,这超出了CC1110正常工作时的最高电压3.9 V,所以需要在电池输出端添加一级的降压或者稳压的过程。可以采用两种方式:一是利用稳压二极管,这种方式简单有效,但是会造成功率的大量浪费,特别是稳压二极管前端一般需要一个限流电阻,在芯片休眠状态下,此电阻也会持续耗电,直至电池电压降到稳压二极管的击穿电压(比如3.9 V)这样电池从4.2 V到3.9 V的电量将被浪费;二是利用集成稳压芯片,应当选用有较高转化效率和较小自身功耗的芯片,这里选择RICHTECH公司的RT9013A-30PB,不仅具有极低的噪声适合RF应用,而且静态功耗只有25μA,可以大大减小系统的静态功耗。CC 1110电池电压检测及供电模块如图4所示。图4中的电阻分压电路是用来检测电池电量,接入CC1110的P0_7端口,利用内部的模数转换功能实现电池电量的监测,因为采用了芯片内的1.25 V基准电压作为参考,所以外部需要准确分压来计算电池电量,分压电阻也可以采用非精密电阻,这需要实际测量阻值并在电压计算中调整换算系数。
RT9013A-30PB还具有使能端口,能实现供电的开关控制,特别是作为传感器电源,在传感器没有低功耗模式时,可由控制器直接关断,实现极低的功耗。图5为RT9013A-30PB应用于外部传感器控制的电路原理图,需要注意的是,该款芯片最大能提供500 mA的电流。
通过硬件设计,包括电池充电电路、CC1110芯片供电电路、电压检测电路、传感器供电电路等,构建了系统低功耗的硬件基础。但实际工作时,CC1110在无线网络开启情况下工作电流一般能达到16 mA以上,所以进一步降低系统的平均功耗需要设计系统的低功耗工作模式。
2 基于“唤醒-侦听”的低功耗工作模式
CC1110具有4种低功耗模式,如表1所列。分别为PM0~PM3:在PM0模式下,CPU处于挂起状态,其他外设可处于工作状态;在PM1模式下,高速时钟源全部关闭,CPU和外设都不工作,数字寄存器中的内容不丢失,可以响应外部中断,系统处在低时钟状态工作,这时睡眠定时器工作,I/O保持配置状态;PM2模式为次低功耗模式,外部中断有效,低速振荡器工作,睡眠定时器工作,I/O保持配置,RAM中的内容和大部分功能寄存器内容保持,其他内部电路关闭,这种模式下可用睡眠定时器唤醒系统;PM3模式为系统最低功耗模式,内部数字稳压模块关闭,内部电路全部断电,只有复位、外部中断有效,I/O保持配置和输出状态,这时只能通过复位或者外部中断唤醒系统。
低功耗的无线节点采用的是PM2工作模式,因为PM3模式必须通过外部干预才能够唤醒,不符合设计要求。PM2模式的低功耗算法采用基于“唤醒-侦听”的工作方式,CC1110开始即进入PM2睡眠工作模式,待睡眠定时器完成计数后,唤醒系统进入全速工作状态,开启无线接收功能,侦听频道信息。如果接收到主机唤醒工作指令,那么恢复到正常工作状态,如果在设定的侦听时间内没有接收到主机指令或者非本机指令,则重新进入睡眠状态,并设定睡眠定时器进入下一次的“唤醒-侦听”循环。图6为“唤醒-侦听”无线节点低功耗的工作流程,其中无线节点在完成主机命令后,可在休眠指令下再次进入休眠模式。
针对上面思路设计的无线节点,在节点控制器唤醒程序设计时需要注意几点:一是因为节点的自主唤醒时间是随机的,所以节点控制器要在节点睡眠和唤醒时间内连续发送唤醒命令,这样如果节点设置较长的睡眠时间,那么可以有效降低系统的平均功耗,但是会增加节点控制器发送唤醒命令的时间,所以需要在功耗和性能之间权衡;二是当一个区域存在多个无线传感器节点时,可以设置多条控制命令,例如单个节点,或全部节点唤醒,或者全部节点睡眠。
3 测试计算
图7为节点模块的功耗测试电路实物图,包含了CC1110模块、无线充电模块、充电供电模块以及两路传感器供电模块。传感器的供电测试采用外接负载电阻的方式模拟。
系统应用中,设置节点的睡眠时间为2 s,节点唤醒时间为10 ms,节点活动时的平均电流为20 mA(开启无线收发,系统全速工作,不考虑传感器功耗),睡眠状态下测试节点的电流为0.2 mA(包含3路RT9013A-30PB以及整个CC1110模块)。可以计算出系统工作的平均电流为0.3 mA,则电池充满后,可以在待机情况下使用500小时。
结语
系统综合硬件电路设计和程序流程控制,提出了一种基于CC1110的无线传感器网络低功耗节点设计方法,可以为一定范围内多无线传感器节点的星状网络模式提供设计参考。此外,对稳压芯片选择以及功耗计算进行了分析探讨。最终设计得到的节点不仅具有较长的工作时间,而且体积小、成本低,适合应用于多种场合。