步进电机在打印机驱动器的应用
步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机http://bbsic.big-bit.com/的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
步进电机控制
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(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)。
![](../img/eep/emb/emb-67763xdpxt1oxyg1.jpg)
图1二相四根线电机与驱动器连接
具体硬件如图2,CLK为外部脉冲输入端,DIR为外部方向输入端,步进脉冲信号CLK用于控制步进电机的位置和速度,本驱动器的设计为CLK信号为上升沿有效,要求CLK信号的驱动电流为8-15mA,对CLK的脉冲宽度也有一定的要求,一般不小于5mS。方向电平信号DIR用于控制步进电机的旋转方向。此端为高电平时,电机逆时针方向转,此端为低电平时,电机为顺时针方向转。CLK和DIR信号默认幅值为5V,如果不是5V则须外部另加限流电阻R,如信号幅度为12V时,加680W的电阻。MS0,MS1,MS2为细分输入端,最多为8细分(见表1)。
![](../img/eep/emb/emb-677643m1pdyrbqdc.jpg)
图2具体硬件电路图
软件设计
为了防止程序进入到非程序区,在非程序区设置拦截措施,使程序进入陷阱,然后强迫程序回到初始状态,从而保护程序的正常运行。程序设计首先判断细分数,其次判断方向信号DIR,最后判断脉冲信号CLK,当没有脉冲信号时,程序进入休眠状态,随时准备接收中断来的信号,进入程序区,根据判断的细分数和方向信号进行电机的驱动。代码如下:
MAINCLRFPORTA
BSFSTATUS,5
MOVLW0x07;整步
MOVWFADCON1
MOVLW0X06;半步
MOVWFOPTIONREG
MOVLW0x04;四细分
MOVWFTRISA
CLRFPORTB
BSFSTATUS,5
MOVLW0X00;八细分
MOVWFTRISB
BCFSTATUS,5
MOVWFTMR0
TESTBTFSSPORTA,0
GOTOCW;正转
BTFSCPORTA,0
GOTOCCW;反转
INTMOVLW0XFF;中断接收脉冲
MOVWFTMR0
BCFINTCON,2
RETFIE
结
步进电机打印机驱动 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)