步进电机是一种将电脉冲信号转换成直线位移或角位移的控制微电机,其机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例.通过改变电脉冲频率,可在大范围内进行调速.同时,该电 机还能快速起动、制动、反转和自锁.此外,步进电机易于实现与计算机或其他数字元件接口,适用于数字控制系统.步进电机只需采用最简单的开环控制就可取得 非常高的控制精度,且这种系统不需要反馈信号,系统硬件实施比较简单。
本文介绍的步进电机驱动控制电路,采用低价的at89c52, 可直接对步进电机进行控制,省去了昂贵的专用步进电机控制器,简化了硬件线路,降低了成本,提高了系统的可靠性。
系统的组成
系统的控制过程
在本系统中,主要控制三相步进电机带动丝杠的传动,从而使得液氮液面按照要求变化。三相步进电机的定子上 有6个极,转子是4个均匀分布的齿,电机的转动是根据控制饶组与电源接通或开断的变化频率呈步进状态,其转向取决于通电相序.在本系统中,主要采用三相电 机三相单双六拍:a-ab-b-bc-c-ca-a-……首先a相通电,而后再接通b相绕组(这时a相不断开)即ab两绕组同时通电;此后断开a相绕组,b相单独通电,依此规律循环往复.这种方式需经过6个切换才能完成一个循环.单相三拍方式的每一拍步进角为3°,三相六拍的步进角则为1.5°,因 此,在三相六拍下,步进电机的运行反转平稳柔和,但在同样的运行角度与速度下,三相六拍驱动脉冲的频率需提高1倍,对驱动开关管的开关特性要求较高。系统 的总体设计框图如图1所示:

图1 系统的整体流程图
当步进电机驱 动系统工作时,控制器首先检测接收传感器信号,进行换算成需要的检测量,并将之与设定值进行比较,得出其差值 ,并根据程序的设定转化为步进电机的步进脉冲。从而通过单片机控制的驱动器来驱动步进电机,从而带动丝杠传动系统,进而控制液氮液面升降系统的运动,完成一个循环控制过程。
控制系统的硬件组成
步进电机的驱动电路如图2所示,采用单片机at89c52来驱动,at89c52具有8k字节 flash闪速存储器,256字节内部ram,32个i/o口线,3个16位定时/计数器,1个六向量两极中断结构,一个全双工串行通信接口,同时片内还有振荡器及时钟电路。可以很方便地使用不同相数的步进电机按一种可执行的通电方式来控制,在这个系统中,单片机的主要作用是接收键盘设定值,显示设定初值 以及检测的当前值,同时还具有串行通信功能。检测传感器信号,接收传感器信号,并进行处理,计算出步进电机需要的步进量,通过p1.0,p1.1,和 p1.2提供控制步进电机的时序脉冲,控制步进电机的运行,系统采用软件来完成脉冲分配,这样可根据应用系统的需要,方便灵活地改变步进电机的控制方式,步进一步的时间可由两个控制字的送出时间间隔决定。

图2 步进电机驱动电路组成
系统的软件设计
步进电机的驱动系统软件主要由主控程序、脉冲分配驱动程序、键处理程序、显示数据处理程序及显示驱动程序、串口通信监控程序等部分 组成。系统的主程序流程图如图3所示,步进电机驱动中断子程序流程图如图4所示。

图3 系统的主程序流程图

图4 驱动子程序流程图
由驱动系统的 硬件控制图可以看出,单片机只是根据需要轮流给p1.0,p1.1,p1.2端口发送步进脉冲来控制电机运行,则三相六拍的系统控制模型如附表所示;在程 序中,只要将依次将6个控制字送到p1口,步进电机就会转动一个齿距角。每送一个控制字,就完成一拍,步进电机就转过一个步距角。
附表 三相六拍控制模型

设定有如下工作单元和工作位定义:r0为步进数寄存器;psw中,f0为方向标志位, f0=0时正转, 否则反转。步进时间由两个控制字的送出时间间隔决定。
步进电机的中断子程序:
start: push acc
push psw
push r0
jb f0, loop2 ;判正反转
loop1: mov a, #01h ;第1拍控制码
mov p1, a ;执行第1拍
lcall delay ;步进时间间隔
djnz r0, done ;判断是否步进量完成
mov a,#03h ;第2拍控制码
mov p1,a ;执行第2拍
lcall delay
djnz r0, done
mov a,#02h ;第3拍控制码
mov p1,a ;执行第2拍
lcally dellay
djnz r0, done
mov a,#06h ;第4拍控制码
mov p1,a ;执行第2拍
lcally dellay
djnz r0,done
mov a,#04h ;第5拍控制码
mov p1,a ;执行第2拍
lcally dellay
djnz r0, done
mov a,#05h ;第6拍控制码
mov p1,a ;执行第2拍
lcally dellay
djnz r0, done
ajmp loop1 ;循环
loop2: mov a,#05h ;反转
mov p1, a
lcall delay
djnz r0, done
mov a, #04h
mov p1, a
lcall delay
djnz r0, done
mov a, #06h
mov p1, a
lcall delay
djnz r0, done
mov a, #02h
mov p1, a
lcally dellay
djnz r0, done
mov a, #03h
mov p1, a
lcally dellay
djnz r0, done
mov a, #01h
mov p1, a
lcally dellay
djnz r0, done
ajmp loop2
done: ret ;返回
系统的抗干扰设计
此系统用于现场的测量,为了有效防止和消除可能的微机系统干扰,在硬件上采用了以下几种抗干扰措施:
l 系统的所有接口连线均采用光电耦合器与外界连接;
l 在at89c52单片机系统的电路板上,电源输入端加去耦电容器,以消除沿电源进入的干扰信号;
l 不采用金属外壳,防止外壳对系统产生干扰;
l 采用“一点接地”的原则;同时在结构布置上使引线尽量短;
l 使用屏蔽线减轻外界对自己的干扰,或自己对外界的干扰;
结语
本文 阐述的是用计算机软件编程来产生脉冲分配信号,即把数字控制计数的高精度,抗干扰等方面的优势有效地应用于步进电机控制系统。同时本系统设计的步进电机控制器硬件电路十分简单,成本低,使用方便,运行稳定,在现场长时间运行后,未发现有不稳定现象。




