一种低功耗的无线瓦斯传感器节点设计
传感器上电后,需要60 s的热身时间。在这期间,传感器输出的不是浓度信息,一般为FFFF。60 s过后,传感器才输出正确的测量值。因此在设计读写传感器的程序时,等传感器上电1 min后,再向其发送数据查询及读取命令,否则读取的数据没有意义。
无线收发芯片CC2430有4种工作模式:PM0、PM1、PM2和PM3。其中PM3模式最省电,但只能被外部中断唤醒;PM2模式比较省功耗而且可以被定时唤醒。这里的低功耗设置是让CC2430工作于PM2模式。ZigBee协议栈的低功耗实现分为两个部分:一个是没有任务需要执行时,自动进入低功耗模式;另一个是CC2430周期性采集瓦斯浓度信息时的低功耗设计。ZigBee协议栈在进行任务轮询时,如果没有需要执行的任务,其会自动进入低功耗模式。具体实现是在协议栈主循环程序osal_start_system中调用osal_pwrmgr_powerconserve()低功耗函数。该函数把获取OS层timer下一次到时的时间作为参数,调用hal_sleep()进入PM2睡眠模式。如果当前没有任务,那么将进入PM3。在后续程序中,每次都设置一个传感器读取事件,即如果自动进入睡眠模式,则一定是进入PM2模式。睡眠前设置Timer2(睡眠定时器),醒来的时间刚好等于下次任务到来的时间,当完成任务后再次进入睡眠。
根据传感器的操作要求,设置无线瓦斯传感器按照以下的流程进行工作。节点处于工作/休眠交替状态,一个工作周期约为10 min。在前8分30秒中CC2430的P1.0引脚输出低电平,控制MIPEX传感器不工作。紧接着,CC2430进入低功耗运行模式。8分30秒过后,CC2430被唤醒,P1.0引脚输出高电平,即给MIPEX传感器供电。此时CC2430进入PM1低功耗模式。由于MIPEX传感器的热身时间为1min,这里设置70s后,CC2430被唤醒,开始读取MIPEX中的瓦斯浓度信息,然后将其无线发送出去。待发送完毕后,设置下一次瓦斯浓度读取事件,周期为20 s,这20 s内,CC2430自动进入低功耗模式。20 s之后,触发该事件,并送给应用层处理,开始了上述循环过程。程序设计的具体流程如图1所示。
无线瓦斯传感器节点的工作流程主要是在zb_HandieOsalEvent(events)编程实现的,具体程序为:
3 节点能耗估计
在所设计的电路中,消耗能量的部分是稳压电路、CC2430芯片和MIPEX传感器。CC2430芯片在一个工作/休眠周期(10 min)内,至少有8分30秒处于PM2低功耗状态,本文设定的是PM2低功耗状态,在此期间电流为0.9μA。有70 s的时间处于PM1低功耗状态,其余20 s处于PM0状态。MIPEX传感器正常工作时,其电流为1 mA。
一般电池的能量采用mAh的方法进行表示,为了便于估计所设计的节点电路工作寿命,这里也采用mAh的方法来表示能量。根据上面的分析,可以计算出在一个工作/休眠周期内,节点电路所消耗的能量。CC2430在一个周期的能耗约为:
Q1=0.9μA×510 s+0.2 mA×70 s+25 mA×20 s=514.459 mAs
MIPEX传感器在一个周期内的能耗约为:
Q2=1 mA×90 s=90 mAs
文中所设计的电路采用3节1.5 V电池供电,即输入为4.5 V,输出为3.3 V。MH5333稳压器的效率与其压差有关,线性稳压器件(LDO)的效率一般在85%~90%之问,且随着压差的减小,其效率会有所增加。这里假设其转换效率为85%,则整个节点电路在一个周期(10 min)内的能耗可以表示为:
一节普通5号电池的能量在600~700mAh,由此可以估算出所设计的节点电路在3节电池供电情况下的工作时间为:
由此可见,本文所设计的无线瓦斯传感器节点具有很低的能量消耗,3节普通5号电池供电的情况下,工作时间可达3 797天即10年之多。文中设定丁作/休眠周期可适当缩短,以提高监测情况的实时性。如果设置周期为5 min,那么工作时间也有5年左右。
传统的低功耗瓦斯传感元件功耗都在百mW以上,且有至少10 s的响应时间,所以仅传感元件本身的能耗就非常大。如果再加上信号放大电路、无线收发电路的能耗,仍没定工作/休眠周期为10 min,那么普通3节1.5 V电池仪能维持一个月左右。因此与传统瓦斯传感元件相比,MIPEX传感元件的低功耗性能表现非常优越。这也为低功耗无线瓦斯传感器节点实用化提供了一条行之有效的途径。
结语
本文采用低功耗红外瓦斯传感器MIPEX和CC2430设计的无线瓦斯传感器节点,能够维持足够长的工作时间,是采用传统低功耗瓦斯传感元件所远远不能达到的,这对于推进无线瓦斯传感器节点进一步走向实用化具有重要意义。不过论文所设计的传感器节点对瓦斯浓度响应的实时性有待进一步提高。当瓦斯浓度超限时,能够向CC2430发出中断触发信号,将其从休眠中唤醒。不过,需要增加硬件电路,才能实现该功能。传感器节点也可以根据瓦斯浓度的高低及变化速率.来确定其工作/休眠周期。如果瓦斯浓度低,且变化速率不大,则可以设置较长的工作/休眠周期;如果瓦斯浓度变化较大,则设置较短的工作/休眠周期;如果瓦斯浓度超限,则应处于实时工作状态。
无线传感器节点 ZigBee协议栈 红外甲烷传感器 MIPEX 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)