步进电机控制系统Word格式.docx
- 文档编号:20079764
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:25
- 大小:328.30KB
步进电机控制系统Word格式.docx
《步进电机控制系统Word格式.docx》由会员分享,可在线阅读,更多相关《步进电机控制系统Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
本系统采用STC89C52作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动用四个LED灯指示。
2总体方案设计
本步进电机控制系统,按照系统设计功能的要求,确定系统由4个模块组成:
主控制器、电机驱动模块、LED指示灯电路、键盘电路。
温度无线采集报警系统结构框图如图1所示
图1系统结构框图
2.1方案的选择
2.1.1主控芯片方案
方案一:
采用传统的STC89C52单片机作为主控芯片。
此芯片价格便宜、操作简便,低功耗,比较经济实惠。
方案二:
采用TI公司生产的MSP430F149系列单片机作为主控芯片。
此单片机是一款高性能的低功耗的16位单片机,具有非常强大的功能,且内置高速12位ADC。
但其价格比较昂贵,而且是TPFQ贴片封装,不利于焊接,需要PCB制板,大大增加了成本和开发周期。
方案三:
采用宏晶科技有限公司的STC12C5A60S2增强型51单片机作为主控芯片。
此芯片内置ADC和SPI总线接口,且内部时钟不分频,可达到1MPS。
而且价格适中。
考虑到此系统需要不用到ADC,从性能和价格上综合考虑我们选择方案一,即用STC89C52作为本系统的主控芯片。
2.1.2步进电机驱动方案
方案1:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案2:
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。
但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。
方案3:
采用ULN2003达林顿管电机驱动芯片,ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。
功率驱动电路是功率电子设备输出电路的一个重要组成部分。
ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。
对步进电机控制方便灵活。
因此我们选用了方案3。
2.1.3显示模块方案
方案一:
选择主控为ST7920的带字库的LCD12864来显示信息。
12864是一款通用的液晶显示屏,能够显示多数常用的汉字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果。
方案二:
采用四个LED发光二极管显示,其成本低,简单明了,容易显示控制。
综合以上方案,我们选择了经济实惠LED来作为速度级别显示。
3硬件系统的设计与实现
3.1步进电机
3.1.1步进电机概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
使用多相步进电动机,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。
每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;
连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。
3.1.2步进电机的特性
步进电机转动使用的是脉冲信号,而脉冲是数字信号,这恰是计算机所擅长处理的数据类型。
从20世纪80年代开始开发出了专用的IC驱动电路,今天,在打印机、磁盘器等的OA装置的位置控制中,步进电机都是不可缺少的组成部分之一。
总体上说,步进电机有如下优点:
1.不需要反馈,控制简单。
2.与微机的连接、速度控制(启停和反转)及驱动电路的设计比较简单。
3.没有角累积误差。
4.停止时也可保持转距。
5.没有转向器等机械部分,不需要保养,故造价较低。
6.即使没有传感器,也能精确定位。
7.根椐给定的脉冲周期,能够以任意速度转动。
但是,这种电机也有自身的缺点:
1.难以获得较大的转矩
2.不宜用作高速转动
3.在体积重量方面没有优势,能源利用率低。
4.超过负载时会破坏同步,高速工作时会发出振动和噪声。
3.1.3步进电机的种类
目前常用的步进电机有三类:
表1步进电机分类
类别
结构
步距
力矩
动态性能
反应式步进电动机(VR)
采用高导磁材料构成齿状转子和定子
小
较差
永磁式步进电动机(PM)
转子采用多磁极圆筒形的永磁铁,其外侧配置齿状定子吸引和排斥力产生转动
大
好
混合步进电动机(HB)
这是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构
3.1.4永磁步进电机的控制原理
在本设计以常用的永磁式步进电机为例,用单片机控制步进电机。
图2-1是CZ-2801型永磁步进电机的外形图,图2-2是该电机的接线图。
图2-1CZ-2801型永磁步进电机外形图图2-2CZ-2801型永磁步进电机接线图
从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、BC或/AC、/BC,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、B或/A、/B轮流接地。
不难设计出控制电路,因其工作电压为12V,因此用一块开路输出达林顿驱动器(这里用ULN2003,关于ULN2003将在后面介绍)作为驱动,通过P1.0、P1.3来控制各线圈的接通与切断。
开机时,P1.0、P1.3均为高电平,依次将P1.0、P1.2(或P1.1、P1.3反向)切换为低电平即可驱动步进电机运行。
如果要改变电机的转动速度只要改变两次接通之间的时间。
改变转速,只要改变P1.0、P1.2(或P1.1、P1.3反向)轮流变低电平的时间即可达到要求,因为不会影响到其他功能的实现,这个时间可以用延时来实现,。
这里以定时的方式来实现。
下面首先计算一下定时时间。
按要求,最低转速为20转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为960脉冲/分,相当于62.5ms/脉冲。
而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。
可以列出下表:
表2-2步进电机转速与定时器定时常数关系
转速
单步时间(ms)
TH0
TL0
20
62.5
1F
21
59.52380952
29
B6
22
56.81818182
33
74
23
54.34782609
3C
59
24
52.08333333
44
80
25
50
4C
26
48.07692308
52
EC
27
46.2962963
55
28
44.64285714
5F
49
…
93
13.44086022
CF
9C
94
13.29787234
D0
95
13.15789474
A1
96
13.02083333
D1
97
12.88659794
9B
98
12.75510204
D2
14
99
12.62626263
8B
100
12.5
D3
表中不仅计算出了TH0和TL0,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。
表中TH0和TL0是根据定时时间算出来的定时初值,这里用到的晶振是12.000M。
有了上述表格,程序就不难实现了,使用定时/计数器T0为定时器,定时时间到后切换输出脚即可。
3.2步进电机控制系统的组成
步进电机控制系统共分为五个模块:
单片机最小系统模块、键盘控制模块、LED指示模块、步进电机驱动模块和电源模块。
1.单片机最小系统主要由复位电路和时钟电路组成。
复位电路为单片机系统提供可靠复位,使单片机能正常启动。
时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。
2.键盘控制模块包括方向控制键、加速键和减速键、启停键,分别与单片机的P3.4、p3.5、p3.6和P3.7相连。
实现对步进电机的控制。
3.四个LED发光二极管显示步进电机的速度等级。
分成四个等级,四个LED全亮速度最快,亮一个速度最慢。
4.步进电机驱动模块选用七个NPN达林顿连接晶体管ULN2003为步进电机提供脉冲信号,驱动步进电机转动。
该模块与单片机的P1.0—P1.3相连。
5.电源模块3接5号电池4.5V分别供给驱动模块和单片机模块。
3.3主控制模块
单片机最小系统包括单片机、复位电路、时钟电路构成。
STC89C52单片机的工作电压范围:
4V-5.5V,所以通常给单片机外界5V直流电源。
连接方式为单片机中的40脚VCC接正极5V,而20脚VSS接电源地端。
复位电路就是确定单片机的工作起始状态,完成单片机的启动过程。
单片机接通电源时产生复位信号,完成单片机启动确定单片机起始工作状态。
当单片机系统在运行中,受到外界环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。
本设计采用的是外部手动按键复位电路,需要接上上拉电阻来提高输出高电平的值。
时钟电路好比单片机的心脏,它控制着单片机的工作节奏。
时钟电路就是振荡电路,是向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器。
如采用外部时钟源驱动器件,XTAL2应不接。
因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us。
主控制最小系统电路如图2所示。
图2单片主控电路
3.3.1STC89C52单片机简介
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
这一模块以单片机为中心把程序代码烧进去然后外围接上复位电路、振荡电路、键盘控制、LED显示电路、报警电路等子模块。
3.3.2单片机的引脚功能描述
下面对AT89C52各引脚的功能进行较为详细的介绍:
1)电源引脚Vcc和Vss
Vcc(40脚):
电源端为+5VVss(20脚):
接地端。
2)时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):
接外部晶体和微调电容的一端。
在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时针电路时,该引脚输入外时钟脉冲。
要检查89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):
接外部晶体和微调电容的另一端。
在片内,它是振荡电路反向放大器的输入端。
在采用外部时钟时,该引脚必须接地。
3)控制信号脚RSTALEPSEN和EA。
RST(9脚):
RST是复位信号输入端,高电平有效。
在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30引脚):
地址锁存允许信号端。
当AT89C52上电正常工作后,ALE引脚不断向外输出正脉冲信号。
此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。
平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。
如果你想看一下AT89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则AT89C52基本上是好的。
ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。
PSEN(29脚);
程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引脚接ERROM的OE端。
PSEN端有效,即允许读出ERROM/ROM中的指令码。
CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。
不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。
要检查一个AT89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。
如有,说明基本上工作正常。
EA/VPP(31脚):
外部程序存储器地址允许输入端/固化编程电压输入端。
当EA引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。
但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。
当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。
如果使用有片内ROM的AT89C52,外扩ERROM也是可以的,但也要使EA接地。
4)I/O(输入/输出端口,P0,P1,P2,P3)
P0口:
P0口是一个漏极开路的8位准双向I/O端口。
P1口:
8位准双向I/O端口。
P2口:
即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。
P3口:
双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。
见表1。
表1P3口的第二功能表
引脚
第二功能
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(外部存储器读写通)
3.3.3单片机的时钟电路与复位电路设计
本系统采用stc系统列单片机,相比其他系列单片机具有很多优点。
本系统采用内部方式的时钟电路和加电自复位的复位电路,如下图3图4所示:
图3时钟电路
图4复位电路
由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻R6。
3.4电源电路设计
供电电源采用3接1.5V干电池给传感器,单片机供电。
电路如图5所示。
P2为电源接线端,SW1为电源总开关。
D4为电源指示灯。
图5电源电路
3.5步进电机驱动电路
步进电机采用ULN2003驱动,驱动原理图如图6。
图6蜂鸣器报警电路图
3.6按键电路
系统采用了4个,一个启动键,一个停止键,一个速度调节键,一个正反转切换键。
电路如图7。
图7按键电路
3.7速度等级指示灯电路
速度等级采用LED指示灯指示。
接口电路如图8所示
图8指示电路
4软件系统的设计与系统功能实现
4.1软件设计原则及编程思路
应用系统中的应用软件是根据系统功能要求设计的,应稳定正确的实现系统的各种功能。
在本系统中,软件设计要求做到以下几点:
1.软件结构清晰,简捷,流程合理。
2.各功能程序实现模块化。
这样,即便于调试,链接,又便于移植,修改。
3.程序存储区,数据存储区要合理规划,既能节约内存容量,又使操作方便。
4.运行状态实现标志化管理。
各个功能程序运行状态,运行结果以及运行要求都要设置状态标志以便查询,程序转移,控制都可通过状态标志条件来控制。
4.2程序设计前期准备
4.2.1程序设计平台
考虑到程序的易读性和简练,程序设计采用C语言。
程序编辑平台采用Keil。
图3-1Keil软件界面
4.2.2程序设计思路
步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。
在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功能。
定时器0中断服务程序控制步进电机的转动:
根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;
根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。
说明如下:
1.单片机接受键盘信息,改变系统内部变量值。
2.单片机输出脉冲信号,控制步进电机转动。
3.单片机根据步进电机实际转动值,控制数码管显示。
4.3程序流程图
4.3.1主程序流程图
步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图3-2所示:
图3-2步进电机控制系统主程序流程图
系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。
初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。
然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。
4.3.2读键盘子程序流程图
首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。
延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;
如果相等则表明确实有键按下。
执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。
图3-3扫描键盘字程序流程图
4.3.3键盘处理子程序流程图
按键处理子程序流程图如图3-3所示:
图3-3键盘处理子程序流程图
步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。
4.3.4电机控制中断程序流程图
定时器中断0服务程序流程图如图3-4所示:
图3-4定时器中断0服务程序流程图
定时器中断0服务程序的中断时间由当前的转速决定。
进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。
然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。
最后恢复现场,返回,等待下次中断。
通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;
通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。
各模块控制的详细程序附于最后。
5调试与改进
5.1调试与改进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制系统