基于BASIC Stamp微控制器的温度记录系统
2012-09-26陈鹏黄斌
陈鹏,黄斌
(福建省电子产品监督检验所 福建 福州 350003)
温度测量在环境试验中是常见的一种测量方式。传统的温度测量设备显示样品温度于设备箱上,需要试验人员定时查看和记录,这极大地浪费了人力而且带来诸多不便。当温度试验箱种类多而且需要长时间试验时情况更糟,因为试验人员需要三班倒不间断试验过程记录。因此,改造传统的高低温箱记录方式已经成为当务之急,同时,市场需要一种经济的设计方式。
本研究中一种以微控制器为基础的温度记录系统被开发,以满足温度数据测量记录的低成本和灵活模式。开发系统的主要硬件包括一台微型计算机,一个以BASIC Stamp[1]为基础的微控制器电路板以及串行通讯链接设备。两线串行接口数字传感器DS1621[2]被用来进行温度测量,微型计算机运行控制程序。一旦用户在微型计算机界面上决定实时记录信息,信息便通过RS-232端口送往微控制器。微型计算机和微控制器通过特定的串行通信协议通信,微型计算机告知微控制器温度测量何时开始以及测量次数并等待微控制器发送具体数据。电路板的设计考虑了开放式结构。该系统采用了28引脚易于插拔的插座来容纳BASIC Stamp微控制器。微控制器将通过软件模拟片内集成总线I2C[3]转换读取的温度数据并实时传送回微型计算机。
1 系统硬件设计
系统的主要原理图如图1所示。其中BASIC Stamp微控制器是美国Parallax公司的产品,采用5 V直流电源供电,支持在线串行编程,最高时钟频率达到20 MHz,通讯波特率设定为9 600。BASIC Stamp微控制器带有片上BASIC解释芯片、内存 (包括EEPROM和RAM)、5 V稳压器和一些通用输入/输出端口。该微控制器的工作温度为0~70℃,每秒钟约执行4 000条指令,低电平复位。EEPROM可以存储大约500条指令。端口P是双向输入/输出复用管脚,可以进行设置,其中P0和P1分别与传感器DS1621的串行数据线SDA以及串行时钟线SCL管脚相连,上拉电阻均为2 kΩ接+5 V。因为增强特性,该微控制器是串行通信的很好选择,通过简单指令即可完成串行通信。微型计算机和BASIC Stamp(具体型号BS2)的通信连接如图2所示,连接通过若干导线完成。注意DTR与ATN在下载完程序后要断开以便传感器的数据能传回微型计算机。另外,下载程序时DTR与ATN必须连接,否则BASIC Stamp不能被微型计算机识别从而无法编程。
图3给出的是地址线A2A1A0连接为000的示意图,其余DS1621传感器地址连线类推。DS1621传感器温度测量范围从-55~125℃,一般能满足日常环境试验要求,测量时不需要外部元件,温度转换时间小于一秒。该传感器工作电压介于2.7~5.5 V,数据读写采用两线串行接口,温度为9位数值,管脚数为8个。
图1 系统框图Fig.1 Diagram of the system
图2 微型计算机和BASIC Stamp的串行连接Fig.2 Serial link between the PC and the BASIC Stamp
图3 DS1621传感器连接图Fig.3 Connection of the DS1621 sensor
2 软件设计
2.1 微型计算机程序
微型计算机通过用户友好命令程序与用户交互,编程语言为Visual Basic 6.0[4]。首先用户选择环境试验产品类别和记录名称,用户可以自己修改产品类别选项(手动输入)。然后用户输入试验的起始时间和结束时间并输入记录保存的时间间隔便自动生成一个相应文件用来保存定时的温度记录。图4给出了部分用户主界面并轮流显示两台设备的温度,用户被允许视具体连接情况选择通信串口号(COM1或COM2),但通信波特率固定。主界面会通知微控制器何时开始温度测量,这里需要进行串口编程[5]。同时,程序还允许用户修改记录显示的频率。当记录结束时,生成的文本文件中包括记录时间、日期、设备号以及具体温度值。用户可以将生成的文件通过按键转换成Excel文件并可添加其试验信息并打印保存。
图4 用户主程序界面Fig.4 User command program interface
2.2 微控制器程序
微控制器采取轮循的方法对所连接的DS1621温度传感器进行数字转换的读取。程序首先定义了若干变量并指定了读取的数据线和时钟线管脚,然后定义通信波特率。接着微控制器启动温度传感器并进入设置寄存器定义为单一测量。在主程序中,微控制器启动测量并发送指令EEh并等待转换结束。在此之后,程序发送读取温度指令AAh到传感器并读取温度寄存器的高字节。接着,程序发送A8h读取传感器的计数器值。最后,程序发送A9h读取传感器的斜坡值。程序中用的最频繁的是SHIFTOUT指令以及应答子程序。另外,程序也使用了SHIFTIN指令。在这一系列步骤之后,程序根据经验公式转换计算具体温度值并判断温度的正负。最后,温度值被以十进制数的形式通过串口回传给微型计算机。
微控制器程序采用PBASIC语言编程,将编写过的程序下载到微控制器并解释是必要的,故而程序必须指定下载串口号和微控制器具体型号。当用户按下Run按键程序,便进行语法检查并下载执行。至于EEPROM以及RAM的使用情况可以通过程序编辑器[6]查询。
3 结束语
文中讨论了新型简易低成本温度自动记录系统的制作及编程,说明了环境试验温度集中自动记录的低成本和简单实现是可行的。整个实验电路(不包含微型计算机)硬件成本不超过600元人民币。系统成功地日夜连续测量记录3个传感器的温度,分辨率为0.1℃。该系统已经被证实有效,在本所环境试验设备自动化改造初级阶段中得到应用验证,较精确地记录了温度值,这可以通过温度计显示值加以比较。由于温度测量范围的局限,该研究项目的高温测量能力有待进一步提高到200℃。由于采用的微控制器和温度传感器很灵巧方便,这给设计带来了便利。
[1]Parallax Inc.BASIC Stamp Syntax and Reference Manual 2.2[EB/OL].(2005-02-08)[2011-07-08].http://www.parallax.com/Portals/0/Downloads/docs/prod/stamps/web-BSM-v2.2.pdf.
[2]Maxim Integrated Products.DS1621 Digital Thermometer and Thermostat[EB/OL].(2005-09-15)[2011-07-08].http://data sheets.maxim-ic.com/en/ds/DS1621.pdf
[3]何立民.I2C总线应用系统设计[M].北京:北京航空航天大学出版社,1995.
[4]杨章伟.Visual Basic完全自学宝典[M].北京:清华大学出版社,2008.
[5]Jan Axelson.串行端口大全[M].北京:中国电力出版社,2001.
[6]Parallax Inc.BASIC Stamp Windows Editor V2.5.2.[EB/OL].(2011-03-11)[2011-07-08].http://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exe.