随着工业和农业的发展,无线采集系统的应用范围变得更加广泛,对无线数据采集系统的测量参数也越来越多,精准度也越来越高。目前国内外有很多的无线温度采集系统,但很多的无线温度采集系统存在很多问题,如采集速度和稳定性不够高,不能适应复杂的环境,采集精准度不够高等等。因此,需要性能更高的无线数据采集系统来满足工农业的需求。
本设计是基于单片机的无线温度采集系统,由数据采集发送模块和数据接收模块两个模块组成。数据采集发送模块由DS18B20数字温度传感器、LCD1602液晶显示屏、单片机、NRF905数据发送模块组成;数据接收模块由单片机、LCD1602液晶显示屏、NRF905数据接收模块组成。DS18B20数字温度传感器把信号直接传给的单片机,单片机把数据进行电平转换,然后通过NRF905数据发送模块把数据发送出去,同时将数据显示到LCD1602液晶显示屏。NRF905数据接收模块接收到数据将数据显示在LCD1602液晶显示屏。
本设计最终成功实现了温度采集和数据的无线传输,具有传送距离远、测量准确、应用广泛等特点。
系统整体设计
本文主要设计的是基于单片机的无线温度采集系统,该系统由发送端和接收端两个部分组成。发送端由DS18B20数字温度传感器、LCD1602液晶显示屏、单片机、NRF905数据发送模块组成。接收端由单片机、LCD1602液晶显示屏、NRF905数据接收模块组成。
系统工作原理
本系统温度传感器采用DS18B20,显示部分采用LCD1602,无线通信部分采用NRF905模块。DS18B20主要完成温度采集,把周围的温度模拟信号通过1-wire总线直接传给单片机,单片机把数据进行电平转换,然后通过NRF905数据发送模块把数据发送出去,同时将数据显示到LCD1602液晶显示屏。NRF905数据接收模块接收到数据将数据显示在LCD1602液晶显示屏上。该系统可实现对温度实时多点检测,还实现了远程无线通信,可以对DS18B20覆盖的区域进行实时监控。
硬件设计
核心控制器件--STC89C52
STC89C52是一款高性能的8位微控制器。具有8K字节可编程Flash存储器,512字节数据存储空间,内带4K字节EEPROM,而且可以直接使用串口下载。
STC89C52单片机封装采用的是双列直插封装(DIP40)。
单片机的最小系统:
单片机的最小系统主要由单片机、电源、晶振电路、复位电路组成。
本系统单片机采用是STC89C52RC。单片机电源采用标准+5V电源。EA接高电平,选用片内ROM作为程序存储器。
晶振电路为单片机定时计数器等提供时钟信号,本设计采用内部时钟方式,在XTAL1和XTAL2外接12MHz晶振和陶瓷电容。因为单片机内部有一个高增益反相放大器,当外接12MHz晶振后,就会构成自激振荡器,并产生时钟脉冲,时钟脉冲可以为单片机定时计数器提供时钟信号。
复位电路采用外部复位。当按键按下时,RST脚接高电平,完成系统复位。
注意晶振电路尽可能的与单片机靠近,路线尽量短。
电源电路
本设计是基于单片机的无线温度采集系统,单片机和LCD1602采用标准+5V直流电源供电。NRF905通信模块采用3.3V直流电源供电。采用电压转换得到3.3V直流电源。本设计采用AMS1117-3.3稳压芯片把5V转换成3.3V。
电压转换电路:
数字温度传感器DS18B20
温度传感器采用DS18B20的引脚排列:
温度传感器利用独有的单总线协议,只需要一个单线端口通讯,通过这根口线从DS18B20读出或者写入信息。板载上拉电阻与单片机直接相连。每个器件有唯一的64位序列号存储在内部只读存储器中。高速暂存器为8字节的存储器,头两个字节包含温度传感器输出的温度信息,第3、4字节为TH(报警温度上限)、TL(报警温度下限),第5字节为配置寄存器,用于确定温度值的数字转换分辨率,第6、7、8字节保留未用。其中,第3,4,5字节可存储到EEPROM中。DS18B20的精度采用增量递增的形式,其精度为可编程9,10,11,12位,分别为0.5℃,0.25℃,0.125℃,0.0625℃。在上电时默认精度为12位。本设计采用默认精度,即12位。
温度传感器测量范围为-55℃~+125℃,而且测量范围在-10℃~+85℃内精度高达±0.5℃。DS18B20可以直接从单线通讯线上汲取能量,除去了对外部电源的需求。除此之外,因为每个DS18B20有自己特有的位序列号,所以可允许多只DS18B20同时连在一根单总线上,因此可用一个微型控制器控制很多覆盖在一大片区域的DS18B20。这一特性可以应用到环境监测、探测建筑物、仪器或机器的温度以及过程检测和控制等等。
无线传输
NRF905的基本介绍
本设计的无线通信选用的是NRF905,由挪威Nordic VLSI公司制造。本设计采用标准3.3V电源,3.3V电源由ASM1117-3.3芯片电平转换而来,采用QFN封装,NRF905有32个引脚,选择工作于433MHz(工业)频道,不需要在频道之间转换,节省了频段之间的转换时间。由于数据传输过程中可能会受到干扰,使得收发数据不一致,因此一般发送端都需要对数据进行编码,编码后才能发送,同样接收端需要对数据译码,纠错。由于NRF905片内集成了曼彻斯特编码和译码,因此,不需要用户对收发数据进行任何编码和译码,使用非常可靠、方便。除此之外,NRF905采用ShockBurstTM发送和ShockBurstTM接收模式,特点是自动产生前导码和CRC(循环冗余码校验)。NRF905与微控制器之间通过SPI接口通信,SPI接口的配置非常简便。而且,NRF905是一款低功耗产品,以-10dBm的输出功率发射时电流为11mA,工作于接收模式时的电流为12.5mA,并且还有空闲模式与关机模式,这样更节能。
NRF905的应用非常广泛,可用于无线遥控、遥感勘测、无线报警及安全系统、无线数据通讯、无线开锁、家庭自动化、玩具等。
NRF905进行数据收发时主要依靠SPI接口和微控制器,通过射频收发模式进行无线数据传送,非常可靠、方便。
NRF905工作模式和节能模式
NRF905有两种工作模式和两种节能模式。两种节能模式分别为为空闲模式和关机模式。两种工作模式分别为为ShockBurstTM发送模式和ShockBurstTM接收模式。其工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定:
ShockBurstTM模式
NRF905可以处理与射频数据包有关的高速信号。NRF905通过SPI接口与微控制器通信,微控制器可以通过配置的SPI接口来决定数据在微控制器中低速处理,在NRF905中高速发送。在ShockBurstTM发送模式下,NRF905有自动产生字头和CRC校验码的功能。当发送完成后,置高数据准备好(DR)引脚,这样微控制器就可以检测到发送完成。在ShockBurstTM接收模式下,当NRF905接收到一个包含正确地址和数据的数据包后,置低地址匹配(AM)和数据准备好(DR)两个引脚,这样微控制器就可以检测到接收完成。这样可以降低微控制器的存储需求,降低成本,而且还可缩短软件开发的时间。
LCD1602
LCD1602简介
LCD1602的功能是能够显示字母、数字、符号等,是一种点阵式LCD。LCD1602可以显示16*2,即32个字符,工作电压4.5-5V,工作电流2.0mA(5.0V),本设计采用标准+5V直流电源。LCD1602是一种5*7点阵,可以通过指令设置带光标显示的字符显示。如图3-7所示是LCD1602液晶显示屏实物。
软件
NRF905发送步骤
- 当有数据需要发送时,通过通信应用协议和器件配置来确定SPI接口速率。微控制器件通过SPI接口按时序把TX_address和要发送的数据传给NRF905;
- 开启NRF905的ShockBurstTM发送模式:设置TRX_CE=1,TX_EN=1;
- NRF905的ShockBurstTM发送:自动开启射频寄存器、打包数据包(带字头和CRC校验码)、发送数据包、当数据发送完成后,设置数据准备好引脚=1;
- 设置AUTO_RETRAN=1,NRF905连续发送数据包,直到设置TRX_CE=0;
- 当设置TRX_CE=0后,NRF905数据发送完成,自动进入空闲模式。
注意:当进入ShockBurstTM工作模式,若开始发送数据,不管TRX_EN=1、TX_EN=1、TRX_EN=0、TX_EN=0,发送过程都会被逐一处理完。只有当前一个数据包发送完毕后,NRF905才可以接收下一个数据包。
NRF905接收步骤
- 进入NRF905的ShockBurstTM接收模式:设置TRX_CE=1,TX_EN=0;
- 等待650us,NRF905不断监测信息,等待接收数据;
- 当同一接收频段的载波被NRF905检测到后,设置载波检测引脚=1;
- 当一个相匹配的有效地址被接收后,设置地址匹配引脚=1;
- 当一个正确的数据包被成功接收完后,字头、地址、CRC校验位被NRF905自动移除,接着设置数据准备引脚=1;
- 设置TRX_CE=0,NRF905进入空闲低电流模式;
- 微控制器通过SPI接口,以合适的速率读出有效数据,并移动到微控制器内;
- 接收完所有数据后,NRF905设置数据准备好引脚和地址匹配=0;
- NRF905能进入ShockBurstTM接收模式、ShockBurstTM发送模式、关机模式。
注意:当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,NRF905的工作模式将发生改变,数据包丢失。当地址匹配脚的信号被微处理器接收到后,可以判断出NRF905正在接收数据包,可让NRF905继续接收该数据包还是进入下一个工作模式。
温度采集: