商场环境温度检测系统的设计与实现
2012-09-07史丽娟钱声强
史丽娟 李 晴 王 露 钱声强
(常州信息职业技术学院电子与电气工程学院 江苏常州 213164)
商场环境温度检测系统的设计与实现
史丽娟 李 晴 王 露 钱声强
(常州信息职业技术学院电子与电气工程学院 江苏常州 213164)
介绍了一种基于单总线测温系统的实现方案。系统采用二叉树算法实现单总线器件的ROM动态搜索功能,系统还采用总线控制的连接方式。软件操作方便,实用性强,并且具有良好的人机操作界面。该系统在实验室实现并通过性能测试,现已投入到商场温度监测中,系统比较稳定。
单片机;温度传感器;ROM搜索;上位机
随着现代仪器的发展,仪器仪表的微型化、集成化、数字化正成为发展的一个重要方向。美国达拉斯半导体公司推出的单总线技术(以温度传感器DS18B20为代表),很好地解决了传统串行总线技术一般要占用数条数据/控制线,限制单片机功能扩展的问题。一条总线上由一个主系统可以挂接若干个从系统,相比于I^2总线、SPI总线等其他通信方式具有灵活、简单的特点,具有很好的发展前景。
在当今热控制工业领域中,对温度的实时监控是必需的,而工作人员又不可能对每个监控环境的温度计进行逐个人工读取温度值。考虑监控环境的测温点较多,对实时性要求非常高,可借助于计算机技术,以实现对温度数据的实时采集。本系统基于美国Dallas公司推出的单总线技术设计出一套适用的温度采集网络系统,为监控系统提供实时、准确的温度数据。通过在商场各楼层各个不同位置放置传感器节点,所采集的温度通过单片机处理传送到电脑进行实时显示。在商场的控制室内,商场工作人员通过电脑能够定时监测、记录和控制房间的室内温度,达到控制温度和节能的目的,有效地控制电能的合理分配,同时也便于监督部门进行监督和检查。
1 总体实现方案
系统总体框图如图1所示。温度检测系统以8051单片机系统为核心,能对温度进行实时控制检测。检测单元将测量结果通过485总线经由电脑显示出来,而且可以利用单片机实现多机互联,用来检测多点温度,并进行统一观察。
图1 温度检测系统总体框图
在商场每层部署多个数字式温度传感器,用以检测部署点的温度情况,采用总线控制的连接方式。由7个控制器控制各温度传感器的工作,并通过串行口485方式把温度数据发送到电脑,电脑能实时显示各部署点的温度情况[1]。
2 芯片选型、硬件结构和功能简介
2.1 芯片选型
微控制器:针对商场环境温度的需求,系统采用了ATMEL公司生产的低电压、高性能8位单片机AT89C52,片内含8 K的可反复擦写的只读程序存储器,它适合于较为复杂控制应用场合。
数字温度传感器:系统采用Dallas公司生产的一线式数字温度传感器DS18B20,信息经过单线接口送入DS18B20或从DS18B20送出,从主机CPU到DS18B20仅需要一条线。每个DS18B20在出厂时已经给定了唯一的64位序列号,因此任意多个DS18B20可存放在同一条单线总线上,所以允许在许多不同的地方放置温度敏感器件。
其他外围设备:因外挂多个温度传感器,考虑单片机数据驱动能力不足,而且上位机和单片机之间双向通信,系统采用双向通信74HC245作为数据缓冲电路,增强驱动能力且布线方便。
单片机内部存储芯片的容量有限,需要在外部接一个存储芯片。选取AT24C256,它能提供256 kB的存储容量,确保有足够的空间存储单总线器件自身所带的ROM序列号;并通过I^2协议与单片机进行数据传输;由于总线端口输出为开漏结构,在总线上需通过的10 KΩ的上拉电阻与电源相连。
2.2 系统硬件结构和功能简介
该系统主要由数字传感器DS18B20、主控板、上位机软件3个部分所构成。
如图2所示即为该测温系统主控制板的结构示意图。作为整个系统的控制核心,单片机通过单总线与数字温度传感器 DS18B20相连接,控制DS18B20采集各监控点的温度数据,将温度数据存放在存储单元中,并通过485总线通信方式将温度数据传送给电脑,电脑处理温度数据并显示。工作状态指示表明了此时单片机的工作状态。硬件看门狗电路具有电路自恢复功能,采用该技术提高了系统的稳定性。
图2 主控制板示意图
主控制板具有如下功能:启动和组建单总线网络;动态搜索挂接在单总线上的DS18B20的ROM序列号并存储;支持多种通信方式(如RS232及RS485)。
3 软件设计和上位机测试及监控
3.1 系统软件设计
总体流程如图3所示,在系统启动时对各个芯片进行初始化,初始化完成后,单片机开始搜索挂接在线上的单总线器件 DS18B20,把搜索到的BS18B20的序列号存入到外接的存储器件24C256中去;然后在一定时间间隔内重复地读取DS18B20检测到的温度数值,同时等待上位机的中断命令。单片机响应中断命令,根据上位机传送的任务种类指示,完成对DS18B20的操作,再将数据传送至上位机显示,继续进入等待中断中[2]。
3.2 基于单总线技术的ROM搜索
在整个软件流程中,最为关键的是单总线器件的寻址过程,即ROM搜索。完成一个单总线器件的ROM搜索过程是64次重复以下三步过程:读一位;读该位的补码;主机向总线上写所读到的那一位值[3]。
设计中采用了64位深度的二叉树算法,在遍历二叉树时记录所走的路径和搜索到的叶子结点数,就可得到总线上的DS18B20的ROM序列号和总线上的DS18B20数目。
每向左走一步,表示该位为0,向右走一步表示该位为1,记录此过程就可得到叶子结点的ROM序列号。数据结构图4表示用二叉树算法得到的DS18B20的ROM序列号前4位。
图3 软件总体流程
图4 二叉树表示的DS18B20的ROM序列号
结点6的左结点表示…0000,节点6的右结点表示…1000,节点7的左节点表示…0010,节点10的左节点表示…0001,节点10的右节点表示…1001等。
在单片机与多个DS18B20的通信过程中,单片机在初始化后立即搜索单总线上挂接的DS18B20的ROM序列号,外挂的EEPROM通过I2C协议与单片机进行数据传输。
3.3 PC端测试界面
基于微软.net平台开发的上位机测试软件,可实时显示DS18B20采集的温度,并可对DS18B20进行编码、读码、单点采温[4]。图5为上位机单个测温器编码、采温、读码界面。
图5 单个测温器编码、采温、读码界面
3.4 温度检测系统通信协议
串口设置:波特率:2.4 KBPS,数据长度:7字节,校验:累加和校验(为前5字节和的补码)。
以下只给出采温指令说明,编码和读码指令和采温大体相似。采温指令:
PC发:0xa5,TASK,xx,0x00,0x00,VERIFY。
终端回:0xa5,TASK,xx,DAT0,DAT1,VERIFY,0xff(终止位)。
其中数据头为0xa5;任务标识码TASK分为: 0x00(采温),0x01(编码),0x02(读码),此处TASK= 0x00。xx为传感器编号;DAT0,DAT1:温度数据,如果不正确,则DAT0=K,DAT1=L,传感器开路; DAT0=D,DAT1=L,传感器短路。VERIFY:累加和校验。如果DAT0=0xc8,DAT1=0x01,即DAT0= 11001000,DAT1=00000001,则把DAT0,DAT1合并为 16 位,DAT1 在 前,DAT0 在 后,即0000000111001000,取 第 四 到 第 十 一 位,即00111001,算得00111001的十进制为57,则此时测量得到的温度为28.5度[5]。
3.5 上位机监控
基于微软的.net平台开发了本系统的上位机软件。商场温度监控系统主界面由“测温点列表”、“历史数据”、“操作与管理”以及“各楼层编号”选项卡组成,实现包括温度测量、历史数据保存与查询、用户管理、各楼层测温点温度动态显示等功能。
用鼠标点击各楼层选项卡,将出现各楼层的平面图,如图6所示,上面详细标明了各测温点的位置及编号。通过与测温点相连的列表框,显示了该测温点的名称和当前的实际温度。
图6 楼层测温点位置、编号及温度显示部分平面图
4 系统数据分析
根据商场实际布局情况,通过合理布线,将系统安装到商场后,对商场环境温度进行检测。在系统运行过程中,任意选取几组实时温度数据,并与实际温度进行对比分析,得出系统测量温度与实际温度对照表。如表1。
表1 测量温度与实际温度对照表
由表1可见,在10度到40度温度范围内,系统设计的相对误差不超过0.013,因此适用于商场环境温度检测系统中。
5 结束语
本文介绍了基于一种基于单总线测温系统的实现方案。系统可根据商场每层每个柜台售卖产品种类的不同设置温度报警上下限,可显示当前温度、时间、报警阈值等信息,具有声光报警功能。系统良好的软件显示界面,可以直观地显示各部署点的温度情况。系统还采用误差修正算法提高了采样温度的准确性。
[1] 卢超.基于PC机与单片机分布式温度采集系统的设计[J].仪表技术与传感器,2007(6):35-37.
[2] 陈伟,王勋,黄德昌.基于单总线温度测控系统的前端拓扑网络设计[J].华东交通大学学报,2008,25 (1):81-84.
[3] 高蒙,刘建华,万京,等.二叉树算法在单总线上的C51软件实现[J].微计算机信息,2005(25):41-43.
[4] 刘新军.NET精简框架程序设计[M].北京:电子工业出版社,2006:139-150.
[5] 颜廷勇,林锦国,陶玲.计算机与多单片机系统间串行通信的实现[J].计算机工程,2003,29(17):176-178.
The Design and Realization of the Temperature Detection System in Department Store
SHI Li-juan LI Qing WANG Lu QIAN Sheng-qiang
(School of Electronics and Electrical Engineering,Changzhou College of Information Technology,Changzhou 213164,China)
This paper introduces the project of temperature detection based on 1-wire bus.The system adopts the binary tree arithmetic to perform the dynamic search in the ROM of 1-wire bus chip and the connection way of bus control.The software is easily operated,practical and with good human machine interface.This temperature inspection system has been realized and tested in laboratory,and is widely used in temperature detection in department stores.
MCU;temperature sensors;ROM search;host computer
book=114,ebook=114
TP 273
B
1672-2434(2012)03-0027-04
2012-01-11
史丽娟(1983-),女,硕士,从事研究方向:无线网络、传感器、电气自动化