基于单片机的步进电机的运动控制系统课程学位论文.doc
23 目 录 步进电机原理及硬件设计21 单片机电路21.1 AT89C51单片机的组成结构21.2 AT89C51单片机的引脚及功能42步进电机62.1 步进电机的工作原理62.2步进电机的驱动73 电源114 软件程序设计11 4.1三相六拍环形分配.114.2主程序的设计12总结19参考文献21 1步进电机原理与硬件设计 1单片机电路本系统采用A89C51单片机产生控制信号单片机内部的内存即可满足要求。如需要扩展较多的外部RAM和ROM可加上数据缓冲器。步进电机控制信号通过AT89C51单片机其中一个口进行扩充。为了增加步进电机工作的灵活性,在启动步进电机工作之后,当有键按下,设置产生外部中断,达到灵活控制电机的目的。下面介绍一下AT89C51单片机。1.1AT89C51单片机的组成结构AT89C51单片机内部硬件结构框图如图2所示。它由一个8位中央处理器(CPU)、一个256B片内RAM及4KBFlashROM、21个特殊功能寄存器、4个8为并行I/O口以及中断系统等部分组成,各功能部件通过片内单一总线连成一个整体,集成在一块芯片上。(1) CPU CPU是单片机的核心部分,CPU包括两个基本部分:运算器和控制器。运算器运算器即算术逻辑单元ALU,是进行算术或逻辑运算的部件。可实现算术运算和逻辑运算。操作的结果一般送回累加器ACC,而其状态信息送至程序状态寄存器PSW。控制器控制器是用来控制计算机工作的部件。控制器接收来自存储器的指令,使各部件协调工作,完成指令所规定的操作。 图2 AT89C51单片机内部结构示意图(2)内部存储器内部数据存储器AT89C51芯片内共有256B(地址为00H-FFH)的数据存储器,其中高128B(地址为:80H-FFH)被专用寄存器占用,能作为寄存器供用户使用的只是低128B(地址为:00H-7FH),用于存放可读写的数据,如程序执行过程中的变量。内部程序存储器AT89C51共有(地址为:0000H-0FFFH)的flash程序存储器,用于存放程序、原始数据或表格常数。(3)定时/计数器 AT89C51共有两个16位的定时/计数器都可以设置成计数方式,用于对外部事件进行计数;也可设置成定时方式,并可以根据计数或定时的结果实现对单片机运行的控制。(4)并行I/O口 用于进行单片机内外的传输,4个8位的I/O口(P0、P1、P2、P3)。每个8位的口,既可用作输入口,也可用作输出口,每个口即可以8位同步读写,又可对每一位进行单独的操作。标准I/O口的主要功能相当于一个8位锁存器,能存储一个字节的二进制数据,以保持与之相连接的8条口线各自电位的高低状态。1.2 AT89C51单片机的引脚及功能AT89C51共有40个引脚,下面介绍一下它们的主要功能。(1)P0口P0口某一位的结构图如图3所示,一个输出锁存器、两个三态缓冲器、一 图3 P0口的结构示意图个转换开关MUX、一个输出驱动电路(T1和T2)和一个与门及一个非门组成。(2)P1,P2,P3口 P1口是唯一的单功能口,位结构图如图4所示,仅能作为通用I/O口使用,P1口是8位准双向口,作通用输入输出口使用, Pl口有别于P0口,它接有内部上拉电阻。P1口的每以一位可以独立地定义为输人或者输出,因此,P1口既可作为8位并行输入输出口,又可作为8位输入输出端。CPU既可以对P1口进行字节操作,又可以进行位操作。当作输入方式时,该位的锁存器必须顶写1。P2口是8位准双向输入输出接口,当外接程序存储据时,P2口给出地址的高8位,此时不能用作通用,IO口。当外按数据存储器时,若RAM小于256KB,用R0、R1作间址寄存器,只需要P0口送出地址低8位,P2口可以用 图4 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):当振荡器正常运行时,在此引脚上出现二个机器周期以上的高电平使单片机复位。Vcc掉电期间,此引脚可接备用电源,以保持内部RAM的数据。当Vcc下降掉到低于规定的水平,而VPD在其规定的电压范围内,VPD就向内部RAM提供备用电源。ALE(30):当访问外部存储器时,由单片机的P2口送出地址的高8位,P0口送出地址的低8位,数据也是通过P0口传送。作为P0口某时选出的信息到底是低8位地址还是传送的数据,需要有一信号同步地进行分别。当ALE信号(允许地址锁存)为高电平(有效)P0口送出低8位地址,通过ALE信号锁存低8位地址。 PSEN(29):程序存储器读选通信号,低电平有效。EAVpp(31):当EA保持高电平时,访问内部程序存储器(4K8),但当PC(程序计数器)值超过OFFFH时,将自动转向执行外部程序存储器内的程序当EA保持低电平时,则只访问外部程序存储器(从0000H地址开始),不管单片机内部是否有程序存储器2步进电机 2.1步进电机的工作原理 步进电动机是一种能完成增量运动的电磁机械,它将输入的数字脉冲信号转换成电机转轴的输出角度。在开环方式下,步进电机的输出步数总是和输入指令的脉冲数相等,每个脉冲都使电机转轴前进一个步进角,并依靠它特有的定位转矩将转轴准确地锁定在相应的步距位置。但是,在开环控制方式下,步进电动机的速度控制有着较大难度:在高速运行时,电机易丢失输入脉冲,造成失步;在低速时,步进电动机的转速响应有较大波动,运行不平稳;特别是当电机负载变化时,电机的转速波动更大,调整更不容易。当输入脉冲频率很低时,步进电机转子就处于步进运行状态, 由于步进电机具备快速启动和停止的能力,它的步距角和转速仅与脉冲频率有关而不受电压波动和负载变化的影响,也不受环境条件的影响,在不丢步的情况下运行,其步距误差不会长期积累 步进电机又称电脉冲马达,它是将电脉冲信号转换成机械角位移的执行元件。其特点是:转子的角位移的大小及转速分别与输入的电脉冲数及其频率成正比,并在时间上与输入脉冲同步,因此可以通过改变输入电脉冲的频率来实现调速:由于其转轴的输出的角位移量与输入的脉冲数成正比,于是可以通过控制脉冲个数来控制步进电动机的角位移量。步进电动机有利于装置或设备的小型化和低成本,而且很容易用微机实现数字控制。因此,广泛应用于众多的领域中并得以不断的发展,并实现机电一体化和自动化。 步进电机主要是有定子和转子构成。定子的主要结构是绕组,三相、四相、五相步进电机分别有3个、4个、5个绕组,其他依此类推。绕组按一定的通电顺序工作,这个通电顺序称为“相序”。转子的主要结构是磁性转轴,当定子中的绕组在相序信号作用下有规律的通电、断电工作时,转子周围就会有一个按此规律变化的电磁场,因此一个按规律变化的电磁力就会作用在转子上,转子总是力图转动到磁阻最小的位置,正是这样,使得转子按一定的步距角转动,使转子发生转动。 步进电动机的工作状态由控制信号实现,在步进电动机的单片机控制中,控制信号由单片机产生,其基本控制方式如下: 1相序控制方式步进电动机的通电换相顺序严格按照步进电动机的工作方式进行,通常我们是把通电换相这一过程称为脉冲分配。现以三相步进电动机为例分析三相步进电动机的工作方式:三相步进电动机的工作方式有三种:三相单三拍,三相双三拍,三相六拍。“单”、“双”、“拍”的意思是:“单”指每次切换前后只有一相绕组通电,“双”指的是每次有两相绕组通电:而从一种通电状态转换到另一种通电状态就叫作一“拍”。(1) 三相六拍步进电动机的工作原理,其实就是电磁铁的工作原理。又环形分配器送来的脉冲信号,对定子绕组轮流通电,设先对A相绕组通电,B、C、二相都不通电。由于磁通具有力图沿磁阻最小路径通过的特点,因此在A极附近的转子就只受到径向力的作用而无切线力,故转矩为零,转子被锁定在这个位置上。此时B、C二相的定子齿则和转子齿在不同的方向各错丌360。(k*m*z)的角度,其中k表示通电方式,当为单拍时取k=1,双拍时取k=2;m为定子绕组的相数;z为转子的齿数。随后A相断电,B相控制绕组通电,则转子就和B相定予齿对齐,转子顺时针方向旋转360。(k*m*z)的角度。然后使B相断电,C相通电,同理转子又沿顺时针方向旋转360。(k*m*z)的角度。转子就按照AABB-BCCCA-A的旋转顺序运动下去。(2) 三相双三拍工作方式原理 当步进电动机按照ABBCCAAB的顺序通电,则就成了四相双四拍工作方式。其工作原理与三相六拍相同,此处不进行详细说明。 (3) 三相单三拍工作方式原理 当步进电动机按照ABCA的顺序通电时,则就成了三相单三拍工作方式。 2转向控制方式 如果按给定的工作方式正向顺序通电换相,步进电动机就正转;如果按相反的顺序通电换相,则电动机就反转。例如,步进电动机先前的工作方式为ABCDA此时,步进电动机按顺时针旋转。若改为ADCBA时,则步进电动机的转向与原来相反,即,逆时针旋转。 步进电动机工作时的通电控制脉冲,必须严格按照步进电动机所要求完成的工作方式进行顺序控制。 “单”、“双”、“拍”的意思是:“单”指每次切换前后只有一相绕组通电,“双”指的是每次有两相绕组通电:而从一种通电状态转换到另一种通电状态就叫作一“拍”。a=360。(k*m*z)的角度,其中k表示通电方式,当为单拍时取k=1,双拍时取k=2;m为定子绕组的相数;z为转子的齿数。随后A相断电,B相控制绕组通电,则转子就和B相定予齿对齐,转子顺时针方向旋转360。(k*m*z)的角度。然后使B相断电,C相通电,同理转子又沿顺时针方向旋转360。(k*m*z)的角度。转子就按照ABCDA的旋转顺序运动下去。 步进电机是一种将电脉冲信号转换成直线位移或角位移的控制微电机,其机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例.通过改变电脉冲频率,可在大范围内进行调速.同时,该电 机还能快速起动、制动、反转和步进电机只需采用最简单的开环控制就可取得 非常高的控制精度,且这种系统不需要反馈信号,系统硬件实施比较简单。2.2三相步进电机的定子上 有6个极,转子是4个均匀分布的齿,电机的转动是根据控制饶组与电源接通或开断的变化频率呈步进状态,其转向取决于通电相序.在本系统中,主要采用三相电 机三相单双六拍:a-ab-b-bc-c-ca-a-首先a相通电,而后再接通b相绕组(这时a相不断开)即ab两绕组同时通电;此后断开a相绕组,b相单独通电,依此规律循环往复.这种方式需经过6个切换才能完成一个循环.单相三拍方式的每一拍步进角为3°,三相六拍的步进角则为1.5°,因 此,在三相六拍下,步进电机的运行反转平稳柔和,但在同样的运行角度与速度下,三相六拍驱动脉冲的频率需提高1倍,对驱动开关管的开关特性要求较高。系统 的总体设计框图如图5所示:图5 系统的整体流程图当步进电机驱 动系统工作时,控制器首先检测接收传感器信号,进行换算成需要的检测量,并将之与设定值进行比较,得出其差值 ,并根据程序的设定转化为步进电机的步进脉冲。从而通过单片机控制的驱动器来驱动步进电机,从而带动丝杠传动系统,进而控制液氮液面升降系统的运动,完成一个循环控制过程。步进电机的驱动电路如图6所示,采用单片机AT89C51来驱动,AT89C51具有8k字节 flash闪速存储器,256字节内部ram,32个i/o口线,3个16位定时/计数器,1个六向量两极中断结构,一个全双工串行通信接口,同时片内还有振荡器及时钟电路。可以很方便地使用不同相数的步进电机按一种可执行的通电方式来控制,在这个系统中,单片机的主要作用是接收键盘设定值,显示设定初值 以及检测的当前值,同时还具有串行通信功能。检测传感器信号,接收传感器信号,并进行处理,计算出步进电机需要的步进量,通过p1.0,p1.1,和 p1.2提供控制步进电机的时序脉冲,控制步进电机的运行,系统采用软件来完成脉冲分配,这样可根据应用系统的需要,方便灵活地改变步进电机的控制方式,步进一步的时间可由两个控制字的送出时间间隔决定。图6 步进电机驱动电路组成4、系统的软件设计4.1硬件脉冲分配器电路步进电动机的脉冲分配可以由硬件和软件两种方法来实现。硬件环形分配器需要根据步进电动机的相数和要求的通电方式而设计专门的电路,图7所示为一个三相六拍的环形分配器。分配器的主体是三个J-K触发器。三个J-K触发器的Q输出端分别经各自的功放线路与步进电动机A、B、C三相绕组连接。当QA1时,A相绕组通电;QB1时,B相绕组通电;QC1时,C相绕组通电。DR+和DR-是步进电动机的正反转控制信号。正转时,各相通电顺序:AABBBCCCA反转时,各相通电顺序:AACCCBBBA所示为的三相六拍环形分配器逻辑真值表如表7所示。序号 控制信号状态 输出状态 导电绕组 01234561 1 00 1 00 1 10 0 11 0 11 0 01 1 01 0 01 1 00 1 00 1 10 0 11 0 11 0 0AABBBCCCAA表8 三相六拍环形分配器逻辑真值表软件脉冲分配对于不同的计算机和接口器件,软件环分有不同的形式,现以AT89C51单片机配置的系统为例加以说明。(1)由P1口作为驱动电路的接口控制脉冲经AT89C51的并行I/O接口P1口输出到步进电动机各相的功率放大器输入,设P1口的P1.0输出至A相,P1.1输出至B相,P1.2输出至C相。(2)建立环形分配表为了使电动机按照如前所述顺序通电,首先必须在存储器中建立一个环形分配表,存储器各单元中存放对应绕组通电的顺序数值,如表9所示。当运行时,依次将环形分配表中的数据,也就是对应存储器单元的内容送到P1口,使P1.0、P1.1、P1.2依次送出有关信号,从而使电动机轮流通电。 表9三相六拍软件环形分配数据表 存储单元地址 单元内容 对应通电相 K+0K+1K+2K+3K+4K+501H(0001) 03H(0011) 02H(0010) 06H(0110) 04H(0100) 05H(0101) AABBBCCCA 表为三相六拍环形分配表,K为存储器单元基地址(十六位二进制数),后面所加的数为地址的索引值。可见,要是电动机正转,只需依次输出表中各单元的内容即可。当输出状态已是表底状态时,则修改索引值使下次输出重新为表首状态。如要使电动机反转,则只需反向依次输出各单元的内容。当输出状态达到表首状态时,则修改指针使下一次输出重新为表底状态4.2步进电机的驱动系统软件主要由主控程序、脉冲分配驱动程序、键处理程序、显示数据处理程序及显示驱动程序、串口通信监控程序等部分 组成。系统的主程序流程图如图10所示,步进电机驱动中断子程序流程图如图11所示。图10系统的主程序流程图图11 驱动子程序流程图由驱动系统的 硬件控制图可以看出,单片机只是根据需要轮流给p1.0,p1.1,p1.2端口发送步进脉冲来控制电机运行,则三相六拍的系统控制模型如附表所示;在程 序中,只要将依次将6个控制字送到p1口,步进电机就会转动一个齿距角。每送一个控制字,就完成一拍,步进电机就转过一个步距角。附表 三相六拍控制模型设定有如下工作单元和工作位定义:r0为步进数寄存器;psw中,f0为方向标志位, f0=0时正转, 否则反转。步进时间由两个控制字的送出时间间隔决定。步进电机的中断子程序:start: push accpush pswpush r0jb 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 delaydjnz r0, donemov a,#02h ;第3拍控制码mov p1,a ;执行第2拍lcally dellaydjnz r0, donemov a,#06h ;第4拍控制码mov p1,a ;执行第2拍lcally dellaydjnz r0,donemov a,#04h ;第5拍控制码mov p1,a ;执行第2拍lcally dellaydjnz r0, donemov a,#05h ;第6拍控制码mov p1,a ;执行第2拍lcally dellaydjnz r0, doneajmp loop1 ;循环loop2: mov a,#05h ;反转mov p1, alcall delaydjnz r0, donemov a, #04hmov p1, alcall delaydjnz r0, donemov a, #06hmov p1, alcall delaydjnz r0, donemov a, #02hmov p1, alcally dellaydjnz r0, donemov a, #03hmov p1, alcally dellaydjnz r0, donemov a, #01hmov p1, alcally dellaydjnz r0, doneajmp loop2done: ret ;返回总结本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。对本次设计,采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。采用键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。 系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。使用单片机以软件方式驱动步进电机,不但可以通过编程方法,在一定范围内自由设定步进电机的转速、往返转动的角度以及转动次数等,而且还可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求。因此,常把单片机步进电机控制电路称之为可编程步进电机控制驱动器。步进电机控制(包括控制脉冲的产生和分配)使用软件方法,即用单片机实现,这样既简化了电路,也降低了成本。参考文献1 张鑫, 华臻, 陈书谦 .单片机原理及应用 电子工业出版社 2005.82 梅丽凤 ,王艳秋 , 张军 .单片机原理及接口技术 清华大学出版社2004.63 胡汉才单片机原理与接口技术M北京:清华大学出版社,1995.64 楼然苗等51系列单片机设计实例M北京:北京航空航天出版社,2003.3 5 何立民. 单片机高级教程M北京:北京航空航天大学出版社,20016 张迎新,等.单片机微型计算机原理、应用及接口技术M.修订版.北京:·国防工业出版社,2004.7 丁志刚,李刚民.单片微型计算机原理与应用M.北京:电子工业出版社,1990.8 孙传友,等.测控电路及装置M.北京:北京航天航空大学出版社,2000.9马淑华,王凤文,张美金. 单片机原理与接口技术M.北京:北京邮电大学出版社,2007.10张靖武,周灵彬. 单片机系统的 PROTEUS 设计与仿真M. 北京:电子工业出版社,200711张保成 机电一体化系统设计 北京 :电子工业出版社,201212赵俊生 原霞 翟建龙 电机与电气控制及PLC 北京 电子工业出版社 201213徐煜明 C51单片机及应用系统设计 北京 电子工业出版社 200923