双单片机电阻炉温度控制系统设计及仿真
2010-08-23陈慧
陈 慧
CHEN Hui
(华东交通大学 机电工程学院,南昌 330013)
0 引言
电阻炉广泛应用于工矿企业、科研院所等场合,用作元素分析测定和钢件淬火、退火、回火热处理的加热设备。单片机以其体积小、价格低、功耗低、控制能力强的优点,已经成为了电阻炉温度控制领域的核心器件[1,2]。
然而,当前大多数电阻炉温度控制系统采用一个单片机核心器件[3,4],当CPU处理能力不够就会造成“瓶颈”现象:例如当使用A/D转换器或计算处理时间长时,人机接口和监控程序就难以使用。为解决上述“瓶颈”问题,同时又兼顾到经济性原则,本文设计了基于低端双单片机结构的电阻炉温度控制系统,该系统在并行处理信息、实时采集数据及可靠性等方面具有优势。
1 控制系统设计方案
本设计采用两个ATMEL公司生产的51系列单片机AT89S52:其中单片机U1用作实时控制;单片机U2用作监控机,主要完成人机对话和辅助计算功能。
有关双机数据交换[5~7],可考虑3种方式:1)采用串行总线,这种方法硬件简单但传输速度比较慢;2)采用并行总线,其速度较高但考虑到两个CPU 时钟同步问题因而硬件比较复杂;3)采用存储器方式,其传输速度比较快且对时钟同步性要求也不很严格。在此,本着提高性能与降低成本相结合的设计原则,采用第3种方式即由双端口RAM承担双机信息的互换。系统原理框图如图1。
图1 系统原理框图
2 控制系统硬件设计[8,9]
系统硬件电路由3部分组成:1)实时控制模块;2)人机交互模块;3)双机通讯模块。
2.1 实时控制模块[10]
该模块以单片机U1为控制核心,可以分为温度检测电路和输出控制电路两部分,如图2、图3所示。
图2为温度检测电路。热电偶将温度转换为0-41.32mv电压输出,经毫伏变送器转换成4-20mA电流,再经过电流/电压转换成0-5V电压信号,由ADC0809转换为8位的数字量送到单片机U1的P0口。图3为输出控制电路。单片机U1的P1.0引脚输出控制信号,经过零触发电路去控制双向晶闸管,通过改变双向晶闸管的导通时间来改变加热功率,达到调节温度的目的。当P1.0=1时,双向晶闸管导通,P1.0=0时则截止;可控硅在给定周期的100%时间内接通时的功率最大,这时加热温度最高。图中同步过零脉冲信号接U1的T0、T1脚,用来记数定时周期和控制输出波头数。
图2 温度检测电路
图3 输出控制电路
2.2 人机交互模块
人机交互模块由图4,由四个独立的发光二极管(作为电源指示灯、PID正常运行指示灯、上限报警指示灯和下限报警指示灯)显示电路和两个4位7段数码管动态显示电路以及四个独立按键电路和一个复位按键电路共同组成。
图4 人机交互模块
2.3 双机通讯模块
以双端口静态存储器芯片DS1609作为两单片机的数据交换器,基本原理为:需要送出数据的一方先把数据送入DS1609中,然后接收数据的一方对DS1609中的同一地址进行读取,完成数据交换。
图5 双机通讯模块
3 控制系统软件设计
单片机U1的软件包括主程序(负责初始化及通过DS1609与单片机U2进行联系)、T0及T1中断服务程序(T0中断服务程序进行采样、滤波、标度转换、越限处理、控制显示温度;T1中断服务程序主要控制双向可控硅的通断)、采样子程序(ADC0809以查询方式对IN0通道采样4次)、数字滤波子程序(采用防脉冲干扰平均值法滤波对4次采样值处理得平均值,以备PID运算和温度标度转换使用)、标度转换子程序(参数经A/D转换后得到的数码值仅对应于参数的大小并不等于原来带有量纲的参数值,故必须把它转换成带有量纲的数值以便显示)、PID运算子程序(控制原理是先求出实测温度对所需温度的偏差值,对偏差值处理而获得控制信号去调节电阻炉的加热功率)及其它子程序(如为进行采样值数码显示而加入二至十进制转换子程序和压缩BCD码变成单字节BCD码子程序;为求取PID运算而加入将键盘设定值进行十至二进制转换的子程序等)。
单片机U2的软件主要包括键盘监控程序和显示输出程序。1)键盘监控程序设计。本系统功能较为复杂,考虑到如果采用一键一义监控会由于按钮过多,致使成本增加且面板难以布置用户操作也不方便,因而本设计采用一键多义的键盘监控程序。具体是:采用状态顺序编码设计状态图,构造两张表(即状态表和索引表),监控程序根据现态码和键码查表一方面可找到任务模块WORK0~WORK15中相应的某一项予以执行发出运行命令,另一方面可用于下次判断处理所需的次态NEXT项。2)显示输出程序设计。显示输出程序包括初始化、通过DS1609获取单片机U1数据、控制设定温度值显示和当前温度值显示。
本系统程序众多,由于篇幅所限具体程序流程图及源代码从略。
4 控制系统仿真调试
4.1 程序仿真调试
采用Keil软件进行程序仿真调试。程序首先通过汇编及语法错误检查,然后在仿真CPU中进行调试直至正确,则可保存其生成的目标文件(HEX文件)供单片机使用。图6、图7为某程序仿真调试过程图。
图6 程序通过汇编
图7 程序进行调试
4.2 硬件仿真调试
硬件仿真调试利用proteus软件[11],上述keil软件生成的HEX文件将在proteus环境中的中导入单片机进行仿真。图8为对PID闭环控制的仿真,其中比例系数Kp=1.4、积分时间常数Ti=1、微分时间常数Td=6。从图9可以看出,该PID闭环系统可以很快(稳定时间为32.7s)达到温度设定值,故系统达到了预先快、准、稳的要求。
5 结束语
本次设计的双单片机电阻炉温度控制系统能有效解决原有单一单片机系统面临的当使用速度相对较慢的A/D转换器或当计算处理时间长时,人机接口和监控程序难以使用的问题。该系统响应速度快,存储容量大,CPU使用率小,因此在并行处理和实时采集数据等方面具有优势,且稳定性和可靠性也更好。
图8 PID闭环控制的模拟
图9 仿真结果图像
[1]余永权.单片机在控制系统中的应用[M].北京:电子工业出版社,2003.
[2]杜静,王振民.电阻炉的温度控制系统[J].机械管理开发,2005,82(1):3-4.
[3]沈协和.用单片微机构成的炉温控制器[J].仪表仪器,1998,15(6):25-36.
[4]肖恩忠.基于AT89C52的电阻炉智能温度控制系统[J].农机化研究,2005(3):238-239.
[5]李平均,张江,等.双单片机的应用[J].微电子学与计算机,2004,21(4):78-80.
[6]罗冯涛,王渝.双单片机系统中一种简单的并行数据传输模式[J].现代电子技术,2002,134(3):11-13.
[7]林祝亮,武林,等.基于双单片机的多路数据采集系统设计[J].仪器仪表学报,2006,27(6):132-134.
[8]王幸之.AT89系列单片机原理及接口技术 [M].北京:北京航空航天大学出版社,2004.
[9]宗光华,李大寨.多单片机系统应用技术[M].北京:国防工业出版社,2003.
[10]邓胡滨.电子电路Protel 98实用教程 [M].北京:中国水利水电出版社,2000.
[11]周润竟,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.