1、步进电机控制设计摘要步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”) ,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。结合对步进电机的了解,然后对步进电机的控制原理包括步进电机的控制方式和驱动方式作了系统的说明,采用 8051 单片机来控制步进电机,并给出了步进电机的双相三拍控制单片机控制和三相六拍的单片机控制的具体实现方法,用汇编程序进行控制运行。控制系统通过单片机存储器、I
2、/O 接口、中断、键盘、LED 显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。电机的控制系统由 AT80C51 单片机控制,具有抗干扰能力强,可靠性高而且系统扩展容易等优势。本次课程设计中着重于通过控制脉冲数来控制位移,实现准确定位。基于步进电机本身的优越性和应用的广泛性,这正是用单片机控制步进电机课程设计的实际意义。关键字:步进电机 ,角位移,单片机 ,脉冲目 录1 课题描述 .12 总体实现原理 .13 步进电机原理及硬件设计 .23.1 单片机电路 .23.1.1 AT89C51 单片
3、机的组成结构 .23.1.2 AT89C51 单片机的引脚及功能 .43.2 步进电机 .63.2.1 步进电机的工作原理 .63.2.2 控制原理 .73.2.3 步进电机的驱动方式 .83.2.4 最小系统 .93.3 输入显示部分 .103.4 电源 .114 软件程序设计 .114.1 主程序的设计 .124.2 定时中断设计 .134.3 外部中断设计 .134.4 系统软件程序 .14总结 .19致谢 .20参考文献 .21第 0 页1 课题描述传统的步进电机控制方法是由触发器产生控制脉冲来进行的,此种方法工作方式单一且难于实现人机交互,当步进电机的参数发生变化是,需要重新进行控制
4、器的设计。而且由传统的触发器构成的控制系统具有控制电路复杂、控制精度低、生产成本高等缺点。由单片机控制的步进电机克服了以上缺点。它具有很高的精度,一般用在精确定位方面。步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速起动和停止的特点。其驱动速度和指令脉冲能严格同步,具有较高的重复定位精度,并能实现正反转和平滑速度调节。它的运行速度和步距不受电源电压的波动及负载的影响,因而被广泛应用于数模转换、速度控制和位置控制系统。步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。常见的步进电机分三种:永磁式(PM)、反应式(VR) 、混合式(HB) ,永磁式步进一般分为两相
5、,转矩和体积较小,步进角一般为 7.5 度或 15 度;反应式步进一般为三相,可实现大转矩输出,步进角一般为 1.5 度,但噪声和振动都很大。在欧美等发达国家早已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为 1.8 度而五相步进角一般为 0.72 度,这种步进机应用最为广泛。目前使用单片机控制,单片机为微控制器的下位机和以计算机为上位机的步进电机控制系统,用软件代替步进控制器,使得线路简单,成本低,可靠性大大增加,灵活改变步进电机的控制方案,无需逻辑电路组成时序发生器,软件编程可灵活产生步进电机励磁序列来控制步进电机的运行方式。用此方式设计步进电机控制
6、系统顺应了目前国内外控制系统微机化发展的趋势,充分利用了单片机的优点,使得通用性得到了提高。伴随不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。第 1 页2 总体实现原理步进电机的系统总体框图如图 1,在系统中采用 AT89C51 单片机产生A、B、 C、D 四相信号(更具实际需要,可以扩充更多相信好)。当采用单片机控制时,需要在单片机和步进电机之间设置隔离电路以使强弱分开。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。系统电路由 5 部分组成,即:输入显示部分;AT89C51 单片机;直流电压和步进电机。键盘输入模块A T 8 9
7、 C 5 1 单片机步进电机直流电源显示部分图 1 系统总体框图 3 步进电机原理及硬件设计3.1 单片机电路本系统采用 A89C51 单片机产生控制信号单片机内部的内存即可满足要求。如需要扩展较多的外部 RAM 和 ROM 可加上数据缓冲器。步进电机控制信号通过 AT89C51 单片机其中一个口进行扩充。为了增加步进电机工作的灵活性,在启动步进电机工作之后,当有键按下,设置产生外部中断,达到灵活控制电机的目的。下面介绍一下 AT89C51 单片机。3.1.1 AT89C51 单片机的组成结构AT89C51 单片机内部硬件结构框图如图 2 所示。它由一个 8 位中央处理器(CPU )、一个 2
8、56B 片内 RAM 及 4KBFlashROM、21 个特殊功能寄存器、4第 2 页个 8 为并行 I/O 口以及中断系统等部分组成,各功能部件通过片内单一总线连成一个整体,集成在一块芯片上。(1) CPUCPU 是单片机的核心部分,CPU 包括两个基本部分:运算器和控制器。运算器运算器即算术逻辑单元 ALU,是进行算术或逻辑运算的部件。可实现算术运算和逻辑运算。操作的结果一般送回累加器 ACC,而其状态信息送至程序状态寄存器 PSW。控制器控制器是用来控制计算机工作的部件。控制器接收来自存储器的指令,使各部件协调工作,完成指令所规定的操作。时序和振荡电路C P U并行 I / O 口程序存
9、储器R O M2 个 1 6 位定时 /计数器串行 I / O 口数据存储器R A M中断系统时钟源外部事件外部中断P 0 P 1 P 2 P 3R X D T X D内部 8 位数据总线内部中断图 2 AT89C51 单片机内部结构示意图(2)内部存储器内部数据存储器AT89C51 芯片内共有 256B(地址为 00H-FFH)的数据存储器,其中高128B(地址为:80H-FFH)被专用寄存器占用,能作为寄存器供用户使用的只是低 128B(地址为:00H-7FH),用于存放可读写的数据,如程序执行过程中的变量。第 3 页内部程序存储器AT89C51 共有(地址为:0000H-0FFFH)的
10、flash 程序存储器,用于存放程序、原始数据或表格常数。(3)定时/计数器AT89C51 共有两个 16 位的定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可设置成定时方式,并可以根据计数或定时的结果实现对单片机运行的控制。(4)并行 I/O 口用于进行单片机内外的传输,4 个 8 位的 I/O 口(P0、P1 、P2、P3 )。每个 8 位的口,既可用作输入口,也可用作输出口,每个口即可以 8 位同步读写,又可对每一位进行单独的操作。标准 I/O 口的主要功能相当于一个 8 位锁存器,能存储一个字节的二进制数据,以保持与之相连接的 8 条口线各自电位的高低状态。3.1.2 A
11、T89C51 单片机的引脚及功能AT89C51 共有 40 个引脚,下面介绍一下它们的主要功能。(1)P0 口P0 口某一位的结构图如图 3 所示,一个输出锁存器、两个三态缓冲器、一12DC PQQ-T 1T 2读锁存器内部总线写锁存器锁存器地址 / 数据控制信号 CV C CP 0 . X 引脚读引脚M U X&1图 3 P0 口的结构示意图个转换开关 MUX、一个输出驱动电路(T1 和 T2)和一个与门及一个非门组成。(2)P1,P2,P3 口P1 口是唯一的单功能口,位结构图如图 4 所示,仅能作为通用 I/O 口使用,P1 口是 8 位准双向口,作通用输入输出口使用, Pl 口有别于
12、P0 口,第 4 页它接有内部上拉电阻。P1 口的每以一位可以独立地定义为输人或者输出,因此,P1 口既可作为 8 位并行输入输出口,又可作为 8 位输入输出端。CPU 既可以对 P1 口进行字节操作,又可以进行位操作。当作输入方式时,该位的锁存器必须顶写 1。P2 口是 8 位准双向输入输出接口,当外接程序存储据时,P2 口给出地址的高 8 位,此时不能用作通用,IO 口。当外按数据存储器时,若 RAM 小于 256KB,用 R0、R1 作间址寄存器,只需要 P0 口送出地址低 8 位,P2 口可以用12DC PQQ-读锁存器内部总线写锁存器锁存器V C CP 1 . X 引脚读引脚T图 4
13、 P1 口的位结构图作通用 IO ;若 RAM 大于 256KB,必须用 16 位寄存器 DPTR 作间址寄存器则 P2 口只能在一定限度内作一股 IO 口使用。 P3 口是多功能口,同 P0 口一样,当做输入口时,必须先向锁存器写 “1”,使场效应管 T 截止。(3)主电源引脚 GND 和 VccGND(20):接地; Vcc(40):正常操作时接十 5V 电源(4)外接晶体引脚 XTAL1 和 XTAL2当外接晶体振荡器时,XTAL1 和 XTAL2 分别接在外接晶体两端,当采用外部时钟方式时,XTAL1 接地,XTAL2 接外来振荡信号。(5)控制引脚 RST/Vpp(9):当振荡器正常
14、运行时,在此引脚上出现二个机器周期以上的高电平使单片机复位。Vcc 掉电期间,此引脚可接备用电源,以保持内部 RAM的数据。当 Vcc 下降掉到低于规定的水平,而 VPD 在其规定的电压范围内,VPD 就向内部 RAM 提供备用电源。第 5 页ALE(30):当访问外部存储器时,由单片机的 P2 口送出地址的高 8 位,P0口送出地址的低 8 位,数据也是通过 P0 口传送。作为 P0 口某时选出的信息到底是低 8 位地址还是传送的数据,需要有一信号同步地进行分别。当 ALE 信号(允许地址锁存) 为高电平( 有效) P0 口送出低 8 位地址,通过 ALE 信号锁存低8 位地址。 PSEN(
15、29):程序存储器读选通信号,低电平有效。EAVpp(31):当 EA 保持高电平时,访问内部程序存储器(4K8) ,但当PC(程序计数器 )值超过 OFFFH 时,将自动转向执行外部程序存储器内的程序当EA 保持低电平时,则只访问外部程序存储器(从 0000H 地址开始),不管单片机内部是否有程序存储器。3.2 步进电机3.2.1 步进电机的工作原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。它将脉冲信号转变成角位移,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。步进电机的驱动电路根据
16、控制信号工作,控制信号由单片机产生。 设计中采用了 20BY-0 型步进电机,该电机为四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐。其中步进电机的静态指标及术语如下。(1) 相数:产生不同队 N、S 磁场的激磁线圈对数,常用 m 表示。 (2)拍数:完成一个磁场周期性变化所需脉冲用 n 表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四
17、相四拍运行方式即ABBC CDDAAB, 四相八拍运行方式即 AAB B BCCCD DDAA。第 6 页(3)步距角:对应一个脉冲信号,电机转子转过的角位移用 表示。(4)定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿的谐波以及机械误差造成的 )。 (5)静转矩:电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。3.2.2 控制原理根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是 K1、K2、S2、S3,控制
18、电路如图 5 所示。通过 K1、K2 状态变化来实现电机的启动和换向功能。当 K1、K2 的状态变化时,内部程序检测 P1.0 和 P1.1 的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。图 5 控制电路原理图根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实第 7 页现的,该电路控制电机加速度主要是通过 S2、S3 的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改
19、变了步进电机的输出脉冲频率,从而改变了电机的转速。3.2.3 步进电机的驱动方式步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压。为了防止电机过流及改善驱动特性,需加限流电阻。由于步进电机锁步时,限流电阻要消耗掉大量的功率,故限流电阻要有较大的功率容量,并且开关管也要有较高的负载能力。图6 步进电机驱动电路通过 ULN2803 构成比较多的驱动电路,电路图如图6所示。通过单片机的P1.0-P1.3 输出脉冲到ULN2803 的 1B-4B口,经信号放大后从 1C-4C 口分别输出到电机的A、B、C、D相。步进电机的另一种驱动方式是高低压驱动,即在电机移步时,加额定或超过额定值的电压,以便在较大的电流驱动下,使电机快速移步;而在锁步时,则加低于额定值的电压,只让电机绕组流过锁步所需的电流值。这样,既可以减少限流电阻的功率消耗,又可以提高电机的运行速度,但这种驱动方式的电路要复杂一些。驱动脉冲的分配可以使用硬件方法,即用脉冲分配器实现。