基于nRF24L01的多点无线环境监测系统的设计
2015-01-25唐先登杨经国李贺威陈劲松
唐先登,杨经国,李贺威,陈劲松
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)
作为信息领域的一项新技术,无线数据监测网络解决了传统有线数据监测与传输在多点测量及特殊环境下布线复杂困难且功耗高等问题,在工农业及军事等通信领域正得到广泛应用。本文设计的基于nRF24L01的多点无线环境监测系统采用超低功耗单片机MSP430F149做主控,采用高速无线收发器nRF24L01进行多点组网,实现了多个节点的多个环境数据的采集与监测,并运用超低功耗短时突发式无线发射技术、低功耗休眠机制结合太阳能电池供电技术,从而大大降低了系统功耗,解决了系统长期自持的耗能量供应问题,提高了系统使用的灵活性,且各节点互不影响,容易扩展,便于维护,节约了成本[2]。基于此本系统可广泛应用于城市交通路口监测车辆尾气指标或用于工农业环境气象监测。
1 系统总体设计
系统总体结构如图1所示,采用主从拓扑结构,以适用多节点的数据采集与无线通信。
系统主控MCU采用TI公司的低功耗单片机MSP430F149,从站配传感器等数据采集模、LCD显示模块、nRF24L01无线通信模块和电源模块,并预编号,传感器采集到的数据通过单片机处理后在LCD液晶屏显示并连同本站编号由nRF24L01发送给主站;主站的nRF24L01接收到从站发来的数据后通过SPI总线将数据传给MCU判断其编号在LCD屏上显示编号和相应数据并通过串口通信将数据反馈给监测终端。从站给主站发送数据采用循环轮换方式,依次将采集到的数据发给主站,主站能够显示所有监测节点的所有数据。异常情况下,主站可通过预置编号控制nRF24L01发送控制命令针对一个从站实时监控。
图1 系统总体结构图Fig.1 Total structure chart of system
2 硬件电路设计
硬件系统包括电源供电模块、数据采集模块、nRF24L01无线收发模块及控制显示模块;本文以环境温度为例对主要的硬件电路进行说明。
2.1 电源电路设计
主站采用固定稳压电源供电,从机采用太阳能电池板和锂电池供电,强光照环境下由太阳能电池板产生电能供给系统用电,夜晚和弱光条件下由锂电池供电,以期达到最低功耗。
系统各模块采用3.3 V低压稳压源供电,由于外电源的波动,可能导致数据采集和传输误差、系统异常甚至瘫痪,所以需要为系统设计稳定的供电电源。电源DC-DC模块原理图如图2所示,外电源经单片同步降压源MP2307后为系统提供稳定的3.3 V电压。该器件集成可调MOSFET,用于提供快速瞬态响应和逐周期电流限制,启动方式为可调软启动,用于防止浪涌电流,静态电流低于1μA。
2.2 nRF24L01模块设计
nRF24L01是一款新型嵌入式2.4 G无线收发芯片,集频率合成器、功率放大器、晶体振荡器、调制器等功能模块于一体,并融合了增强型Shock Burst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01本身功耗低,且有多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。其外围电路如图3所示[3]。
图2 电源模块原理图Fig.2 Theory picture of power source
图3 nRF24L01外围电路Fig.3 Peripheral electric circuit of nRF24l01
2.3 数据采集模块设计
本系统无线传输业务以环境温度为例,采用温度传感器DS18B20,由于DS18B20采用数字单总线技术,使得系统电路简单,易于扩展,且支持“一线总线”接口,在于微处理器连接时只占用一个I/O口即可实现与微处理器的双向通信,同时可传送CRC校验码,大大提高了系统的抗干扰能力。
2.4 控制电路设计
系统的控制采用超低功耗MSP430FF149实现,MSP430系列单片机的片内外资源丰富中断源较多,并且可以任意嵌套,使用时灵活方便。本系统主控MSP430F149通过SPI接口与NRF24L01模块连接,硬件接口设计如图4所示。
图4 MCU与nRF24L01连接图Fig.4 Link of MCU and nRF24l01
3 软件设计
无线通信系统的软件设计采用模块化思想,将整个系统的软件划分为两个部分即主站和从站以便于软件的设计、调试和维护。根据系统的功能要求,主站主要完成发送命令、接收信息、数据显示等功能,从站完成命令接收、信息采集、数据发送和信息显示等功能。主从站采用轮询方式,从机在未被轮询时进入睡眠模式,当主机对从机进行询问时,nRF24L01产生中断,唤醒从机,起减小功耗的作用;其中,掌握SPI总线时序对NRF24L01的控制是实现通信的关键,本文将给出设计要点和nRF24L01的控制流程。
3.1 控制流程
软件系统包括主从机,从机主要完成数据的采集,并将采集到的数据在液晶屏上显示同时通过SPI总线将数据连同其编号由nRF24L01将信息发送给主机;主机通过SPI总线从主机的nRF24L01读取从站发来的信息经串口将接收到的数据送到液晶屏上显示,并将信息反馈给终端设备,进行实时监测。在此过程中,通过对主站接收到的数据的判断实现对检测节点的控制。其程序流程如图5所示[4]。
图5 系统流程图Fig.5 Flow diagram of system
3.2 编程要点
通信方式使用半双工方式,主站发送控制命令,从站收到命令后将信息发给主站发送完毕后进入等待接收状态,主站收到数据后发送应答信号以便检测从站所发数据有无丢失,一旦数据丢失即刻启动数据重发功能将丢失的数据恢复。通过切换从机编号命令实现多节点的信息监控。
nRF24L01控制程序的编写是系统通信的关键,nRF24L01通过SPI接口和控制器件MSP430F149进行数据交换。 SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节;但针对单个字节而言,要先送高位再送低位,nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问[5]。
3.3 数据收发单元
发射数据时,先将nRF24L01配置为发射模式,接着把地址TX_ADDR和数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,然后CE置高并保持至少10μs,延迟130μs后发射数据;如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从发送堆栈中清除;若未收到应答,则启动自动重发功能再次发射。最后发射成功时,若CE为低,则nRF24L01进入待机模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入待机模式2[6]。
接收数据时,先将nRF24L01配置为接收模式,延迟130 μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位RX_DR置高,IRQ变低,以便通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1[7]。
4 测试结果与分析
根据系统设计目标及性能指标,笔者制作了样机以DS18B20采集环境温度进行数据传输,采用3个监测节点和一个监测终端实时通信。通过测试,考虑了传输过程中的电磁干扰、传输的延迟性及系统误差,在50 m距离内传输的温度误差小于1℃,总功耗小于0.2 W,通信效率高,传输数据可靠,系统运行稳定。各从站可设置为中继节点为远程无线通信和网络节点数据监测提供了依据。
5 结束语
本文所设计的基于2.4G无线收发芯片nRF24L01和超低功耗单片机MSP430F149的无线数据采集与通信系统采用SPI总线协议,系统稳定可靠,电路结构简单,易于维护,功耗低,能实现一对一、多对一的无线通讯,根据需要可加入更多传感器实现更多的数据采集与无线传输,由于超低功耗在光照充裕地带可实现太阳能供电,具有实际应用价值。
[1]洪利,章扬,李世宝.MSP430单片机原理与应用实例详解[M].北京航空航天大学出版社,2010.
[2]曾勇.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子应用技术,2008(7):45-48.ZENG Yong.Ultra-low power wireless sensor network node design based on nRF24l01[J].Electronic Application Technology,2008(7):45-48.
[3]刘靖.基于nRF24L01的无线数字传输系统[J].天津理工大学学报,2007,23(3):38-40.LIU Jing.Design of wireless communication system based on nRF24L01[J].Journal of Tianjin University of Technology,2007,23(3):38-40.
[4]郝文延.基于DSP和nRF24L01的无线环境监测系统设计[J].单片机与嵌入式系统应用,2011(3):51-54.HAO Wen-yan.Wireless environment monitoring system based on DSP and nRF24L01[J].Single Chip Micyoco and Embedded System Application,2011(3):51-54.
[5]王涛.基于nRF24L01的2.4 GHz无线通信系统设计[J].通信系统与网络技术,2011,37(3):4-7.WANG Tao.2.4 GHz wireless communication system design Based on Nrf24l01[J].Radio Communications Technology,2011,37(3):4-7.
[6]王军辉.无线高速数据传输技术的研究[J].计算机测量与控制,2011,19(9):2305-2318.WANG Jun-hui.Research on wireless high-speed data transmission technology[J].Computer Measureand Control,2011,19(9):2305-2318.
[7]周远举.基于AT89S52和nRF24L01的无线温度监测系统[J].信息技术,2012(2):175-176.ZHOU Yuan-ju.Wireless temperature sensor system based on AT89S52 and nRF24l01[J].Information Technology,2012(2):175-176.