本站小编为你精心准备了热水器控制器的系统设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
《西安工程大学学报》2015年第一期
1恒温控制器的通信系统设计
1.1系统框架
该恒温控制器分为控制板与显示板两大部分,控制板通过四路DS18B20分别采集出水口温度T1、入水口温度T2、环境温度T3、水流量T4,EEPROM中存放系统的参数,这些参数可以被查看也可以被修改;从机则调用EEPROM中数据并实时显示温度、流量,并允许用户通过按键修改这些参数.具体框架如图1所示.显示板与控制板通过MAX485进行通信,MAX485通信具有硬件简单、控制方便、成本低廉等优点,在测控系统中被广泛使用.系统通信主要内容有:显示温度、流量,查看系统参数和修改系统参数.针对系统数据传输的实时性特点,数据在传输过程中需做到井然有序.系统需具备一定的抗干扰性能力,一旦受到噪声干扰还应具有必要的纠错能力.针对这些内容与要求,数据通信系统对硬件和软件做了以下设计.
1.2硬件设计
系统通信过程中可能会出现数据收发冲突,采用MAX485的/RE与DE短接并连接到AT89S51的P1.3端口,在程序中通过该端口控制半双工通信时的接收、发送状态切换.P3.0与P3.1分别为单片机的串口接收端与发送端,对应连接到MAX485的接收器端与发送器端.采用典型的485接法,两片MAX485的A、B端通过双绞线对应连接,通信双绞线之间接有120Ω阻抗匹配电阻,减小信号反射,增强信号抗干扰性.其硬件原理图如图2所示.由于系统主要工作于室内,受到的干扰相对较少,采用这种MAX485典型连接方式即可满足设计要求.在实际应用中一方面可以节约成本,另一方面简化了系统,使得系统连接方便简单.
1.3软件设计
1.3.1软件的初始化(1)系统为双机通信,将主、从机的串口统一设置为工作方式2,即11位异步通信方式;(2)主机与从机进行相应的波特率初始化,采用定时器T1,工作方式2,8位计数器,在11.0592MHz下波特率为9600bit/s.
1.3.2数据帧格式在异步通信中,数据是一帧一帧传送的,最标准的数据帧格式是由1位起始位,5~8位数据位,1个校验位和1个停止位4部分组成.程序采用独特的数据帧格式,其帧格式包括:地址码、数据码、序号、CRC校验码、终止功能码.地址码定义为ADDR,其地址为0x50,是主、从机握手信号;数据是主、从机之间发送的温度、参数以及修改的参数等信息;序号是从机请求信号,不同序号代表不同的请求;CRC校验码是这一数据包的校验标志,采用CRC16码,包含2个字节;终止功能码定义为AEND,其地址为0x8b,是主机发送完毕的应答位.程序在接收与发送都加入了16位CRC查表校验,CRC查表校验具有校验速度快,使用方便的特点.一旦信号受到干扰就会校验出错,这样提高了系统的抗干扰性和纠错性.终止功能码的作用是判定该数据帧发送完毕,接收到该数据码则表示数据已经发送完毕.数据通信时,将链路层数据帧中每一项,依次放入11位的数据帧中,送到传输线上即可完成链路层数据帧的发送与接收.
1.3.3序号的作用程序采用序号代表从机的请求信号,序号还具有区分通信的功能.系统通信的数据较多,主要包括温度、流量和23个系统参数.为了能够对这些数据进行有效调用,不同的序号对应不同的请求信号,从机发送给主机序号,主机收到序号后即调出相应数据并反馈给从机.为了实现参数查看与修改这两个功能的独立性,避免操作时产生混乱,通过对序号加值的方法来进行区分.序号=0,表示从机没有请求;0<序号<5则表明从机请求温度;5<序号<29则是对这个数组内部的参数进行操作.采用给序号加数值的方法区分参数的查看与修改功能.查看参数时序号则加10,即从机发送请求序号范围为:15<序号<39,到主机收到后再进行序号减10操作,这就对应上23位数据.参数的修改采用同样的方法,为避免与查看参数的序号范围产生重叠,修改参数的序号加40,即序号范围为:45<序号<69.
1.3.4软件实现流程系统的数据收、发在串口中断中完成与实现.当串口接收缓冲区的数据为从机发过来的数据,可直接进行接收与处理,系统串口中断接收、发流程如图3所示.
2可靠性问题
2.1信号传输问题系统通信过程中,传输线路不连续或阻抗不匹配将会引起信号的反射,反射信号与原信号叠加将导致数据的误码率增加甚至无法正常通信.解决办法是增加匹配电阻.使用双绞线连接主、从机,双绞线的特性阻抗在110~130Ω之间,因此,设计选择用120Ω的电阻作为匹配电阻添加到总线末端.添加匹配电阻可以达到消除总线上反射信号和吸收噪声的目的.
2.2通信实时性问题在网络通信中,实时通信是一项重要的技术指标.它是用来描述上位机与下位机之间快速传递信息的特性.在许多应用场合,通信实时性甚至决定了整个通信网络系统运行的成败.实时通信一般要经历3个阶段,即通信请求、通信服务和通信结束.设计中,由于采用两片相同单片机与两片MAX485组成双机通信形式,485用一对线进行数据传输,则主、从机通信都应该遵循相同的通信协议.在通信过程中信号受到干扰,程序可通过发送与接收的CRC校验码很快校验出错误信息,一旦校验错误主机则发送请求错误,从机则继续发送请求.程序采用错误次数验证,错误次数达到10次则丢弃该数据帧,并返回0表示什么都没做;若错误次数小于10次,则表明通信正常,可以继续接收数据,直到接收完数据,之后继续进行其他请求.
2.3总线冲突问题MAX485收发器由RE和DE两个端子控制发送和接收的切换,RE和DE一般由单片机的某个IO端口控制.系统上电时,单片机IO端口复位为1,这时从机处于发送状态,主机控制端应由软件控制处于接收状态,否则主、从机都处于接收状态或发送状态就会造成总线冲突,导致通信失败.MAX485主从式双机通信采用半双工通行方式,RE端和DE端短接,连接单片机P1.3端口.系统上电,从机控制端置P1.3=1,从机处于发送状态,主机控制端置P1.3=0,主机处于接收状态.任意时刻都由软件设置控制端保证主、从机接收发送数据的相匹配,使主、从机之间通信的有序传输.
2.4数据传输过程中丢帧问题通信过程中,单片机的发送完成是根据串口发送中断的标志位来判定,而这个标志位是指8位数据在移位寄存器中移出.然而对于通信来说,还会有奇偶校验位、停止位等,这些还没有被发送到总线上.因此当最后一个数据发送之后,芯片发送状态的转换应进行必要的延时,如果在最后一个字节的发送中断产生之后,就立马切换MAX485状态,会造成最后一个字节无法接收,会被接收端认为错误帧而丢弃.软件设计保证了总线上的单片机发送的控制信号在时序上完全隔开.为确保发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线上信号的发送与接收都进行了必要的时延,主、从机发送和接收信号在时间上完全的隔离.发送和接收控制信号足够宽,保证完整的接收每一帧数据.
3结束语
本文针对空气源热水器中恒温控制器在温度数据交换方面存在的不稳定、不可靠的缺点,设计了一种基于MAX485的双机通信系统.详细描述了系统的电路原理与程序设计,尤其是程序中采用独特的数据帧格式,该帧格式可以使程序对数据操作有序,并对通信功能的区分也进行了巧妙的设计.系统的软件、硬件部分都已经过调试通过,实际应用中运行良好,通信的可靠性高,已成功应用于某型号的直热式空气源恒温控制器中,是一种有效、可靠的通信解决方案,具有一定的参考价值.
作者:刘志鹏朱耀麟单位:西安工程大学电子信息学院