顾 剑,李 彬
(杭州电子科技大学 电子信息学院,浙江 杭州 310018)
温度测量及控制在监测消防电气、医疗和机械等设备的发热等领域有着重要的作用[1-2]。低成本、高精度和高鲁棒性的温度检测系统有着广阔的应用空间[3-4]。本文采用数字式温度传感器DS18B20、单片机STC89C52为主要芯片,采用RS-232串行通讯标准,设计了多点温度的监测系统。系统设计灵活,拥有很好的抗干扰性,适于在恶劣的环境下进行温度监测。
系统运用主从分布式思想,用上位机和下位机组成两级分布式多点测温监测系统。系统采用RS-232串行通讯标准,现场温度采集通过上位机控制下位机实现。温度值既可以送回上位机进行处理,在数码管上显示;也可以由下位机单独工作,实时显示和控制当前各点温度值,设计框图如图1所示。
图1 设计框图
温度监测中,普遍存在多测量点、布线分散、环境复杂、现场距离监控室远等难题[5]。一般的模拟温度传感器所采集到的信号需要经过A/D转换、信号调理电路及相应的接口电路,容易造成误差。所以多点测温监测系统的设计的关键在于主控单元的设计和温度传感器的选择[6]。
数字传感器DS18B20的温度输出信号全部为数字信号,便于单片机处理及控制,同时DS18B20的物理化学性质稳定。DS18B20采用单总线的数据传输,可直接与计算机连接,能直接输出数字信号[7]。因此,测温系统的结构简单、体积小,且STC89C52可以带多个DSB1820使用户容易组建传感器网络,实现多点测量[8]。与传统的热敏电阻相比,采用DS18B20测量的温度能够被直接读出,通过简单的编程实现9~12位的数字值读数方式,也能分别在93.75 ms和750 ms内将温度值转化9位和12位的数字量。DS18B20具有小体积、接口方便、传输距离远等特点,内含寄生电源[9]。
采用STC89C52八位单片机实现系统的算术算法和逻辑控制。STC89C52八位单片机安装方便,硬件实现简单且体积小[10]。既可以与PC机通信,还可以单独对多个DS18B20进行控制工作。运用主从分布式思想,采用一台上位机和下位机组成两级分布式多点测温监测系统。每个单芯片上拥有灵巧的8位CPU和系统可编程Flash,使得STC89C52为嵌入式控制应用系统提供灵活的解决方案。
设计应用分布式通讯的思想,设计一种用于大规模多点测温的监测系统。应用RS-232串行通讯的标准,通过下位机进行现场的温度采集,温度信号数据既可以送回上位机进行数据处理,也可以由下位机模块实时显示,具有成本低、速度快、扩展性好的特点。
图2 采集电路
以89C52单片机为控制器,实现对多点的温度的实时监测。各监测单元能独立完成相应的功能,同时根据MCU的指令,能对不同点温度进行定时采集,结果不仅可以在本地显示,也能通过单片机串行接口,通过RS-232总线传送到计算机进行处理。计算机负责控制指令发送到下位机STC89C52进行温度的采集,收集测量数据,并对测量结果进行整理、显示和比较,一旦温度超设定温度的范围,就会触发蜂鸣器报警。上位机与各个下位机之间能够紧密联系、相互协调,共同配合实现设计目标。
图3 系统框图
设计方案由单片机实现,从机接受来自主机的命令,通过DS18B20数字温度传感器对待测点进行多点检测,将数据返回至主机,其中数码管4位中第1位用于显示所测的点,后4位用于显示温度。声光报警用于警报机制,当所测温度在设定范围之外时将会警报[11]。整个流程为:按键选择所需的测量点,主机向该从机发送相应的指令,从机将测得温度回传给主机,显示在数码管上。
单片机一般采用5 V电源,但本设计所用单片机较多,若都接在同一电源上,可能会导致各个单片机工作电压小于额定电压,所以需要多个电源。采用三端稳压片可以满足要求,具体电路如图4所示。
图4 三端稳压片
显示电路采用共阴极七段数码管,采用动态扫描方式,即数码管上各LED轮流点亮来显示,用两块芯片即可完成显示功能。由4511译码器输出显示数据,位驱动扫描信号为ULN2003[12]。
电路采用4位数码管显示温度,由于单片机IO口输出电流<20 mA,点亮一个数码管至少需要160 mA,一次系统中采用ULN2003增大驱动电流,数码管正常显示。4511是一片CMOS BCD-锁存/7段译码/驱动器,具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流,用于驱动共阴极LED数码管显示器,温度显示电路如图5所示。
图5 温度显示电路
数字温度传感器DS18B20由Dallas公司生产。温度分辨率最高可达0.062 5 ℃,用符号扩展成16位数字量以串行的方式来输出被测温度。CPU占用较少微处理器的端口,可以节约大量的引线和电路资源,因为只需一根端口线就能与多个DS18B20来通信。DS18B20支持“一线总线”接口,测量温度范围为-55~125 ℃,在-10~85 ℃范围内,精度为±0.5 ℃。实际被测温度信号直接以数字方式传输给单片机,使得系统的抗干扰性大幅增强。
图6 DS18B20内部结构
DS18B20主要由非易失性温度报警触发器TH、64位激光ROM、温度灵敏原件和TL和配置寄存器4部分组成。DS18B20最大特点是单总线数据传输,即由同一根总线来完成数据的输入输出。数字温度传感器DS18B20的硬件连接电路如图7所示。
图7 DS18B20的硬件连接
由于所测温度需要在前端增加一个放大电路对所获取的温度信号进一步放大,从而使其准确地显示在数码管上[13]。将采用AD620进行信号放大,可通过外接电阻进行1~1 000倍的方法增益,计算方式为
(1)
通过外接一个4.7 kΩ电阻,使得增益为11.51倍。
软件设计主要包含两部分:一是单片机的监控软件(主程序),即主控机发送命令以及比较是否超过温度范围,是整个监测系统的核心,用于协调各子模块和控制端的关系;二是执行软件(子程序),即选择所测点,传感器传输信号以及数码管显示等模块。每个执行软件相当于一个小的专用功能执行模块。将各个子模块列出,将每一个执行模块进行具体的功能定义和接口定义。各子模块运行完成后,用主控机来进行监控程序[14]。首先根据多点测温温度监测系统的按键设置和功能选择合适的程序,然后依据要求的准确性与实时性,安排监控软件和各子模块之间的调用关系。
(1)温度测试程序:单片机对DS18B20发送命令,将其测得的温度回传给单片机,然后对温度芯片传过来的数据进行处理,处理的数据与设定的温度进行比较;(2)数码管显示程序:单片机将温度数据传给数码管来显示,若温度超过设定温度,会引发蜂鸣器响应;(3)按键选择程序:通过按键选择不同的测量点,并显示在数码管中;(4)中断控制程序:用于实现循环显示功能。
图8 主流程图
利用89C52上的串行通信接口与计算机进行通信,将单片机的数据传给上位机,可以更方便的进行监测。在计算机上安装MSCOMM控件作为串口调试助手,实现数据的发送和接收功能[15]。若将通信端口选择COM1,波特率设定为1 200 B/s,则其相应的汇编程序如下
MSCOmm.CommPort=1
MSComm.Setting=“1200, n, 8, 1”。
START:MOV SP,#60H
MOV TMOD,#20H
MOV TH1,#0E6H
MOV TL1,#0E6H;1200B/S,晶振为12MHZ
MOV PCON,#00H
MOV SCON,#50H
SETB TR1
设计需要模拟多点不同环境测其温度值(0~100 ℃)。测试仪器和软件为数字万用表和可测0~100 ℃的温度计,用串口调试助手来实现与计算机的通信。测试方法为观察数码管的显示数值。
系统先运行一个简单的程序来观察系统硬件是否正常,观察测得的数据是否与预期相符合。取不同温度的点,用DS18B20与温度计同时测量多点水温的变化情况,观察显示电路是否能够正常运行,然后记录不同点的温度值,与温度计测得的温度值比较,从而得出系统的温度指标。检测单片机与计算机之间的数据传输是否正确,单片机与计算机的通讯可用串口调试助手。经测试,硬件电路正常,各点温度用传感器和温度计显示一致,与计算机的串口传输数据正确。
结合软硬件进行电路系统的统一调试。上位机与单片机直接通讯可以向系统实时显示并更新各测量点的温度值。
图9 初始化脉冲
在温度传感器初始化序列期间,总线上的主设备通过拉低总线超过480 μs来发送复位脉冲。主设备释放总线进行接受模式,然后上拉电阻将总线拉至高电平,如图9所示。
图10 读/写脉冲
如图10所示,温度传感器检测到上升边沿信号,等待16~60 μs,通过将总线拉低60~240 μs来发送一个存在脉冲。主设备通过写时段向温度传感器写入数据,通过读时段读出数据,每个写时段至少需要60 μs的持续时间,且每次只能传送一位数据。
由于传统温度监测系统有测温点少,系统兼容性及扩展性较差的缺点,本文运用分布式通信的思想,设计一种用于大规模多点测温的监测系统。系统采用RS-232串行通讯标准,通过下位机进行现场温度采集,温度信号数据既可以送回上位机进行数据处理,也可以由下位机模块实时显示,具有成本低、速度快、扩展性好的特点。
[1] 薛亮,冯鹏飞,张继飞.基于WSN和GPRS的粮库监测系统设计[J].自动化技术与应用,2016,35(12):87-90.
[2] 李长才,肖金球,张少华.基于 nRF24 L01的无线多点温度监测报警系统设计[J].电子测量技术,2016,39(6):94-97.
[3] 孙亮.基于AT89S52单片机的温度检测与保护电路设计[J].电子科技,2013,26(12):70-71.
[4] 林吉海.电路及单片机设计仿真理论与探究[M].北京:中国水利水电出版社,2013.
[5] 孙毅刚,何进.基于LabVIEW的高精度多通道温度测量系统[J].仪表技术与传感器,2017(1):96-100.
[6] 李刚,林凌.传感器及其接口电路应用300问[M].北京:电子工业出版社,2015.
[7] 程国钢,陈跃琴,崔荔蒙.51单片机典型模块开发查询手册[M].北京:电子工业出版社,2012.
[8] 孔庆光.基于DS18B20多点无线温度采集系统设计[J].宁德师范学院学报:自然科学版,2013,25(1):55-59.
[9] 李艳红,李海华,杨玉蓓.传感器原理及实际应用设计[M].北京:北京理工大学出版社,2016.
[10] 敖邦乾,刘智权,邹江,等.一种多点无线温度监测报警及调控系统设计[J].现代电子技术,2016, 39(18):57-60.
[11] 吴建平.传传感器原理及应用[M].3版.北京:机械工业出版社,2016.
[12] 刘同法.单片机外围接口电路与工程实践[M].北京:北京航空航天大学出版社,2009.
[13] 王魁汉.温度测量实用技术[M].北京:机械工业出版社,2006.
[14] 李全利.单片机原理及应用[M].2版.北京:清华大学出版社,2014.
[15] 郑恭明,陈志方,武洪涛.基于MAX232的正负电源设计[J].仪器仪表与分析监测,2012(1):23-25.