第6期 2010年12月 微处理机 No.6 Dec..2010 MICROPR0CESSORS 基于MSP430的智能温度检测系统设计 董鹏永,袁盼鑫,牛庆丽 (郑州科技学院计算机系,郑州450064) 摘 要:论述了一种以l6位单片机MSP430F149为控制核心,利用数字化温度传感器 DS18B20实现温度测量的智能温度检测系统。详细论述了该系统的硬件组成和软件设计,给出了 关键部分的电路图及相应的MSP430F149单片机温度测量程序。实验结果表明,该智能温度检测 系统具有低成本、可靠性高、结构简单、性能稳定、经济实用等特点,可根据不同需要应用于多种工 农业温度检测领域。 关键词:MSP430F149;DS18B20;温度检测系统 DOI编码:10.3969/j.issn.1002—2279.2010.06.023 中图分类号:TP273 文献标识码:B 文章编号:1002—2279(2010)O6—0075—04 The Design of Intelligent Temperature Measuring System Based on MSP430 DONG Peng—yong,YUAN Pan—xin,NIU Qing—li (Department ofComputer Science,Zhengzhou Col ̄ge ofScience&Technology,Zhengzhou 450064,China) Abstract:A intelligent temperature detecting system was designed in this article by taking 16 monolithic integrated circuit MSP430F149 as the control core and using the digital temperature sensor DS18B20 to realize the temperature measurement.The hardware composition and software design of the system were discussed in detail,moreover the circuit diagrams of key functional parts and the relevant temperature measuring program of monolithic integrated circuit MSP430FI49 were given.The experimen— tal results indicate that the intelligent temperature detection system has strong characteristics of low cost, high reliability,simple structure,stable performance and practicality,and may be applied in many industrial and agricultural temperature measurement area in accordance with different requirements. Key words:MSP430F149;DS1 8B20;Temperature Detecting System 1 引 言 随着设备的电气化和自动化程度不断提高,对 设备和环境进行实时监控显得尤为重要。传统的测 温器件热敏电阻测出的一般是电压,需要再转化为 相应的温度,这就要有其它外部硬件的支持。因此 硬件电路比较复杂,设计成本也比较高。智能温度 模块CAT24WC64、液晶显示模块HTM1602A、语音报 警模块ISD1420、矩阵键盘和单总线接若干温度传感 器DS18B20组成。系统硬件框图如图1所示。由图 可见,多点温度测量电路只占用了MSP430Fl49的 个普通IO口,系统资源利用率较高。 一2.1 DS18B20 检测系统采用的是一种改进型智能温度传感器 DS18B20,数字温度传感器通过单总线与单片机连 接,系统结构简单,抗干扰能力强,适合于恶劣环境 2.1.1 DS18B20的内部结构 DS18B20的内部结构如图2所示¨J,主要由四 下进行现场温度测量,也可应用于仓库测温、高层空 调控制和农业生产过程监控等领域。 部分组成:光刻ROM、温度传感器、非易失性的温度 报警触发器TH和TL配置寄存器。DS18B20可以 有多种封装形式,在TO一92封装中,如图2(a)所 示,GND为接地引脚,DQ为数据输入/输出引脚, VDD为可选的外部电源供电引脚,在寄生电源工作 方式下接地。光刻ROM中的64位序列号是出厂前 2温度检测系统硬件构成: 该温度检测系统由主控制器MSP430F149、存储 作者简介:董鹏永(1982一),男,河南林州人,硕士研究生,主研方向:GPRS无线网络、嵌入式系统。 收稿日期:2010—04一l9 ・76・ 微处理机 2010钲 被光刻好的,它可以看作是该DS18B20的地址序列 码。64位光刻ROM的排列是:开始8位(28H)是 产品类型标号,接着的48位是该DS18B20自身的 序列号,最后8位是前面56位的循环冗余校验码。 (4EH)、复制暂存区(48H)、重调EEPROM(B8H)、 读电源供电方式(B4H)。每条命令有不同代码,在 总线上传送时,由器件根据接收的命令代码完成相 应的操作。因此DS18B20的单线通信功能是分时 完成的,它有严格的时序要求 ¨。 光刻ROM的作用是使每一个DS18B20都各不相 同,这样就可以实现一根总线上挂接多个DS18B20 的目的 一 。 2.1.2 DS18B20的工作过程 访问DS18B20的工作顺序通常为:初始化,发 送ROM操作命令,发送RAM操作命令。通过初始 化复位工作使主设备知道传感器DS18B20存在并 准备工作。通过发送ROM命令可以知道某个特定 的DS18B20是否存在并且是否超过温度警界值。 共有5种ROM操作命令,分别是读ROM(33H)、匹 配ROM(55H)、搜索ROM(FOH)、跳过ROM (CCH)、告警搜索命令(ECH)。通过发送RAM操 作命令,可以设定电源供电方式,启动温度转化,读 写DS18B20的暂存区。共有6种功能命令,分别是 转换温度(44H)、读暂存区(BEH)、写暂存区 图1 系统硬件总体电路图 (a)DS18B20 TO一92封装图 (b)DS18B20内部结构图 图2 DS18B20整体结构图 2.2 MSP430F149 本设计的主控芯片采用美国德州仪器公司的 l6位带FLASH单片机 P430F149。它具有处理 报警方式。语音报警由ISD1420芯片控制,它具有 分段录放功能,每次录放时间为20S。预先录制好 的温度语音,由MSP430单片机判断被测温度,当测 量值高出或低于标准值时放出各自相应的录音,从 而实现温度的报警功能。 2.4温度显示模块 一一一一~一一 能力强、运行速度快、功耗低等优点。其工作电压为 1.8V一3.6V;CPU运行正交的精简指令集。片内寄 存器数量多。存储器可实现多种运算。 MSP430F149中断源较多并可任意嵌套,系统处于 省电状态,用中断请求唤醒只需6微秒。它还具有 丰富的外围器件。其l6位定时器TimerA具有4种 工作模式,可同时进行多个捕获/比较功能;48个可 独立编程的I/O口;2个串行通信接口微秒ART0 与微秒ART1;FLASH存储器多达60KB,擦写次数 液晶显示模块HTM1602A是基于¥6A0069芯 片构建的2行l6列字符型的LCD液晶显示模块,其 字符显示的分辨率是5×8(即每个字符是由一个 5×8的点矩阵构成)。基于¥6A0069所编写的控制 程序亦可以很方便地应用于其它大部分字符型液晶 显示模块。因此选用HTM1602A模块显示系统的 可达10万次。该款芯片的超低功耗和良好的性能 测温结果。 价格比使其非常适合工业监控领域。 2.5数据存储模块 2.3语音报警模块 系统采用CAT24WC64作为存储芯片。 对于温度的超限情况进行报警,系统采用语音 CAT24WC64是一个64k位串行CMOS EEPROM,内 6期 董鹏永等:基于MSP430的智能温度检测系统设计 ・77・ 部含有8192个8位字节,具有一个32字节写缓冲 用户作为传感器的标识号。 器,该器件通过I2C总线接口进行操作,有专门的写 2.6串口通信接口电路设计 保护功能。测温系统采用CAT24WC64用来集中记 将MSP430F149单片机采集的温度数据传输到 录单总线上所有温度传感器的注册信息,即按地址 上位机,利用MSP430单片机的通讯接口连接到 顺序存放DS18B20的64位光刻ROM序列码。每 RS232串行口接收或发送数据和指令,但是单片机 个序列码占用8字节空间,系统管理程序会以8字 的rItIL电平和RS232不兼容,因此使用MAX232进 节为基数计算传感器注册码的地址序号,并反馈给 行电平转换,其接口电路图如图3所示。 图3 MSP430F149与PC机的串行接口电路 MSP430有两组通讯接口,UTXD0、URXD0和 方便进行以后的操作。复位要求主CPU将数据线 UTXD1、URXD1,这里用的是第一组。MSP430F149 下拉500微秒,然后释放,DS18B20收到信号后等待 单片机3.3V的信g-fla UTXDO出来输入到MAX232 16 ̄60微秒左右,后发出60~240微秒的存在低脉 的TIlN脚,转换成±15V的信号由T1OUT送到通 冲,主CPU收到此信号表示复位成功。 讯标准接头的2脚(RXD),±15V的信号由通讯标 准接头的3脚(TXD)出来输入到MAX232的RIIN 脚,转换成±15V的信号由R10UT送到单片机的 URXDO。 3温度检测系统软件设计: MSP430系列是一种具有集成度高、功能丰富、 功耗低等技术特点的l6位单片机,它采用c语言完 成程序设计,大大提高了开发调试的工作效率;同时 用c语言所产生的文档资料也容易理解,便于移植。 3. 1 1 机编程 系统程序设计包括主程序,复位子程序,报警和 分辨率设置子程序,温度转换子程序,读温度子程 序,计算温度和显示温度子程序等等。MSP430F149 对DS18B20的访问流程是:先对DS18B20初始化, 再进行ROM操作命令,最后才能对存储器RAM操 作。程序流程图如图4所示。下面就简要介绍 MSP430系列单片机c语言的几个主要子程序。 3.1.1 复位子程序 图4程序流程图 该程序的主要功能是负责DS18B20的复位,以 bit ResetDS18B20() ・78・ 微处理机 2010拄 {unsigned char i; bit flag; DS18B20=0: for(i:0;i<200;i++);//保持低电平500微 秒 DS18B20=1: ofr(i=O;i<30;i++);//等6O微秒 lfag:DS18B20;//取DS18B20状态 for(i:0;i<100;i++);//等300微秒 return flag;//flag=0复位成功,lfag:1,复位不 成功 、 } 3.1.2写一个字节子程序 CPU将数据线从高电平拉至低电平,产生写起 始信号;15微秒之内,将所写的位送到数据线上; DS18B20在之后l5—60微秒接收位信息;写下一个 位之前要有1秒以上的高电平恢复;将以上过程重 复8次,即完成一个字节的写操作。 void WRDS18B20(unsigned char data0) {unsigned char i,j; f0r(j=0;j<8;j++) { DS18B20:0;//高电平拉到低电平,产生写起 始信号 ofr(i=0;i<1;i++); DS18B20=data0&Ox01;//15微秒内写一位 ofr(i:0;i<20;i++);//等60微秒,DS18B20 完成采样 DS18B20=1;//高电平恢复 data0=data0>>1;//右移,为下一位准备} } 3.1.3读一个字节子程序 CPU将数据线从高电平拉到低电平1微秒以 上,再拉到高电平,产生读起始信号;15微秒之内, CPU读一位;读周期为60微秒,读下一个位之前要 有1微秒以上的高电平恢复;将以上过程重复8次, 即完成一个字节的读操作。 unsigned char RDDS1 8B20() {unsigned char i,j,data0=0; bit temp; ofr(j=0;j<8;j++) {DS18B20=0;//高电平拉到低电平1微秒以上 f0r(i.0;i<l;i++); DS18B20=1;//再拉到高电平,产生读起始信 号 . ofr(i_0;i<1;i++); tamp=DS18B20;//15微秒之内读一位 for(i_0;i<20;i++);//等60微秒 data0=dataO>>1;//为下一位准备 if(temp==1)data0=dataO10x80; else dataO=data0&Ox7f; DS18B20=1;//高电平恢复 ofr(i=O;i<1;i++);} return dataO;} 3.2上位机软件编程 系统采用MSCOMM控件实现VC++与单片机 之间的数据交换,具有程序实现简便、程序模块化、 工作可靠等优点,并能满足多数情况下的工控要求。 使用MSCOMM控件主要是通过事件来处理串行口 的交互。控件的MSCOMM事件负责捕获或处理这 些通讯事件和通讯错误。 4结束语 测温系统采用了集成度高、功耗低的 MSP430F149为核心微处理器,通过传感器 DS18B20实现对温度测量,并进行存储和显示。实 验表明:当外界温度试验的范围设定在O℃一50℃, 可确保测量误差不超过±0.5℃,在试验板上显示温 度精确到0.0625oC,AD转换的时间是750ms,传输 的距离是40m。另外,在该系统的基础上也可以扩 展其他信号,如湿度,压力等。 参考文献: [1]DS1 8B20 Datasheet.Dallas:Dallas semiconductor corpo. ration[S],2005. [2]戚新波,范峥,陈学广.DS18B20与Atmega8单片机接 口的C语言实现方法[J].微计算机信息,2005(7): 71—73. [3]孙少伟,戴义保,章高琴.基于DS1820组网测温的研 究[J].自动化仪表,2006(6):42—45. [4]金伟正.单线数字温度传感器的原理及应用[J].电子 技术应用,2006(5):66—68. [5]刘鸣,蒋新颖.基于DS18B20多点温度采集和无线传 输[J].电子元件与材料,2005(2):54—57. [6]沙占友.智能化集成温度传感器原理与应用[M].北 京:机械工业出版社,2002. [7] 胡大可.MSP430系列FLASH型超低功耗l6位单片机 [M].北京:航空航天大学出版社,2004. [8]张唏.MSP430系列单片机实用C语言程序设计[M]. 北京:人民邮电出版社,2005.