基于RS—485总线的远程温度控制系统设计
2017-02-23王建珍
王建珍
本文给出了一种基于RS-485总线的远程温度控制系统的设计方法,不仅可以在本地显示温度测量值,还能通过RS-485总线把测量值发送给主机端,实现远程通信。
【关键词】单片机 温度 RS-485总线
在仓库管理、蔬菜大棚等行业,往往需要对各点温度进行测量和控制,而传统的用温度计逐一测量的方法存在测量误差大、随机性强及效率低下的缺点。所以,有必要设计一个高效、高精度、使用方便的温度控制系统。本文提出了一种远程温控系统,该系统能够对重要数据进行保存,在主机端显示当前时间,设定温度上限值并发送给从机,各从机通过温度传感器自动测出当前温度并发送给主机,当温度超过上限值时,通过蜂鸣器报警并启动相应的风扇进行降温。
1 系统总体设计
如图1所示,远程温控系统由主机端、RS-485总线和各个从机端组成。主机端可置于主控室,各个从机端可置于需测量温度的各个点,如各仓库。本文以两个测量点为例说明。
主机端包括主机、按键键盘、液晶LCD2002、继电器1、继电器2、风扇1、风扇2、时钟芯片DS1302、存储芯片AT24C02及總线接口MAX487组成。其主机采用单片机AT89C52,通过按键键盘设置温度上限值和时间,将设置的温度上限值发送给从机端,接收从机端发来的当前温度测量值,如果从机1所在测量点当前温度测量值超出上限值时,闭合继电器1,启动风扇1。类似地,如果从机2所在测量点当前温度测量值超出上限值时,闭合继电器2,启动风扇2。
从机端由从机、液晶LCD1602、温度传感器DS18B20及总线接口MAX487等组成。从机也采用单片机AT89C52,接收主控机系统发来的温度上限值,通过温度传感器DS18B20测出当前温度显示在液晶LCD1602上并发送给主机。
主机和从机均采用AT89C52单片机,AT89C52有32个I/O口,内含8kB的可反复擦写的Flash只读程序存储器(ROM)和256B的随机存取数据存储器(RAM)。单片机晶振频率设为11.0592MHZ。主机端采用查询的方式,从机端采用中断方式。
主机端与从机端通过RS-485总线进行通信。RS-485总线工作方式为半双工方式。网络的传输线是双绞线。
RS-485接口芯片选用Maxim公司的MAX487,这是一款半双工收发器件。在某一时刻,一个发送,一个接收。采用差分信号进行数据传输,在同一个RS-485总线系统中,其发送器只能为一个,接收器最多可达32个,最大传输速率为10Mbps,最大传输距离为400英尺。
2 硬件电路设计
2.1 主机端
如图2所示,主机端电路主要由单片机、液晶显示模块、按键键盘、蜂鸣器、时钟DS1302、存储器AT24C02、继电器等组成。液晶显示模块用于显示当前时间和温度值。按键键盘由SET、UP、DOWN和OUT四个按键组成,这四个按键一端分别和单片机的P1.4、P1.5、P1.6、P1.7相连,另一端接地。继电器RL1、RL2分别和单片机的P2.0、P2.1相连(图2中未画出RL2),接插件J1连接风扇电路。当主机接收到从机1发来的温度测量值大于设定的温度上限值时,RL1线圈得电,启动相应的风扇1电路,以达到降温的目的。类似地,当主机接收到从机2发来的温度测量值大于设定的温度上限值时,RL2线圈得电,启动相应的风扇2电路。
2.2 从机端
如图3所示,从机端包括单片机、温度传感器DS18B20、液晶显示模块、MAX487和蜂鸣器组成。单片机AT89C52的RXD与TXD分别与MAX487的RO与DI相连,进行串行数据通信。P3.4与P3.5分别与MAX487的/RE、DE相连,以控制接收器与驱动器使能。采用串行中断方式。从机通过DS18B20进行温度采集,然后通过LCD1602进行显示,主机发来的温度上限值显示于第一行,从机所在位置的温度值显示于第二行。
3 软件设计
3.1 RS-485总线通信协议
(1)主机把查询地址发送给从机。
(2)从机接收查询地址,并与本从机地址进行比较,如两地址相同则发送从机地址,采集温度十位、个位、小数位,并进行累加和校验。
(3)主机接收从机发来的数据。
(4)主机发送温度上限值十位、个位。
(5)从机接收温度上限值命令。
(6)主机如果未查询完所有的从机,就返回(1)继续查询下一个从机
(7)通信速率为9600bps,数据帧格式:1位起始位,9位数据位,1位停止位,即串行口工作方式为方式3。
(8)主机发送从机地址和温度上限值的校验方式均为偶校验(每帧数据的第8位即D7为偶校验位),主机接收从机发送的匹配地址和采集到的温度值时的校验方式为累加和校验。
(9)从机接收主机发送的从机地址和温度上限值时的校验方式为偶校验((每帧数据的第8位即D7为偶校验位),从机发送匹配地址和采集到的温度值时的校验方式为累加和校验。
3.2 主机端程序设计
主机端程序包括主程序、液晶显示功能程序、DS1302实时时钟功能子程序、AT24C02掉电存储功能子程序、蜂鸣器报警功能子程序、继电器输出控制子程序、按键键盘子程序及主机通信子程序。其主程序流程如图4所示。
首先,进行液晶初始化、时钟芯片初始化、串行口和T0初始化,然后判断状态标志是否为0,如不为0,则进入时间调整模式;如为0,则进入正常工作模式;当进入正常工作状态时,先调液晶显示温度和时间函数,使显示温度和时间,再调键扫描函数,扫描各功能键,设定温度上限值。然后调串行通信函数,串行发送温度上限值,最后对接收到的温度测量值进行判断,如从机1的温度测量值大于温度上限值,则蜂鸣器响1声报警;如从机2的温度测量值大于温度上限值,则蜂鸣器响2声报警。
主机通信子程序流程如图5所示。
3.3 从机端程序设计
从机端程序包括从机主程序和从机通信中断服务子程序。从机主程序流程如图6所示。
从机通信中断服务子程序流程如图7所示。
4 结束语
基于RS485总线的远程温度控制系统具有灵敏度高、精度高、体积小、功耗低的特点。系统结构简单,开发成本低,具有较高的性价比。
参考文献
[1]张志良.单片机原理与控制技术[M].北京:机械工业出版社,2008.
[2]瓮嘉民等.单片机典型系统设计与制作实例解析[M].北京:电子工业出版社,2014.
作者单位
苏州信息职业技术学院 江苏省苏州市 215200