基于单片机温度远程显示的实现
扫描二维码
随时随地手机看文章
目前检测温度一般采用热电偶或热敏电阻作为传感器。这种传感器至仪表之间一般都要用专用的温度补偿导线;而温度补偿导线价格很贵,并且线路太长也会影响测量精度。在实际应用中往往需要对较远处(1 km左右)的温度信号进行监视。现有的解决方案有很多,例如:① 在现场用智能仪表对温度信号进行测量,用计算机作上位机与智能仪表进行通信来实现远程温度监测。采用这种方案要增加计算机设备及相关计算机软件。② NCU+DDC实现远程温度监测。用2个DDC,一个安装在现场测量温度,另一个安装在监视地,2个DDC通过NCU进行通信,从而实现远程温度监测。
但以上方案都存在成本高的问题。有没有低成本的解决方案呢?其实,在单片机应用日益广泛的今天,完全可以用单片机以极低的成本来实现远程温度监测。
1 问题的提出
我单位管理的锅炉房同时给2栋建筑物内的2家酒店供应蒸汽,由安装在2栋建筑物地下室的热交换器进行热交换后产生热水送给客房。从锅炉房至2个热交换站的距离分别约600 m,值班人员要不停地奔波于2个热交换站与锅炉房之间进行设备巡视,检查热水温度是否控制在规定的范围。这样不仅增加了值班人员的劳动强度,同时也使锅炉房经常无人(因每班1人值班)。如果能在锅炉房显示2个热交换站内各热交换器的热水温度,则值班人员仅在热水温度异常时才需到热交换站检查设备,这样便可解决上述问题。经过分析,本人用单片机+智能仪表以低成本实现温度远程显示,并且经过实验取得了成功。
2 控制要求及解决方案选择
① 2个热交换站分高低区共安装有8个热交换器,正常水温在45~65℃之间;2个热交换站与锅炉房的距离分别为500 m和600 m左右。
② 要求在锅炉房内能以巡回及定点2种方式显示8个热交换器的热水温度:巡回方式以3 s为周期轮流更新及显示各热交换器热水温度;定点方式时,每按上键或下键1次则显示上或下1个热交换器热水温度,每3 s自动更新数据1次。
③ 根据控制要求选择单片机+智能仪表的解决方案:用带通信接口的智能仪表安装在现场测量温度,设计制作1个单片机装置完成与智能仪表的通信及数据显示。
3 通信协议、智能仪表选择及其参数介绍
因热水温度信号变化较慢,因而对通信的速度要求不高。对于这种低速率、远距离的通信选用RS485总线适宜。RS485是EIA(美国电子工业联合会)在1983年公布的新的平衡传输标准,是工业界使用最为广泛的双向、平衡传输线标准接口。它以半双工方式通信,支持多点连接,传统驱动器允许创建多达32 个节点的网络,且其具有传输距离远(最大传输距离为1200 m),传输速度快(1200 m时为100 Kbps)等优点,连接方法如图1所示。
为了满足现场温度检测及与单片机装置通信的要求,必须选择至少有5个温度检测点及具有RS485通信端口的智能仪表。经过对市场上常用的温度检测仪进行分析,选择由重庆川仪十八厂生产的XJ-08S型巡回检测仪作现场测量仪表。
3.1 XJ-08S主要特点
① 多量程方式,热电偶、热电阻,1~5 V标准信号混合输入,可通过键盘进行设置;
② 最多8个测量通道(能测量8个温度信号);
③ 采用RS485通信标准,可将各通道最新数据向上位机传送。
重要的是,该仪表的说明书详细介绍了与该仪表进行数据交换的命令及格式,其通信协议也相对较简单,这给我们用单片机实现温度远程显示降低了难度(虽然有RS485端口的仪表很多,但大多没有通信命令的详细说明。
3.2 XJ-08S巡回检测仪通信协议
(1) 通信口设置
◇ 通信方式:RS485标准电平。
◇ 同步方式:起停同步方式。
◇ 波特率:9600 bps。
◇ 通信距离:不大于1200 m。
◇ 通信线:2线。
◇ 数据代码:ASCII码。
◇ 数据格式:每字符10位,即1个起始位,8个数据位,1个停止位。
(2)数据传输格式
◇ 地址:2字节(高字节在前,低字节在后)。
◇ 数据:按地址顺序,仪表数据传输格式为十六进制2字节定点数。
2字节定点数 = 低字节高4位+低字节低4位
(ASCII码) (ASCII码)
高字节高4位+高字节低4位
(ASCII码) (ASCII码)
若数据为负数,则采用补码方式传输。
◇ 在传输实时测量值时,传输完2字节定点数后,紧接着又传输2字节定点数,其中高字节低4位为小数位数。
例:(50.0)10 表示为 46 34 30 31 30 30 30 31
低字节 高字节 小数位数
(3)仪表通信格式
@ DE 帧类型 帧数据 CRC CR
◇ @:通信起始符。
◇ DE:仪表设备号(地址)。
◇ 帧类型:操作命令。
◇ 帧数据:各种操作命令所对应的命令及数据。
◇ CRC:校验字节(除@外CRC之前的其它几个字节的异或值)。
◇ CR:结束符(回车符)。
(4)应用中用到的命令及数据格式
◇ 读仪表全部动态数据命令帧
@ DE RD CRC CR
◇ 命令回送帧 正确 @DE RD 帧数据 CRC CR
错误 @DE * * CRC CR
例:读28号仪表的全部动态数据
命令:
'@1CRD64',0D(ASCII码40 31 43 52 44 36 34 d) 错误返回码
'@1C**72',0D(ASCII码40 31 43 2A 2A 37 32 0D) 正确返回数据 '@ 1C RD XXXX XXXX
第0通道
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
第1通道 第2通道 第3通道 第4通道 第5通道 第6通道
XXXX XXXX XX' ,0D
第7通道 校验
4单片机选择及硬件电路设计
① 选用Atmel公司生产的AT89S8252-24PC单片机,其主要参数及特点如下。
◇ 与MCS-51产品兼容。
◇ 具有8K字节可擦写的Flash内部程序存储器,可擦写1000次;2K字节EEPROM,可擦写 100 000次;SPI口(用PC机的并口连接5条线即可通过SPI口下载程序,软件可从网上下载,这样可节省购买编程器的费用;如果用1片AT89C2051 自编1个小程序可制成1个烧写式仿真器,不占用单片机任何资源,并且烧写完可自动运行程序,非常方便。本文介绍的远程温度显示装置就是用这种方法开发完成的)。
◇ 256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。
与看门狗有关的特殊功能寄存器WMCON 地址= 96H,与看门狗有关的控制位为96H中的第0、1、5、6、7位。第5、6、7位用于设置看门狗定时时间。本应用中第5、6、7位均置1,设置看门狗溢出时间为2048 ms,第0位为看门狗使能控制位。该位置1将使能看门狗,其第1位为复用位,向第1位写1将复位看门狗定时器,具体操作如下:
a. 使能看门狗,并将其溢出时间设定为2048 ms:ORL 96H, #0E1H;
b. 看门狗定时器清0:ORL 96H, #2。
② 按键设计。为方便使用,设计了3个按键,分别为巡回/定点切换键、上键、下键。切换键用于巡检与定点模式的切换,上键向上切换通道,下键向下切换通道。其中巡检/定点切换键通过外部中断1以中断方式工作,中断程序将巡回/定点标志取反后直接跳到主程序中巡回/定点标志判断程序前运行,由判断程序完成巡回 /定点的切换。按键信号由单片机P3.3、P3.4、P3.5引脚输入。
③ 显示电路设计。为方便观察,选用3个2位共阳级8段数码显示管(TOD5201AE)动态显示,1位显示仪表地址(A~F),1位显示通道号(0~7通道),其余4位用来显示实时温度值;用单片机P1口驱动1片74HC244以吸收电流的方式控制段码,用单片机P0.0~P0.5引脚驱动6个PNP三极管(9012)控制位选。
④电源选用5V/1A市售成品开关电源。
⑤ 根据智能仪表通信协议的要求,串行口定义为方式1工作,1帧10位:1个起始位、8个数据位、1个停止位;用1片75176完成数据的发送与接收,由于 RS485为半双工,故用单片机P3.2引脚控制发送与接收的切换;2个智能仪表处于RS485总线的2个端点,为提高可靠性,在RS485总线的2个端点上分别并联1个120Ω、1/4W终端电阻。
看门狗溢出时间表如表1所列。系统方框图如图2所示。
5单片机软件设计说明及程序流程图
见http://www.dpj.com.cn
6 调试及运行情况
调试步骤如下。
◇ 硬件连接:将各芯片插在面包板上并用导线按原理图连接。
◇ 软件开发环境:Keil uVision2 forWindows。该软件的模拟调试器支持C语言及汇编语言源代码调试,其汇编程序支持宏汇编及模块化编程,使用方便。
◇ 首先在模拟调试器中调试各子模块,各子模块调