无线温度采集系统设计
1原理
无线温度采集系统是一种基于射频技术的无线温度检测装置。本系统由传感器和接收机,以及显示芯片组成。传感器部分由数字温度传感器芯片18B20,单片机89S52,低功耗射频传输单元NRF905和天线等组成,传感器采用电源供电;接收机无线接收来自传感器的温度数据,经过处理、保存后在LCD1602上显示,所存储的温度数据可以通过串行口连接射频装置与接收端 进行交换。
无线温度的采集主要基于单线数字温度传感器DS18B20芯片。Dallas 半导体公司的单线数字温度传感器DS18B20是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,支持3V~5.5V的电压范围, DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。
数字单总线温度传感器是目前最新的测温器件,它集温度测量,A/D转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点。既可用它组成单路温度测量装置,也可用它组成多路温度测量装置,文章介绍的单路温度测量装置已研制成产品,产品经测试在-10℃-70℃间测得误差为0.25℃,80℃≤T≤105℃时误差为0.5℃,当T>105℃误差为增大到1℃左右。
温度数据的无线传输主要是基于低功耗射频传输单元NRF905芯片。nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.9~3.6V,32引脚QFN封装(5×5mm),工作于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器, ShockBurstTM
工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块。
经过无线传输后,温度数据信息将在1602液晶显示芯片上进行显示,1602液晶显示芯片采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。
本系统的温度采集与显示,无线的传输与对比均由单片机89S52来控制完成。相比较而言ATMEL 公司的89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89xx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了我们的劳动成果。 系统原理框图(略)。 系统工作原理及详细流程。
首先,打开电源后,本系统由单片机89S52向单线数字温度传感器DS18B20芯片发出指令进行测温,DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20高速暂存器共9个存存单元,如表所示:
序号 0 1 2 3 寄存器名称 温度低字节 温度高字节 TH/用户字节1 HL/用户字节2 作 用 以16位补码形式存放 存放温度上限 存放温度下限 序号 4、5 6 7 8 寄存器名称 保留字节1、2 计数器余值 计数器/℃ CRC 作 用 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例: 用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
高8S S S S S 26 25 24