微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ATmega16单片机的通用电机控制装置的设计

基于ATmega16单片机的通用电机控制装置的设计

时间:11-05 来源:互联网 点击:
电机的驱动与控制是现代电子技术中一个重要的研究课题,不同种类的电动机需要有不同的控制和驱动方法。使用高性能单片机作为电机控制驱动装置的核心,可以有效降低电机驱动器的成本,扩展应用范围,提高使用灵活性。

ATmega16单片机是ATMEL公司的一款高性能8位AVR单片机,它内部带有功能强大的可编程定时和计数单元,通过编程可以很容易地产生各类交、直流电机以及步进电机的驱动波形,因此,利用这类功能强大的单片机作为电机控制器的核心,可以使控制器应用更加灵活、应用范围更广、维护成本更低。本文设计出的电机通用控制装置功能齐全,其液晶显示装置和按键可以控制并显示电机的运行状态,而数字化的温度传感器则能有效准确地监控电机的运行温度,RS485/232总线通信接口可以将多个控制器进行联网。从而实现电机的智能化远程控制。

1 电机控制及驱动电路设计

图1所示是一种通用电机控制装置系统的总体结构图。其整个单片机系统以ATmega16单片机为控制核心,其中从单片机和主单片机利用I2C总线进行通信。从单片机连接按键和液晶屏,可以实现人机接口的功能,这样即可以为主单片机节约宝贵的I/O资源,又可以提高系统的运行效率。另外,DSl8820采用单总线结构采集温度,可以实现对电机温度的监控。



1.1 ATmega16主控电路

ATmega16单片机具有3个PWM功能的定时器/计数器T/C0、T/Cl和T/C2,其中T/C0和T/C2是两个8位的定时器/计数器,而T/Cl是16位具有输入捕获功能的定时器/计数器。

本系统的主控单片机电路如图2所示。它以megal6单片机为核心,配有外围复位电路和振荡器电路,单片机所有I/0都可独立引出,以便与外部电路的连接和扩展。



1.2 电机温度监测电路

电机的表面温度是衡量电机是否在安全状态下工作的一个重要指标。本系统的电机温度监测电路利用美国DALLAS半导体公司推出的单总线数字化测温集成电路DSl8820来实现。该数字化传感器具有很宽的测温范围(-55℃~+125℃),工作时只需要三根引线,而且多只DSl8820可以并行连接,以实现对多个电动机的温度监控。

系统工作时,DSl8820可把测得的温度数据传给单片机。如果超过用户设定,系统还可执行电机保护和报警等程序。电机温度监测系统的结构如图3所示,图4所示是其温度监控电路。



1.3 键盘及LCD接口电路

本系统的按键和LCD接口控制电路以单片机AT89S51为核心,该电路使用I2C总线与主单片机进行通信。利用这种主从单片机分离的设计可将一些大量占用IO端口资源的低速设备进行集中管理,从而为主单片机节约硬件资源和程序开销,提高系统的使用灵活性和运行效率。其LCD显示和键盘处理电路如图5所示。



1.4 RS-232/485通信电路

为了适应电机控制的网络化、智能化需求,本电机控制器带有RS232/RS485数据接口。用户利用这两种总线接口可以方便地将多个电机控制器连接成网,以方便电机系统的集中化管理。RS485接口电路使用收发控制的“透明化”管理,MAX485芯片的收发切换由NE555组成的单稳态电路自动完成,当单片机需要向RS485总线传输数据时,NE555可自动将MAX485切换至发送状态,数据传送完毕后,MAX485又将恢复至接收状态。RS-232/485总线驱动电路如图6所示。



1.5 电机驱动电路

本控制器的驱动部分使用凌阳SPGT62C19B电机驱动芯片来实现对直流电机和步进电机的驱动。SPGT62C19B是低电压单片式步进电机驱动器集成电路芯片,其输出电压可达40 V,输出电流可达750mA。设计时,可由输入的逻辑电平来决定输出脉冲的宽度及频率。由该芯片组成的电机驱动系统将脉冲发生器、脉冲分配器、脉冲放大器合为一体,故可省去很多外围器件。与其它部件一样,主控电路也被设计成为一个独立的模块.以方便更换,而且该模块还可用于别的场合。其电机驱动电路图如图7所示。

1.6 转速测量电路

转速测量可采用一组鼠标上用的红外对管来实现,其电路原理如图8所示。当红外发射管与红外接收管之间被直流电机光栅转盘的不透明部分遮挡时,红外接收管处于截止状态,此时图中的SPEED输出高电平。反之,当光栅转盘的通光槽转至红外对管之间时,红外接收管处于导通状态,此时SPEED输出低电平。这样,将SPEED连接到单片机的I/O口,即可通过定时计数的方法计算出电机的转动速度。



2 单片机程序设计

2.1 主程序

本驱动器的程序设计使用模块化编程思想,其主程序用于完成对各子程序的调用。系统工作后,首先调用初始化子程序,以完成具有复用功能的I/0脚的选择和设置、各种中断功能的选择及其设置、AT89S51和ATmega16的初始化、中断屏蔽寄存器的设置、中断寄存器的清零、系统变量的初始化等,最后完成开中断。初始化完成之后,系统将调用驱动程序,并完成系统的起动。系统起动之后,即进入正常运行状态。系统的全部运行过程均可由键盘进行实时控制和调节。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top