二相步进电机控制系统的设计采用双极性控制课程设计任务书 推荐Word文档下载推荐.docx
《二相步进电机控制系统的设计采用双极性控制课程设计任务书 推荐Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二相步进电机控制系统的设计采用双极性控制课程设计任务书 推荐Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
5.3显示模块流程分析与设计14
6调试记录及结果分析15
6.1总体硬件仿真设计15
6.2调试与仿真结果分析16
小结与心得体会18
参考文献19
附录1:
20
附录2:
摘要
步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。
目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。
分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;
软件环形分配器要占用主机的运行时间,降低了速度;
专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
本控制系统的设计方案,以单片机为核心,辅以驱动电路,完成二相步进电机的控制。
本次设计的硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块的设计,软件部分由几个模块控制子程序分别控制硬件模块的运行,最终实现对步进电机转动方向及转动模式(四拍,八拍)的控制,并且将步进电机的步进数动态显示在LED数码管上。
关键词:
步进电机单片机控制LED
二相步进电机控制系统的设计
1设计任务及要求的分析
设计的步进电机控制系统要求有以下功能:
1.二相步进电机采用双极性(H桥)控制;
2.用K1作为通电方式选择键,可选择四拍和八拍;
3.用K2作为启动/停止控制键,闭合表示启动,断开表示停止;
4.用K3作为正反转控制键,开关闭和表示反转,断开表示正转;
5.用K4作为加速控制键,闭合时电机加速运转;
6.用K5作为减速控制键,闭合时电机减速运转;
7.用4位LED数码管显示工作步数;
8.用3个发光二极管显示状态:
正转时红灯亮,反转时黄灯亮,不转时绿灯亮。
本次设计需要对二相步进电机进行双极性控制,使其能在控制下进行正转、反转和停
止,同时利用数码管和二极管分别显示其工作步数和工作状态。
由于控制功能较为复杂,所以本系统需要采用单片机以及驱动模块进行设计。
2方案比较及认证
2.1单片机选型
单片机以其体积小、功能齐全、价格低廉、可靠性高等优点,在各个领域都获得了广泛的应用,在我国,近几年单片机也得到了广泛的应用特别是在工业控制、智能仪表等方面。
单片机种类繁多,目前市场上常用的单片机有51系列,AVR系列与PIC系列等。
MCS-51系列运算与寻址能力强、存储空间大、片内集成外设丰富、功耗低等。
其中大部分兼容芯片有Flash,价格便宜,常用于仪器仪表、测控系统、嵌入式系统开发。
ATMEL公司的AVR单片机是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便.AVR单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力.AVR单片机工作电压为2.7~6.0V,可以实现耗电最优化.AVR的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。
PIC系列单片机:
PIC系列单片机的主要产品是PIC16C系列和17C系列8位单片机,CPU采用RISC结构,分别仅有33,35条指令,采用Harvard双总线结构,运行速度快,低工作电压,低功耗,较大的输入输出直接驱动能力,价格低,一次性编程,小体积。
适用于用量大,档次低,价格敏感的产品。
在办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制不同领域都有广泛的应用,PIC系列单片机在世界单片机市场份额排名中逐年提高,发展非常迅速。
比较这三种类型的单片机,MCS-51系列单片机以抗干扰能力强、对环境要求不高、灵活性强等别的系统所不具备的优点被广泛使用。
即使非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。
由于本次设计的所要实现的功能并不复杂,鉴于成本考虑,选用便宜而常用的MCS-51系列较为合适。
本次设计采用其中低功耗型80C51单片机。
2.2驱动模块选择
驱动模块常用有uln2003a和L298,考虑到二相步进电机需采用双极性控制,故电机的驱动模块使用芯片L298实现,接线简洁,稳定性好。
3系统实现的原理说明
本次课程设计系统以单片机80C51为核心进行设计,单片机与按键、数码管、发光二极管、L298驱动模块相连接,人为操作按键,在程序控制下,单片机将通过驱动模块控制步进电机转动,并使数码管和发光二极管分别显示步进电机的工作步数和状态。
系统的总体原理框图如下所示:
图3-1系统总体原理框图
本系统以单片机80C51为核心的控制系统,由P1口进行开关按键的设置,具体为:
P1.2接K5减速开关,开关闭合时作用,低电平有效;
P1.3接K4加速开关,开关闭合时作用,低电平有效;
P1.4接K3正/反转开关,高电平为正转,低电平为反转;
P1.5接K2启动/停止开关,高电平为停止状态,低电平为启动状态;
P1.6和P1.7接K0单刀双掷开关,用于控制工作模式的选择,P1.6接八拍,P1.7接四拍。
P3口与P0口外接4位LED数码管,显示步进步数,通过控制P3口的电平信号,达到片选的目的,进而实现4位数值的显示。
P0口作为输出口外接LED的A~G以及DP。
另外P2.4接绿色发光二极管,使其在电机停转时亮;
P2.5接红色放光二极管,使其在电机正转时亮;
P2.6接黄色发光二极管,使其在电机反转时亮。
P2外接驱动电路L298的4个输入端,具体为P2.0接IN1,P2.1接IN2,P2.2接IN3,P2.3接IN4。
这样即可通过控制单片机的P2口输出电平来实现二相步进电机的启动,停止,正反转以及四拍,八拍运转。
具体工作过程需通过对单片机编程来实现。
电路图如下所示
图3-2系统电路原理图
4硬件设计说明
4.1单片机系统原理分析
80C51是MCS-51系列单片机中CHMOS工艺的一个典型品种。
其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。
该系列单片机是采用高性能的静态80C51设计,由先进CMOS工艺制造,并带有非易失性Flash程序存储器,全部支持12时钟和6时钟操作,P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM、32条I/O口线、3个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行I/O口、可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。
其主要结构组成如下:
1.中央处理器(CPU)
2.内部数据存储器(内部RAM)
3.内部程序存储器(内部ROM)
4.定时器/计数器
5.并行I/O口
6.串行口
7.时钟电路
8.中断系统
9.外接晶体引脚
图4-180C51单片机管脚图
单片机管脚如图4-1所示,下面对其各个管脚进行必要的说明。
P0、P1、P2、P3口的电平与CMOS和TTL电平兼容。
P0口的每一位口线可以驱动8个LSTTL负载。
在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;
当作为地址/数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。
P1、P2、P3口的每一位能驱动4个LSTTL负载。
它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。
当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。
这时,P3口作为第二功能使用。
P3.0:
RXD(串行口输入);
P3.1:
TXD(串行口输出);
P3.2:
外部中断0输入;
P3.3:
外部中断1输入;
P3.4:
T0(定时器0的外部输入);
P3.5:
T1(定时器1的外部输出);
P3.6:
(片外数据存储器“写”选通控制输出);
P3.7:
(片外数据存储器“读”选通控制输出)。
EA/VPP
:
访问程序存储器控制信号,当其为低电平时,对ROM的读操作限定在外部的程序存储器,当其为高电平时,对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器。
ALE/PROG
编程脉冲
PSEN
外部程序存储器读选通信号,在读外部ROM时PSEN是低电平有效,以实现对ROM的读操作。
RST/VPD
复位信号,当输入信号延续2个周期以上的高电平有效,用以完成单片机复位初始化操作。
XTAL
时钟晶振输入端。
本系统设计中所用P1~P3全部当做IO口用。
4.2二相步进电机工作原理分析
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机一般分为永磁式(PM)、反应式(VR)和混合式(HB)3种类型。
目前,二相混合式步进电机的应用最为广泛。
图4-3为二相六线式步进电机的工作原示意图。
由图可知,它有2个绕组,且每个绕组都有一个中间抽头。
因此,二相步进电机也就有了6根引线。
当电机中的绕组通电后,其定子磁极产生磁场,将转子吸合到相应的磁极处。
若绕组在控制脉冲的作用下,通电方向使定子在顺时针方向轮流产生磁场,则电机可顺时针转动;
通电方向使定子在逆时针方向轮流产生磁场,则电机可逆时针转动。
控制脉冲每作用一次,通电方向就变化一次,使电机转动一步,即一个步距角。
脉冲频率越高,电机转动也就越快。
本次课设所使用的二相步进电机需要采用双极性的接法。
双极性则是指步进电机线圈中电流的流动方向不是单向的,即绕组线圈中的电流有时沿某一方向流动,有时按相反方向流动。
步进电机的双极性驱动电路如图4-4所示它使用8个晶体管来驱动2组相位。
双极性驱动电路可以同时驱动四线式或六线式的二相步进电机。
对于二相六线式步进电机而言,2个绕组的中间抽头Vdd1和Vdd2都悬空。
根据步进电机的工作原理,当控制器给驱动器发出脉冲信号时,驱动器经过环形分配器和功率放大后,电机绕组通电的顺序为
其4个状态按顺序周而复始进行变化,电机转动;
若通电时序就变为
时,电机就逆向转动。
步进电机运转时,当达林顿管Q1和Q4导通时,线圈中电流方向为A→
;
当达林顿管Q2和Q3导通时,线圈中电流方向为
→A。
可见,步进电机线圈中的电流方向在运转过程中是不断改变的。
图4-3二相步进电机原理图
图4-4双极性驱动电路
任务要求需要对二相步进电机进行四拍,八拍的控制。
其两者的区别在于通电时序的不一样,四拍的通电方式为:
,而八拍需要在此基础上进行细分,其通电方式为:
。
由对应的通电方式,在结合图4-4,便可以得到对应的单片机管脚P2.0,P2.1,P2.2,P2.3的电平变化情况,绘制出步进电机的四拍,八拍控制方式表格。
如下表4-1和表4-2所示:
表4-1步进电机四拍控制通电方式
时序
单片机管脚位
通电的线圈
对应二进制数
转换16进制数
P2.3
P2.2
P2.1
P2.0
1
0010
02H
2
1000
08H
3
0001
01H
4
0100
04H
表4-2步进电机八拍控制通电方式
1010
0AH
1001
09H
5
6
0101
05H
7
8
0110
06H
由上述所得表格,便可以通过控制单片机I/O口输出高低电平变化来实现步进电机的四拍,八拍运转。
在编写程序时,设置好控制字,在I/O口做循环输出,便实现了单片机对步进电机的控制。
由于单片机单独带负载能力较差,步进电机与单片机之间需要接入步进电机的驱动电路L298。
4.3L298驱动电路设计
由课题任务要求可知,二相步进电机需采用双极性(H桥)控制,故考虑使用芯片L298来驱动步进电机。
L298N为双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;
此芯片可直接由单片机的IO端口来提供模拟时序信号。
在接入步进电机时,OUTl,OUT2,OUT3,OUT4接二相步进电机的
,二相步进电机的对应管脚以图4-5为准,IN1~IN4接单片机的I/O口,用来控制单片机的正反转以及四拍,八拍通电方式。
芯片的内部结构如下图4-5所示:
图4-5L298内部结构图
由图4-5可以看出,L298内部集成有2个H桥路,对应的输入接口为:
IN1位P2.0,IN2为P2.1,IN3为P2.2,IN4为P2.3。
对应的输出接口为:
OUT1接
,OUT2接
,OUT3接
,OUT4接
PROTUS仿真图为:
图4-6驱动电路PROTUS仿真图
4.4四位LED数码管显示设计
任务要求需采用4位LED数码管显示工作步数,通过查阅相关资料,在仿真时采用型号7SEG-MPX4-CC共阴极数码管显示。
其PROTUS仿真图如下所示:
图4-7数码管显示仿真图
单片机的P0口接数码管输入管脚ABCDEFG以及DP(可以不用),P3口接4位数码管的片选端口1234,7段数码管对应的显示数值与输入信号的关系可以由下表得到。
表4-3七段数码管显示功能表
单片机管脚输入
显示
十六进制
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
A
B
C
D
E
F
G
O
3FH
5BH
4FH
66H
6DH
7DH
07H
7FH
9
6FH
由上表可以得到显示数字与单片机管脚输入信号的对应关系。
只需要控制单片机的P0口输出信号即可显示数字,在程序设计中,定义7段显示数组为ucharseg[]={0x3f,0x06,
0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
即可使数码管显示数字。
5软件设计说明
5.1总体流程分析与设计
软件模块的分析需要根据硬件电路的设计来进行,基于上述硬件电路的分析设计,对整个程序流程需要有个整体的思考与判断。
由硬件电路的设计可以看出,程序需要实现以下几个功能:
通过开关实现电机的启用与停止,正转与反转,加减速,以及四拍、八拍的运行方式;
由4位LED数码管实现步进步数的显示;
3个发光二极管显示电机的运行状态。
程序设计的总体思想是单片机通过判断按键输入电平变化从而选择正反转,加减速,以及四八拍的工作方式。
主程序流程图如图5-1所示。
图5-1主程序流程图
5.2设置电机转动模式流程分析与设计
由硬件电路可知,电机的转动由开关K1~K5来控制,K1为单刀双掷开关,用于工作模式四八拍的选择,低电平有效;
K2为单刀单掷开关,用于启动和停止的选择,开关闭合表示启动,此时为低电平,相反开关断开表示停止,此时为高电平;
K3为单刀单掷开关,用于电机正反转的选择,开关闭合时表示电机正传,此时为低电平,相反开关断开表示电机反转,此时为高电平;
K4为单刀单掷开关,用于电机加速的选择,开关闭合表示电机加速,此时为低电平;
K5为单刀单掷开关,用于电机减速的选择,开关闭合表示电机减速,此时为低电平。
我们通过80C51读入这六位控制字,存放在变量temp中。
对应temp值如下表所示。
表5-1控制字及与转动方式对应表
K1
K2
K3
K4
K5
temp
转动方式
0
1
54H
正向四拍加速
94H
正向八拍加速
44H
反向四拍加速
84H
反向八拍加速
58H
正向四拍减速
98H
正向八拍减速
48H
反向四拍减速
88H
反向八拍减速
5CH
正向四拍常速
9CH
正向八拍常速
4CH
反向四拍常速
8CH
反向八拍常速
对应程序段如下
voidkeyscan()
{
uchartemp;
while(k2){mode=0;
step=0;
P2=0xef;
}//停止,绿灯亮;
led_green=1;
//启动,绿灯灭;
temp=P1&
0xfc;
//P1口取高六位有效;
switch(temp)
{
case0x54:
mode=1;
break;
//正向四拍加速运行;
case0x94:
mode=2;
//正向八拍加速运行;
case0x44:
mode=3;
//反向四拍加速运行;
case0x84:
mode=4;
//反向八拍加速运行;
case0x58:
mode=5;
//正向四拍减速运行;
case0x98:
mode=6;
//正向八拍减速运行;
case0x48:
mode=7;
//反向四拍减速运行;
case0x88:
mode=8;
//反向八拍减速运行;
case0x5c:
mode=9;
//正向四拍常速运行;
case0x9c:
mode=10;
//正向八拍常速运行;
case0x4c:
mode=11;
//反向四拍常速运行;
case0x8c:
mode=12;
//反向八拍常速运行;
}
}
5.3显示模块流程分析与设计
由硬件部分分析可知,Led数码管有4个管脚读入片选信号,8个管脚读入控制信号。
本部分程序首先要对当前的步数值进行位数分离,将个、十、百、千位分别提取出来,然后通过片选信号选择位数读入控制字,依次进行显示。
由于单片机的计算过程非常快,我们还设置了延时程序,并且与步进电机同步,显示一步的时间与步进电机走一步的时间相同,所以看起来各位是同时显示的。
voiddisplay(uintnum)
ucharqian,bai,shi,ge,t;
qian=num/1000;
bai=(num/100)%10;
shi=(num/10)%10;
ge=num%10;
//分离出每一位;
for(t=num_speed;
t>
0;
t--)
P0=seg[qian];
//千位;
wela1=0;
delayms(5);
wela1=1;
P0=seg[bai];
//百位;
wela2=0;
wela2=1;
P0=seg[shi];
//十位;
wela3=0;
wela3=1;
P0=seg[ge];
//个位;
wela4=0;
wela4=1;
6调试记录及结果分析
6.1总体硬件仿真设计
硬件设计模块完成了对系统电路图的设计,软件模块由程序实现了各项功能;
接下来需要将软件与硬件结合起来才能真正完成整个设计工作。
我们采用的是PROTEUS仿真软件得到了系统的硬件图,参见附录1;
使用Keil软件的集成环境调试程序,程序代码清单参见附录。
在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统设计之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。
本系统的设计思路为:
首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。
6.2调试与仿真结果分析
在硬件调试的过程中,遇到了很多问题。
主要有:
键盘部分设计时,开始统一用了单刀双掷开关K1~K6来控制,在多次运行过程