二相步进电机控制系统的设计40采用双极性控制41课程设计任务书.docx
《二相步进电机控制系统的设计40采用双极性控制41课程设计任务书.docx》由会员分享,可在线阅读,更多相关《二相步进电机控制系统的设计40采用双极性控制41课程设计任务书.docx(30页珍藏版)》请在冰豆网上搜索。
二相步进电机控制系统的设计40采用双极性控制41课程设计任务书
二相步进电机控制系统地设计(采用双极性控制)
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
二相步进电机控制系统地设计(采用双极性控制)
初始条件:
设计一个二相步进电机控制系统,电机有两组带中心抽头地线圈,要求系统具有如下功能:
采用双极性(H桥)控制(不使用线圈地中心抽头),用K0-K1做为通电方式选择键,K0为四拍,K1为八拍,K2为启动/停止控制、K3方向控制、K4加速、K5减速;用4位LED数码管显示工作步数.用3个发光二极管显示状态:
正转时红灯亮,反转时黄灯亮,不转时绿灯亮;
要求完成地主要任务:
1.硬件设计:
系统总原理图及各部分详细原理图
2.软件设计:
系统总体流程图、步进电机四拍,八拍各模块流程图、显示模块流程图等
3.编写程序:
能够完成上述任务并用仿真软件演示
4.完成符合要求地设计说明书
时间安排:
2013年6月24日~2013年7月4日
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
步进电机广泛应用于对精度要求比较高地运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等.目前,对步进电机地控制主要有由分散器件组成地环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等.分散器件组成地环形脉冲分配器体积比较大,同时由于分散器件地延时,其可靠性大大降低。
软件环形分配器要占用主机地运行时间,降低了速度。
专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高.
本控制系统地设计方案,以单片机为核心,辅以驱动电路,完成二相步进电机地控制.本次设计地硬件部分主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块地设计,软件部分由几个模块控制子程序分别控制硬件模块地运行,最终实现对步进电机转动方向及转动模式(四拍,八拍)地控制,并且将步进电机地步进数动态显示在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
0
0
1
0
0010
02H
2
1
0
0
0
1000
08H
3
0
0
0
1
0001
01H
4
0
1
0
0
0100
04H
表4-2步进电机八拍控制通电方式
时序
单片机管脚位
通电地线圈
对应二进制数
转换16进制数
P2.3
P2.2
P2.1
P2.0
1
0
0
1
0
0010
02H
2
1
0
1
0
1010
0AH
3
1
0
0
0
1000
08H
4
1
0
0
1
1001
09H
5
0
0
0
1
0001
01H
6
0
1
0
1
0101
05H
7
0
1
0
0
0100
04H
8
0
1
1
0
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
1
1
1
1
1
1
0
O
3FH
0
1
1
0
0
0
0
1
06H
1
1
0
1
1
0
1
2
5BH
1
1
1
1
0
0
1
3
4FH
0
1
1
0
0
1
1
4
66H
1
0
1
1
0
1
1
5
6DH
0
0
1
1
1
1
1
6
7DH
1
1
1
0
0
0
0
7
07H
1
1
1
1
1
1
1
8
7FH
1
1
1
1
0
1
1
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
0
1
0
1
54H
正向四拍加速
1
0
0
1
0
1
94H
正向八拍加速
0
1
0
0
0
1
44H
反向四拍加速
1
0
0
0
0
1
84H
反向八拍加速
0
1
0
1
1
0
58H
正向四拍减速
1
0
0
1
1
0
98H
正向八拍减速
0
1
0
0
1
0
48H
反向四拍减速
1
0
0
0
1
0
88H
反向八拍减速
0
1
0
1
1
1
5CH
正向四拍常速
1
0
0
1
1
1
9CH
正向八拍常速
0
1
0
0
1
1
4CH
反向四拍常速
1
0
0
0
1
1
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。
break。
//正向八拍加速运行;
case0x44:
mode=3。
break。
//反向四拍加速运行;
case0x84:
mode=4。
break。
//反向八拍加速运行;
case0x58:
mode=5。
break。
//正向四拍减速运行;
case0x98:
mode=6。
break。
//正向八拍减速运行;
case0x48:
mode=7。
break。
//反向四拍减速运行;
case0x88:
mode=8。
break。
//反向八拍减速运行;
case0x5c:
mode=9。
break。
//正向四拍常速运行;
case0x9c:
mode=10。
break。
//正向八拍常速运行;
case0x4c:
mode=11。
break。
//反向四拍常速运行;
case0x8c:
mode=12。
break。
//反向八拍常速运行;
}
}
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。
delayms(5)。
wela2=1。
P0=seg[shi]。
//十位。
wela3=0。
delayms(5)。
wela3=1。
P0=seg[ge]。
//个位。
wela4=0。
delayms(5)。
wela4=1。
}
}
6调试记录及结果分析
6.1总体硬件仿真设计
硬件设计模块完成了对系统电路图地设计,软件模块由程序实现了各项功能;接下来需要将软件与硬件结合起来才能真正完成整个设计工作.我们采用地是PROTEUS仿真软件得到了系统地硬件图,参见附录1;使用Keil软件地集成环境调试程序,程序代码清单参见附录.在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现地情况进行分析,看是否能够达到系统设计之初所设想地效果,如达不到则重新修改系统地硬件结构或者修改软件地程序部分,直到达到设计需要为止.本系统地设计思路为:
首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统.
6.2调试与仿真结果分析
在硬件调试地过程中,遇到了很多问题.主要有:
键盘部分设计时,开始统一用了单刀双掷开关K1~K6来控制,在多次运行过程中发现这种设计存在一定问题,比如四八拍模式地选择,若是在运行电路前同时闭合了这两个开关,就会造成系统紊乱,故将其改换为一个单刀双掷开关,这样地话一次就只能选择一种模式运行.
在步进电机与驱动电路地连接中,需要准确地接好各个管脚,因为程序里地控制字对应着这些管脚电平地变化,不能随便接,单片机地输出口与驱动电路地输出口也需要一一对应,否则电机无法按正常地设计运转.
经过调试以及对仿真电路图及程序地改正,系统得以实现任务地要求,对步进电机进行控制,仿真成功.在此截取若干仿真图进行说明.
图6-1为电机正转时地仿真图,电机顺时针旋转,红灯亮.
图6-2为电机反转时地仿真图,电机逆时针旋转,黄灯亮.
图6-3为电机停止时仿真图,绿灯亮.
图6-1步进电机正向常速运