基于AT89S52与ATmega16单片机的简易自动控制原理实验系统设计

描述

1 引言

自动控制原理是国内高校自动化专业最重要的一门专业课,这门专业课的理论性非常强,光靠课堂教学达不到理想的教学效果,因此各个高校都开设自动控制原理实验,通过实验教学环节加深学生对理论知识的理解,将课堂教学知识转化为实际应用知识,同时培养学生对自动控制原理这门课程的兴趣。然而国内教学仪器企业销售的自动控制原理实验平台不但操作复杂,而且价格昂贵,从而导致高校实验教学开放程度不高,降低了实验教学效果,继而影响到自动控制原理的学习。针对此种现象,设计了一种简易自动制原理实验平台,该系统主要包括电源、基于单片机AT89S52 的信号发生器模块、基本实验环节模块、控制系统环节模块、数据采集模块等模块。其中,数据采集模块通过ATmega16 单片机将采集到的实验数据,送到PC机上的LabVIEW 虚拟软件平台进行显示或者储存。经过实验证明系统相对于传统高校自动控制原理实验平台具有操作方便和价格低等优点,适合在高校实验室推广的价值。

2 简易自动控制原理实验系统介绍

简易自动控制原理实验系统结构图如图1 所示。其中电源输入为市电220V ~ 50Hz 交流电输入,通过电源模块后可为整个系统提供各种所需电压,电压规格包括± 12V,+ 5V 等。信号发生器提供实验环节所需要的输入信号,其中包括阶跃信号和频率范围为0 - 100KHz 正弦波、方波、三脚波的信号源。模拟环节包括基本实验环节模块和控制系统模块。数据采集模块的功能是将实验环节模块输出的模拟量数字化并通过RS232 串行通信将其送入PC 机进行处理,其中还包括电平转换模块,其作用是将输入信号转换为0 - 5V范围内,从而能够采集数据。PC 机安装上位机软件,用于接收下位机传送的数据并进行处理和显示,同时上位机将指令传给下位机,用于调节下位机数据采集的速率和通道。

实验平台总体思想采用分模块设计方法,首先将各分模块分别设计和调试,再将其各模块之间进行集成设计和联立调试。采用该设计方法能使设计过程简单并且能提高设计效率。

数据采集

图1 系统原理框图

2. 1 信号发生器电路设计

信号发生器电路如图2 所示,其中主控芯片AT89S52通过键盘和液晶电路接收来自用户对所需信号的频率及幅度。当用户设置主控芯片后,引脚控制DDS 芯片AD9833 就会产生相应的信号,其信号由LM741电路放大后经U7 输出端口输出。

数据采集

图2 信号发生器电路原理图

2. 2 数据采集电路和多通道采集电路设计

ATmega16 单片机是美国Atmel 公司生产的基于增强的AVR RISC 结构的低功耗8 位CMOS 微控制器。ATmega16 单片机资源非常丰富、性价比高而且在工业生产中应用非常广泛。ATmega16 单片机除了具有其他同类型单片机共有的特性外,还独具有8 路10 位具有可选差分输入级可编程增益的ADC 及可编程异步串行接口的内部资源。系统正是利用ATmega16 的8 路10 位可编程增益的逐次比较型ADC 及可编程异步串行接口的内部资源,从而简化了电路设计的难度及编程难度。数据采集电路如图2 所示,ATmega16只需结合简单的电平转换、晶振电路和复位电路就可以达到系统的设计需求。图3 电路中模拟信号通过八路模拟输入的任意端口输入即可,通过单片机内部程序控制,将输入模拟量转化为数字量。单片机再通过串行接口传输给PC 机,系统的通信是通过串行发送引脚TXD 和串行接收引脚RXD 连接串行通信接口电路实现数据的串行传送与接收。

数据采集

图3 采样电路原理图

由于ATmega16 内部ADC 为八选一数据通道,在具体实现某路数据采集时就必须更改多工选择寄存器ADMUX 的数值。为能随时更改通道,本设计采用主从方式,通过上位机发送给ATmega16 的数值来改变通道。同时,在串行接口接收中断后,通过接收的数值的编码也可用来改变ADC 相邻两次转换之间的延时值,从而达到改变转换速率的效果。本系统采用0 - 7 为通道选项,当数据大于7 时为更改采样速率值。当数据更改操作完成后程序立即返回主程序,此时ADC 转换由新的参数运行。

2. 3 下位机软件设计

下位机软件包括信号发生器软件和数据采集软件两部分。信号发生器采用AT89S52 型单片机加AD9833 型的DDS 芯片构成,软件编程使用环境为Keil uVision 4.数据采集模块采用ATmega16 型单片机构成,软件编程使用环境为AVR GCC 和AVR studio 4.下位机软件设计的关键是能使程序能即时完成数据的接收和发送,同时保证数据的准确,为此,系统采用中断响应的方式完成串行数据接收,同时完成ADC 转换以及数据的发送。下位机程序分为主程序、串行接收中断和ADC 转换完成中断三部分,其流程图如图4 所示。在主程序中主要完成串口和ADC 寄存器的初始化,初始化完成后启动片内ADC 的第一次转换,随即系统进入等待中断状态,若接收到停止信号,系统马上停止。当系统响应到串行接收数据中断,通过接收的数值对ADC 转换的通道和采集速度进行相应的修改,当修改完成后立即返回主程序。当ADC 每次转换完成相应标志位置位,程序跳转到ADC 转换并完成中断运行。此时系统读取转换的数值并处理,随即通过串口将该数据发送给上位机。当串口数据发送完成后起动延时; 另外当延时完成后,系统将ADC 转换起动标志位置位,然后进行下一次转换。下位机程序运行的整个过程中,系统通过中断方式完成,具有响应及时、提高单片机处理内部和外部事件能力的优点。

数据采集

图4 下位机程序流程图

2. 4 上位机前面板设计

系统采用LabVIEW 开发平台制作上位机软件,即在PC 机上设计出虚拟示波器。系统虚拟示波器上位机软件界面如图5 所示。从图5 可知,上位机具有串口参数调节、数据波形显示、数据存储、数据回放、以及采样通道及速率选择等功能。虚拟示波器在波形显示过程中,用户可根据个人喜好对曲线颜色、数据采集速率和通道等参数的进行设置。同时在实验过程中,可以点击波形存储按钮对接收到的数据以TXT 或其他格式的文件存储在PC 机硬盘或其他外部磁盘中。用户可根据需要随时通过数据回放按钮选择文件查看数据波形或者将数据文件提供给Matlab 和Exel 等数据处理软件进行分析处理,使用非常灵活方便。

图5 上位机前面板界面图

3 实验结果及分析

系统设计完成后,对典型二阶震荡环节进行实验,实验系统模拟电路连接如图6 所示。

数据采集

图6 二阶振荡环节模拟电路图

图6 所示模拟电路的拉氏运算电路如图7 所示。

数据采集

图7 二阶振荡环节拉氏运算电路

将图7 所示电路进行频域分析有:

数据采集

式1 中参数为R1 = R2 = R3 = R7 = R8 = 200K,R4 = 10K,R5 = R6 = 100K,C1 = 1uF,C2 = 10uF; 对上式进行拉氏变换可得出系统输出响应函数为:

数据采集

在MATLAB 中进行仿真,可以得到其阶跃响应曲线,如如图8 所示:

图8 二阶振荡环节阶跃作用下输出仿真波形

图9 为简易自动控制原理实验系统二阶振荡环节在单位阶跃作用下的输出波形,通过对比可知实验波形与图8 所示的仿真波形基本一致,说明实验系统能很好的实现自动控制原理实验功能,达到设计目的。

图9 二阶振荡环节在阶跃信号作用输出波形图

4 结束语

一种简易的自动控制原理实验平台由双单片机AT89S52、ATmega16、LM741 等硬件电路和下位机系统及由LabVIEW 开发的上位机软件构成。系统充分利用AT89S52 和ATmega16 单片机软硬件资源,方便快捷地实现信号产生和数据采集,PC 机通过LabVIEW 开发平台方便的进行数据采集、监控、分析、处理、存储和打印输出。该实验系统具有电路简单、使用灵活方便和扩展性强等特点,可以广泛地应用于高校自动控制原理实验室,方便学生开展实验,从而有效地降低实验成本和节约实验室资源。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分