【摘 要】:介绍由美国TI公司的数字信号处理器TMS320LF2407A和SGS公司的步进电机驱动芯片PBL3717A构成的两相混合式步进电机的控制系统。
【关键词】:PBL3717A DSP 步进电机 控制系统
引言
步进电机是数字控制系统中的一种重要执行元件,广泛应用于各种控制系统中。它是一种将电脉冲信号转换为位移或转速的控制电机,输入一个脉冲信号,电机就转动一个角度或前进一步。其机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例,可以通过改变脉冲频率在大范围内调速,易于与计算机或其它数字元件接口,适用于数字控制系统。随着超大规模集成电路技术的迅速发展,DSP(Digital Signal Processor数字信号处理器)的性能价格比得到很大提高,使得DSP在电机控制领域的应用愈来愈广泛。本文介绍由美国TI公司的数字信号处理器TMS320LF2407和SGS公司的步进电机驱动芯片PBL3717A构成的两相混合式步进电机的控制系统。
1 DSP性能简介
美国TI公司的TMS320LF2407A是专为马达控制而设计的一款DSP。它采用高性能静态CMOS技术,使得供电电压降为3.3V,减少了控制器的功耗;40MIPS的执行速度使指令周期缩短到25ns(40MHz),从而提高了控制器的实时控制能力。两个事件管理器模块EVA和EVB,每个包括:2个16位通用定时器;CAN总线接口模块;16位的串行外设(SPI)接口模块;基于锁相环的时钟发生器;内置正交编码脉冲(QEP)电路;3个捕获单元;16通道A/D转换器;8个16位的脉宽调制(PWM)通道。它们能够实现:三相反相器控制;PWM的对称和非对称波形;当外部引脚PDPINTx出现低电平时,快速关闭PWM通道;可编程的PWM死区控制以防止上下桥臂同时输出触发脉冲;事件管理器模块适用于控制交流感应电机、无刷直流电机、开关磁阻电阻、步进电阻、多级电机和逆变器。
2 PBL3717A原理与步距控制方法
2.1 PBL3717A的原理简介
PBL3717A是SGS公司设计生产的步进电动机单相绕组的驱动电路,内部采用的是H-桥脉宽调制电路。利用外部逻辑电路构成的逻辑分配器或微处理器分配信号,由若干片这种电路和少量无源元件可组成一个完整的多相步进电动机驱动程序,可实现整步(基本步距)、半步或微步距控制。控制方式是双极性、固定OFF(关断)时间的斩波电流控制。下面简要介绍一下PBL3717A的各引脚功能。如图1所示,它采用16脚双列直插塑料封装。1脚(OUTPUT B)和15脚(OUTPUT A)为输出端,分别接一相绕组线圈的两端;2脚(PULSE TIME)外接RC定时元件;3、14脚(Vs)是绕组线圈供电电源,可在10~46V的范围内选择;4、5、12、13脚(GND)接地端,可接至热片;6脚(Vss)是IC供电电源接+5V;7、9脚(INPUT 1,INPUT 0)用于选择绕组线圈电流;8脚(Phase)为相位输入端,用于控制转动方向;16脚(Sense Resistor)外部绕组电流采样电阻,采样信号通过RC低通滤波器送至10脚(Comparator Input),与内部电压比较器的基准电压进行比较;11脚(Reference)外接参考电压,改变Reference可实现微步距控制,例如用1片单片机和2片DAC0808 8bit D/A转换电路即可实现256细分控制。在整步、半步、1/4步工作方式下,REFERENCE接固定的+5V,本文仅讨论这种情况。
2.2 PBL3717A的步距控制方法
本文所设计的是两修配混合式步进电机的控制系统,具体驱动电路如图所示。其中,PHASE、INPUT 1、INPUT 0(图中简写为PH、I1、I0)为输入端,OUTPUT A、OUTPUT B(图中以MA、MB表示)为输出端。因为本文不考虑细分的情况,所以可以把图中的DAC(11引脚)直接接+5V电源。
PHASE的作用是控制步进电动机定子绕组中电流的方向。当PHASE=0时,电流从MB流向MA;当PHASE=1时,电流从MA流向MB。PBL3717A对步距的控制是通过选择I1、I0的不同组合,从而控制绕组电流,达到步距控制的目的。电流的具体数值由VR、RS决定。计算公式如下:Im=(Vr*0.083)/Rs[A],100%级别;
Im=(Vr*0.050)/Rs[A],60%级别;
Im=(VR*0.016)/Rs[A],20%级别。
PBL3717A能实现三种运行方式。在以下讨论中,以A、B表示二相绕组正向电流工作,以A、B表示二相绕组反向电流工作。
(1)基本步距(整步)工作方式
可用二相激励四拍方式,即AB→AB→AB→AB实现,也可用单相激励四拍方式,即A→B→A→B实现。
(2)半步距工作方式
半步距方式采用二相,单相交替激励的二相八拍方式,即AB→B→AB→A→AB→B→AB→A,这种工作方式是两相激励和单相激励交替出现,每一找不到的转距不相等。在二相激励时的转距是单相的1.4倍,这是因为二相激励时的转距是单相激励时转距的矢量合成。如果两相激励时,采用I1I0=01方式,使电流降到60%,由于磁路原先有饱和效应,此时每相转距可能增大到70%左右,两相合成的转距接近于1。这样电机就可以近似实现恒转距运行。
(3)1/4步距工作方式
为了实现1/4步距工作方式,要在整步与半步间插入一个1/4步的状态。例如上方的1/4步状态,A相绕组取100%电流,B相绕组取20%电流。在第一象限由半步A状态到半步B状态要经过4步,即A→A0.2B→AB→0.2AB→B。知道第一象限的矢量图不难推出其它三个象限的矢量图,一个循环需6步完成,即AB→0.2AB→B→0.2AB→AB→A0.2B→A→A0.2B→AB→0.2AB→B→0.2AB→AB→A0.2B→A→A0.2B,其中0.2A、0.2B分别表示A相、B相绕组取20%电流。
3 硬件部分
因为DSP采用3.3V供电,而PBL3717A的工作电压是+5V,所以要考虑3.3V和5V的电平转换问题。如图4所示,为5V CMOS,5V TTL和3.3V TTL电平的转换标准。其中,VOH表示输出高电平的最低电平,VIH表示输入高电平的最低电平,VIL表示输入低电平的最高电压,VOL输出低电平的最高电压。从图中可以看出5V CMOS和3.3V TTL的电平转换标准不同,因此,3.3V器件(LVC)引脚不能直接与5V CMOS器件引脚相连接。在这种情况下,可以采用双电压(一边是3.3V供电,另一边是5V供电)供电的驱动器,如TI公司的SN74ALVC164245,SN74LV4245等。而5V TTL和3.3V TTL的电平转换标准相同,所以它们可以直接相连。因为PBL3717A是TTL兼容电路,所以可以直接将DSP的I/O口和PBL3717的相应引脚相连。在这里,我们选DSP的端口B中的IOPB0,IOPB1,IOPB2,IOPB3,IOPB4,IOPB4分别与PBL3717A的I1B,I0B,I1A,I0A,PhaseA,PhaseB相连接。
4 软件部分
本文以步进电机工作在1/4步为例设计DSP控制软件。DSP控制软件采用C语言编写。从第一拍到第十六拍的控制字分别为:0x0000、0x0004、0x000c、0x0014、0x0010、0x0011、0x0013、0x0031、0x0030、0x0034、0x003C、0x0024、0x0020、0x0021、0x0023、0x0001。将以上数值存放到数组Run_Table[]中,可通过循环程序调用数组中的相应值赋给端口B的数据和方向控制寄存器PBDATDIR,从而通过DSP的端口B来驱动控制PBL3717A的相应引脚来实现步进电机旋转运行。通过修改run_delay(int count)延时子程序的count的值可改变电机的运转速度。下面给出了两相步进电机1/4步方式下正转的控制程序清单。
/*Filename:Step.c*/
/*IOPB0=I1B,IOPB1=I0B,IOPB2=I1A,IOPB3=10A,IOPB4=PhaseA,IOPB5=PhaseB*/
#include "f2407_c.h"
static int Run_Table[]={0x0000,0x0004,
0x000C,0x0014,0x0010,0x0011,0x0013,0x0031,0x0030,0x0034,0x003C,0x0024,0x0020,
0x0021,0x0023,0x0001};
void main()
{int i;
InitCPU();
while(1)
{
for(i=0;i<=15;i++)
{
*PBDATDIR=Run_Table[i]|0xff00;
run_delay(10);
}
}
}
结语
综上所述,利用DSP或者其它微处理器,选用两片或者更多片PBL3717A和少量的无源元件就可组成一个完事稳定的多相步进电机的驱动系统,可实现整步、半步或微步距控制。这样种方法成本低、容易实现、性能稳定,是步进电机驱动系统的一种较好选择。