基于51单片机与nRF24L01无线测温通信系统设计
2015-10-14康乐为徐丹
康乐为 徐丹
摘 要:文章将51单片机和nRF24L01技术有机结合起来,组成无线远程测温通信系统。系统由51单片机,DS18D20温度采集模块,LCD温度数据显示模块,nRF24L01无线数据收发模块组成。具有实现无线数据传输可靠稳定,低功耗,编程简单等特点。实践证明该系统能适应于多种环境温度的检测。
关键词:nRF24L01;温度检测;无线通信;单片机
目前,无线通信领域越来越广,如:wifi,蓝牙,安全防火系统,水产养殖系统,智能家居系统等等。凡是布线复杂或者不能布线的场合都希望通过无线方案解决。为此需要设计相应的接口系统,完成系统数据交互,实现系统控制功能等。本系统采用了DS18D20温度采集模块及Nordic公司新推出的工作于2.4GHz频段的nRF24L01射频芯片,并由超低功耗单片机控制实现短距离无线数据通信,打破了传统操作中距离受限的问题,使测温操作更易实现。系统框图如图1:
nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片,其工作速率为0~2Mb/s,最大发射功率为0dBm,其外围元件极少,内置硬件CRC(循环冗余校验)和点对多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器.它的主要特点如下:
1)低工作电压:1.9~3.6V低电压工作;
2)高速率:2Mbps,由于空中传输时间很短,极大地降低了无线传输中的碰撞现象;
3)多频点:125频点,满足多点通信和跳频通信需要;
4)超小型:体积小巧,5mm 5mm;
5)低功耗:当工作在发射模式时,发射功率为-6dBm,电流消耗为9mA,接收模式为12.3mA,掉电模式和待机模式下电流消耗更低。
6)低应用成本:nRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机.
nRF24L01芯片最突出的特点是有2种通信模式:DirectMode(直接模式)和ShockBurstMode(突发模式).直接模式的使用与其他传统射频收发器的工作一样,需要通过软件在发送端添加校验码和地址码,在接收端判断是否为本机地址并检查数据是否传输正确.ShockBurstMode使用芯片内部的先入先出堆栈区,数据可从低速微控制器送入,高速(2Mb/s)发射出去,地址和校验码硬件自动添加和去除,这种模式的优点是:可使用低速微控制器控制芯片工作;?减小功耗;?射频信号高速发射,抗干扰性强;减小整个系统的平均电流.因此,使用nRF24L01芯片特有的ShockBurstMode使得系统整体的性能和效率提高。
nRF24L01工作原理图如图2所示:
2 硬件电路设计
2.1 DS18D20温度采集模块
温度部分采用数字温度传感器DS18B20测量温度,DS18B20的测温范围-55℃~+125℃,固有测温误差1℃。DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度很快。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,
具有极强的抗干扰纠错能力,并且在出现较大温度误差的情况下可以适用DHT11的测温部分调整。本系统中温度传感器输出脚I/O直接与单片机的P1.1相连,外接4.7KΩ的上拉电阻到电源,采用外部电源供电。
2.2 LCD1602显示模块
LCD显示配置灵活,与单片机连接方便,通过读写操作时序即可完成。LCD显示块具有显示质量高、数字式接口、功耗少、超薄轻巧等诸多优点,因此在单片机应用系统中应用广泛,本系统的显示采用的就是LCD1602作为显示部件。
2.3 主控模块
本系统设计采用51单片机作为主控芯片,这是新一代高速,低功耗,超强干扰的单片机,指令代码完全兼容传统8051单片机,12时钟周期,采用11.0592MHz外部晶振起振,DIP40封装,内部集成EEPROM,用户应用程序空间为8K,支持ISP下载程序。串行通信时可软件选择UART/SPI模式,整个系统采用5V供电。除了上述主控芯片外,还要预留必要的功能模块驱动接口,主要包括:nRF24L01无线射频芯片接口,步进电机接口,LCD液晶接口,DS18B20,DHT11和其他的外部扩展接口.主控制电路主要由AT89S51单片机芯片复位电路及外设晶振电路组成。具体电路图如图3所示,该单片机的P1.4,P1.5,P1.6,P1.7口接无线收发模块的1、2、3、4引脚,通过SPI方式进行通信,P1.5,P1.6引脚分别收发图2中的数据。图3中J3作为串口及外部扩展使用,J4与无线收发模块连通,J5,J6为外部扩展接口,接LCD显示模块。
3.1 温度检测模块软件设计
DS18B20的测温原理遵循严格的单总线协议,以确保通信数据的准确性。DS18B20温度传感器与单片机P16口连接,液晶的RS端接P3.4口,RW端接P3.6口,EN使能端接P3.7口。然后开始初始化,分别把RW、EN拉低,设置显示模式,清除屏幕,将光标移到第一行第一个位置。单片机通过时序来写入和读出DS18B20中的数据。传感器复位后,接收应答信号,启动温度转换,等待温度转换完毕后,保存数据。如此反复,完成所有操作,其流程图如图3所示。
3.2 无线发射模块软件设计
在nRF24L01无线发送部分主程序中,首先进行初始化操作,通过配置模式对nRF24L01进行设置,主要包括发送的数据宽度、地址宽度、发送数据的地址和常用配置等。常用配置包括使能第一频道设置、通信方式设置、发送数据速率设置、晶频率设置、发送输出功率设置、频道设置和收发模式设置等。待初始化完成后,将nRF24L01设置为发送模式,进行发送数据。然后查看状态寄存器TX_DS是否为1,如果TX_DS为1则表示nRF24L01发送成功,并且1602液晶可以显示发送的数据;如果TX_DS不为1则代表nRF24L01发送不成功,程序返回重新发送。
3.3 无线接收模块软件设计
接收数据时,首先将nRF24L01配置为接收模式。接着延迟130μS进入接收状态等待数据的到来。当接收方检测到有效地址时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RX_DR置高,产生中断使IRQ引脚变为低电平,以便通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1.
4 结束语
基于nRF24L01的温度检测系统拥有性能稳定、成本低、低功耗等特点,能够广泛应用于各类对温度要求较为特殊的环境下温度数据的检测
参考文献
[1]丁媛媛.基于nRF2401无线双向通信系统设计[J].常州工学院学报,2012.10.
[2]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2011.
[3]刘志平、赵国良.基于nRF2401的近距离无线数据传输[J].应用科技,2008.3.
[4]朱玉颖、蔡占辉基于nRF2401的远程温度检测系统设计[J].自动化技术与应用2010,29(5)
[5]樊祥现,袁平.nRF2401无线通信数据传输可靠性技术应用[J].自动化技术与应用,2008,27(7):71-73.
[6]张天祥.基于MCU和nRF24L01的无线通信系统设计[J].电子科技,2012,4(1):34-35.