基于nRF24L01的超低功耗无线传感器网络节点设计
2009-01-06
作者:曾 勇,杨 涛,冯月晖
??? 摘 要: 基于低功耗nRF24L01无线收发器和MSP430F449单片机,采用短时突发式无线发射技术和低功耗休眠机制,设计一种超低功耗的传感器节点。测量结果表明,在电源电压为3.3V、平均数据率为1kb/s、发送功率为0dBmW、传输距离为10m、误帧率为0.12%时,本系统平均功耗约42μW,可以应用于光照、振动、热和气流等环境能量供电的无线传感器网络。
??? 关键词: 无线传感器网络;低功耗;nRF24L01;MSP430F449
?
??? 无线传感器网络作为信息技术领域的一项新技术,在军事监控、地震与气候预测、数字农业、医疗监控等领域得到广泛应用[1]。其中加州大学伯克利分校研制的MOTE[2]传感器节点,如MICA2、MICAZ、TELOS等,是无线传感器网络节点的典型结构。无线传感节点一般采用电池供电,对于节点数目庞大的传感器网络,电池更换非常困难,所以降低节点功耗可以延长节点的寿命。
??? 在保证整个无线传感器网络节点性能的前提下,设计一种超低功耗的无线传感器网络节点,采用超低功耗短时突发式无线发射技术、低功耗休眠机制等,使节点功耗最小,一方面可以延长电池的使用寿命,另一方面还可以采用光照、振动、热和气流等环境能量供电。
1 传感器网络节点的体系结构
??? 传感器网络节点,一般由数据采集(由传感器和模数转换功能模块组成)、数据处理(由嵌入式系统构成,包括处理器、存储器、嵌入式操作系统等)、数据传输(由无线通信模块组成)和电源四部分组成。本系统中,信息处理和控制单元采用内置A/D转换器的超低功耗微控制器MSP430F449;数据传输模块采用超低功耗的nRF24L01射频收发模块;数据采集模块采用低功耗数字式温湿度传感器SHT11,可根据被监测的物理信号要求选择其他类型的低功耗传感器。
2 无线传感器网络节点低功耗设计
2.1 微处理器模块
??? 基于CMOS工艺的微处理器的功耗基本满足:
??? P=CV2f????????????????????????????????????????????? (1)
其中,C为系统的负载电容,V为电源电压,f为系统的工作频率。系统的负载电容一般是不变的,所以在不影响系统工作性能的情况下,选用较低的工作电压和工作频率可以有效降低系统的功耗。
??? 本设计选用了TI公司推出的一款16位超低功耗单片机MSP430F449[3],其工作电压范围为1.8V~3.6V,并且采用三套独立的时钟源,包括高速的主时钟、低频时钟(如32.768kHz)以及DCO片内时钟,可在满足功能需要的情况下按一定比例降低MCU主时钟频率,以降低功耗。
??? 如图1所示,MSP430F449具有五种节能模式:LPM0、LPM1、LPM2、LPM3和LPM4,为其功耗管理提供了极好的性能保证[4]。系统复位时,MSP430F449先进入AM(Active Mode)模式,然后可经AM模式转入任何一种低功耗模式,并通过中断方式使CPU退出低功耗模式,返回AM模式。MSP430F449可以在整个过程中长时间保持睡眠状态,只有产生中断时才激活,中断响应时间不超过6μs,可以在突发模式下快速处理中断事件。
?
??? 除MSP430F449本身的功耗外,所有从电源到地的回路都会有功率损耗。MSP430F449必需的外围电路包括复位电路、JTAG仿真口、电源滤波电路以及无源晶振,其中复位电路直接与电源连接,会有几微瓦的功耗。因MSP430F449内部采用CMOS电路,I/O口悬空可能产生状态翻转,造成功率损耗,所以最好把闲置的I/O口上拉到电源。
2.2 数据传输模块
??? 数据传输模块负责与其他节点进行无线通信,交换控制消息和收发采集数据。无线通信消耗的能量占了整个无线传感器网络能耗的绝大部分,因此对这一模块的选取和设计事关低功耗设计的全局。除了考虑功耗因素外,还应兼顾数据传输模块的灵敏度、误帧率以及传输距离等综合性能。
??? 本设计选用NORDIC公司近期推出的融合了高速、低功耗、低成本的2Mb/s工业级嵌入式2.4GHz无线收发芯片nRF24L01[5],它具有增强型的ShockBurst功能,集成了双向通信所需要的链路层,这通常需要一个高速的MCU和较大的RAM。
??? nRF24L01有五种工作模式:RX、TX、StandbyⅡ、StandbyⅠ、PowerDown模式,在3V电压下五种工作模式的工作电流情况如表1所示。其中PowerDown模式的工作电流最小,仅900nA,因此应尽量在PowerDown模式下工作,当需要传输数据时才转入TX或RX模式。在各种模式间转换过程也会产生功耗,模式间切换的延时主要由晶振起振的稳定时间决定,选择起振快、负载电容小的晶振可以减小延时。nRF24L01与MCU进行数据传输的时间,也是需要考虑的。数据传输率低会使数据传输模块功耗升高,nRF24L0内置高速的SPI口(速率高达8Mb/s),很好地解决了nRF24L01与MCU数据传输率问题。
?
?? ?nRF24L01的控制流程如图2所示。采用低功耗的工作模式完成nRF24L01所必需的工作步骤,去掉不必要的辅助功能,例如自动应答和自动重发等。nRF24L01具有自动应答和自动重发功能,使数据传输模块的功耗大大增加,采用W_TX_PAYLOAD_NOACK指令使发送的数据包不带应答信息,去除了自动应答和自动重发功能。
?
??? nRF24L01采用鞭形PCB天线,天线的频率和阻抗必须与射频芯片匹配,以获取最大的传输功率,减少无效的功率损耗。通常情况下,天线阻抗与射频芯片不匹配,因此在nRF24L01的外围电路接入了的L1、L2、L3、C7和C10等电容和电感,作为匹配网络,并抑制高频噪声,如图3所示。
?
2.3 传感器模块
??? 采用低功耗的数字式温湿度传感器SHT11,完成传感器节点的数据采集工作,在测量和传输完成后,SHT11自动转入休眠模式,等待下次命令的开始,这样可以降低传感器模块的功耗。SHT11是瑞士Sensirion公司推出的一种高度集成的温湿度传感器,将温湿度传感器、信号放大调理、A/D转换、I2C总线接口全部集成在一块芯片上,具有极高的可靠性与长期稳定性。片内装载的校准系数可保证互换性;电流极低,休眠时为3μA,平均为28μA。
2.4 软件设计
??? 本设计采用低功耗的软件设计方法:优化系统时钟、优化工作时序和精简冗余指令等,实现了节点的低功耗。优化系统时钟,采用辅助时钟ACLK(32768Hz)作为MCU休眠(LPM3模式)的时钟源,将ACLK倍频至1MHz作为MCU唤醒后的系统时钟;优化工作时序,nRF24L01的TX/RX模式的功耗远大于MSP430F449的AM模式,基于nRF24L01掉电读写控制寄存器的功能,采用nRF24L01先睡眠后唤醒的工作时序,可以使节点的功耗进一步降低;精简冗余指令,简化中断服务程序,中断服务程序仅完成MSP430F449退出睡眠的任务。
??? 传感器节点的主程序流程图如图4所示。首先,初始化MSP430F449的时钟、定时器和SPI口等,采用定时中断方法实现节点按一定的周期完成数据的采集和发送,在休眠状态下实现定时器定时Ts=0.2s;在nRF24L01的 PowerDown模式下,初始化速率、发射功率、频段、地址和校验等配置,完成后MCU打开全局中断;MCU通过SPI口把有效数据(设为16B)写入nRF24L01的TX_FIFO缓存。MCU的SPI速率由于受到系统时钟频率的限制仅为500kb/s,装载数据的通信时延TUL=(16B×8)/500kb/s=0.256ms;PWR_UP=1,且MCU控制引脚CE置高大于10μs后,经130μs的晶振稳定时间,nRF24L01进入TX模式开始发送数据帧(帧格式如图5所示);控制位TX_DS置位,引脚IRQ产生中断信号,完成一次数据发送,此时应立即使nRF24L01进入PowerDown,以节省能量。
?
?
??? 传感器节点工作时序如图6所示。其中TAIFG为定时中断寄存器,Ts为定时时间,TUL为nRF24L01装载数据的时间,TOA为数据帧在空中的传输时间,TIRQ为nRF24L01的中断响应时间。
?
3 性能测试
3.1 节点功耗测试
?? ?节点的总功耗可根据总电流乘以电源电压计算,总电流又可通过串入采样电阻实现电流/电压转换来测量。电阻大小的选取原则为:引入的压降可忽略,产生的电压易于测量。本设计中采样电阻取精度为1‰、阻值为1Ω的电阻。
??? 节点工作电压为3.3V、工作周期为0.2s、数据帧长度为25B、发送速率为2Mb/s、发射功率为0dBm的情况下,采用泰克公司的TDS1012B数字存储示波器测得的采样电阻的电压波形如图7所示,此时节点的平均数据率为1kb/s。
??? 图7(a)为传感器节点连续工作的脉冲波形,脉冲的幅值约为12mV(即工作电流为12mA),与手册上公布的节点工作在TX模式下的电流11.3mA基本吻合。
??? 图7(b)为单个脉冲放大的电压波形。第一阶段,节点被唤醒,MCU晶振开始起振到完成数据帧组装约300μs,工作电流约为1mA;第二阶段节点进入TX模式准备发送约130μs,为射频晶振的稳定时间,这个阶段的平均工作电流约为8mA;第三阶段,节点发送数据约100μs,此时,工作电流约为12mA;最后节点进入睡眠。
?
??? 由图7所测试的实际波形,可以计算得出节点的平均功耗约为:
???
3.2 误帧率测试
??? 误帧率是衡量通信线路指标的常用参数,是表征接收质量的重要参数。误帧率的测试是将发射机的数据源不断地发送到接收端,接收端同步接收该数据流后再检查收到的数据流中是否有传错的数据。测试误帧率的方法:发送端每200ms发出一个数据包(约25B),接收端用一个“误帧计数器”来统计发错或丢失的数据帧数目。
??? 在室内环境中,当发送速率为2Mb/s、输出功率为0dB、数据帧长度为25B时,本设计节点误帧率测试结果如表2所示。
?
??? 本系统的综合性能如表3所示。采用低功耗电路设计方法、低功耗器件选取方法和低功耗休眠机制,实现了传感器节点的低功耗设计。对于使用电池供电无线传感器网络,可以延长其使用寿命;对于光照、振动、热和气流等环境能量供电的无线传感器网络,实现其自供电也具有重要意义[5]。
?
参考文献
[1] AKYILDIZ I F,SU W,CAYIRCI E.Wireless Sensor Networks:A Survey[J].Computer Networks,2002,38(3):393-422.
[2] BERKELEY,POLASTRE J,SZEWCZYK R,et al.The mote revolution low power wireless sensor network[f].http://webs.cs.berkeley.edu/papers.2004.
[3] Texas Instruments.MSP430x43x,MSP430x44x Mixed signal microcontroller[f].www.ti.com,2002/2003.
[4] SEMICONDUCTOR N.Single chip 2.4GHz Transceiver?nRF24L01[f].www.nordicsemi.no,2007,7
[5] PARADISO J A,STARNER T.Energy Scavenging for?Mobile and Wireless Electronics[J].IEEE Pervasive Computing,2005:19-26.