background image

 

速至 t1 

 

时刻达到最高运行频率 f

 

,然后匀速运行,至 t2 

 

时刻开始减速,在 t5 时刻电机停

 

转,总的步数为 N。其中电机从静止加速至最高运行频率和从最高运行频率至停止至是步
进电机控制的关键,通常采用匀加速和匀减速方式。

采用单片机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,可

采用软件和硬件两种方法。软件方法依靠延时程序来改变脉冲输出的频率,其中延时的长
短是动态的,该方法因为要不停地产生控制脉冲,占用了大量的 CPU 时间;硬件方法是依
靠单片机内部的定时器来实现的,在每次进入定时中断后,改变定时常数(定时器装载
值),从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小。这种方法占用 CPU
时间较少,是一种效率比较高的步进电机调速方法。考虑到单片机资源(字长)和编程的
方便,不需要每步都计算定时器装载值。采用离散方法将加减速曲线离散化。离散化后速
度是分台阶上升的,而且每上升一个台阶都要在该台阶保持一段时间,以克服由于步进
电机转子转动惯量所引起的速度滞后。只有当实际运行速度达到预设值后才能急速加速,

 

实际上也是局部速度误差的自动纠正。

    4 

 

系统软硬件协同设计

    对于 51 系列单片机的软件开发,传统的方法是在 PC 机上采用 Keil 等开发工具进行程
序设计、编译、调试,待程序调试通过之后生成目标文件下载至单片机硬件电路再进行硬
件调试[3>。这种方法只有硬件电路完成之后才能进行系统功能测试,若此时发现硬件电
路存在设计问题且必须进行修改时就会显著影响系统开发的成本和周期。为此,本文采用
了系统软硬件协同仿真的开发方法,使得硬件电路实现前的功能测试成为可能。同时硬件
电路的软件化仿真为硬件电路的设计与实现提供了有力的保障。其中在 Keil uVision2 集成
开发环境下,实现步进电机控制系统的程序设计、编译、调试,并最终生成目标文件  
*.hex,而由英国 Proteus Labcenter electronics 公司所提供的 EDA 工具 Proteus 则利用该目

 

标文件 *.hex 实现对步进电机控制系统硬件电路功能的测试。

    单片机 AT89C55 司职步进电机控制器,通过运行在 Keil uVision2 环境下所开发的程序
来控制两个步进电机驱动芯片 L298,从而实现对 AXIS_X / AXIS_Y 两轴步进电机的联动
控制。L298 驱动芯片的步进脉冲输入信号来自 AT89C55 P0 端口,使能信号 ENABLE A 与
ENABLE B 并联接到 AT89C55 的 P3.0、P3.1 口,由程序控制实现步进电机的使能,从而避
免电机线圈处于短路状态而烧坏驱动芯片。4 x 4 键盘阵列接 AT89C55 的 P1 端口,通过程
序设计定义每个按键的具体功能。LCD 的数据端口 DB0~DB7 接 AT89C55 的 P2 端口,控
制端口 RS, RW, E 分别接单片机的 P3.5, P3.6, P3.7 口。相关的参数值、X/Y 轴坐标值可以通
过 LCD 以文本方式显示。本文采用软硬件协同仿真的方法经过设计 à 测试 à 修正 à 再测试
一次次迭代开发,在制作控制系统硬件电路之前即可实现对系统整机功能的测试。待系统
程序和硬件电路设计方案最终完善之后便可以实际制作如图 5 所示的硬件电路。显然该种
方法可以显著提高系统软硬件开发的成功率,从而有效降低系统的开发周期和开发成本。 

    5 

 

应用实例

    进行硬件电路仿真的最终结果所制作的步进电机控制系统电路驱动 X/Y 轴步进电机通
过滚珠丝杆带动二维工作台作联动,并由一只铅笔模拟加工刀具将所要加工的二维轨迹