摘要:为了解决传统的温度传感器多点温度测量时的繁杂的布线问题,设计了一种基于单片机技术和无线通讯技术的无线温度传感器。采用无线收发芯片NRF2401和数字温度计DSl8820构成硬件平台,通过EnhancedShockBurstTM收发模式实现对温度数据的传输,采用高增益天线使覆盖区域达到200m范围。
关键词:NRF2401;DSl8820;无线温度传感器
为了解决传统的温度传感器多点温度测量时的繁杂的布线问题,从传统的温度传感器人手,设计了一种基于单片机技术和无线通讯技术的无线温度传感器,本文详细介绍系统的实现。
1系统的设计与实现
1.1总体结构框架
无线温度传感器的系统的总体结构主要包括两个部分:一是温度采集电路,其作用是测量温度并将测量到的温度数据发射给主机;另外一部分是温度信息处理电路,其作用是收集所有的温度信息,处理并显示出这些信息,同时还可以将这些数据传输到PC机上。
1.2数字温度计DS18820
DS18820是一种分辨率可编程设置的单总线数字温度计,它的测温区间从-55℃~+125℃。温度输出位数从9bit~12bit,用户可以通过程序来控制,将温度转化成12bit的数字字节的最大耗时仅需750ms。每一片DSl8820都有唯一的64位序列码,从而允许多片DS18820共存于同一根单总线上,因此用一块单片机可以控制一片区域的温度采集。DSl8820外观和接口如图1和图2所示:
它有3个引脚,1脚为GND电源地;2脚为DQ数字信号输入输出引脚,DS18820通过1根数据总线与单片机进行双向通讯;3脚为VDD外接供电电源输入端。DS18820的供电方式有两种:一种是通过数据线提供寄生电源,此时3脚接地;另一种是直接在VDD上提供电源,供电电压范围为3.0V~5.5V。
1.3单片机的选择
本系统中在温度采集电路和温度信息处理电路中都需要用到单片机,而且单片机是做为系统控制核心。在温度采集电路中对单片机的功耗要求较高而在信息处理电路中对单片机的处理速度有一定的要求。基于价格和电路设计方便的考虑,采用华邦W78E052,它的指令和引脚序列与MCS51兼容,编程简单方便。它最大支持40MHz时钟,供电电压范围宽(2.4V~5.5V),采用3.3V供电,它的10口可以很方便的与DSl8820和NRF2401直接连接。W78E052内部包含2个外部中断、3个定时计数中断和看门狗计时器,用在本系统中具有相当高的性价比。
1.4无线收发模块
NRF2401是一款工作在2.4GHz~2.5GHz的集接收和发送于一体的单片无线通讯芯片。它的无线收发器由频率发生器、增强型模SchockBurstTM式控制器、功率放大器、晶体振荡器、调制器、解调器等部分组成。可以通过SPI接口来设置协议、功率输出和频道选择。它具有较低的电流消耗,供电电压1.9V~3.6V。
2软件的设计
2.1温度采集
DSl8820是以12位输出的,此时的测温分辨率是0.0625。输出的数据是二进制补码格式,低4位为小数位,最高位为符号位。如果是正温度,读出的数据乘以0.0625便是当前的温度值;负温度得转化为正值再相乘。12位输出的耗时是750ms,如果需要提高转换速度,可以选择减少输出位数(如9位最大耗时仅约94ms),但是测温精度有所下降。如果是单片的DSl8820工作,在启动温度转换和度暂存存储器操作命令时可以跳过64位ROM地址匹配。
2.2无线收发
NRF2401有4种工作模式,分别是收发模式,配置模式,空闲模式和关机模式,这四种模式可由PWR_UP寄存器、PRIM_RX寄存器和CE引脚决定。其中收发模式又有EnhancedShockBurstTM、ShockBurstTM和直接收发模式3种,收发模式由配置字来决定。使用EnhancedShockBurstTM收发模式系统编程相对简单,在这种模式下只需改变一个字节的内容便可以实现接收和发送模式的切换,而且稳定性较高。
2.3系统软件框架
温度采集模块的主要工作是采集温度数据并将数据发送给温度信息处理模块,温度采集模块每2s采集并且发送一次。温度信息处理模块可以工作在两种模式:单机模式和联机模式,这两种模式可以通过按键来设定。单机模式下,将各个温度采集模块上采集过来的温度实时显示出来,预先設定的数据进行比较,如果某一处超过警界值,则启动相应的处理措施并发出报警。而在联机模式下,模块则将采集到的数据通过RS232发给上位机,并执行上位机发出的命令。
3结语
本系统的温度测量误差在±0.1℃以内。用板载天线在空旷地的数据传输距离可达40m,如果采用高增益天线可以将通讯距离增大到100m以上,这样覆盖区域可达到200m的范围,从而避免了繁杂的布线的问题。如果要将通讯距离进一步加大,可以在发射端增加功率放大器模块,在接收端加低噪声放大器模块,这样可以大大提升通讯距离。
作者:迟俊鹏