基于ATMEGA16的智能控制器的开发研制
1、引言
随着科学技术的飞速发展和人们生活水平的提高,普通仪表已显过时,不能满足现代生活的需求。现代仪表已日趋数字化、网络化和智能化。微电子技术的发展和工业过程对测控方面要求的加强,使智能仪表的应用更广、成本更低。AVR单片机具有低成本、低功耗、高速度的特点。本控制器主要针对浙大中控的 AE2000B过程控制实验装置设计的,对其水箱的液位、电热锅炉的温度进行控制、显示。
2、智能仪表的研制开发
智能仪表是以单片机为核心的仪表,其设计要点大致有两点,即模块化设计和模块的连接。
2、1 模块化设计
依据仪表的功能、精度要求等,自上而下按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试,然后把它们连接起来,进行总调,这是设计仪表最基本的思想。
硬件部分包括主机电路、过程输入/输出通道(模拟量输入/输出通道和开关量输入/输出通道)、人机联系部件和接口电路以及串行数据通信接口等。软件部分包括监控程序(包括初始化、键盘和显示管理、中断管理、时钟管理、自诊断等),中断处理程序以及各种测量(数字滤波、标度变换、非线性校正等)和控制算法等功能模块。模块化设计的优点是:无论是硬件还是软件,每个模块都相对独立,故能独立地进行研制和修改,使复杂的研制工作得到简化,从而提高工作教益和研制速度。
2、2 模块的连接
上述各种软、硬件研制、调试之后还需要将它们按一定的方式连接起来,才能构成完整的仪表,以实现数据采集、传输、处理和输出等各项功能。为实现既定的各种功能,软件模块的连接一般是通过监控主程序调用各种功能模块,或采用中断的方法实时地执行相应的服务模块来实现。
硬件模块连接方法有两种:一种是以主机模块为核心,通过设计者自行定义的内部总线(数据总线、地址总线和控制总线)连接其它模块;另一种是用标准总线连接其它模块,这种方式可选择标准化、模块化的典型电路,使配接灵活、方便。
3、系统硬件研制
3、1 单片机的选择
单片机是整个智能仪器的核心部件,它直接影响整机的硬件和软件设计,它对智能仪表的功能、性价比以及研制周期起决定性作用。一般兼有数据处理任务的控制类智能仪表,大多采用数据处理型的单片机。我们选用高性能、低功耗的8位ATMEGA16单片机,它具有如下特点:16K 字节的系统内可编程Flash(具有同时读写的能力,即RWW);512字节EEPROM;1K字节SRAM;32个通用I/O口线;32个通用工作寄存器;三个具有比较模式的灵活的定时器/计数器(T/C);可编程串行接口;低功耗空闲和掉电方式等。
3、2 外部设备的选择
一台智能仪表往往需要有多种外部设备。根据功能模块划分,外部设备通常指过程输入/输出通道、人机接口(键盘、显示器、连接电路)等。
图1 智能控制器硬件系统原理图
3、2、1 模拟量输入通道
A/D转换器我们直接运用MEGA16芯片上的5-8路10位AD转换。ATmega16有一个10位的逐次逼近型 ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V (GND)为基准。器件还支持16 路差分电压输入组合。两路差分输入(ADC1、ADC0 与ADC3、ADC2)有可编程增益级,在A/D 转换前给差分输入电压提供0dB(1x)、20dB(10x) 或46dB(200x)的放大级。七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可作为正输入端。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。
3、2、2 开关量输出通道
在测控系统中,被控设备的驱动常常采用模拟量输出驱动和数字量(开关量)输出驱动两种方式。前者由于其输出受模拟器件的信号漂移等影响,很难达到较高的控制精度。随着电子技术的迅速发展,特别是单片机进入测控领域后,数字量输出控制的应用日益广泛。精度控制上,开关量输出控制比模拟输出控制高。利用开关量输出控制往往无需改动硬件,而只需改变程序就可用于不同的控制场合。
我们采用开关量输出,并提供2种输出方式由用户选择: 继电器控制输出(AC 220V/3A.DC 24V/5A)阻性负载;SCR(可控硅)输出400V/0.5A。
3、2、3 LED显示电路
显示屏驱动电路的主要作用是接受来自控制系统的数字信号,将发光二极管点亮,实现在LED显示屏上的信息的显示。在显示电路中采用双4位LED显示,测量值和目标值同时显示,LED显示屏使用的驱动电路是基于通用型集成电路移位寄存器74HC595和6B595来设计的。
3、2、4 通讯接口电路
通讯传输采用标准的RS485或RS232计算机数据串行通讯方式,通过串口按一定的通讯协议接收来自计算机串口RS232的信号,经过处理后按一定的规律传送到显示屏上显示。
4、系统软件开发
系统软件是整个控制系统的灵魂,而在控制系统中,核心部分是控制器的设计。本次设计我们主要采用了PID控制实现,全部软件都是用C语言编写的。依据总体设计的要求,软件流程图如图3,它由如下模块组成:
图2 ATMEGA16电路图
图3 主程序流程图
4、1 初始化模块
要求完成I/ O的设置、数据存储器分配(包括A/ D采样的结果、输入按键的键码、程序标志等) 、定时器、A/ D的设置并开中断。
4、2 循环扫描模块
检测是否有键盘输入、A/ D转换完成否、是否定时中断等判别任务。若有则转跳至相应的子程序或中断程序。
4、3 中断处理模块
依据状态完成定时计数、A/ D采样、键盘扫描等任务。
4、4 显示驱动模块
依据状态完成温度或系数的显示。
4、5 键盘处理模块
检测键码并进入相应处理程序。
4、6 定时中断模块
完成定时计数,定时间隔约为1s,为系数的设置提供数码。
4、7 温度/液位控制模块
依据测得的数据和预置数的差确定控制信号的输出。
5、智能控制器的应用
用ATMEGA16单片机实现的智能控制器,主要有如下功能:
(1) 具有比较强的控制功能,可以实现基本的PID控制、串级控制、基本的PID控制、串级控制、比值控制、前馈控制、史密斯补偿控制、位调节等功能。
(2) 能对输入信号进行处理,如线性化、数据滤波、标度变换等。
(3) 具有显示测量值和给定值的功能;具有故障报警的功能。
(4) 具有通信的功能。
(5) 具有自动/手动切换的功能。
将研发的智能控制器应用于浙大中控的AE2000B型过程控制实验装置中,具有稳定性好、精度高、抗干扰能力强等特点,满足实验所需的各项指标的要求,达到了预期的效果。
6、结束语
通过实践运行表明,所设计的系统能够可靠、稳定、无扰动地完成手动、自动切换的功能。以PID算法为核心的控制器能很好的满足系统的稳定性和精度要求,并且具有开发周期短、成本低、性能高、功能易扩大的优点。
参考文献
[1] 宋建国.智能仪表原理与设计技术.北京航空航天大学出版社[M],1998
[2] 马天程.智能测控仪表的研究[J].仪表技术与传感器,1997,12:23~28
[3] 袁乐安.智能仪表的开发[J].矿业研究与开发,2000,20(2) :34~36
[4] 王 健,单 印.一种高精度智能温度控制器[J].微计算机信息,2002,18(11) :31~32
评论