摘 要:文章介绍了用AT89S8252单片机的串行接口与智能温度巡回检测仪(XJ-08S)通过RS—485总线相互通讯实现热水温度远程显示的一种低成本解决方案,内容涉及RS—485总线通讯、单片机驱动数码管显示、数据转换以及键盘处理软硬件设计等内容。
关键词:单片机 RS—485总线 数码管显示 数据转换 键盘处理
三、控制要求及解决方案选择
1、 两个热交换站分高低区共安装有8个热交换器,正常水温在45oC至65oC之间;两个热交换站与锅炉房的距离分别为500米和600米左右。
2、 要求在锅炉房能以巡回及定点两种方式显示8个热交换器的热水温度,巡回方式以3秒为周期轮流更新及显示各热交换器热水温度。定点方式时每按上键或下键一次则显示上或下一个热交换器热水温度,每3秒自动更新数据一次。
3、 根据控制要求选择单片机+智能仪表的解决方案:用带通讯接口的智能仪表安装在现场测量温度,设计制作一个单片机装置完成与智能仪表的通讯及数据显示。
四、通讯协议、智能仪表选择及其参数介绍
因热水温度信号变化较慢,因而对通信的速度要求不高,对于这种低速率远距离的通讯选用RS-485总线适宜。RS-485是EIA(美国电子工业联合会)在1983年公布的新的平衡传输标准,是工业界使用最为广泛的双向、平衡传输线标准接口,它以半双工方式通信,支持多点连接,传统驱动器允许创建多达32个节点的网络,且其具有传输距离远(最大传输距离为1200M),传输速度快(1200M时为100KBPS)等优点。其连接方法如下图所示。
为了满足现场温度检测及与单片机装置通讯的要求,必须选择至少有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号仪表的全部动态数据
命令:’@1CRD64’,0D(ASCII码40 31 43 52 44 36 34 0d)
错误返回码 ‘@1C**72’,0D(ASCII码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通道 校验
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终端电阻。
系统方框图如右示:
单片机装置电原理图见下页: