首页 > 范文大全 > 正文

基于VHDL步进电机控制器研制

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于VHDL步进电机控制器研制范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本设计在对步进电机细分驱动原理进行分析研究的基础上,提出一种基于FPGA控制的步进电机细分驱动器。在该设计中利用硬件描述语言(vhdl)对步进电机控制器的各功能模块进行行为描述。在MAX+plusII下进行编译仿真,完成对步进电机控制器的设计。

关键词:步进电机;FPGA;控制

中图分类号:V233.7+3文献标识码:A文章编号:1009-3044(2009)25-7300-03

Based on VHDL the Development of Stepper Motor Controller

HAN Tuan-jun

(Shaanxi University of Technology, Hanzhong 723000, China)

Abstract: In this paper, a divided driving circuit for stepping motor controlled by FPGA is put forward, based on the analysis of the principle of stepping motor divided driving. In the design,hardware description language(VHDL) is used to describe the functional module of the stepper motor controller. Through compiling and simulation under the MAX+plusII, we can complete the design of the stepper motor controller.

Key words: stepper motor controller;FPGA; control

步进电机是一种将电脉冲转化为角位移的执行机构,它结构简单、工作可靠,能将数字的电脉冲输入直接转换为模拟的输出轴运动。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用于各种自动化控制系统中。

1 步进电机控制器的总体设计

采用FPGA器件对步进电机进行控制,利用FPGA中的嵌入式EAB,可以构成存放电机各相电流所需的控制波形数据。利用FPGA设计的数字比较器可以同步产生多路PWM电流波形,对多相步进电机进行灵活控制。通过改变控制波形的数据、增加计数器的位数,可以提高计数器的精度,从而可以对步进电机转角进行任意角度细分,实现步进电机转角的精确控制。此次设计采用的是四相步进电机,利用FPGA器件,通过VHDL编程仿真,对电机进行步距角细分,转速及其正反转控制。其细分控制框图如图1所示。

2 设计原理

2.1 步进电机的工作原理

该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图2是该四相反应式步进电机工作原理示意图。

开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

2.2 步进电机控制器的设计原理

2.2.1 步进电机细分驱动原理

步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。设TA、TB、TC、TD为步进电机A、B、C、D四相励磁绕组分别通电时产生的磁场矢量,TAB、TBC、TCD、TDA为步进电机中AB、BC、CD、DA两相同时通电产生的合成磁场矢量。当给步进电机的A、B、C、D四相轮流通电时,步进电机的内部磁场从TA-TB-TC-TD,即磁场产生了旋转。一般情况下,当步进电机内部磁场变化一周(360°)时,电机的转子转过以个齿距,因此,步进电机的步距角θB可表示为:

θB=θM/Nr

式中Nr为步进电机的转子齿数;θM为步进电机运动时两相邻稳定磁场间的夹角。θM与电机的相数(M)和电机的运行拍数有关。当电机以单四拍方式运动时,θM=90°;当电机以四相八拍的方式运行时,θM=45°。和单四拍方式相比,θM和θB都减小了一半,实现了步距角的二细分,但是在通常的步进电机驱动线路中,由于通过各相绕组的电流是个开关量,即绕组中的电流只有零和某一额定值两种状态,相应的各相绕组产生的磁场也是个开关量,只能通过各相的通电组合来减小θM和θB。

但是,这样可达到的细分数很有限。以四相反应式步进电机为例,最多只能实现二细分,对于相数较多的步进电机可达到的细分数稍大一些,但是也很有限。因此要使可达到的细分数较大,就必须能控制步进电机各相励磁绕组中的电流,使其按阶梯上升或下降,即在零到最大值相电流之间能哟多个稳定的中间电流状态,相应的磁场矢量幅值也就存在多个中间状态,这样,相邻两相或多相的合成磁场的方向也将由多个中间状态。四相步进电机八细分时的各相电流以1/4的步距上升或下降的,在两相TA、TB中间插入七个稳定的中间状态,原来一步所转过的角度θM将由八步完成,实现步距角的八细分。

2.2.2 步距细分的系统构成

该系统是由PWM计数器、ROM地址计数器、PWM波形ROM存储器、比较器、功放电路等组成。其中,PWM计数器在脉宽时钟作用下递增计数,产生阶梯型上升的周期性的锯齿波,同时加载到个数字比较器的一端;PWM波形ROM输出的数据A[3..0]、B[3..0]、C[3..0]、D[3..0]分别加载到各数字比较器的另一端,当PWM计数器的值小于波形ROM输出数值时,比较其输出低电平;当PWM计数器的计数值大于波形ROM输出数值时,比较其输出高电平,由此可输出周期性的PWM波形。根据步进电机八细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形ROM中,波形ROM的地址由地址计数器产生。通过对地址计数器进行控制,可以改变步进电机的旋转方向、转动速度、工作/停滞状态。FPGA产生的PWM信号控制各功率驱动电路的导通和关断,其中PWM信号随ROM数据而变化,改变输出信号的占空比,达到限流及细分控制,最终使电机绕组呈现阶梯型变化,从而实现步距细分的目的。

输出细分电流信号采用FPGA中ROM查表法,他是通过在不同地址单元内写入不同的PWM数据,用地址选择来实现不同通电方式下的可变步距细分。

3 步进电机的仿真波形及分析

u_d为步进电机正/反转控制,clr为步进电机的工作/停止控制,clk2为步进电机转动速度控制,Y0,Y1,Y2,Y3分别对应步进电机的A,B,C,D四相电流,s端为选择细分控制。

1)当clr端为1时步进电机控制器停止工作,其工作时序仿真波形如图3所示。

通过仿真波形可以看出:当clr=1时,控制器的控制器的各个端口都停留在初始状态,这表示控制器处于停止状态。

2)当clr端口为0时步进电机开始工作。

A:当u_d=1时步进电机正转,设定clk周期为50ns,clk2周期为400ns。由s端控制步进电机是否进行细分操作的控制,s=1时表示进行细分操作,s=0时表示步进电机不进行细分操作。其仿真波形图分别如图4,图5。

B:当u_d=0时步进电机反转,s=1时表示步进电机进行细分操作,s=0时表示步进电机不进行细分操作。设定clk周期为50ns,clk2周期为400ns。其仿真波形图分别如图6,图7。

通过对图4、图5的分析不难理解图6、图7的工作过程。

图6由于u_d=0,s=1,步进电机进行反向细分运动,即由A-AD-D-DC的运动。

图7进行的是无细分反向运动,即A-D-C-B-A的运动过程。其输出数据X[3..0]由0011B-1001B-1100B-0110B进行变化。

C:当改变clk2时可以控制步进电机转动的速度,设定clk为50ns,u_d=1,clr=0,s=0,

① 令clk2为400ns其仿真波形如图8。

② 令clk2为200ns时其仿真波形如图9。

由以上两个图对比可知通过减小clk2的周期,步进电机控制器的运行速度明显加快了,同样可以改变clk2的周期使步进电机控制器的运行速度减慢。通过以上对步进电机的仿真的分析,该设计实现了对步进电机的各种基本控制。

参考文献:

[1] 潘松,黄继民. EDA技术实用教程[M]. 北京:科学出版社,2005.

[2] 高钟毓. 机电控制工程[M]. 北京:清华大学出版社,2002.

[3] 刘宝延,程树康. 步进电机及驱动控制系统[M]. 哈尔滨:哈尔滨工业大学出版社,1997.

[4] 王季秩,陈景华.电机实用技术[M]. 上海:上海科技技术出版社,1997.

[5] 侯伯亨,周端. 数字系统设计基础[M]. 西安:西安电子科技大学出版社,2000.

[6] 黄智伟. FPGA系统设计与实践[M]. 北京:电子工业出版社,2005.