《EDA步进电机控制设计.docx》由会员分享,可在线阅读,更多相关《EDA步进电机控制设计.docx(17页珍藏版)》请在三一办公上搜索。
1、河南科技高教课程设计说明书课程名称EDA技术题目步进电机限制院级名师期姓老生导学班学指日车辆及动力工程学院EDA技术课程设计任务书班欲:姓名:学号:设计遨目:步进电机/制一、设计目的进一步巩固理论学问.培l所学理论学问在实际中的应用实力:与驭EDA设计的-般方法:熟识一种EDA牧ft.与取殷EDA系统的调试方法:利刖EDA软件设计一个电子技术综合向愿培育VHD1.编税、书力技术报告的实力.为以后进行工程实际向Ig的探讨打下设计基fi二、设计任务1)限制步进电机的启动和停止:2)限制步进电机的正转和反转;(3)电机速度可调并显示转速:三、设计央求(1)通过对相应文献的收集、分析以及总结,给出相应
2、课JS的背景、意义及现状探讨分析。(2)通过课甥设计.WK计算机如成原理的分析方法和设计方法。(3)学习按要求编写课程设计报告书,能正确阐述设计和试验结果.(4)学生应地皆严逆仔细的看法主动投入到课程设计过程中,仔细行向相应文献以及实现.给出个人分析、设计以及实现.四、设计时网支IE杳找相关资料(1天)、设计并绘IM系统原理图(2天)、循写VHD1.程序(2天)、调试(2天)、编写设计报告2天)和答辩(1天).1,江国强编著,EDA技术及好用(第三版).北京;电子工业出版社,2011.2 .白昕燕,周风臣.EDA技术试验及课程设计.北技:清华高校出版社、2006.53 .陶石主编.数字电子技术
3、基册.北京:岛等教化出版社.2003.4 MaikZwNinsk1.DigiialSysiemDesignwithVH凡。北京:电子工业出板社,20085 .AlanB.MarcOVitZlntrodUCtiOnU)IogiCDesign.北京:电子工业出版社,2003指导老师签字:年月日步进电机限制摘要随着电子技术的发展,现场可编程门阵列FPGA和困难可编程逻辑器件CP1.D的出现,使得电子系统的设计者利用及器件相应的电子设计软件,在试验室里就可以设计自己的专用集成电路ASIC器件。其中电子设计自动化(EDA)的关键技术之一就是叫以用硬件描述语言(HD1.)来描述硬件电路.VHD1.是用来描
4、述从抽象到详细级别饺件的工业标准语言,它是由美国国防部在80年头开发的HD1.,现在已成为IEEE承认的标准硬件描述语言。VHD1.支持硬件的设计、验证、综合和测i,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述实力强、生命周期长、支持大规模设计的分解和己有设计的再利用等优点.利用VHD1.这些优点和先进的EDA工具,依据详细的实际要求,招设计一个步进电机限制器电路。步进电机是种将电脉冲转化为角位移的执行机构。也就是当步进驱动罂接收到个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。现场可编程门阵列(FPGA)是对步进电机实现一体化限
5、制的忐向选择.目前,步进电机在限制系统中的应用越来越广泛,由此凸现了步进电机限制的重要性。本文简洁介绍步进电机的原理和特点,并依据步进电机的特性设计/基于FPGA的限制电路:以PwM变频来限制步进电机的转速。关键字:步进电机电机限制EM技术书目第一章绪论1.1步进电机简介步进电机是将电脉冲信号转变为角位移或线位移的开环限制元件,在非超载的状况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变更的影响,即给电机加一个脉冲信号,电机则转过个步距角.这线性关系的存在,加上步进电机只有周期性的误差而无累枳误差等特点。使得在速度、位置等限制领域用步进电机来限制变的特别的筒洁。不过步进
6、电机在限制的精度、速度变更能围、低速性能方面都不如传统的闭环限制的直流伺服电动机.在精度不是须要特殊高的场合就可以运用步进电机,1o2步进电机限制步进电机能够干脆将数字脉冲信号转化成为角位移,不须要八/D转换,所以被认为是志向的数控执行元件。1。2。1.步进电机的起动:步进电动机的最高起动频率(空毂起动频率一般为0。IKHZ到3-4KHz,而最高运行频率则可以达到6KHz0以超过最高起动频率的频率干脆起劲,将出现失步”现象,甚至无法起动.因此驱动步进电机时,应当先计算出电机不失步起动的最大频率,但其汁算过程涉及参量困难,鉴于我们对其详细理论了解有限,故不能精确计算出空载起动频率,实际应用对起动
7、段的处理是采纳按直线拟合的方法,即”阶梯升速法Z可按两种情困1.2.1阶弹升速起劲况处理,已知突跳频率则按突跳频率分段起动,分段数n=ff.未知突跳须率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)ZC=f8,即采纳8段拟合。在运行限制过程中,将起始的速度(频率)分为n分作为阶梯频率,采纳”阶梯升速法”将速度连续升到所须要的速度,然后锁定,按预置的曲线运行.如图所示。速度从VlTV2假如是线性增加,则按给定的斜率升/降速:假如是突变,则按阶梯升速法”处理。在此过程中要处理好两个问题:速度转换时间应尽量短;为缩短速度转换的时间,可以采纳建立数据表的方法,结合各曲线段的频率和各段间
8、的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为脉冲速率。通过在不同的阶段调用相应的脉冲速率,限制电机的运行.保证限制速度的精确性:要从一个速度精确达到另外一个速度,就要建立一个校验机制,以防超过或未达到所需速度。1。2。2。步进电机的换向:步进电机通电换相这一过程称为脉冲安排.例如:四相步进电机的八拍工作方式,其各相通电依次为A-ABB-BC-CCD-D-DA-A,通电限制脉冲必需严格依据这一依次分别限制A、B、C、D相的通断。假如按给定工作方式正序换相通电,步进电机正转,假如按反序通电换相,则电机就反转。步进电机换向时,肯定要在电机降速停止或降到突跳频率范围之内再换向,以免产
9、生较大的冲击而损坏电机。换向信号肯定要在前一个方向的最终一个CP脉冲结束后以及下一个方向的第个CP脉冲前发出.如图所示。对于CP脉冲的设计主要要求其有肯定的脉冲宽度(般不小J5s)、脉冲序列的匀称度及凹凸电平方式。脓呵丁十方向DIR卜Jg型速支_图1。2.2抉向信号是作用的时刻1.2.3.步进电机的转速限制:步进电机的加/减速限制,事实上就是限制触发脉冲的频率,两个脉冲的间隔长短,确定了步进电机的转速。升速时,使脉冲频率增高,减速时,使脉冲频率降低。调整触发脉冲须率,就可以对步进电机进行调速.其次章总体设计201步进电机驱动电路:步进电机的驱动电路如图所示,其驱动电路原理很简洁.从FPGA出来
10、的脉冲信.图2.1步进电机骅动电路号从JI接入按肯定的依次分别接到晶体管Q7“QlO的基极,输出端则有四个相应的信号输出,并接到电机的1、4、3、6脚(留意:电机引出了六根线,只有1、4、3、6才是真正接电机的四相输入,口分别接电机的A、B、C、D相)。设脉冲信号StoPI的输入信号是低电平,则输出就为高电平,相应的电机A相导通:反之,则A相不导通.以此类推,其余各相亦是如此.则电机在脉冲序列信号的作用下按预定方向转动,通过变更脉冲序列信号的快慢即频率来限制步进电机转速。2。2限制模块的设计:.总限制模块用YHD1.语言对FMA编程实现.总限制模块其实质是一个按钺限制程序,共有reset复位键
11、、add累加键、SUb递减键、Start/stop启动/停止键、Shift电机正反转限制键五个按键。系统启动时,首先运行系统初始化程序,程序先转到步进电机限制模块,送更位信号使步进电机处于初始状态。其间主控程序不断检测按键,只要有键被按下则启动相应的子模块实现实时限制。详细程序代码见附录程序清单。 2 3程序流程图:限制模块的程序流程图如图所示.图2。3限制模块程序流彩图2.4步进电机限制模块的设计:步进电机限制模块其程序设计共分按键去抖、变频、测领、步进、换向五个部分。模块一接收到按健信号,则按键去抖部分先对按键信号进行处理,得到稳定的限制信号:假如是变领信号则变频部分动作,通过相位累加模型
12、,变更步进电机脉冲频率,并送绐步进部分;假如是换向信号,则换向部分动作,为/使电机降速停止或降到突跳频率范围之内再换向,先停送驱动脉冲一秒,再送反向脉冲给步进部分,驱动电机换向:步进部分则是依据送来的脉冲频率和步进依次信号.驱动电机按预定的转速和转向转动:测频部分通过测定所送脉冲频率,再利用四相电机八拍运行时步距角为。=360度/(50*8)=0。9度的尺度则可以计算出步进电机的每分钟转速数据,再送给显示模块显示。第三章系统程序及仿真301总体设计电路图3。1总体谀计电7&拄找图3。2程序、程序块及仿真波形/*ZTSD.VHD*/一换向模块1.IBRARYIEEE:USEIEEE.STD1.O
13、GIC1164.1.1.;USEIEEE。STD1.OGICRITH.A1.1.;USEIEEEoSTDJ,OGIC-UNSIGNEDeA1.1.:ENTITYztsdISPORT(elk,key,rsl:inSTD1.OGIC;-一系统时钟/换向按键/复位信号y:outSTD_1.OGIC:一输出sei:outSTD_1.OGIC):ENDztsd;ARCHITECTUREBehavioralOFztsdISSIGNA1.sell:STDJOGlC;BEGINPROCESS(key,elk,rst)一产生换向延时秒脉冲VARIAB1.Ecnl:integerrange0to32000000;
14、BEGINIFrst=0,THENent:=0;E1.SlFkey=1THENent:=0;E1.SEIFrisingedge(elk)THENIEent32000000THENcnt:=cnt+l:y=0,;E1.SEent:=32000000;y=1;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(key,sei1,rst)BEGINIFrst=,0,THENsell=1,;E1.SIFrising_edge(key)THENsei1(=notsell;ENDIF:sel=sell;ENDPROCESS;ENDBehavioral:H3.2.1ld11Nm973r
15、ffl3.2.2*STEPMOTOReVHI)*/步进电机限制脉冲产生模块1.IBRARYIEEE;1.SEIEEEoSTD_1.0GIC_1164.A1.1.;1.SEIEEE.STD1.OGIC.ARITH.A1.1.:1.SEIEEE*STD1.OGIC1.NSIGNED.A1.1.;ENTITYstepmotorISPORT(elk,rst:inSTDlOGIC:系统时钟/更位信号sei:inSTD_1.OGIC:-正反转切换键clkkk:outSTD1.OGIC;步进电机步进脉冲ConlrohoutSTD1.OGICVECTOR(3DOWNTOO);步机电机四相输出ENDStePjn
16、otor:ARCHITECTUREBehavioralOFStePjnotorISSIGNA1.clkk:STD_1.OGIC:TYPEstepISarray(Oto7)OFSTD_l.OGIC_VECTOR=7THENclkk(=notclkk;ent:=0;E1.SEcnt:=cnt+l:ENDIl;ENDIl;ENDPROCESS;clkkk=clkk;PROCESS(clkk,sel,rsl)-限制脉冲产生模块VARIAB1.Eindex:integerrangeOto7:=0;VARIAB1.Eeight_step:step;BEGINeightstep(O):=wOOO;eight
17、slep(l):=OOll:eightstep(2):三n0010,;eightstep(3):=*0110w;eight_step(4):-0100;eight-step(5):=1100*;eight_step(6):=1000”;Cight-SteP(7):=1001”:IFrst=0,THENindex:=。;E1.SII-risingedge(clkk)THENIFSeI=ITHENIFindcx=6THENindexr=index+l;E1.SEindex:=0:ENDIl;E1.SEIFindex)=ITHENindex:=index-l:E1.SEindex:=7:ENDIl;
18、ENDIl;control0一1.丝3一八记*F一空ENTITYcepinISPORT(clk,clkl,rstinSTD1.OGIC:-系统时钟/输入被测脉冲/复位信号Shift:oUtSTD1.OGIC_VECTOR(3DOWNTOO);一数码管位选信号dataIedroulSTD1.OGICVECTOR0);SIGNA1.clkkk:STD_1.OGIC;SIGNA1.clkk:STD_1.OGIC:=0:SIGNA1.data_ledin:STD_1.()GIC_VECTOR(3DOWNTOO);BEGINCePin:block-测频模块BEGINPROCESS(elk,rsl)VAR
19、IAB1.Eent:integerrange1to32000000;BEGINIFrst三,0,THENent:=1:E1.SIIrisingedge(elk)THEN11cnl)=32000000THENclkk(=notclkk:ent:=1;E1.SEcnt:=cnt+l;ENDIF;ENDIF;ENDPROCESS;PROCESS(clkk,clkl,rst)VARIAB1.Ecnt:STD_1.OGICVECTOR(15DOWNTO0):=(OtherS=0);VARIAB1.Ecntl:integerrangeOto399:BEGINIFrsl=0,THENcnl:=(others
20、=),0):cnll:=O;E1.SIIrisingedge(clkl)THENIFclkk=1THENIFcntl399THENcntl:=cntl+l;E1.SEcntl:=O;IFcnl(3I)0WNT0O)9THENent(3DOWNTO0):=cnt(3DOWNTO0)+1:E1.SEent(3DOWNTOO):=0000”:IFent(7DOWNTO4)9THENent7DOWNTo4):=cnt(71X)WNTO4)+1;E1.SEent(7DowNTO4):=0000”;IFcnt(llDOWNTO8)(9THENent(11DOWNTO8):=cnt(11DOWNTO8)+l
21、;E1.SEcnt(llDOOTO8):=OOO0:IFent(15DOWNTO12)9THENcnl(15DoWNTO12):=CnI(I5IWWNTO12)+1:E1.SEent(15DOWNTO12):=0000”;ENDIF:ENDIF:ENDIF:ENDIF;ENDIF:E1.SEent:=(others=/0,);ENDIF;ENDIF:count=cnt;ENDPROCESS;ENDblock:PROCESS(clkk)BEGINIFclkk,EVENTANDCIkk=0THENd2shiftdataIedinshift(=*111;dataIedin=IllITHEN=*111
22、0*;=d2(3IM)WNT00):ent:=cnt+l;WHEN01=shift(=1101”;dataedin(=d2shift=,rIOl;data_ledin=d2(llDOWNTO8);cnt:=cnt+l:WHEN11=)shift(=*011:data_ledin=d2(15DOWNTO12):ent:=00”;WHENothers=)Shiftdata_leddataJeddata_led=datacd=101100OOm:3WHEN0100=data_loddata_leddataled(=,)0000010*;-6WHEN”Olll*=)dataeddataed=10000
23、000*:8WHEN*100lw=data_led=”10010000;9IWENothers=)dataled=2THENconi:=conl-l;ENDIF;ENDIF:ENDIF:con=1499999THENclkk=notCIkk;cnl:=0;E1.SEcnt:=cnt+l:ENDIF;ENDIF:ENDPROCESS;PROCESS(elk,tl,rst)变频模块BEGINIFrst=0,THENcntl(=0;E1.SIFriSingfdge(elk)THENIFcntl)=100OTHENentK=Ojcounl=0,;E1.SIEcntl=conTHENcount(=,;c
24、ntl=cntl+con;E1.SEcount0,:cntl=2THENent:=1:clkk=;E1.SEent:=cnt+l;clkk=0,;ENDIF;ENDIF:ENDPROCESS;debunce:blockSIGNA1.10,11,s,r:STD1.OGIC:BEGINPROCESS(elk)BEGINIFCIkEVENTANDclk=1THENIFCIkk=THENdl=dO:dO=key;s=danddl;r=notdandnotdl;ENDIF:ENDIF;ENDPROCESS;dly(=rnorndly;ndIy=snordly;ENDblock:(Iifferetial:
25、blockSIGNA1.d1.dO:STD1.OGIC;BEGINPROCESS(clk)BEGINIlelkEVENTANDclk=*THENdl=d:d=dly;ENDIF:ENDPROCESS;diff(=dandnotdi:ENDblock;keyo=diff:ENDBehavioral;一/STEPJopYHD*/-一步进电机限制模块1.IBRARYIEEE;USEIEEEoSTD_1.0GIC_1164.A1.1.:USEIEEE.STD_1.OCIC_ARITH.A1.1.;ISEIEEE。STI)1.OGICUNSIGNED.A1.1.;ENTITYstep.topISPORT(elk,add,sub,sei,rst,startstop:inSTD_1.OGIC;一时钟/加键/减键/换向键/复位/起止键slep:outSTD1.OGICVECTOR(3DOWNTO0);一步进电机四相输出