基于MSP430的单片机多路温度采集系统设计*
2015-12-17陈体军施乐平
陈体军 施乐平,2
(1.西安科技大学电气与控制工程学院 西安 710054)(2.陕西省计量科学研究院 西安 710065)
基于MSP430的单片机多路温度采集系统设计*
陈体军1施乐平1,2
(1.西安科技大学电气与控制工程学院 西安 710054)(2.陕西省计量科学研究院 西安 710065)
介绍了一种以MSP430单片机为核心的多路温度采集系统。解决了以往系统功耗大,结构复杂,灵活性差的弊端。系统采用低功耗高集成度器件MSP430F149作为主控MCU,PT100铂电阻作温度传感器,利用程控放大器MCP6S28和自带12位A/D作信号采集,使得系统功耗低、结构简洁,性能稳定,并通过RS232串口可与上位机进行通讯。此外该系统通过更换不同的传感器部分软件即可组成其他数据采集系统,灵活性好。
MSP430单片机; 多路温度采集; PT100; RS232串口通讯
Class Number TP274
1 引言
温度的采集在科研和生产过程中有着广泛的应用。虽然许多温度采集是在实验室中进行的,但还有些温度采集的环境比较复杂,如野外或现场,或有防爆要求等,没有220V供电条件。目前市面上采用电池供电的温度采集器大多比较简单,如,一般多为单通道温度采集,不带通信接口,不便于数据保存等。其主要原因是这些温度采集系统普遍功耗较大[9]。本文设计的多路温度采集系统采用稳定性好的铂电阻PT100作为温度传感器,MCU采用TI公司生产的超低功耗MSP430F149单片机,配以多路切换电路,实现了采用电池供电的多路智能温度采集。测量系统能够实现人机对话,可以实时查看数据,便于参数校准。通过测量系统上的RS-232接口还能够与上位机进行通信和数据保存,操作方便[1,5]。
2 系统的硬件电路设计
系统的硬件框图如图1所示。0.1mA的恒流源流过PT100,将温度引起铂电阻阻值变化量转换为电压变化量输出,PT100温度传感器输出的信号通过调理电路(信号放大,滤波)之后将采样的信号送到MSP430F149的自带AD转换模块进行AD转换,MSP430F149进行数据处理,在显示屏上显示,将数据保存在FLASH存储芯片中。系统与上位机的通讯是通过RS232串口实现,由于接口电平不同,因此中间需要接口电路来进行转换。
图1 系统的硬件框图
2.1 CPU模块
TI公司生产的MSP430F149是16位单片机,其电源电压采用1.8~3.6V低电压,RAM数据保持方式下耗电仅0.1uA,活动模式耗电250pA/MIPS。采用冯诺依曼体系,RISC指令结构,片内集成60KB的FLASH程序存储器,2KB的SRAM数据存储器,多个16位定时/捕获/比较器,2个串口,12位高精度ADC,64引脚QFP封装,48个I/O口,其中P1口和P2口具有中断功能,使用JTAG技术,开发方式方便高效,可以实现在线编程[2]。具有指令执行速度快,外部电路结构简单,低功耗等特点。
2.2 信号采集模块
此次设计采用铂电阻温度传感器PT100进行温度采集,PT100具有精度高,性能稳定等优点广泛应用于温度测量领域。铂电阻电阻值与温度的关系关系为
Rt=R0(1+At+Bt2)
(1)
其中:Rt为t℃时PT100的阻值,R0为0℃时PT100的阻值,A、B均为定值常数[3]。0.1mA的恒流源输出的电流流过铂电阻,将温度变化转换成电压变化。根据公式可由电压变化的范围反推出阻值以及温度变化的范围。恒流源的设计采用微功耗运放MC34181,其功耗电流为0.2mA;2.5V基准电压采用MC1403芯片提供,恒流源输出为I=2.5V/25kΩ=0.1mA,如图2所示。
图2 恒流源电路
图2为一路PT100温度采集差分信号输出OUT1/OUT0。本文设计8路温度采集,通过控制多路开关来分别对8路铂电阻恒流供电,多路开关采用TI公司生产的CD4051,其为单刀八掷开关,通过控制地址线ABC来选择导通A0~A7八个通道,进而选择导通不同序号的铂电阻,将包含温度信息的压降信号送入信号调理模块。在通过恒定电流的铂电阻两端引出两条测试线来完成信号的输出,即四线制接法,有效地消除了线电阻误差。多路开关应用示意图如图3所示。
图3 多路开关连接原理图
2.3 信号调理模块
由于传感器送出的信号比较微弱,且容易受到外界信号的干扰,所以要经过信号调理电路来进行低通滤波和放大后送到MSP430F149的P6口,其为内部ADC12的8个外部通道口,本文放大电路采用二级放大电路,第一级采用程控放大器MCP6S28,MCP6S28为8通道增益可编程放大器,通过编程可实现通道选择和放大倍数为1、2、4、5、8、10、16以及32的选择,采用MCP6S28简化了放大电路,缩小了PCB板的面积,而且放大倍数更为灵活、可靠。二级放大采用LMX321实现[10]。
图4 二阶压控低通滤波电路
低通滤波采用二阶压控有源滤波器,如图4所示,传递函数为
(2)
由于MSP430F149单片机的ADC12单端输入方式为0~VDD(VDD允许电压为2.5V~3.3V),放大后的信号还不能直接作为ADC12的输入信号,必须把双极性信号转换为单极性信号,本文采用简单的电阻分压的方式,即将信号的负端与单片的GND相连作为参考地,ADC12的参考电压设置为2.5V,经两电阻R4、R5分压后输入P6口,满足系统的要求。
2.4 显示存储模块
本文采用仪表常用的12864液晶模块作为显示器,用来显示采集的通道、数据的状态以及通过键盘的对系统的参数进行设置等。12864为汉字图形点阵液晶,可显示汉字图形,内置8192个中文汉字(16*16点阵),128个字符(8*16点阵)及64*256点阵显示RAM(GDRAM)与MSP430F149的P3.0~P3.2口和P4口连接,编程方便。
AT45DB161D是ATMEL公司生产的串行可编程FLASH存储器,单独2.5V~3.6V工作电压,是各种数字语音,图像,程序代码和数据存储应用的理想选择。AT45DB161D支持Rapid S串行接口,适用于高速场合。Rapid S串行接口是与SPI相兼容的,速度可达到66MHz。与并行FLASH储存器不同,它采用Rapid S串行接口,从而大大减少了可用引脚数量,同时也提高了系统可靠性,降低了开关噪声,缩小了封装体积[4]。广泛用于商业、工业等需要高密度、低引脚数、低电压与低功耗的应用场合。
2.5 通信接口电路
由于下位机的信号与RS-232接口电平不一致,所以需要电平转换电路,本系统采用MAX232电平转换芯片设计转换电路。MAX232芯片是MAXIM公司专门为RS-232标准串口设计的单电源电平转换芯片,典型工作电压为5V,为了满足充电泵的要求,在1、2、3、4、5、6引脚处置放0.1μF充电电容,另外在芯片的电源引脚处放置0.1μF电容实现滤波以减少输入端的干扰[6]。如图5所示。
图5 MAX232接口电路
MSP430有两组通讯接口,UTXD0/URXDO、UTXD1/URXD1。TTL数据从T1IN/T2IN输入转换成RS-232数据从TIOUT/T2OUT输出送到电脑的DB9插头,DB9插头的RS-232数据从R1IN/R2IN输入转换成TTL数据从RIOUT/R2OUT输出。
2.6 电源电路
电源电路的设计为整个系统的提供合理的电源,设计本着合理简单的原则。MSP430F149供电电压为3.3V,放大电路中的MCP6S28、LMX321芯片,存储芯片AT45DB161D以及LCD12864也采用单电源3.3V电压与MSP430保持一致,设计更为简洁。系统采用5V直流电源供电,3.3V电源由型号为LM3940电源稳压芯片提供。
3 系统的软件设计
图6 主程序流程图
本系统采用C语言编写,由它编写的程序结构紧凑,效率较高。系统所实现的功能有8路A/D采样、数据的显示及存储,串口的收发等。主程序流程如图6所示,系统上电后,进行系统初始化(12864液晶、ADC12、串口以及看门狗定时器的初始化),然后进入低功耗模式等待定时器中断、按键中断、通讯中断。MSP430通过中断的方式响应AD转换及数据的处理等操作,如果采集的结果超过边界值则调整MCP6S28的放大倍数,AD转换有四种模式,采用序列通道单次转换,以方便与上位机的通讯[7]。ADC12的设置如下:
void Init_ADC(void)
{
P6SEL |= 0x01;
// 使能ADC通道
ADC12CTL0 = ADC12ON+SHT0_8+MSC;
// 打开ADC,设置采样时间
ADC12CTL0 |= ENC;
// 使能转换
ADC12CTL1 = SHP+CONSEQ_1;
// 使用采样定时器,序列通道单次转换
ADC12MCTL0=INCH_0; //通道A0
ADC12MCTL0=INCH_1; //通道A1
ADC12MCTL0=INCH_2; //通道A2
ADC12MCTL0=INCH_3; //通道A3
ADC12MCTL0=INCH_4; //通道A4
ADC12MCTL0=INCH_5; //通道A5
ADC12MCTL0=INCH_6; //通道A6
ADC12MCTL0=INCH_7; //通道A7
ADC12CTL0|= ADC12SC;//开始转换
}
其中采用中值滤波算法来提高采集数据的准确性,通过按键功能可以选择显示存储和串口发送等功能。
4 实验结果
本测量输入了一个通道的信号。在不同温度下的测量结果如表1所示。
表1 不同温度下的温度的测量值
由表1可以得出,在-20℃~200℃温度变化时,标准温度与系统测量温度相差小于0.5℃,能够满足工农业生产的需要。
5 结语
基于MSP430F149设计的多通道温度采集系统采用自带12位高精度AD,程控增益放大器MCP6S28使设计简洁,缩小了PCB板的面积,提高仪器的集成度。实际测量表明使用铂电阻的温度测量系统运行稳定,精度高,功耗低,可以用于不同的现场测量。另外,如果更换不同的传感器和配套电路,如热电偶或其它传感器就可以组成不同的低功耗数据采集系统,通用性强,有推广价值。在模数转换方面,如果使用位数更高的AD器件就组成更高精度的采集数据。系统的测量数据可以暂时存在测量系统中,回到实验室后通过RS232接口上传到计算机,使用灵活方便。
[1] 吴怀超,周勇.基于MSP430与FLASH芯片多通道数据采集系统的开发[J].煤炭技术,2011,30(4):49-51.
[2] 邓鹏,隋波.基于MSP430单片机的多路数据采集系统[J].船舶电子工程,2009(3):168-170.
[3] 张丽娟.铂电阻温度测量系统研究[J].科技向导,2012(24):166-168.
[4] 陈龙,邓先灿,孙麟.基于MSP430多路数据采集系统的设计[J].现代电子技术,2006(20):107-51.
[5] 胡大可.MSP430系列超低功耗16位单片机原理与应用[M].北京:北京航空航天大学出版社,2001:196-210.
[6] 张小琴,祖静,张瑜.基于MSP430单片机的实时数据采集系统设计[J].计量与测试技术,2008,35(10):132-135.
[7] 胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北京航空航天大学出版社,2003:167-168.
[8] 魏小龙.MSP43系列单片机接口技术及系统设计实例[M].北京:北京航空航天大学出版社,2002:25-79.
[9] 肖忠祥.数据釆集原理[M].西安:西北工业大学出版社,2001:10-23.
[10] 王小娟.数字式可变增益放大器的实现[J].仪表技术,2008(7):7-8.
Design of Multi-channel Temperature Acquisition System Based on MSP430 MCU
CHEN Tijun1SHI Leping1,2
(1. College of Electrical & Control Engineering, Xi’an University of Science and Technology, Xi’an 710054)(2. Shaanxi Institutes of Metrology Science, Xi’an 710065)
A multi-channel temperature acquisition system based on MSP430 is introduced in this paper. The general problems, such as power, complex structure, are solved. The system is composed of low power and high integration device MSP430F149 as main control MCU, PT100 platinum resistance as temperature sensor, programmable amplifier MCP6S28 and 12 bit A/D. The system has the advantage of low power, simple structure and stable performance. Through the RS232 serial port, it is able to communicate with PC. In addition, the temperature acquisition system can be changed to other date acquisition system through exchanging sensors and partly program.
MSP430 single chip microcomputer, multi-channel temperature acquisition, PT100, RS232 serial port communication
2014年9月17日,
2014年11月3日
陈体军,男,硕士研究生,研究方向:数据高速采集仪器仪表。施乐平,男,研究方向:仪器仪表检测技术。
TP274
10.3969/j.issn1672-9730.2015.03.044