基于 MSP430和 LabVIEW的温度控制系统设计
2010-08-17王克家曹巍巍
张 帅,徐 伟,王克家,曹巍巍
(哈尔滨工程大学,信息与通信工程学院,哈尔滨 150001)
随着现代化技术的不断发展,在检测领域中经常要对温度进行实时监测,如何找到一种高精度,稳定性好的检测温度值的方法是当前的研究热点,传统的检测方法如采用热敏电阻或者热电偶的方法进行测量时,设计者须考虑的线路环节较多,相应测温装置中元器件数量难以下降,随之影响产品的可靠性以及体积的微小化,由此会造成整个检测系统有较大的偏差,稳定性和抗干扰性能都较差.针对传统方法测量温度数值的缺陷,使用 DS18B20数字式温度传感器采集温度值,主控芯片采用 TI公司 MSP430F149单片机,DS18B20数字式温度传感器直接得到温度的数字量,在其内部完成了模拟到数字的转换,处理后的数字信号直接与单片机的数字 IO连接,不存在由于传输等因素而造成的误差与损失,其稳定性和抗干扰性能与传统的测量方法相比有较大的提高,且系统结构简单,MSP430F149的多组数字 IO使系统的扩展性得到显著的增强[1].上位机显示部分,采用 NI的作为显示界面开发平台,LabVIEW是一个划时代的图形化编程系统,应用于数据采集与控制、信号分析,提供了一个便捷、轻松的图形化设计环境,由于其灵活、简单易用、开发效率高等特点,正逐渐成为科技工作者进行仪器应用与开发的得力工具,通过MSP430F149串口与虚拟仪器进行通讯可以大大降低产品的成本,提高虚拟仪器的利用率,本文通过计算机串口与上位机进行串行通信,实现温度的实时测量与控制.
1 系统硬件设计
图1为系统硬件组成框图,由 DS18B20数字温度传感器,混合信号处理器 MSP430F149,RS-232以及上位机组成.利用温度传感器测量出的温度值转换成数字量,单片机对温度信号进行采集,处理和转换,通过 RS-232串口将处理后的数据送给计算机,上位机 LabVIEW对传送的数据进行处理及温度的显示.
图1 系统硬件组成框图
1.1 温度传感器 DS18B20
DS18B20是美国 DALLAS公司推出的一款可组网数字式温度传感器.采用 1-Wire总线接口,测温范围为 -55~+125℃,精度可达 0.067 5℃,最大转换时间为 200 ms.DS18B20数字温度传感器的内部结构如图2所示,其主要由 4部分组成:
图2 DS18B 20内部结构图
1)64位 ROM.64位激光 ROM,开始 8位是产品类型编码,接着的 48位是每个器件惟一的序号,最后 8位是前面 56位的 CRC(循环冗余校验)码.
2)温度灵敏元件.
3)非易失性温度报警触发器 TH与 TL.可通过软件写入用户报警的上下限值.
4)配置寄存器.配置寄存器为中间结果暂存器中的字节.配置寄存器可以设置 DS18B20温度转换的精度.可以设置成精度为 9位、10位、11位、12位.上电缺省的分辨率为 12位精度.用户可根据需要改写配置寄存器以获得合适的分辨率,因此它的实用性和可靠性比同类产品更高.
1.2 混合信号处理器 MSP430F149
MSP430F14X微控制器是德州仪器公司新开发的一类具有 16位总线的单片机,它基于真正的正交 16位 RISCCPU内核,具有 16个可单周期全寻址的 16位寄存器,仅 27条的精简指令以及 7种均采用双重取数据技术(DDFT)的一致性寻址方式.DDFT技术利用每个时钟脉冲对存储器进行两次数据存取操作,从而不再需要复杂的时钟乘法和指令流水线方案.MSP430F14X系列 MCU具有丰富的片上外围模块,片内包括精密硬件乘法器、多达 60KB的 FLASH,2KB的 RAM、1个看门狗、6个IO口(P1和 P2还具有中断功能)、12位 A/D转换器、2个 16位定时器、高精度比较器、高速的 USART通信端口,1个 DCO内部振荡器和 2个外部时钟等常用资源,可实现对液晶显示器的检测、解调和显示.与现代程序设计技术以及高级语言(如C语言)结合使用,使得 MSP430的体系结构更加高效,使其在工程技术得以广泛应用[2].
1.3 温度检测电路
图3为温度检测电路的原理图,其中MSP430F149和 DS18B20同时由 Vcc供电,XT2IN和 XT2OUT采用 8MHz的晶振提供系统时钟源,单片机 P2.4端口采集 DS18B20处理后的数字信号,并通过 P3.4端口利用串口传输到上位机 PC,利用虚拟仪器 LabVIEW8.5进行温度的实时显示.
图3 温度检测电路
2 系统软件设计
2.1 上位机软件设计
上位机的软件设计主要完成数据的采集和对应数据的温度值的转换,以及对数据的分析,保存和温度数值的实时显示,上位机 LabVIEW测控系统软件采用模块化的思想来编写,程序面板检测界面就是由 LabVIEW的各功能模块组成,该系统主要有数据采集,数据转换,数据存储和数据显示共四部分组成,图4为程序面板的数据采集框图.首先利用 VISA配置串口模块配置串口属性,分别设定串口名为 1,波特率为 9 600,传输 8位数据,并且设定相应的奇偶校验位和停止位,利用 VISA写入模块接收到相应设置好的来自单片机发送过来的数据,并通过字符串与数值转换模块将接收到的字符串转换为相对性的数值,最后由 VISA读取模块将转换好的数值进行读取和数值显示[3].
图4 LabV IEW数据采集框图
2.2 下位机软件设计
上位机接收来自下位机所采集到的数字量,由于温度传感器 DS18B20检测到的数据,经过模数转换后其温度与数据的对应关系为 16位的数字量,所以在传输过程中,将数据保存在 4个包含 4位大小空间的字符型数组中,并将每个数组由 MSP430F149向计算机的串口发送数据,将所检测到的数据发送到 LabVIEW的串口配置接收端,接收到的 4个字符型数组在逐一经过 LabVIEW字符型至数值转换模块,最终将温度显示在上位机的程序面板中,下位机软件的程序流程图如图5所示[4-5].
图5 M SP430F149程序流程图
3 测量温度实验与结果分析
图6 MSP430与LabVIEW温度控制实验
图6显示了上位机 LabVIEW前面板所接收到的温度数值的实时显示.本实验由 MSP430单片机P2.4端口接收温度传感器 DS18B20采集到的数据,接收到的数据通过串口发送到上位机 Lab-VIEW,实现温度值的实时显示和存储,检测精度为0.0625℃,随着被测温度的变化,可以在前面板的波形中对温度值进行读取和存储[6-8].由于混合信号处理器 MSP430F149具有超低功耗的特性,使得它特别适合野外检测和手持型设备的开发和研制,利用其低功耗的特点,MSP430F149在实地检测和控制系统中发挥巨大的节能优势,上位机采用虚拟仪器 LabVIEW,由于其强大的图形化处理功能和模块化设计思想,在加上友好的前面板显示窗口,通过串口与单片机之间进行数据的采集与处理,可以实时的显示所检测环境的温度值变化,检测精度达,在此基础上可以在
MSP430F149的其余端口上外设多个 DS18B20,实现多点的温度检测,超低功耗单片机与虚拟仪器的配合使用,实现了在内部供电的条件下长时间检测周围环境温度变化的系统的建立,与传统的测量系统相比较,测量精度高,显示界面直观,系统功耗低,系统长时间运行稳定.
[1] 胡大可.MSP430系列FLASH型超低功耗 16位单片机[M].北京:航空航天大学出版社,2001:48-53.
[2] 胡大可.MSP430系列单片机 C语言程序设计与开发[M].北京:航空航天大学出版社,2003:95-98.
[3] 艾锦云,何振江,邱 健,等.基于 LabV IEW的多路仪器温度测控系统[J].国外电子测量技术,2004(1):6-8.
[4] 王雪文,张志勇.传感器原理及应用[M].北京:北京航空航天大学,2004(2):10-13.
[5] 周鸿仁,刘秀蓉,杜晓松,等.温度传感器与快速测温[J].世界电子元器件,1999(7):58-59.
[6] POONW.ISX Web Server Implementation With Ethernet As The Physical Layer[R].[S.l.]:Scenix Semiconductor,Inc,2000:1-11.
[7] MSP430F149.Datasheet[EB/OL].2003.http://microcontroller.ti.com,2003.
[8] LabV IEW User Manual[M].USA:National Instruments Corporation,1998.