标题:
基于nRF905的低功耗温湿度无线测量系统
[打印本页]
作者:
Bazinga
时间:
2014-3-22 19:21
标题:
基于nRF905的低功耗温湿度无线测量系统
温湿度的测量在农业生产的大棚管理,仓库粮食存储管理,生产制造行业,气象观测,恒温恒湿的空调房科研及日常生活中被广泛应用。可以说温湿度是影响日常的生产生活以及科研的一个很重要的因素。目前我国许多领域例如农业生产等仍采用测温仪器与人工抄录、管理相结合的传统方法,这不仅效率低,而且会由于判断失误和管理不力造成很多严重损失。
系统以自带SPI和两线串行接口的低功耗单片机ATmega16L为控制芯片,采用nRF905芯片组成的无线收发节点,利用数字温湿度传感器SHT11完成对环境的温湿度测量系统。同时该系统留出MAX232接口以方便与PC机通讯,实现温湿度的实时显示以及监测功能。
1系统描述
如图1,图2所示为低功耗温湿度无线测量系统的发送和接收模块的框图。
其中图1为无线发送模块,以Atmega16L为主控制核心,控制温湿度传感器SHT11采集环境的温湿度,然后利用NRF905无线传输模块将采集到的温湿度数据发送给温湿度测量无线接收模块进行相应处理。
图2为温湿度测量无线接收模块,以Atmega16L为主控制核心,利用NRF905无线传输模块接收温湿度数据,然后利用MAX3232上传给PC机,利用相关上位机软件实时监测。
2硬件电路设计
2.1 3.3 V供电电源模块
本设计所需的电压为3.3 V,故采用LM1117-3.3电源供电系统,如图3所示。无线发送模块以及温湿度测量模块使用的器件皆为低功耗器件。对发送端而言,可以采用5 V电池供电,很适合在野外等环境进行温湿度测量采集。而接收端可以采用5 V开关电源供电。其核心部件LM1117-3.3是一个低压差电压调节器系列。压差在1.2 V输出,此时相应的负载电流为800 mA。
2.2单片机控制电路
本设计采用高性能、低功耗的8位AVR微处理器ATmega16L作为控制芯片。
首先对于ATmega16L具有先进的RISC结构,大多数指令执行时间为单个时钟周期,是具有最高MIPS/mW能力的8位单片机。此外它还具有512 B的E2PROM,可在掉电时存储用户信息,并采用FLASH存储技术,可使单片机的内部存储单元能够在线重复擦写1 000次以上。
其次,Atmega16L的工作电压范围为2.7~5.5 V,具有睡眠模式,空闲模式,掉电模式以及省电模式,这些多样的模式也使得Atmega16L成为低功耗产品的最佳控制芯片之一。
最后,Atmega16L提供二线数字串行接口SDA和SCL,接口简单。支持主机和从机操作器件可以工作于发送器模式或接收器模式,并且支持多主机仲裁。
2.3无线收发模块
无线收发芯片采用挪威Nordic公司的单片无线收发器芯片NRF905。工作电压为1.9~3.6 V,工作于433/868/915 MHz三个ISM频道,最大数据速率为100 Kb/s。芯片内部集成了频率合成器、接收解调器、功率放大器、晶体振荡器和调制器。其主要特点是能够自动处理报头和CRC冗余校验,而且可以直接通过 SPI接口来进行软件配置。此外,其功耗非常低,以-10 dBm的输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5 mA,并内建有空闲模式与关机模式,易于实现节能。
NRF905的应用电路如图4所示。电路主要利用NRF905与外围器件构成的电路组成无线发送接收电路,图4展示的是用NRF905差分连接的环形天线图。其中,NRF905模块的SPI接口引脚MOSI,MISO,SEK引脚分别接Atmega16L的SPI接口引脚:PB5(MOSI),PB6(MISO),PB7(SCK)。NRF905的 SPI接口工作于从机模式,并且利用环形天线发射信号。
为了充分利用能量,NRF905分别设定了两种工作模式和两种节能模式,分别由TRX_CE,TX_EN和PWR_UP三个引脚决定。因此,设计使用Atmega16L的PA2~PA7连接至NRF905的控制检测,用于切换模式以及配合通信。表1为NRF905的工作模式及相应功能。
2.4温湿度测量模块
本设计的温湿度测量所采用的是瑞士Sensiri2on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器SHT11,SHT11可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换等特点。
SHT11的湿度/温度传感器系统测量相对湿度的范围是0~100%,分辨力达0.03%RH,最高精度为±2%RH。测量温度的范围是-40~+123.8℃,分辨力为0.1℃。
SHT11传感器默认的测量温度和相对湿度的分辨率分别为14位和12位,通过状态寄存器可降至12位和8位,并具有可靠的CRC数据传输校验功能。另电源电压范围为2.4~5.5 V;电流消耗小:测量时为550μA,平均为28μA,休眠时为3μA。是低功耗产品的最佳选择之一。
SHT11的应用电路如图5所示,VDD与GND间通过0.1μF的去耦电容相连,且其I2C接口的 SCK,DATA直接与ATmega16L的两线串行接口通过4.7 kΩ上拉电阻SCL与SDA相连,用于数据的传输交换。
2.5上位机接口电路
为了便于监控,引入上位机功能,并加入串口通信模块。3.3 V到RS 232电平(±12 V)的专用转换芯片MAX3232的外围电路如图6所示,其中五个电容均取0.1 μF的典型值。串口DB9只用三根线,5端公共端接系统的地,2,3端分别是接收和发送端。DB9接口通过交叉串口线连到PC机上,这样就可以完成硬件串行通信。
3系统软件设计
系统软件设计包括温湿度测量和无线收发两个部分。
3.1温湿度测量
对于温度和湿度,它们并非是急剧变化的物理量,温湿度的变化往往是缓慢进行的,因此针对这个特点对于温湿度的测量采集并非需要时时刻刻都在进行。而是每隔T时间(T根据实际需要而定,本系统选用1 s)采集一次,其余时间由于低功耗的要求使得MCU处于休眠状态。其程序流程如图7所示。其中Atmega16L进入休眠状态是通过对SE编程休眠使能,并且对SM 2.0编程后进入相应的省电模式状态,然后通过定时器的计时中断将Atmega16L唤醒,再进行测量以及数据传输。
3.2无线收发
对于无线发送而言,在测量发送数据以后,应考虑到数据传输的可靠性,因此加上校验功能,并且为防止偶然的发送失败带来的不良后果,采取定时等待,超时后重发,收到接收主机命令后才进入休眠的模式。具体流程图如图8所示。
对于接收端而言,所完成的任务是时刻检测无线接收模块,对于收到的数据进行校验,如果正确收到数据则无线发送相关指令告知接收端,使其能够尽快进入休眠省电模式,并且通过上位机显示温湿度;而接收到错误数据后不做任何处理,等待接收端再次发送数据。
相应的初始化程序如下:
unsigned char RFConf[11]=
{
Ox00, //配置命令//
0x6C, //CH_NO,配置频段在433.2 MHz
OxOC,//输出功率为10 dB,不重发,节电为正常模式
0x44, //地址宽度设置,为4 B
0x02,0x02, //接收发送有效数据长度为3 B
0xE0,0xE0,0xE0,0xE0, //接收地址
0x1E, //CRC充许,16位CRC校验,外部时钟信号使能,16 MHz晶振
};
for(unsigned char i="0";i<11;i++)
SPDR="RFConf"
;
//SPDR是Atmegal-16L的SPI数据寄存器,相应配置见数据手册;
而实际操作过程中通过对nRF905发送与接收实现是通过以下命令实现:
写发射数据命令:20H;
读发射数据命令:21H;
写发射地址命令:22H;
读发射地址命令:23H;
读接收数据命令:24H。
4结语
该系统采用AVR系列低功耗单片机ATmega16L作为控制芯片,低功耗芯片NRF905作为无线收发模块,设计并实现了基于数字温湿度传感器SHT11的温湿度无线测量系统,这些低功耗产品使得该系统耗电量小,并且又特别适合将该系统小型化,智能化,仪表化。无线发射功能又代替了人工抄表的繁琐,使得本系统有着广泛的应用前景。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0