该设计使用AVR单片机,运用RS 485技术以及NTC热敏传感器技术,研制开发了该远程温差循环控制器。
1 系统结构和工作原理
远程温差循环控制器主要用于测量、显示分体承压太阳能热水器的水箱水温、集热器温度、管道温度及控制温差循环、辅助电加热、管道防冻和参数设置等。控制器主要由主机、从机、水温传感器、防冻传感器等部分组成。主机核心为ATmega16单片机,通过RS 485与从机通信,显示从机采集的温度数据,并完成基本功能设置,把设置数据传送给从机;从机也是以ATmega16单片机为主控器,完成数据采集和控制执行,其系统总体结构框图如图1所示。
2 系统硬件设计
远程温差循环控制器以ATmega16为核心,该单片机带有串行接口,可以接485转换芯片,实现RS 485通信;内置8位A/D模块,可直接实现8通道模拟信号的A/D转换输入;带有512 B的E2PROM,可以实现数据掉电保护。
2.1 主机电路
主机的主要功能是接收从机采集4路温度数据,并显示在128×64的液晶上;主机的另外一个功能是完成基本的设置,然后把设置参数发送给从机。主机主要由RS 485通信、键盘输入、LCD显示等几个模块组成。
2.1.1 RS 485通信
由于RS 485总线通信模式具有结构简单,价格低廉,通信距离和数据传输速率适当等特点,因而已广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。
在该设计中使用接口芯片MAX485,如图2所示。该芯片是Maxim公司的一种RS 485芯片,采用单一+5 V电源工作,额定电流为300μA,采用半双工通信方式。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可。RE和DE端分别为接收和发送的使能端,当RE端口为逻辑0时,器件处于接收状态;当DE端口为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的管脚PD2控制这两个引脚即可。A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。
2.1.2 RS 485通信的抗干扰问题
RS 485总线存在自适应、自保护功能脆弱等缺点,如不注意一些细节的处理,常出现通信失败,甚至系统瘫痪等故障,因此提高RS 485总线的运行可靠性至关重要。
在该设计中,首先采用光电隔离。图2中,四位一体的光电耦合器TLP521_1使单片机与MAX485之间实现了完全的电隔离,消除了相互干扰,提高了工作的可靠性。如图2所示,单片机接收端RXD接TLP521_1的第13引脚;MAX485的RO接TLP521_1的第3引脚。这样,当RO有信号输入时,TLP521_1的第3引脚,通过光电耦合管使第13引脚有相应的电信号,从而降低了相互干扰。TXD,PD2的结构和RXD相同。其次,在RS 485的输出端即A,B两端加入信号限幅二极管D1~D4,其稳压值应保证符合RS 485标准,D1和D3取12 V,D2和D4取7 V,以保证将信号幅度限定在-7~+12 V之间,进一步提高抗过压的能力。考虑到线路的特殊情况(如某一节点的RS 485芯片被击穿短路),为防止总线中其他分机的通信受到影响,在MAX485的信号输出端串联了两个3.3 kΩ的电阻R8和R10,这样本机的硬件故障就不会使整个总线的通信受到影响。在应用系统工程现场施工中,由于通信载体是双绞线,它的特性阻抗为120 Ω左右,所以在线路设计时,在RS 485网络传输线的始端和末端应各接120 Ω的匹配电阻(如图2所示中的R9),以减少线路上传输信号的反射。通过上述几点,可以有效地降低RS 485通信中的干扰。
2.1.3 输出显示和键盘输入电路
液晶显示用的是OCM中128×64的液晶,该液晶显示模块为128×64点阵型液晶显示模块,既可显示各种字符及图形,又可以显示4行汉字,刚好符合该设计要求,显示4路温度,并可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线。该设计中,由于单片机接口预留有限,所以LCD与单片机的连接采用串行数据输入方法,数据通过单片机PA7与LCD串行输入端的第4引脚相连;PA4、PA5为片选信号,分别接LCD的第15、第16引脚;PA6作为读/写使能信号,与LCD的第6引脚相连,它不仅接口简单,而且节约了单片机的I/0口资源。键盘输入接口使用到8个按键,采用行列式2×4键盘实现。
2.2 从机电路
从机的主要功能是完成4路温度数据采集,并将这些数据传送给主机;然后接收主机下达的基本设置数据,控制实现温差循环、RS485通信、辅助电加热、管道防冻等功能。RS 485通信与主机相同,下面主要介绍测温和继电器控制部分。
2.2.1 测温电路
测温的关键是选择合适的感温元件和合理的测温电路参数。这里选用一种负温度系数的热敏电阻器(NTC),它采用玻壳封装,体积小,响应快,价格低,安装方便。水温测量使用NTC测温电阻TG40B503(25℃时,阻值50 kΩ,B值4 050 K,玻璃封装),经A/D转换后由程序查表,控制精确、选择合理的电路参数,在0~99℃范围内误差可小于1 ℃,具有良好的一致性。NTC热敏电阻的温度特性一般可用下面的公式表示:
RT=RT0exp(B/T-B/T0) (1)
式中:RT,RT0分别为热敏电阻器在温度T(单位:K)和T0(单位:K)时的阻值(单位:Ω)。B为热敏电阻器的电阻温度系数(单位:K)。热敏电阻测温电路如图3所示:RT1~RT4为本设计所使用的热敏电阻;PA0~PA3为从机ATmega16单片机的A/D接口。
2.2.2 继电器控制电路
系统输出功率控制有4路,分别有从机ATmega16单片机PB0~PB3端口控制温差循环、电加热循环、防冻循环等功能。当主机按“温差循环”键时,主机将把信号发送给从机,从机再将RB0置高,启动手动循环,再次按“循环”键,程序使RB0输出低电平口,关闭手动循环。其他功能与“温差循环”基本相同。为了防止继电器可能干扰单片机的控制电路部分,在单片机PB输出口与继电器驱动接口电路之间加入了光电耦合器TLP521_2,如图4所示。
3 系统软件设计
该设计的软件编程并不复杂,主要有以下几个模块:LCD显示、RS 485通信、A/D软件滤波、行列键盘、继电器控制等。这里主要介绍对RS 485通信、A/D数据的处理。
3.1 RS 485通信格式
在该设计中,虽然只是双机通信,但是为了以后扩展的需要,通信采用轮询方式。通信的发起端是主机,每次通信都是由主机发送指令开始,然后从机接收指令,根据接收到的指令,判断执行相应的动作。指令共有3种,所以用2位二值代码。代码有:00为查询,01为设置参数,02为手动指令传输。
通信流程如下:
(1)主机隔100 ms发查询帧,从机返回传感器数值数据帧;
(2)设置参数、状态等:主机发设置参数帧,从机返回设置确认帧;
(3)若在定时时间内没有收到从机返回数据,则重新发送,一直到从机正确返回。
3.2 A/D数据的处理
测试中发现,若不对A/D转换后的温度数据进行处理,直接用于温差循环控制,会使继电器不时出现误动作。即使在ATmega16芯片外的测温电路中加入了各种滤波电路,仍不见改善。因此推断该干扰可能来自于A/D转换模块内部。考虑到该系统中现场温度的变化较缓慢,适合采用滑动窗口平均法进行数字滤波。在采用数字滤波方法对A/D转换后得到的连续64个温度数据进行平均后,有效消除了A/D转换后的噪声。
4 结 语
以ATmega16为核心的远程温差循环控制器,使用RS 485方案,可以很好地解决远程通信问题。该设计方案具有使用元件少,成本低,抗干扰性好等优点。该控制器的功能实用,控制准确可靠,人机对话界面直观,操作简便,能满足各种分体承压式太阳能热水器对温差循环和电加热控制的要求。已经成功用于分体承压太阳能热水器的控制中,亦可用于太阳能热水工程中用于温差循环控制,具有良好的应用前景。
评论
查看更多