步进电机加减速定位控制系统课程设计说明.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流步进电机加减速定位控制系统课程设计说明.精品文档.1 绪论1.1 课题描述 随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。本课题研究的内容就是以单片机为主要控制元件,通过控制脉冲信号来定位步进电机。1.2 步进电机参数和特点 1.2.1 基本参数1.电机固有步距角8它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为电机固有步距角,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。2.步进电机的相数是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72° 。3. 保持转矩(HOLDING TORQUE)是指步进电机通电但没有转动时,定子锁住转子的力矩。1.2.2 步进电机的特点1一般步进电机的精度为步进角的3-5%,且不累积。 2步进电机外表允许的最高温度。 步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。 3步进电机的力矩会随转速的升高而下降。 当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。4步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。步进电机以其显著的特点,在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。2 总体方案设计2.1 总体设计框图为了实现步进电机的加减速定位控制功能,设计采用的如图2.1的设计框图。本设计系统采用开环控制,利用AT89C51单片机作为脉冲分配器,通过功率接口控制四相步进电机的加减速运行。键盘模块控制步进电机的起动 、加速、停止、以及定位等各项功能的选择。LCD显示器上实时的显示步进电机的运行转速和定位功能时候步进电机运行的转速和总的转数。89C51单片机系统是整个控制系统的核心,控制系统的各个模块协调工作并且充当步进电机运转时候的脉冲分配器。LCD显示器89C51单片机系统步进电机功率接口电路键盘图2.1总体设计框图2.2 控制系统芯片的选取2.2.1 单片机芯片的选取随着科学技术的发展,微型计算机技术日益发展,已经在许多领域得到了广泛的应用。随着集成电路工艺的发展,出现了单片机、DSP,ARM等多种单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案6。51单片机虽然和DSP,ARM相比处理速度和运算速度上都比较慢,但它的体积小、质量轻、价格便宜,它的速度可以满足本次实验的要求,所以我们采用AT89C51这款单片机。2.2.2 步进电机驱动芯片的原理及其引脚功能对于设计中的步进电机驱动器采用L298N驱动器。L298N 为SGS-THOMSON Microelectronics 所生产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑电位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。L298N的内部逻辑图如2.3所示1。图2.3 L298 内部逻辑图3双列直插式封装的L298N,共20个引脚,引脚图及其引脚功能如下图2.4所示。图2.4 L298N引脚图2L298N驱动器的引脚功能如表2.1所示。表 2.1 L298引脚功能引脚PowerSONameFunction 功能说明1;152;19Sense A; Sense B电流监测端,1、15和PowerSO的2、19用法一样,SEN1、SEN2分别为两个H桥的电流反馈脚,不用时可以直接接地2; 34; 5Out 1; Out 21Y1、1Y2输出端 46VS功率电源电压,此引脚与地必须连接100nF电容器5;77;9Input 1; Input 21A1、1A2输入端,TTL电平兼容6;118;14Enable A; Enable BTTL电平兼容输入 1EN、2EN使能端,低电平禁止输出81,10,11,20GNDGND地912VSS逻辑电源电压。 此引脚与地必须连接100nF电容器10; 1213;15Input 3; Input 42A1、2A2 输入端,TTL电平兼容13; 1416;17Out 3; Out 42Y1、2Y2 输出端 监测引脚153;18N.C.Not Connected 空2.2.3 显示芯片的选取及其引脚功能对于显示模块选用LM016L液晶显示器。LM016L液晶显示器(LCD)具有功耗低、体积小、质量轻、显示好的特点。点阵字符型液晶显示器把LCD 控制器、点阵驱动器、字符存储器集成在一块印刷电路板上,构成便于应用的液晶模块。这类液晶模块不仅可以显示数字、字符,还可以显示各种图形符号以及少量自定义符号,并且可以实现屏幕的上下左右滚动、文字的闪烁等功能。LM016L 液晶模块采用HD44780 控制器。HD44780 具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能。图2.5 LM016L引脚图LM016L 与单片机MCU(Microcontroller Unit)通讯可采用8 位或者4 位并行传输两种方式。LM016L 液晶模块的引脚功能见表2.2。6表2.2 LM016L引脚功能表管脚号名称电平功能描述1VSS0V2VDD5V3VEE-4RSH/LH:数据线上为数据信号;L:数据线上为指令信号。5RWH/LH:读数据模式;L:写数据模式。6EH/L使能信号端714DB0DB7H/L数据线通过对HD44780 写入控制指令,HD44780 产生显示驱动信号来驱动LM016L。HD44780的控制指令主要有:清除显示(Clear Display)、地址归位(Return Home)、输入模式设定(Entry Mode Set)、显示开/关控制(Display On/Off Control)、功能设定(Function Set)、设定 CGRAM 的地址(Set CGRAM Address)、设定DDRAM 的地址(Set DDRAM Address)、写 DDRAM/CGRAM(Write Date to DDRAM/CGRAM)、读忙标志和地址(Read Busy Flagand Address)以及从DDRAM 和CGRAM 中读数据(Read Date from DDRAM/CGRAM)。3 硬件电路设计3.1 AT89C51单片机最小系统3.1.1 AT89C51单片机主要特性和功能特性主要特性:与MCS-51 兼容4K字节可编程闪烁存储器全静态工作0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.1.2 AT89C51引脚分布图及管脚说明 图3.1 89C51单片机引脚结构图由上图可知89C51单片机共有包括GND,VCC在内的40个引脚下面着重介绍几个重要的引脚。P0口由一个输出锁存器,2个三态级输入缓冲器和输出驱动电路及控制电路组成。P1口是一个准双向口,用作I/O口。P1口是一个内部提供上拉电阻的8位双向I/O口P1口缓冲器能接收输出4TTL门电流。P2口比P1口多了一个MUX开关和转换开关控制部分。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P3口是一个多功能端口。P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口。口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。3.1.3 单片机最小系统图AT89C51单片机在启动时都需要复位,使CPU及系统各部件处于确定的初始状态,并从初态开始工作。单片机的最小系统如图3.2所示。89系列单片机的复位信号是从RST引脚输入到芯片内部的斯密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可以响应并将系统复位。上图为手动复位电路,通过接通一个按钮开关,使单片机进入复位状态。 AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器C1和C2通常取22pf左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为024MHz。4图3.2 单片机最小系统 3.2 步进电机加减速定位控制电路的单片机原理图步进电机加减速定位控制系统的单片机原理图如图3.3所示。5图3.3 步进电机加减速定位系统的单片机原理图在图3.3中,U1为单片机芯片AT89C51,工作于11.0592MHz的时钟。单片机的P1.2、P1.3、P1.4、P1.5、P1.6、P1.7引脚分别与输入键盘的定位、启动、加速、减速、停止、反转端口相对应。通过判断上述端口来确定输入,以便实现各种要求的控制功能。P3.0接LM016L的RS端,P3.1接RW端,P3.3接使能端EN。P0.0-P0.7通过排阻跟芯片LM016L的数据端连接。P3.3作为外部中断0通过两个反向非门与键盘电路相连接,提供键盘输入的中断信号。P2.0-P2.3作为并行端口来模拟步进电机的控制脉冲,同时充当脉冲分配器的功能,给步进电机提供四相八拍的步进控制脉冲。3.3 步进电机系统原理图步进电机控制系统的驱动原理图如图3.4所示。图3.4 电机控制系统原理图在电源引脚并联一个0.1uf的小电容目的是1.滤波,引入滤波电容的原因是要获得平滑稳定的电压,因为电容两端的电压不能突变,所以它能抑制电压的波动,使电压变得平稳光滑主要作用有两个:1.去除器件之间的交流射频耦合。它能将器件的电源端上瞬间的尖峰、毛刺对地短路掉。2.去耦:也叫退耦。芯片L298N的IN1-IN4端跟单片机的P2.0-P2.3端口连接,作为步进电机的四相步进脉冲信号。感应端SENSA和SENSB接地,ENA ENB 端口悬空。输出OUT1-OUT4跟步进电机的四角上的四个端口逆时针依次连接,步进电机的中间两个端口直接接高电平。8个二极管D1-D8为电机绕组通电后续流作用。VCC接+5V的电源作为控制端的电源电压,VSS接+12V的电压,作为L298N高压端电压,作为步进电机的驱动电压。4 软件设计4.1 AT89C51单片机定时器/控制器控制定时器共有两个控制字,有软件写入TMOD和TCON两个8位寄存器,用来设置两个T0或T1的操作模式和控制功能。当AT89C51系统复位时,连个寄存器所有位都被清零7。4.1.1 工作模式寄存器TOMDTOMD用于控制T0和T1工作模式,其各位的定义格式如表4.1所示。表 4.1 工作模式寄存器TMOD的位定义D7D6D5D4D3D2D1D0GATBC/TM1MOGATEC/TM1MO 定时器T1 定时器T0 其中,低四位用于T0,高4位用于T1。 4.1.2 控制寄存器TCON定时器控制寄存器TCON除可字节寻址外,各位还可位寻址,各位定义及格式如表4.2所示。表4.2 控制寄存器TCON的位定义8FH8EH8DH8CH8BH8AH89H89HTF1TR1TF0TR0IE1IT1IE0IT0TCON各位的作用如下。TF1(TCON.7): T1溢出标志位。TF0(TCON.5): T0溢出标志位。其功能和操作情况同TF1。TR1(TCON.6): T1运行控制位。可通过软件置1或清0来启动或关闭T1.在程序中用指令“SETB TR1”使TR1位置1,定时器T1便开始计数。TR0(TCON.4): T0运行控制位。其功能及操作情况同TR1。TE1,IT1,IT0(TCON.3TCON.0):外部中断INT1和INT0请求及请求方式控制位。89C51复位时,TCON的所有位被清07。 4.2 控制过程软件设计4.2.1 脉冲分配 实现脉冲分配(也就是通电换相控制)的方法有两种:软件法和硬件法。软件法是完全用软件的方式,按照给定的通电换相顺序,通过单片机的I/O向驱动电路发出控制脉冲,设定四相八拍工作方式通电换相得:正序为A-AB-B-BC-C-CD-D-DA,反序为A-AD-D-DC-C-CB-B-BA-A注:P2.0:A相驱动,P2.1:B相驱动,P2.2:C相驱动,P2.3: D相驱动。四相八拍控制字如下表4.3所示。表4.3 四相八拍工作方式的控制字通电状态P2.3P2.2P2.1P2.0控制字A000101HAB001103HB001002HBC011006HC010004HCD11000CHD100008HDA000101H通过连续的向P2.0-P2.3口输出脉冲,来控制步进电机的连续不断的运行。4.2.2 加减速定位曲线设定步进电机驱动执行机构从A点到B点移动的时,要经历升速,恒速,减速过程,如果启动时一次将速度升到给定速度,由于启动频率超过极限启动频率,步进电机就有失步现象,因此会造成不能正常启动,如果到终点时突然停下来,由于惯性作用 ,步进电机会发生过冲现象,会造成位置精度降低。如果升速非常缓慢的升降速,步进电机虽然不会发生失步和过冲现象,但影响执行机构的工作效率,所以,对步进电机的加减速要有严格的要求,那就是保证在不失步和过冲的前提下,用最快的速度(或最短的时间)移动到有可能指定位置。为满足加减速要求,步进电动机运行通常按照加减速曲线进行。如图4.1是加减速运行曲线。加减速运行曲线没有 一个固定的模式,一般根据经验和实验得到的。最简单的是匀加速和匀减速曲线。 图4.1 加减速曲线用定时器中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。在控制过程中,为了减少每步计算装载值的时间,系统设计时就把各离散点的速度所需的装载值固化在系统的ROM中,这样可大幅度减少占用CPU 的时间,提高系统的响应速度。阶梯模拟加减速曲线如图4.2所示。50r/s 50 r/s40r/s 40 r/s30 r/s 30 r/s20r/s 20 r/s10r/s 10 r/sT/S02 4 6 8 10 20 22 24 26 28S图4.2 阶梯模拟加减速曲线4.3 程序流程图4.3.1 主程序流程图 主程序主要是实现对系统的资源进行全面的管理,协调的处理系统的显示、键盘输入、和步进电机的循环转动。开定时器和外部中断以及各个变量的初始化,最后循环的执行电机旋转过程并等待外部中断。如图4.3所示。7定位Flag=0?开外部中断0和定时器T0并设定初值开始初始化定义Flag=2?Flag=1?YNN正转Y反转Y图4.3 主程序流程图4.3.2 外部中断0的中断服务子程序流程图外部中断0服务程序功能通过中断方式判断端口INT09,如果脉冲下降沿就开始检测键盘输入端口P1口,通过与程序中的设定值来进行比较确定是哪个功能键按下,然后再通过固化的各种情况执行对应的中断程序,在启动时候是检测到启动按键时候直接给主程序中循环执行的标志变量赋1直接启动正转程序的执行,启动时候转速设定为10r/s,并启动显示程序,显示“0605044218 LXG Speed:10r/s”当检测到停止键按下时,直接将主程序中循环执行的标志变量赋0,停止单片机向外发送脉冲,并启动显示,“Testing”在加减速的时候是每检测到一次按键按下时中断程序便开始执行,并与按下按键前的速度状态进行比较确定下一档给出的的速度值即给出主程序中P2口送出脉冲之间的延时时间,并在LCD上显示执行的结果,当按下定位键后,锁定其他的各个按键并且转向定时器T0的中断服务程序,来实现加减速定位的功能。实现键盘控制的各个功能。检测P1口关外部中断0初始化定义开始breakk测P1口Tempflag=1Case 1breakP1口Tempflag=2Case 2Case 6Case 5Case 4Case 3breakP1口Tempflag=3breakP1口breakP1口Tempflag=4Tempflag=5Tempflag=62 1 2置定位初始值定位过程各变量初始化Dingflag=0?1Y检测flag实时显示定位总转数与定位过程中的转速Case 0Y启动定时器T0breakP1口NTempflag=4Tempflag=1停止电机并显示Y电机加速并显示Tempflag=2breakP1口breakP1口启动电机并显示NYYbreakP1口电机减速并显示Tempflag=3breakP1口444NY34 3Tempflag=5NFlag=2Flag=1YYY电机正转并显示电机反转并显示breakP1口4Int0=0?NYEX0=1结束图4.4外部中断0服务程序流程图4.3.3 定时器T0的中断服务程序当检测到键盘中是定位键按下时,为了实现定位过程中的离散模拟加减速控制,就设置用定时器T0来控制定位过程中步进电机速度的变化,即给单片机P2口发送脉冲的频率,通过设定变化过程中每个速度档的运行时间来控制加减速过程中的加速度的变化,具体过程是步进电机从低速不失步地加速启动,经过5档阶梯加速过程0r/s-10r/s-20r/s-30r/s-40r/s -50r/s达到高速恒速运行50r/s,并且在LCD液晶显示屏幕上实时的显示Locate 900r Speed: 50 r/s运行10s后在将达到目标位置时,步进电机减速运行,经过5档阶梯减速50r/s-40r/s-30r/s-20r/s -10r/s-0r/s最后准确的停在目标位置上,而不会发生过冲现象。定位结束后在LCD液晶显示屏幕上显示 “Stopping” 。并且通过计算定位过程中的各个速度段的时间累积和来确定总的定位步数,达到准确定位的目的,并且在定位的执行过程中锁定了其他的加减速等按键,确保了定位过程的正确执行。5 仿真过程KeilC与Proteus连接仿真调试8Proteus里加载可执行文件,左键双击AT89C52原理图,点击加载可执行文件“步进电机.HEX”。单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。其运行情况如图5.1-5.4所示。图5.1 定位加速过程图5.2 正转加速图5.3 反转减速图5.4 定位结束过程总 结步进电动机是一种将脉冲信号变换成相应的角位移(或线位移)的电磁装置,是一种特殊的电动机。由于其精确性以及其良好的性能在实际当中得到了广泛的应用。本文介绍了以51系列单片机AT89C51为控制核心所设计的步进电机控制系统,从系统的硬件电路以及软件的设计方面实现了对步进电机的控制。本文首先对步进电机进行了概述,然后就控制系统中芯片的选取做了详细的说明,本设计选择用L298N作为接口驱动芯片,用LM016L做显示芯片,在Proteus上设计出控制系统的硬件连接电路,并根据实情况考虑了电磁隔离和绕组的导通续流等。在硬件设计的基础上设计了系统运行过程的程序流程图并用C程序设计出控制系统的控制程序,并用Keil进行调试,然后在Proteus上进行仿真,实现了本次设计所需的各种功能。系统中采用并行控制,用单片机接口线直接去控制步进电机各相驱动线路。键盘作为一个外部中断源,设置了步进电机正转、反转、加减速、停止等功能,采用中断方法来调用中断服务程序,完成对步进电机的最佳控制,显示器及时显示正转、反转速度等状态,并且用定时器控制定位过程,在定位过程中简单设置了加减速过程的模拟阶梯曲线,来控制加减速的整个过程。该设计的唯一不足是固化的加减速过程中的加减速时间,不能通用于各种不同的加速度控制系统,且在定位过程中由于脉冲漏发等出现小偏差时候不能进行检测,所以还有待进一步的将该系统完善成为具有传感器位置检测的闭环控制系统。用软件代替环形分配器,通过对单片机的设定,用同一种电路实现了多相步进电机的控制和驱动,大大提高了接口电路的灵活性和通用性;本次设计虽然只是实现单一功能的应用,但是它可以作为一种通用模块应用,通过改变并行输出口可以满足多种不同的相数的步进电机控制,改变模拟阶梯曲线的参数可以满足多种不同应用条件下的定位。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域中发挥这不可替代的作用。致 谢这次的课程设计终于顺利完成了,在设计中遇到了很多问题,在理解及设计课题过程中得到老师的细心指导,得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢参考文献1吴显鼎.模拟电子技术M.南开大学出版社,2010年版2蒋华勤.电子技术基础实验M.北京:中国计量出版社,2009年版.3宋家友,乐丽琴.数字电子技术M.哈尔滨:哈尔滨工程大学出版社,2011年版.4王质朴,吕云朋.MCS-51单片机原理接口及应用M.北京:北京理工大学出版社,2009年版.5邱关源,罗先觉.电路M第五版.北京市:高等教育出版社,2006年6月版. 6孙建明,杨清梅.传感器技术M.北京:清华大学出版社,2005年10月版7 史敬灼.步进电动机伺服控制技术M.北京:科学出版社,2006.78 林庭双,柯常志. 等protel DXP 电子电路设计精彩范例M.北京:机械工业出版社,2005.19王晓明.电动机的单片机控制M.北京:北京航空航天出版社,2002.5.