DIY编程器网

标题: 基于AVR单片机的通用电机控制装置的设计 [打印本页]

作者: liyf    时间: 2012-1-27 17:26
标题: 基于AVR单片机的通用电机控制装置的设计
0 引言
    电机的驱动与控制是现代电子技术中一个重要的研究课题,不同种类的电动机需要有不同的控制和驱动方法。使用高性能单片机作为电机控制驱动装置的核心,可以有效降低电机驱动器的成本,扩展应用范围,提高使用灵活性。
    ATmegal6单片机是ATMEL公司的一款高性能8位AVR单片机,它内部带有功能强大的可编程定时和计数单元,通过编程可以很容易地产生各类交、直流电机以及步进电机的驱动波形,因此,利用这类功能强大的单片机作为电机控制器的核心,可以使控制器应用更加灵活、应用范围更广、维护成本更低。本文设计出的电机通用控制装置功能齐全,其液晶显示装置和按键可以控制并显示电机的运行状态,而数字化的温度传感器则能有效准确地监控电机的运行温度,RS485/232总线通信接口可以将多个控制器进行联网。从而实现电机的智能化远程控制。
1 电机控制及驱动电路设计
    图l所示是一种通用电机控制装置系统的总体结构图。其整个单片机系统以ATmegal6单片机为控制核心,其中从单片机和主单片机利用I2C总线进行通信。从单片机连接按键和液晶屏,可以实现人机接口的功能,这样即可以为主单片机节约宝贵的I/O资源,又可以提高系统的运行效率。另外,DSl8820采用单总线结构采集温度,可以实现对电机温度的监控。



1.1 ATmegal6主控电路
    ATmegal6单片机具有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和ATmegal6的初始化、中断屏蔽寄存器的设置、中断寄存器的清零、系统变量的初始化等,最后完成开中断。初始化完成之后,系统将调用驱动程序,并完成系统的起动。系统起动之后,即进入正常运行状态。系统的全部运行过程均可由键盘进行实时控制和调节。
2.2 初始化程序
    系统的初始化程序流程图如图9所示。该程序中包括LCD显示器、键盘等人机接口部分的初始化。主要功能是对具有复用功能引脚的选择和设置,以及各种中断功能的选择及设置(如外部键盘的中断选择等),同时包括AT89S5l的初始化、键盘的方式选择、工作时间的确定、显示方式的设定等。而系统变量的初始化包括温度的设定,转速初值的设定等。


2.3 控制程序
    系统起动后即进入控制程序。控制程序是系统程序的主要部分,主要用来保证系统在给定的转速下正常运行,该程序主要调节单片机PWM口的占空比,从而调节电机绕组两端的平均电压,达到调速的目的,其控制程序流程如图10所示。


3 结束语
    本设计实现了一种以ATmega16单片机为核心的电机控制装置。该装置具有各类电机驱动脉冲的输出、电机温度监测与保护、人机操作界面和长距离工业总线通信等功能。利用AVR单片机具备的软硬件特点,可实现对多种电机的驱动与控制,以用于电机驱动研究、网络化电机集中控制等领域。由于该控制器采用主从单片机设计,系统的运行得以很好地分工,其中从单片机实现低速人际交互,主单片机则实现高速的电机驱动与控制,主从单片机各司其职,故可使系统的运行效率达到最高。本电机控制装置的架构开放,使用灵活,可以很好地应用于直流电机的调速控制,交流电机的变频驱动,步进电机的步距细分等多种电机驱动和控制领域。                                





欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2