查看完整版本: 基于PIC16C621A和A3955的步进电机驱动器设计

liyf 发表于 2012-1-27 19:44:47

基于PIC16C621A和A3955的步进电机驱动器设计


         
    摘要: 本文介绍了利用A3955对步进电机实现控制的方法及其电路设计。
关键词: 步进电机;PIC16C621A; A3955;脉宽调制
引言
步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
步进电机控制
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本控制如下:
*控制换相顺序—通电换相这一过程称为脉冲分配。例如:混合式步进电机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断,这就是所谓脉冲环形分配器。
*控制步进电机的转向—如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
*控制步进电机的速度—如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。
PIC16C621A和A3955
PIC16C621A是美国Microchip公司推出的一种性价比很高的8位单片机。它价格低、封装小、采用CMOS工艺,具有OTP型,开发起来很方便。它内含4路8位高速ADC,将它扩展到11位后,可以大大提高单片机应用系统的性价比。主要特性为:高性能的RISC结构CPU,精简的指定集。指令周期时间为200nS。八级硬件堆栈,直接,间接,相对三种寻址方式。双向可编程设置I/O,2路比较输出/PWM输出,16位定时器/计数器,内置上电复位电路,程序保密位,可防程序代码的非法拷贝。A3955是美国Allegro公司推出的一款性价比很高的脉宽调制电流输出的电机驱动芯片。主要特性为:最大1.5A的最大驱动电流,最高50V的供电电压,带有过热自动关断保护电路,欠电压锁定(UVLO)保护,输出抗浪涌的瞬间保护功能,自带PWM 电流控制,3位的线性DAC,带细分控制,不同组合不同的细分数,最多8细分。
硬件设计
通常步进电机的脉冲控制是由逻辑电路或专用芯片实现的脉冲环形分配的,因A3955不自带环形分配功能,本设计采用两片A3955驱动步进电机的两个线圈,来实现脉冲环形分配的实现。
本设计采用脉冲加方向的步进电机控制方式,应用于驱动二相或四相混合式步进电机。电机的出线方式不同,与驱动器的连接也不同,一般有以下几种方式:
*对于二相四根线电机,可以直接和驱动器相连(见图1);
*对于四相六根线电机,中间抽头的二根线悬空不接,其它四根线和驱动器相连(见图1)。

http://www.icembed.com/UploadFiles/200887165515734.jpg
具体硬件如图2,CLK 为外部脉冲输入端,DIR为外部方向输入端,步进脉冲信号CLK用于控制步进电机的位置和速度,本驱动器的设计为CLK信号为上升沿有效,要求CLK信号的驱动电流为8-15mA,对CLK的脉冲宽度也有一定的要求,一般不小于5mS。方向电平信号DIR用于控制步进电机的旋转方向。此端为高电平时,电机逆时针方向转,此端为低电平时,电机为顺时针方向转。CLK和DIR信号默认幅值为5V,如果不是5V则须外部另加限流电阻R,如信号幅度为12V时,加680W的电阻。MS0,MS1,MS2 为细分输入端,最多为8细分(见表1)。

http://www.icembed.com/UploadFiles/200887165515580.jpg
软件设计
为了防止程序进入到非程序区,在非程序区设置拦截措施,使程序进入陷阱,然后强迫程序回到初始状态,从而保护程序的正常运行。程序设计首先判断细分数,其次判断方向信号DIR,最后判断脉冲信号CLK,当没有脉冲信号时,程序进入休眠状态,随时准备接收中断来的信号,进入程序区,根据判断的细分数和方向信号进行电机的驱动。代码如下:
MAIN      CLRF   PORTA
            BSF      STATUS,5
            MOVLW    0x07               ;整步
            MOVWF    ADCON1
            MOVLW    0X06               ;半步
            MOVWF    OPTIONREG
            MOVLW    0x04               ;四细分
            MOVWF    TRISA
            CLRF   PORTB
            BSF      STATUS,5
            MOVLW    0X00               ;八细分
            MOVWF    TRISB
            BCF      STATUS,5
            MOVWF    TMR0
TEST      BTFSS    PORTA,0
            GOTO   CW          ;正转
            BTFSC    PORTA,0
            GOTO   CCW      ;反转
INT         MOVLW    0XFF   ;中断接收脉冲
            MOVWF    TMR0
            BCF      INTCON,2
            RETFIE
结语
采用此设计的八细分步进电机驱动器,在驱动二相或四相混合式步进电机时运动平稳,速度快,噪音低,控制精高,而且专用芯片细分数可选。在外观采用铝镁合金,散热性好,价格低廉,可广泛应用于需要驱动电流小于1.5A的混合式两相或四相步进电机的系统中。
参考文献:
1.PIC16CXX Datasheet,美国Microchip公司
2.A3955 Datasheet,美国Allegro公司
3.哈尔滨科利达智能控制公司的KLD-4H042NA使用说明书
4.王有诸、李拉成,PIC系列单片机接口技术及应用系统设计,北京航空航天大学出版社,2000年


robter 发表于 2015-11-2 22:35:09

这个很好,感谢楼主

wjl882008 发表于 2016-1-6 11:32:29

不错,收藏了

huf022 发表于 2020-9-16 14:04:17

谢谢楼主分享!!!!!!
页: [1]
查看完整版本: 基于PIC16C621A和A3955的步进电机驱动器设计