摘要:针对目前温度采集报警系统功耗大、应用场合有限等缺陷,设计了一种基于CC430F5137单片机的低功耗无线通信温度采集报警系统。本系统具有功耗低、精度高、无线传输可靠性高等特点。介绍了CC430F5137芯片的特点和系统的硬件结构原理,给出了系统硬件设计框图和软件流程,并详细地分析了温度采集模块和RF无线收发模块。实验结果验证了采用CC430F5137设计温度采集报警系统的可行性。系统运行稳定可靠,有较好的应用前景。
引言
随着科技的不断进步,现代化生产对温度采集的实时性、高效率和低耗能的要求不断提高,而且许多测量温度的现场环境非常恶劣,使操作人员难以到达现场测量。对此,需要一种能够自动采集、处理并能够无线传送数据的温度采集系统。同时,为了节省使用成本以及维护,此系统还需要具备长期稳定工作的性能。因此,开发一种低功耗并且能够无线传输数据的温度采集系统,能够弥补目前温度采集领域的缺陷。
参考文献设计的温度采集系统虽然具有低功耗性能,但是都必须用线路连接才能进行通信,这大大限制了应用场合,使其应用具有一定的局限性。参考文献设计的温度采集系统利用的ZigBee无线通信技术作为通信工具,但是其必须利用单独的外接ZigBee模块才能完成通信功能,所以制作成本较高。针对以上缺点,本系统采用的CC430F5137芯片不但具有MSP430系列的低功耗性能,而且具有RF无线收发器的功能。这两种性能充分满足了低功耗和无线通信的要求,使得系统的成本降低,达到了目前应用的要求。
1 装置整体运行原理
1.1 装置运行原理
无线温度采集报警系统主要由两部分组成,一部分是温度采集模块,另一部分是中央控制模块。中央控制模块包括键盘及显示模块和报警模块。系统整体框图如图1所示。系统工作时,首先由各个温度采集模块中的温度传感器完成对温度的采集任务,然后CC430F5137单片机通过I/O口得到温度参数,最后将采集的温度信息通过CC430F5137内部集成的RF无线收发器传输给主控制器系统。主控制系统对各个站点采集来的温度数据进行系统的分析,并将结果利用数码管进行显示。当温度超过上限值或下限值的时候,则触发报警装置,通过驱动一个蜂鸣器和报警灯来实现。报警温度的上下限值可以通过键盘输入模块进行设置。主控制台有两组数码管,一组数码管显示温度采集模块的序号,可以通过键盘来选择要显示的温度采集模块的序号,另一组则显示温度值。
2 系统硬件设计
温度采集报警系统的硬件设计包括温度采集模块设计和中央控制器设计。
2.1 温度采集模块设计
2.1.1 CC430F5137器件介绍
CC430F5137是TI MSP430F5xx MCU与低功耗RF收发器相结合的产品,可实现极低的电流消耗,从而使采用电池供电的无线网络应用无需维修即可工作长达10年以上。此外,微型封装所包含的高级功能还可为创新型RF传感器网络提供核心动力,以向中央采集点报告数据。CC430 F5137为16位超低功耗MCU,具有16 KB闪存、2KB RAM、CC1101无线电、AES-128和USCI,供电电压为1.8~3.6 V,正常工作模式消耗电流为160μA/MHz,低功耗模式3消耗电流为2.0μA。
2.1.2 CC430F5137的RF无线收发模块电路设计
CC430F5137内部集成了CC1101无线电收发器,RF频率为432.999817MHz,信道间隔为199.951172kHz,数据传输速率为38.383484kbps。在本系统设计中,可以设置无线发送功率。根据发射距离的远近去设置功率的大小,可以使功耗达到最低,实现低功耗。其电路图如图2所示,CC430F5137的供电电源为两节7号电池,电压为+3V,外接晶振为26MHz,RF_N和RF_P为RF无线电发射引脚,两引脚外接天线,其功率可以达到-30dBm,传输距离可以达到100m左右。
2.1.3 温度采集电路设计
考虑到设备低功耗的要求,所选的温度传感器必须具有低功耗特性,这里选择了MAX6613型集成温度传感器。MAX6613是一款高速度、高精度的低功耗温度传感器,特别适合用于低功耗的产品中。MAX6613的电源供电电压范围为1.8~5.5V;低电源电流消耗,典型值为7.5μA;测量范围为-55~+130℃;非线性误差为1.3℃。其测量温度与输出电压关系式为:
Vout=-0.011 23T+1.8455Vref (1)
式中Vout为传感器的输出电压,T为被测温度,Vref是通过参考电压得到的传感器的测得电压。单片机通过模拟采集口采集传感器的输出电压,通过公式(1)就可以计算出实际测量的温度值。因为CC430F5137内部集成了ADC模块,其输入电压范围为0~3.6V,可以满足系统的要求,所以可以直接将MAX6613的电压输出口接在CC430F5137的ADC输入口上,其电路图如图3所示。
2.2 主控制器设计
主控制器的RF接收发射模块与温度采集模块中的RF接收发射模块设置相同,在此不再赘述。
2.2.1 报警系统硬件电路设计
报警系统通过控制晶体管的开通与关断去控制蜂鸣器和报警灯的导通与关闭,从而达到报警的目的。
CC430F5137单片机的P2.0口通过控制输出信号的高低电平来控制晶体管的导通或截止,如图4所示。如果晶体管导通,则蜂鸣器报警并且触动报警灯亮。当所测温度的值超过预设的温度上、下限值范围时,会启动报警系统。当温度值调节在正常的工作范围内,报警系统会自动停止报警。
2.2.2 键盘及显示模块硬件电路设计
键盘采用4×2的键盘模式,一共8个按键,其功能按钮分别为启动按钮、停止按钮、功能1上限温度值设定按钮、功能2下限温度值设定按钮、功能3温度采集模块序号选择按钮、数值加1、数值减1、手动报警按钮。
CC430F5137共有16个外部中断I/O口,分别为P0口和P1口。在此,采用P0口作为键盘扫描端口,只要有一个键被按下,相应的两个I/O口就会被置为低电平,只要判断是哪两个I/O口有中断发生,就能判断出被按下的按钮,进而执行相应的操作。
2.2.3 显示模块硬件电路设计
显示模块考虑到成本的要求,采用数码管作为显示界面,如图5所示。系统中选用8个数码管进行显示温度。其中前4个为一组,用来显示温度采集模块的序号;后四个为一组,用来显示温度采集模块采集的温度值,其中第一个数码管为符号位。系统采用74HC245总线驱动器用来驱动相应的LED数码管,P1口作为LED数码管的片选信号。
3 系统软件设计
温度采集报警系统的软件设计包括主控制器和温度采集模块的软件设计。
3.1 主控制器软件设计
主控制器程序流程如图6所示。首先按动开始按钮系统开始运行,此时CC430F5137会发出一个控制指令给指定的温度测量模块,开始进行温度采集,被指定的温度采集模块将所测温度数据发送给主控制器(系统初始默认的是显示第一个温度采集模块的测量数据)。主控制器接收到数据后,开始执行显示程序。首先在第一组数码管上显示温度采集模块的序号,第二组显示温度值。主控制器会连续判断温度值是否越限,如果越限,系统会触发报警装置,这时蜂鸣器会发出响声,并且报警灯点亮,直到温度值回到允许的范围内。如果有按键被按下,会执行相应的按键功能,并发送给指定的温度采集模块。
3.2 温度采集模块软件程序设计
温度采集模块程序流程如图7所示。当主控制器发送控制指令后,温度采集模块开始接收指令,并执行相应的指令功能。首先温度采集模块中的CC430F5137会采集MAX6613输出的电压信号,然后计算出相应的温度值,并发送给主控制器。如果没有接收到指令,系统不会采集MAX6613的电压信号,温度采集模块会一直处于低功耗模式3中,这样就能降低功耗。在低功耗模式3中,系统的DC发生器关断,只有晶振是活动的,系统的总中断允许位被打开。如果有RF无线收发器中断,此时系统就会从低功耗模式3中唤醒,开始执行温度检测程序。这样就能使功耗降到最低,达到低功耗的要求。
RF无线电中断子程序:
结语
本文设计了一种基于CC430F5137的无线温度采集报警系统。此模块主要是由主控制器和温度采集模块组成。经过测试,系统运行稳定可靠,但是在距离较远和传输中间有障碍物的情况下,发送的数据会有接收丢失的状况,根据实际的应用场合还需要不断改善。