基于FPGA的步进电机控制系统设计.docx
《基于FPGA的步进电机控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的步进电机控制系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于FPGA的步进电机控制系统设计
摘要
步进电机作为执行元件是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
本文以四相六线步进电机为控制对象,在分析步进电机的特点和工作原理的基础上,选用型号为TS3103TC100-3的步进电机和型号为EP1K10T100-3的FPGA,来实现基于FPGA技术对步进电机系统的设计和控制。
本文提出了用型号为EP1K10T100-3的FPGA为核心的控制方法设计四相步进电机的外围驱动电路控制系统,并利用VHDL语言编写步进电机的控制时序电路,使用四个机械式按键对步进电机进行转速、方向等的控制,实现步进电机的加减速和常速步进角度的控制,步进电机最少转动1.8度。
而且系统的可移植性优越,可靠性强。
为了实现设计,按照FPGA设计流程进行编写和仿真实现,电路的设计和输入应用了VHDL编程语言,在QuartusII软件上进行了波形仿真,验证了设计的可行性并实现了步进电机的控制。
【关键词】步进电机、FPGA、VHDL、仿真
Abstract
Steppermotorastheactuatorisoneofthekeymechanicalandelectricalintegrationproducts,widelyusedinavarietyofautomaticcontrolsystems.Withthedevelopmentofmicroelectronicsandcomputertechnology,thesteppermotordemandgrowwitheachpassingday,hasbeenappliedinvariousfieldsofnationaleconomy.
Basedonthesixlinefourphasesteppermotorasthecontrolobject,basedonthecharacteristicsandworkingprincipleanalysisofsteppingmotor,theTS3103TC100-3modelforthesteppingmotorandthemodelfortheEP1K10T100-3FPGA,torealizetheFPGAtechnologytothedesignandthesteppermotorcontrolsystembasedon.ThispaperpresentscontrolmethodformodelFPGAEP1K10T100-3asthecoreofthedesignoffourphasestepmotordriveperipheralcircuitcontrolsystem,thecontrolcircuitandtheuseofVHDLlanguageofthesteppermotor,theuseoffourmechanicalbuttonstocontrolthesteppermotorspeed,direction,realizethesteppermotoraccelerationspeedandconstantspeedcontrolofstepangleofsteppingmotorrotation,atleast1.8degrees.Andthesystem'sportabilityadvantages,strongreliability.Inordertorealizethedesign,implementationandsimulationprograminaccordancewithFPGAdesignflow,designandinputcircuitusedintheVHDLprogramminglanguage,thewavesimulationintheQuartusIIsoftware,controltovalidatethefeasibilityofthedesignandimplementationofsteppermotor.
【Keywords】steppermotor、FPGA、VHDL、Simulation
一、绪论
1.1步进电机概述
步进电机的原型是起源于1830年至1960年间。
起初的步进电机是以控制系统为主,主要用于电话自动交换机和缺乏交流电的船舶等独立系统。
20世纪60年代后期,随着永磁材料和半导体技术的快速发展,步进电机的发展和应用领域也越来越广泛。
从发展的趋势来看,步进电机已经能和直流电动机,交流电动机等并列,成为电动机的一种基本类型了。
我国是从1958年才开始研究和制造步进电机的,当时只有些许高校才用步进电机开发研制步进电机产品。
60年代末,70年代初由于我国电子工业和数字控制技术的长足发展,步进电机的生产和研究才有所突破。
70年代中期步进电机也迎来了高速发展。
直至80年代后期,随着微处理器的在数控系统的应用,步进电机的发展有了更广阔的空间,新品种高性能的步进电机不断被研发出来[1]。
1.2课题研究背景及意义
步进电机的发展与计算机工业息息相关。
自从计算机外围设备中的小型直流电机被步进电机取代后,很快就促进了步进电动机的发展。
另外,微型计算机和数字控制技术的飞速发展,也使得步进电机的应用推广到其他领域,比如电加工机床、小功率机械加工机床、测量仪器、光学和医疗仪器以及包装机械等。
预计未来对步进电机的研究还会继续深入下去,研究电机与驱动的一体化,使步进电机体积更小,性价比更高,性能更优越。
在民用设备中大量使用,如:
家庭机器人,民用智能化设备。
当前,最具发展前景的就是混合式步进电机。
其有以下四个发展方向:
(1)继续走小型化的方向发展。
由于电动机应用领域的拓宽和各类整机的小型化,这就要求电动机本身也越来越小。
(2)把圆形电动机改成方形电动机。
因为方形电动机的力矩要比圆形的高30%--40%。
(3)对电动机进行整体设计,即把转自位置的传感器/相对编码器、减速齿轮/减
机与电动机本身综合在一起设计。
(4)向三相或五相电动机方向发展。
三相和五相电动机解决了目前广泛应用的二相
和四相电动机震动和噪音较大的缺点。
步进电机的步距值不受各种干扰因素的影响。
如电压的大小,电流的数值、波形、温度的变化等。
步进电机每走一步所转过的角度与理论步距之间总有一定的误差,从某一步到任何一步,也总有一定的累积误差,但是,每转一圈的累积误差为零,所以步距的累积误差不是长期的累积下去。
步进电机控制性能好,启动、停车、翻转都是在少数脉冲内完成,在一定的频率范围内运行时,任何运动方式都不会丢失一步。
所以,步进电机被广泛应用于数控机床上。
伴随着步进电机在发展中扮演的角色越来越重要,以及其高效,灵活和实用的特性使其发展更有前景,使得本课题研究更有意义[2]。
1.3本课题研究主要内容
由于现代自动化技术与智能技术的飞速发展,所以步进电机的应用也变得非常广泛。
同时,近年来,随着嵌入式技术的发展,PLD(可编程逻辑器件)在速度和集成度两方面得到了飞速提升。
由于它体积小、速度快、费用低、用户可对他进行读/写操作,应用领域也不断的扩大,越来越多的电子系统开始采用PLD来实现数字信号处理。
由此,本文提出了用型号为EP1K10T100-3的FPGA为核心的控制方法设计四相步进电机的外围驱动电路控制系统,并利用VHDL语言编写步进电机的控制时序电路,使用四个机械式按键对步进电机进行转速、方向等的控制,实现步进电机的加减速和常速步进角度的控制,步进电机最少转动1.8度。
而且系统的可移植性优越,可靠性强。
在设计方法上简单易行:
在FPGA步进电机的控制系统中减少了控制系统设计的工作量、大大缩短研制开发周期,和节约了开发费用,而且提高了控制系统的可靠性,具有较高的使用和推广价值[3]。
二、方案论证
2.1方案设计
2.1.1单片机控制系统方案
本实验采用四相六线步进电机,四相六线步进电机比较常见,它的等效电路如图2-1所示,它有4条信号引线A、
、B、
通过控制这4条引线上脉冲产生的时刻,即可控制步进电机的转动。
单片机控制步进电机原理图如图2-2所示,通过P1.4—P1.7来控制各线圈的接通与断开。
P1的4脚对应步进电机的A,P1的5脚对应
,P1的6脚对应B,P1的7脚对应
。
这4条驱动线通过ULN2003与单片机的P1.0—P1.3引脚相连。
图2-1步进电机的控制等效电路
图2-2步进电机与单片机连接原理图
2.1.2FPGA控制系统方案
如图2-3为FPGA控制步进电机原理图,图2-4为步进电机驱动原理图。
因其工作电压为24V,最大电流为0.3A,因此用“ULN2003”来做为驱动。
通过P1.4—P1.7来控制各线圈的接通与断开。
开机时P1.4—P1.7均为高电平,如将P1.4—P1.7切换为低电平则可驱动步进电机运行,但是在切换之前将前一个输出引脚变为高电平。
如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。
图2-3FPGA控制步进电机原理图
图2-4步进电机驱动电路原理图
2.2两类系统的选择
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA可以反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活[4][5]。
总的来说,基于FPGA要比基于单片机要快很多。
因为单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出响应,这每一步都是需要在单片机的时钟驱动下一步步的进行。
而基于FPGA则是把相应的逻辑暂时“固化”为硬件电路了,它对激励作出的响应速度就是电信号的传播速度,当然这指的是“异步逻辑”。
所以,本设计最终选择了更有发展优势的FPGA控制系统方案。
三、系统硬件描述与设计
3.1步进电机系统控制原理
系统原理框图如图3-1所示,以型号为EP1K10T100-3的FPGA芯片设计的步进电机驱动电路,与步进电机连接实现步进电机在步进角度、步进速度、正反转控制等方面的控制。
将程序输入电脑,对FPGA进行程序编译下载,将设计好的电路板与实验板FPGA连接测试所编程是否正确,是否可以正转,反转,以及改变转动角度和速度等。
图3-1系统原理框图
步进电机是将电脉冲转化为角位移和线位移的执行元件。
它并不是连续运行的而是以固定角度一步一步旋转的电动机,一般情况下每步旋转15°。
另外,角位移量可以通过控制脉冲个数来控制,从而达到准确定位的目的;电机的转速和加速度通过控制脉冲频率来达到调速的目的;同时也可以通过脉冲“相位”控制电机正反转。
步进电机可以正常启动,当光脉冲频率称为“空载启动频率”。
如果脉冲频率高于该值,电机不能正常启动,可能介入“失去”或“封锁”。
负载的情况下,启动频率应更低,如果你想要使电机达到高速转动,脉冲频率应该加快这一进程,启动频率较低,然后在一定的高频加速度。
步进电机运行速度较低,如果超过一定速度不能开始,伴随着吱吱声[6]。
3.2步进电机简介
步进电机的驱动可以选用专用的驱动模块,如L298N,FT5754等,这类驱动模块接口简单,操作方便,他们既可以驱动步进电机也可以驱动直流电机,本设计中我们使用“达林顿”驱动器ULN2003。
ULN2003具有电流增益高,温度范围宽,带负载能力强,工作电压高等特点,适应于各类要求高速大功率驱动的系统。
下面先介绍一下ULN2003芯片。
UNL2003芯片封装外形图如图3-2和内部结构图如图3-3、3-4所示:
该芯片是16脚七路电机驱动芯片,分直插式和贴片式。
其引脚端功能及符号如表3-1。
图3-2ULN2003芯片
图3-3ULN2003分直插式内部结构
图3-4ULN2003贴片式内部结构图
表3-1ULN2003引脚端符号及功能
引脚端序号
符号
功能
引脚端序号
符号
功能
1
1B
输入
9
COM
公共端
2
2B
输入
10
7C
输出
3
3B
输入
11
6C
输出
4
4B
输入
12
5C
输出
5
5B
输入
13
4C
输出
6
6B
输入
14
3C
输出
7
7B
输入
15
2C
输出
8
E
发射极
16
1C
输出
本设计用到的步进电机实物图如图3-5。
步进电机不像普通电机和直流电机一样可以在常规状态下使用,由表3-2可看出其工作电压为24V,最大电流为0.3A。
所以设计其电路时必须由双环形脉冲信号和功率驱动电路等组成控制系统。
如前面介绍它有A、
、B、
4条信号引线,通过控制这4条引线上脉冲产生的时刻从而控制步进电机的转动。
图3-5步进电机实物图
表3-2步进电机参数表
型号
TS3103TC100-3
步距角
1.8deg
相数
4
电压
24V
电流
0.3A
最大静转矩
6.5kg/cm
尺寸
φ56.4×50.8mm
3.3步进电机特点以及常见问题
3.3.1步进电机的特点
1、一般步进电机的精度为步进角的3-5%,且不累积。
2、步进电机温度高会使磁性材料的第一电机退磁,步进电机从而导致转矩下降甚至步调不一致,所以汽车外观允许最高温度应该取决于不同的退磁磁性材料;去磁磁材料,一般来说,有些130摄氏度以上,有的甚至高达200摄氏度以上,因此步进电机出现在80-90摄氏度温度完全正常。
3、步进电机转矩随转速的增加会减少。
当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反电动势就越大。
的作用下,电机频率(或速度)和相电流的减少,从而导致力矩下降。
4、步进电机低速可以正常运转,但如果超过一定速度无法开始,伴随着吱吱声。
步进电机有一个技术参数:
空载启动频率,步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能会丢失或阻塞。
在负载情况下,启动频率应更低。
如果你想要使电机达到高速转动,脉冲频率应该加速过程,即启动频率较低,然后在一定的高频加速度要(电机速度从低速到高速)。
步进电机以其显著的特点,在数字化制造的时代扮演了一个重要的目的。
随着数字技术的发展以及步进电机本身,提高技术、步进电机将会在更多领域的应用
3.3.2步进电机的常见问题
(1)振荡
振荡产生的原因有很多种,其中主要的原因有步进电机处于低频单步运行;步进电动机的换向频率和转子的特征频率、倍特征频率、分数特征频率相等;步进电机突然停车等状况。
另外,步进电机的工作态度也会产生振动现象。
(2)失步
步进电机失步一般有两种原因,一是因为转子的加速度慢于步进电机的旋转磁场,这时是因为输入电机的电能不足,从而引起失步;二是因为转子的平均速度高于定子磁场的平均旋转速度,这时是定子通电激磁的时间较长,大于转子步进一步所需的时间,则转子在步进过程中获得了过多的能量,从而产生振荡,当振荡足够严重时就会产生失步。
(3)阻尼方法
步进电机在运行中,振荡是它固有的特性,但也是在任何拖动系统中所不希望的。
所以,需要对振荡进行抑制。
抑制振荡的常用方法就是采用阻尼方法。
3.4运动速度的控制
正如前文所述,步进电机的启动频率应低于空载启动频率,因此本设计采用梯形图法对步进电机的加减速进行控制。
输入的脉冲频率决定了步进电机的转速。
如图3-6所示,T0—T1时段为步进电机启动过程,脉冲频率呈线性递增。
T1—T2为步进电机恒速运行阶段,输入脉冲频率不变。
T2—T3是停止过程,脉冲频率呈线性递减。
图3-6驱动步进电机的脉冲频率的变化规律
当改变输入脉冲的周期时,ABCD四相绕组脉宽将发生变化。
这就使电机转速发生变化,所以步进电机的运动速度与输入脉冲的频率成正比。
如果给步进电机发一个控制脉冲,它就转一步。
2个脉冲的间隔越短,步进电机就转得越快。
调整控制器发出的脉冲频率,就可以对步进电机进行调速。
脉冲分配波形图如图3-7所示。
图3-7脉冲分配波形图
3.5正转反转的控制
步进电机的正、反转控制可通过改变步进电机各绕组的通电顺序来实现,这一过程称为“脉冲分配”。
例如:
四相六线步进电机通电顺序为AB-BC-CD-DA-AB...则电机正转。
如果按反序换相通电,即:
步进电机通电顺序改为AD-DC-CB-BA-AD...则电机反转。
因此,可以通过FPGA输出的方向控制信号或经编程改变输出脉冲的顺序,从而改变各绕组的通电顺序来实现电机正反转的控制[7]。
3.6步进度数控制
如果给步进电机发一个控制脉冲,它就转一步,步进电机的角位移与输入的脉冲数成正比,因此可以用FPGA脉冲输出个数控制步进电机的角位移量,来实现对步进电机步进度数的控制[8]。
n=ΔL/δ
其中ΔL为步进电机的输出位移量(mm),δ为机构的脉冲当量(mm/脉冲)。
本系统中选用的步进电机是四相的,可工作于单4拍或单8拍方式。
显然,若使用单8拍的工作方式,每变换1次通电脉冲,电机转子所转过的角度是使用单4拍方式的一半。
本系统设计中选用单8拍的工作方式,所对应的步距角为1.8度。
对应的脉冲分配表如表3-3所列。
表3-3四相脉冲分配表
节拍编码
SMA
SMB
SMC
SMD
n
1
0
0
0
n+1
1
1
0
0
n+2
0
1
0
0
n+3
0
1
1
0
n+4
0
0
1
0
n+5
0
0
1
1
n+6
0
0
0
1
n+7
1
0
0
1
3.7FPGA逻辑功能结构及其总体设计
在本次设计中我们选用型号为EP1K10T100-3的FPGA——现场可编程门阵列,来实现对步进电机系统的设计及控制。
为了简化设计,实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列器件(FPGA)。
FPGA主要实现以下逻辑功能:
定时脉宽门控、计数测量、地址锁存、译码、总线的驱动和扩展以及数码显示的控制等功能。
FPGA器件选择Altera公司的EPF10K10LC84-4芯片。
该芯片有576个逻辑元件、72个LAB/CLB、3万多个逻辑门、6144个RAM。
每个I/O引脚可以选择为集电极开路输出,可以通过编程控制每个I/O引脚的速度以及I/O寄存器的使用。
FPGA按逻辑功能块的基本逻辑构造单元的大小,可分为细粒度结构和粗粒度结构;按互连结构根据FPGA内部的连线结构的不同,分为分段互连型和连续互连型两类;按编程特性根据采用的开关元件的不同,可分为一次编程型和可重复编程型。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA使用的开发软件为QuartusII,该软件属于MAX+PLUSII的升级版,性能方面得到更好的优化,深受用户的喜爱,它是Altera公司的综合FPGA开发软件。
该软件是一个支持原理图、VHDL设计输入、编译仿真集成环境。
QuartusII可以在计算机各种系统中完美运行,提供了自动逻辑综合工具,具有数字逻辑设计的全部特性[9]。
FPGA的一般设计流程图如图3-8所示。
图3-8FPGA的设计流程图
(1)设计输入
设计输入包括使用硬件语言HDL、状态图与原理图输入三种方式、VHDL设计是现今设计大规模数字集成电路的良好形式,除了IEEE标准的VHDL与VerilogDHL两种形式外,尚有各自FPGA厂家推出的专用语言,而远离输入在层顶设计、数据通路逻辑、手工最优化电路等方面具有图形化强、单元节俭、功能明确等特点。
(2)设计综合
综合,就是针对给定的电路实现功能和实现电路的约束条件,如速度、功耗、成本及电路类型等,通过计算机进行优化处理,获得一个能满足上述条件的电路设计方案。
(3)仿真验证
从广义上来讲,设计验证包括功能与时序仿真和电路验证。
仿真是指使用设计软件包对己实现的设计进行完整的测试,模拟实际物理环境下的工作情况。
(4)设计实现
实现可以理解为利用实现的工具把逻辑映射到目标器件结构的资源中,决定的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相关文件。
通常有转换、映射、布局与布线、时序提取和配置这五个步骤。
(5)时序分析
在设计实现的过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析:
而在布局布线之后,也要对实际布局布线的功能块延时和布线延时进行静态时序分析。
(6)下载验证
下载时在功能仿真与时序仿真正确的前提下,讲综合后形成的位流下载到具体的FPGA芯片中,也叫芯片配置。
FPGA设计有两种配置形式:
直接由计算机经过专用的下载电缆进行配置:
由外围配置芯片进行上电时自动配置。
因FPGA具有掉电信息丢失的性质,因此可在验证初期使用电缆直接下载位流,如有必要再将烧录配置芯片中。
四、系统程序设计
4.1VHDL语言
4.1.1VHDL简介
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用来描述数字系统的结构、行为、功能和接口。
除了含有许多语句与硬件特性,硬件描述语言(VHDL)语言形式和风格和语法的描述非常类似于通用计算机高级语言。
硬件描述语言(VHDL)程序结构特征是一个工程设计、或设计实体(可以是一个元素,一个电路模块或系统)分为外部(或可见部分,端口)和内部(或无形的部分),包括实体的内部函数和算法完成的部分。
在一个设计实体定义了外部界面,完成后,一旦内部发展的其他设计可以直接调用实体。
设计实体可以分为内部和外部的部分系统设计的重要点是硬件描述语言(VHDL)的概念[10]。
4.1.2VH