备注:本文曾发表于单片机资寻网 一、前 言
目前检测温度一般采用热电偶或热敏电阻作为传感器,这种传感器至仪表之间一般都要用专用的温度补偿导线,而温度补偿导线价格很贵,并且线路太长也会影响测量精度。在实际应用中往往需要对较远处(1KM左右)的温度信号进行监视。现有的解决方案有很多,例如:
1、 在现场用智能仪表对温度信号进行测量,用计算机作上位机与智能仪表进行通讯来实现远程温度监测(采用这种方案要增加计算机设备及相关计算机软件)。
2、 NCU+DDC实现远程温度监测。用两个DDC,一个安装在现场测量温度,另一个安装在监视地,两个DDC通过NCU进行通讯从而实现远程温度监测。
但以上方案都存在成本高的问题,有没有低成本的解决方案呢?其实,在单片机应用日益广泛的今天,完全可以用单片机以极低的成本来实现远程温度监测。
二、问题的提出
我单位管理的锅炉房同时给两栋建筑物内供应蒸汽,由安装在两栋建筑物地下室的热交换器进行热交换后产生热水送至房间。从锅炉房至两个热交换站的距离分别约600米,值班人员要不停地奔波于两个热交换站与锅炉房之间进行设备巡视,检查热水温度是否控制在规定的范围,这样不仅增加了值班人员的劳动强度,同时也使锅炉房经常无人(因每班1人值班)。如果能在锅炉房显示两个热交换站内各热交换器的热水温度,则值班人员仅在热水温度异常时才需到各热交换站检查设备,这样便可解决上述问题。经过分析,本人发现可以用单片机+智能仪表以低成本实现温度远程显示,并且经过实验取得了成功,现将设计方案简述如下:
三、控制要求及解决方案选择
1、 两个热交换站分高低区共安装有8个热交换器,正常水温在45oC至65oC之间;两个热交换站与锅炉房的距离分别为500米和600米左右。
2、 要求在锅炉房能以巡回及定点两种方式显示8个热交换器的热水温度,巡回方式以3秒为周期轮流更新及显示各热交换器热水温度。定点方式时每按上键或下键一次则显示上或下一个热交换器热水温度,每3秒自动更新数据一次。
3、 根据控制要求选择单片机+智能仪表的解决方案:用带通讯接口的智能仪表安装在现场测量温度,设计制作一个单片机装置完成与智能仪表的通讯及数据显示。
四、通讯协议、智能仪表选择及其参数介绍
因热水温度信号变化较慢,因而对通信的速度要求不高,对于这种低速率远距离的通讯选用RS-485总线适宜。它以半双工方式通信,支持多点连接,传统驱动器允许创建多达32个节点的网络,且其具有传输距离远(最大传输距离为1200M),传输速度快(1200M时为100KBPS)等优点。其连接方法如下图所示。
file:///C:/Documents%20and%20Settings/Administrator/桌面/xingyi/温度湿度仪器/用单片机实现温度远程显示.files/20070903211423254.jpg
为了满足现场温度检测及与单片机装置通讯的要求,必须选择至少有5个温度检测点及具有RS—485通讯端口的智能仪表。经过对市场上常用的温度检测仪进行分析,选择XJ-08S型巡回检测仪作现场测量仪表。
(一)该仪表主要特点如下:
1、 多量程方式,热电偶、热电阻,1-5V标准信号混合输入,可通过键盘进行设置;
2、 最多8个测量通道(能测量8个温度信号);
3、 采用RS-485通讯标准,可将各通道最新数据向上位机传送。
重要的是,该仪表的说明书详细介绍了与该仪表进行数据交换的命令及格式,其通讯协议也相对较简单,这给我们用单片机实现温度远程显示降减低了难度(虽然有RS-485端口的仪表很多,但大多没有通讯命令的详细说明,给我们用单片机编程增加了难度)。
(二)XJ-08S巡回检测仪通讯协议
1、通讯口设置
通讯方式:RS-485标准电平
同步方式:起停同步方式
波特率:9600BPS
通讯距离:不大于1200M
通讯线:二线
数据代码:ASCII码
数据格式:每字符10位,1个起始位,8个数据位,1个停止位
2、 数据传输格式
地址:2字节(高字节在前,低字节在后);
数据:按地址顺序,仪表数据传输格式为十六进制2字节定点数;
2字节定点数=低字节高4位(ASCII码)+低字节低4位(ASCII码)
高字节高4位(ASCII码)+高字节低4位(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号仪表的全部动态数据
命令:[email=’@1CRD64’,0D(ASCII]’@1CRD64’,0D(ASCII[/email]码40 31 43 52 44 36 34 0d)
错误返回码 [email=‘@1C**72’,0D(ASCII]‘@1C**72’,0D(ASCII[/email]码40 31 43 2A 2A 37 32 0D)
正确返回数据’@ 1C RD XXXX XXXX XXXX XXXX XXXX XXXX
第0通道 第1通道 第2通道
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
第3通道 第4通道 第5通道 第6通道
XXXX XXXX XX’,0D
第7通道 校验
五、单片机选择及硬件电路设计
1、 选用ATMEL公司生产的AT89S8252-24PC单片机,其主要参数及特点如下:
与MCS-51产品兼容(其引脚图见原理图)
具有8K字节可擦写的FLASH内部程序存储器,可擦写1000次;2K字节EEPROM,可擦写100,000次,SPI口(用PC机的并口连接5条线即可通过SPI口下载程序,下载软件可从网上下载,这样可节省购买编程器的费用;)。
256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。
file:///C:/Documents%20and%20Settings/Administrator/桌面/xingyi/温度湿度仪器/用单片机实现温度远程显示.files/20070903211423499.jpg
与看门狗有关的特殊功能寄存器WMCON 地址= 96H,与看门狗有关的控制位为96h第0、1、5、6、7位,第5、6、7位用于设置看门狗定时时间,本应用中第5、6、7位均置1,设置看门狗溢出时间为2048ms,第0位为看门狗使能控制位,该位置1将使能看门狗,其第1位为复用位,向第1位写1将复位看门狗定时器,具体操作如下:
a,使能看门狗,并将其溢出时间设定为2048ms:ORL 96H, #0E1H;
b,看门狗定时器清0:ORL 96H, #2
2、按键设计:
为方便使用,设计了三个按键,分别为巡回/定点切换键、上键、下键。切换键用于巡检与定点模式的切换,上键向上切换通道,下键向下切换通道;其中巡检/定点切换键通过外部中断1以中断方式工作,中断程序将巡回/定点标志取反后直接跳到主程序中巡回/定点标志判断程序前运行,由判断程序完成巡回/定点的切换。按键信号由单片机P3.3,P3.4,P3.5引脚输入。
3、显示电路设计
为方便观察,选用三个二位共阳级8段数码显示管(TOD5201AE)动态显示,一位显示仪表地址(从A至F),一位显示通道号(从0至7通道),其余四位用来显示实时温度值;用单片机P1口驱动一片74HC244以吸收电流的方式控制段码,用单片机P0.0至P0.5引脚驱动六个PNP三极管(9012)控制位选。
4、电源选用5V/1A市售成品开关电源。
5、 根据智能仪表通讯协议的要求,串行口定义为方式1工作,一帧10位:1个起始位、8个数据位、一个停止位;用一片75176完成数据的发送与接收,由于RS-485为半双工,故用单片机P3.2引脚控制发送与接收的切换;两个智能仪表处于RS-485总线的两个端点,为提高可靠性,在RS-485总线的两个端点上分别并联一个120Ω、1/4W终端电阻。
系统方框图如右示:
file:///C:/Documents%20and%20Settings/Administrator/桌面/xingyi/温度湿度仪器/用单片机实现温度远程显示.files/20070903211423644.jpg
单片机装置电原理图见下页:
file:///C:/Documents%20and%20Settings/Administrator/桌面/xingyi/温度湿度仪器/用单片机实现温度远程显示.files/20070903211424586.jpg
[ 本帖最后由 OUYANGGANG 于 2008-11-21 00:36 编辑 ] |
|