基于MSP430单片机的温度监控系统设计Word格式.docx
《基于MSP430单片机的温度监控系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于MSP430单片机的温度监控系统设计Word格式.docx(56页珍藏版)》请在冰豆网上搜索。
市场决定技术,技术引导产品的开发,在这样的环境下,与温度控制相关的电子类产品的开发成为当今的研究热点。
随着单片机技术的日益成熟,应用范围的逐渐扩大,以单片机为核心的控制系统,逐渐应用到生活中的很多方面,这不仅克服了温度控制系统中存在的严重时延,节省了人力,提高了采样频率,而且在很大程度上提高了控制效果和控制精度。
以往的温度检测系统所使用的单片机,管脚少,功能少,功耗大,虽经数十年发展,仍不能满足现在的市场需要。
自1996年TI公司推出的16位、具有超低功耗和丰富的片上外围模块的MSP430系列单片机以来,该系列单片机就以其低功耗特性被广泛应用于医疗、电子仪表以及消费类电子等产品中。
MSP430系列单片机支持采用汇编语言和C语言进行开发,运算速度快等优点,[1]。
进入21世纪后,温度检测系统已逐步走向复合型和智能化,温度作为其中的重要参数,其测量的准确性对提高正确性是很重要的,研究和设计高性能的温度控制系统具有非常重要的意义。
现如今,智能温度传感器正迅速朝着高精度、高可靠性及安全性等高科技的方向发展,提高温度传感器测温精度和分辨力,增加传感器测试功能,提高总线技术的标准化与规范化,增强可靠性及安全性设计,虚拟温度传感器和网络温度控制器的设计成为当前要解决的主要问题。
由美国Dallas公司生产的DS18B20温度传感器具有单总线,两种工作模式,能够直接读出被测温度等特点,特别是它的单总线设计,使得系统结构简单,可以节省单片机的I/O接口的开销,多个传感器可共用一个接口而不会产生干扰;
虽然软件设计复杂,但通过软件的设计,可以提高可靠性,增强抗干扰能力,适合于恶劣的环境,共地模式[2]使得它耗电量小,支持串行数据传输,传输距离远;
温度测量范围广,精度高,可根据实际情况实现精度的变换,因而成为目前各类有关温度采集工作的首选[2][3]。
1.2国内外动向
温度控制,在工业自动化控制中占有非常重要的地位,单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命。
随着科学技术的迅猛发展,各个领域对自动控制系统控制精度、响应速度、系统稳定性与自适应能力的要求越来越高,被控对象或过程的非线性、时变性、多参数点的强烈耦合、较大的随机扰动、各种不确定性以及现场测试手段不完善等,使得难以按数学方法建立被控对象的精确模型得以解决。
随着电子技术的日趋成熟,电子类产品的开发成为当今的研究热点。
电子技术以及应用需求的发展使得单片机技术也得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。
以单片机为核心的的控制系统被广泛使用,现代自动控制越来越朝着自动化、智能化发展,在很多自动控制系统中都用到了工控机、小型机、甚至是巨型处理机。
然而其运行速度快,内存需求大,数据存储器容量大的要求使得它的开发维护成本很高,在很多的小型系统中,用成本低廉的单片机控制小型的,不需要大量复杂运算的系统是非常合适的。
伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机和温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,并实现多路温度数据的循环显示和指定某一路温度的显示。
MSP430系列单片机是美国德州仪器(TI)推向市场的一个16位、具有精简指令集、超低功耗的混合型单片机,TI计量设备还包括针对水气表计量应用的器件,以及针对自动仪表读取(AMR)的电力线通信(PLC)与射频(RF)接口,在医疗方面研制开发了许多便携医疗设备与无线射频系统[1]不仅如此,随着“信息时代”的到来,传感器技术得到了显著的提高,应用领域越来越广泛,对其要求也越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
由于传感器能将各种信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制等操作,但是它们都不同程度的存在温漂和非线性等不足,因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器只有经过适当的接口电路调整才能满足信号的处理、显示和控制要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器与信息通信和信息处理结合起来,才能适应传感器的生产、研制、开发和应用;
另一方面,传感器的被测信号来自于各个应用领域,每个领域都在为了改革生产力、提高功效,开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。
温度传感器是其中重要的一类传感器,发展速度快,应用范围广,并且具有很大潜力。
单总线数字温度传感器DS18B20由美国DALLAS;
两种驱动模式的设计使得它的耗电量可以很小,串行传输数据,传输距离远;
温度测量范围广,精度高,可根据实际情况实现精度的变换。
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个时钟/日历电路和31字节的静态RAM,实时时钟/日历电路能提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可根据实际情况自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
该芯片与单片机之间能简单地采用同步串行的方式进行通信,仅需用到RES、I/O、SCLK三个接口,时钟RAM的读/写数据以一个字节或多达31个字节的字符组方式通信,保持数据和时钟信息时功率小于1mw[4]方便了温度的实时监控和记录,提高了系统的实用性。
除此以外,显示技术的提高,键盘控制方式的多样化也使我们选择的余地增多。
与LED显示相比,LCD液晶显示器分为点阵式和段码式两种,它具有显示质量高,可视面积大,应用范围广,画面效果好,接口数字化,功耗低等优点,因而在电视机、电脑工厂显示等领域被广泛使用。
矩阵式键盘的编程和识别相对较复杂,但在键盘中按键数量较多时可以减少I/O口的占用,节省单片机接口资源,因而被广泛使用。
1.3课题的主要研究内容
本课题通过对超低功耗系列单片机MSP430,单总线数字温度温度传感器DS18B20,日历/时钟芯片DS1302,液晶显示模块OCMJ4x8B等的介绍,达到熟练掌握器件的性能、功能及使用方法,应用C语言设计编程实现一个多点温度循环监控系统,实现温度数据的循环显示和指定某一路温度的显示,并用Protel绘制电路原理图和印制板图,完成JTAG仿真。
2系统方案设计
根据本次设计的目的,我们对该温度检测系统所需的元器件进行比较和选型,重点介绍了超低功耗单片机MSP430F449,单总线数字温度传感器DS18B20,日历/时钟芯片DS1302,液晶显示模块OCMJ4x8B,JTAGA仿真等的基础知识,了解所选元器件及相关软件的优点及使用方法。
2.1MSP430系列单片机
2.1.1MSP430系列单片机简介
MSP430系列单片机是美国德州仪器(TI)推向市场的一个16位、具有精简指令集、超低功耗的混合型单片机,自1996年问世,由于它具有极低的功耗、丰富的片内外设备和方便灵活的开发手段,成为许多电子产品设计的首选,1999年进入中国就受到了中国广大设计工程师的青睐。
目前,该系列单片机不仅在电子工程、测控技术与仪器、自动控制、机电一体化等方面得到广泛应用,而且逐渐走进校园,被越来越多的使用在硕士研究生和高年级本科生的科技实践和毕业设计中,在2005年暑期全国大学生电子设计竞赛中就选用了该系列的单片机[5]。
MSP430系列单片机的型号很多,TI公司用3或4位数字表示单片机型号,其中一位数字表示一个系列。
目前有四大系列:
带有液晶驱动的MSP430F4xx系列单片机、不带液晶驱动器的MSP430F1xx系列单片机、16MIPS高速MSP430F2xx系列单片机、一次性写入(OTP)型低价MSP430C系列单片机,每个系列中又含有许多子系列。
单片机型号的第二位数字表示子系列号,一般子系列号越大包含的功能模块越多,最后一或两位数字表示存储器容量,数字越大表示ROM和RAM的容量越大。
此外,MSP430系列单片机还针对许多热门应用设计了一系列专用单片机,如水表专用单片机、医疗仪器专用单片机,电能计量专用单片机,这些单片机都是在相同型号的通用单片机的基础上增加专用模块构成的[5]。
MSP430F449单片机的主要性能有:
●低供电电压范围:
1.8V-3.6V及欠电压检测器
●超低功耗,具有五种省电模式:
活动模式:
1MHz,2.2V时为280uA;
等待模式:
1.6uA;
关闭模式(RAM保持):
0.1uA
●数字控制的振荡器(DCO)可以在6us内将CPU从休眠中唤醒,这也是实现低功耗的重要手段之一
●16位精简指令结构,125ns指令时间周期,10个16位的寄存器以及常数发生器,能够最大限度的提高代码的效率
●具有内部参考电平,采样保持和自动扫描的12位A/D转换器
●带有三个或七个捕捉/比较影子寄存器的16位定时器B
●带有三个捕捉/比较寄存器的16位定时器A
●串行通讯接口(USART),软件选择异步UART或者同步SPI接口,对于MSP430F44x系列的单片机有两个UART(UART0,UART1)
●可编程电平检测的供电电压管理器/监视器
●串行在线编程无需外部编程电压,可编程的安全熔丝代码保护
●集成多达160段的LCD驱动器
如图2.1所示为MSP430F449单片机的引脚图。
该单片机共有100个引脚,大部分引脚是复用的,最多有三种功能模块复用在一个引脚上,主要包括:
6个8位的I/O口:
P1-P6且P1、P2口具有中断功能;
JTAG仿真接口;
一个8+4通道的12位A/D转换器(外部8个,内部4个);
两个串行通讯模块USART0/1,每个都可用软件选择UAST/SPI模式;
一个高精度的比较器A,配合其它器件可构成单斜边A/D转换器;
具有4个COM端的液晶驱动;
液晶接口S0-S31[3][4]。
图2.1MSP430单片机引脚图
2.1.2MSP430系列单片机超低功耗的原理及实现
MSP430单片机超低功耗的关键是应用其时钟系统,最大化低功耗模式的工作时间,典型的LMP3电流消耗少于2μA,32kHz晶振用于ACLK的时钟,DCO用于CPU激活后的突发短暂运行[1]。
MSP430系列单片机的基本时钟系统操作模式如表2.1所示。
运行模式要考虑到三个不同的需求:
低功耗、速度和数据的吞吐量;
单个外围设备电流消耗的最小限度。
在状态寄存器中,用CPUOff、OSCOff、SCG0和SCG1位配置低功耗方式0~4,可以在中断服务程序中将当前工作状态保存在堆栈中。
利用堆栈SR值,程序溢出能返回到不同的工作状态。
模式控制位和堆栈能被任何指令访问。
当设置任一种模式的控制位时,被选择的工作状态立刻响应。
如果时钟未被激活,用任何禁用时钟操作的外围JTAG口可以进行嵌入式仿真,不需要附加任何外围电路。
表2.1基本时钟系统操作模式
控制位
工作模式
CPU状态、振荡器及时钟
SCG1
SCG0
OSCOff
CPUOff
活动模式(AM)
CPU、MCLK、SMCLK、ACLK均处于活动状态
1
低功耗模式0(LMP0)
CPU、MCLK禁止
低功耗模式1(LMP1)
CPU、MCLK禁止,在活动模式,如果DCO为用作MCLK及SMCLK,则直接流发生器保持有效;
ACLK活动
低功耗模式2(LMP2)
CPU、MCLK、SMCLK禁止,如果DCO为用作MCLK及SMCLK,则直接流发生器保持有效;
低功耗模式3(LMP3)
仅ACLK有效
低功耗模式4(LMP4)
CPU及所有时钟禁止
MSP430系列单片机的低功耗主要是靠CPU进入休眠状态来实现的,能够将CPU从休眠状态唤醒的条件只有发生中断或复位。
因此低功耗和中断之间的关系非常密切。
MSP430单片机的所有的大部分功能模块均能够在不需要CPU干预的情况下独立工作且能引发中断,所以在对MSP430进行编程时,软件的基本结构之一就是先向某工作模块发出工作指令,然后CPU休眠,等待模块操作完毕后产生中断,唤醒CPU继续下面的任务,从而将CPU运行的时间降到最少,功耗降到最低。
不仅如此,单片机的SR寄存器保存着低功耗休眠标志位,如果中断发生前是休眠状态,那么从中断返回时CPU仍将是休眠状态。
若想返回主程序时退出休眠,可通过一些软件手段在退出中断前修改堆栈内的值。
针对这一特殊操作,MSP430系列单片机提供了一个修改堆栈内SR的函数:
__low_power_mode_off_on_exit()
只要执行该操作,就可以在退出中断后唤醒CPU。
定义中断的方式有两种:
一种是:
__interrupt[PORT1_VECTOR]voidPORT1(void)
这种方式比较常用;
另一种是:
#pragmafunction=interrupt
voidPORT1()
{
}
#pramafunction=default
与前者相比,后者的缺点是编译命令不能提供矢量选项。
此外,MSP430的中断管理机制是把同类的中断合并成一个总中断源,根据需要由软件判断标志位来确定。
如对于P1口的任何一个中断,程序都会执行P1口的中断服务子程序,在该程序中根据P1IFG标志位来判断具体是哪一个I/O口发生了中断,如本次系统设计程序中对于键值的判断[15]。
MSP430单片机中有数百个寄存器,数千个控制位,通过这些寄存器可以配置各个模块的工作方式、状态、连接参数等关系。
如:
P1DIR=0xff;
//将P1口的I/O性质设置为输出
不仅如此,还可以对寄存器的某位进行操作,如:
P1DIR|=BIT0;
//将P1.0置高电平
P1DIR|=~BIT0;
//将P1.0置低电平
P1DIR|=^BIT0;
//将P1.0取反
注意:
大部分寄存器在上电复位后会自动清零,初始化后各寄存器标志位的值可以用“|=”来赋值,一般不会影响到其他标志位的设置,但一定要保证被赋值的若干标志位在赋值之前为“0”,特别是使用快捷宏定义时,所以,为保证程序执行的正确性,一般在赋值前,先给寄存器送“0”。
2.1.3方案比较与选择
本次系统设计的核心处理器有两种选择:
一个是本科期间学习过的且目前被广泛使用的89C51单片机,另一个就是上文所介绍的具有超低功耗特性的MSP430系列单片机。
方案一:
采用89C51单片机作为主控制器。
89C51单片机的工作电压为5V,有两种低功耗模式:
待机方式和掉电方式。
但是正常情况下消耗的电流为24mA,在掉电状态下其耗电电流为3mA。
即使在掉电状态下电源电压降到2V,但耗电电流仍达到50uA,功耗比较大。
方案二:
采用MSP430作为主控制器。
由于其具有低电压、超低功耗、数据处理能力强大、片内外资源丰富的特点,而且有16个中断源,可以嵌套使用,通过中断将CPU从低功耗模式下唤醒,所以可以编写出实时性很高的程序且实现系统低功耗的要求。
由于在以后的设计和工作中在提高设备性能的前提下对低功耗的要求更加迫切,MSP430则能够满足低功耗的要求,所以选择方案二。
2.2DS18B20数字温度传感器
2.2.1DS18B20简介
在传统的模拟信号远距离温度测量系统中,为达到较高的测量精度需要很好的解决引线误差补偿、多点测量切换误差及放大电路零点漂移误差等技术问题。
另外一般监控现场的电磁环境都比较恶劣,模拟温度信号容易受到干扰而产生测量误差,影响测量精度,因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案。
DS18B20数字温度传感器是美国Dallas公司继DS1820之后推出的增强型单总线温度传感器,它具有体积更小、精度更高、适用电压更宽、可组网等优点,在实际应用中取得了良好的测温效果。
与传统的热敏电阻相比,它具有可根据实际要求设置转换精度并直接将温度值转换为数字量独处的特点。
由于采用单总线,而且每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以在同一条单线总线上工作,从而实现多点组网功能,节约了成本,方便了设计。
这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。
DS18B20数字温度传感器的主要特性有:
1)适应电压范围宽:
3.0-5.5V,也可由数据线供电,零待机功耗;
2)单线接口方式,仅需一个端口就可以与CPU连接实现双向通讯;
3)可编程分辨率为9~12位,对应温度转换时间为93.75ms~750ms,对应温度分辨率为0.5℃,0.25℃,0.125℃,0.0625℃,可实现高精度测温;
4)测温范围-55℃~+125℃,在-10℃~+85℃内测温精度为±
0.5℃;
5)具有温度报警功能,用户可根据需要设置报警上下限,设置的限值掉电后不丢失,测量结果直接输出数字温度信号,同时可传送CRC校验码;
6)支持多点组网功能,可应用与多点分布系统,多个DS18B20可挂在一条总线上,实现组网内的多点测温。
2.2.2DS18B20内部结构及功能
DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
如图2.2所示,为DS18B20内部结构框图。
图2.2DS18B20内部结构框图
如前所述,每只DS18B20都有一个唯一的长达64位的只读存储器号,该只读存储器号存放在DS18B20内部的ROM中。
其中,低8位为DS18B20单总线温度传感器的家族号;
高8位为CRC循环冗余校验码,用以校正前56位是否正确;
中间的48位是一个唯一的序列号。
该64为只读存储器号常用于元器件的识别和匹配。
表2.2DS18B20的64位ROM号
MSB64位ROM号LSB
8位校验码
MSBLSB
48位序列号
8位家族号
64位ROM和ROM操作控制区允许DS18B20作为单线制器件并按照单总线协议工作。
只有建立了ROM操作协议,才能对DS18B20进行控制操作。
单总线的所有ROM操作,都从一个初始化序列开始。
此外,单总线控制器还提供了5个ROM操作命令和6个RAM操作指令。
ROM操作命令:
1)ReadROM[33h]:
该命令允许总线控制器读到DS18B20的ROM序列。
进仅总线上存在单个器件时才能使用,否则会发生数据冲突。
2)MatchROM[55h]:
匹配ROM命令,后跟64位ROM序列,此后所有操作都对该器件进行。
3)SkipROM[CCh]:
此后的指令将对在线所有器件起作用。
4)SearchROM[F0h]:
允许总线控制器识别总线上的所有从机编码。
5)AlarmSearch[ECh]:
响应最近一次测温遇到符合报警条件的情况。
RAM操作指令:
1)WriteScratchpad[4E]:
向DS18B20的暂存器中写入数据。
2)ReadScratchpad[BEh]:
读取暂存器的内容。
3)CopyScratchpad[48h]:
这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把