摘要:设计了基于MSP430的多点无线温度检测系统。系统采用低功耗的MSP430F149单片机作为核心控制部件,硬件由无线通信模块、温度采集电路、显示模块和串口通信模块组成,软件采用模块化的设计方法。测试表明,整个系统都是在超低功耗的要求下进行元件及运行方式的选择,各个基站只需要3 V电池供电就能实现长时间运作,能很好地实现超低功耗,并且实现了测量温度的实时性。
关键词:MSP430单片机;NRF24L01;NTC热敏电阻;超低功耗
0 引言
温度在人类日常生活中扮演着极其重要的角色,同时在工农业生产过程中,温度检测具有十分重要的意义。现阶段温度检测主要是有线定点温度检测,其温度检测原理为单片机利用温度传感器检测温度,并在数码管或LCD上进行温度显示。同时由于系统没有报警功能,故需要人为来判断是否需要进行升温或者降温,这使系统的检测丧失了实时性。另外,在某些环境恶劣的工业环境,以人工方式直接操作设置仪表测量温度也不现实,因此采用无线方式进行温度检测尤为必要。
目前有些设计能够实现无线温度采集,但功耗过高是其最大的缺点。在实际温度控制过程中既要求系统具有稳定性、实时性,又需要使系统功耗低及保证温度的均匀性,因此设计一种低功耗的多点无线温度检测系统很有意义。本文提出一种采用低功耗单片机MSP430F149单片机实现的多点无线温度测量系统,解决了上述问题。该系统能实现对温度智能化的检测,能够同时进行多点温度检测,是可以实现远程控制的无线温度检测系统。低功耗、实时性的无线温度检测是该设计的最大特点。
1 系统构成
系统分为下位机、上位机和PC机三部分。PC机是整个系统的最上层,负责对下位机的控制和管理,并对收集到的各个节点的数据进行存储和处理。由于下位机无法直接与PC机通信,这就需要使用上位机作为中间媒介。上位机与下位机通过无线模块通信,与PC机采用有线连接。
该设计采用MSP430F149单片机作为核心控制模块,其最主要特点为低功耗。MSP430F149具有双串口的特点,利用其中的一个串行口与PC机进行通讯时,两者之间必须通过RS 232电平转换芯片。单片机与无线发射模块nRF24L01通讯时可通过通用I/O口模拟串口通讯。现场温度数据的采集是利用NTC100热敏电阻和MSP430F149单片机部带有的12位A/D转换器来实现的。这里不需要外加ADC,可以简化电路,提高系统的稳定性。将按键作为输入模块,用来改变温度报警的上下限。由于设计要求不需要太多内容的显示,考虑到功耗及性价比,可以自制一个简易段码液晶用于显示。下位机设计方案和系统整体构成框图分别如图1,图2所示。
2 硬件设计
2.1 无线通信模块设计
nRF24L01是一款新型单片射频收发器件,工作于2.4~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurSt技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,有多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便,图3为它的应用电路。
从单片机控制的角度来看,只需要将图3中左边的6个控制和数据信号与单片机通用I/O口相连。
2.2 温度采集电路
为了使整个系统的功耗更低,采用低功耗的热敏电阻NTC100和MSP430149内部自带的12位A/D转换器实现温度的采集功能。其理论分析与计算电阻值和温度变化之间的关系。
式中:RT为温度T(单位:K)时的NTC热敏电阻阻值;RN为额定温度TN(单位:K)时的NTC热敏电阻阻值;T为规定温度(单位:K);B为NTC热敏电阻的材料常数,又叫热敏指数。
常温环境中,温度为28℃,换算成开氏温度为273.15+28=301.15 K。通过多次测28℃及30℃环境下的数据,如表1所示,取平均值,尽量减小误差,算得B值。
通过式(1)可得,将T,TN都转化成开尔文温度进行计算得B=4 064.34。经过比较发现,求得的阻值与测得的阻值很相近。
图4为温度采集模块,其中R1为热敏电阻,R3为200 kΩ电阻,R2为0~20 kΩ的可调电阻,用来调整温度计的准确性。U0为检测到的电压,将U0接到单片机管脚,通过A/D转换,将得到的电压值转换成温度值,在LCD上显示出来。
2.3 显示模块
本次设计采用自制的16位段码液晶进行显示。利用液晶驱动IC(HT1621)以及配套的液晶LCD玻璃片,自制16位段码液晶。另外,驱动IC上装有两种频率的蜂鸣驱动电路,可以实现报警功能。
2.4 串口通信模块
在温度采集过程中,由于系统随时需要将采集到的温度数值通过PC机上的VC界面进行显示,因此需要在PC机和单片机之间进行相互通信。由于PC机的RS 232电平与单片机的TTL电平不同,因此用MAX3232芯片实现电平的相互转换,这样就可以实现单片机与PC机之间的相互通信。
3 软件设计
系统的软件设计采用模块化设计方法。下位机利用定时中断发送温度数据,利用端口中断设置温度报警的上下限,其他时间处于低功耗模式3的状态下,这样可以大大降低功耗。上位机利用接收中断接收数据,并且利用MAX3232与PC机通信。
NTC热敏电阻的主要缺点是热电特性的非线性现象严重,本次设计采用查表法对NTC热敏电阻进行线性化。线性插值法软件流程如图5所示。
图5中,0,R1,R2,…,RK是曲线上横坐标取值;0,T1,T2,…,TK是其对应的纵坐标。K的取值可根据所需温度精度确定。温度T的表达式为:
4 测试结果及分析
4.1 温度采集及显示
将程序写入单片机中,连好硬件线路,通过键盘设置好温度上下限后,单片机开始采集温度数值。如图6所示,是下位机显示界面,LCD显示报警温度的上下限、当前温度以及下位机的代号。
经过多次测试,将LCD显示的温度与普通温度计进行比较,得到表2中的数据。
经过测试,温度误差在允许范围内,系统能够稳定的运行。当采集到的温度数值超过设定的上下限时,单片机就会发出报警信号,提醒用户进行温度控制。
4.2 功耗测试
当下位机进入LPM3(睡眠)模式,LCD不显示,但内部时钟仍运行,串入电流表,测量电流值,测得电流为4μA左右。证明系统很好地实现了超低功耗。
4.3 无线模块测试
将无线模块连接好,先进行一对一的收发调试。让下位机1控制无线收发模块发送一连串有规律的数,观察上位机接收的数字。经过测试,3路下位机系统都可以与上位机进行稳定的一对一收发。然后3个下位机都与上位机通信,进行一对三的收发调试,上位机接收3路数据,并且显示。
经过测试,3路都能正常的工作,且误码率低,工作稳定。无线模块nRF24L01的最大传输距离大约为100 m。
4.4 VC界面显示
首先进行上位机的硬件连接,连接完成后进行上电初始化并打开PC机的VC界面。当VC界面正常打开时,会出现“串口已打开”的提示;当VC界面无法正常打开时,会出现“串口无法打开”的提示,出现此情况时首先检测硬件连接,再检查选定串口通道是否正确。PC机最终显示如图7所示。
5 结语
本文描述了基于MSP430单片机的无线温度控制系统的软、硬件设计。通过调试证明系统运行正常,各项指标均能达到设计要求。整个系统集成度高,功耗低,温度采集和无线传输速度快,误码低,且具有体积小,重量轻,可靠性高,易于控制和使用灵活等优点,因而性价比极高。
本次设计的温度精度为0.5℃,可以根据实际需求进一步提高精度;基站为了实现断电存储,可以将数据存储于单片机的FLASH中,上电时单片机从FLASH中取出所需的数值进行显示。