步进电机驱动控制的FPGA的实现
作者:闫兵兵
来源:《中国科技纵横》2014年第10期
【摘 要】 利用Verilog语言进行层次化设计,对步进电机的驱动系统能够实现基于FPGA的控制。本文通过对步进电机的驱动控制原理分析,对步进电机定位控制进行整体设计,既达到对步进电机的驱动控制,也优化了传统的系统结构。系统具有修改方便、使用灵活、可靠性高、可移植、抗干扰和稳定性强等优点,能够提升产品质量和市场竞争力,具有广阔的发展空间。
【关键词】 步进电机驱动控制FPGA模块
步进电机是一种将电脉冲信号转化为机械角位移或线位移的机电元件,每当给步进电机输入一个脉冲信号,它就相应地转动一步。由于其具有成本低、易于精确控制、无累积误差、快速响应性好及可在很宽的范围内进行平滑调速等优点,成为数控机床、打印机、绘图仪、机器人控制等自动控制和精密机械等领域中广泛应用的执行元件。如何借助FPGA实现对步进电机运转的灵活、有效地控制成为研究的主要问题。
采用现场可编程门阵列,通过Verilog语言编程来实现四相步进电机的控制。由于VerilogHDL的灵活性,可以对FPGA器件进行灵活的编程,实现复杂的控制算法,从而提高了控制性能,而且可以降低整个系统的体积和成本,增加系统的可靠性。 1 步进电机的控制原理
步进电动机作为一种自动化执行部件,通过电脉冲信号与数字系统结合,把脉冲数转换成角位移,实现其机械的正转、反转、手动和自动控制。 1.1 结构
步进电动机在其转子、定子上都设计有许多的均匀分布的小齿,三个励磁绕组设置在定子齿上,并使绕组的几何轴线与转子齿轴线依次分别错开0て、1/3て、2 /3て,即A与齿1相对齐,齿2错开向右B 1/3て,齿3错开向右C 2/3て,齿5对齐A'。如图1所示。 1.2 旋转
如A相通电,B、C相不通电时,由于磁场作用,齿1与A对齐。同理如果以次给B、C相通电,每通一次电转子都会转动1/3て。如再给A相通电,B、C相不通电,齿4与A对齐,向右移过1/3て,经过A、B、C、A的转子分别之处于通电状态,齿4移到A相,向右转
龙源期刊网 http://www.qikan.com.cn
过一个齿距的电机转子,如果按A、B、C、A方式不断地通电,转子因此每步向右旋转1/3て。如按A、C、B、A方式进行不断地通电,转子就自然反转。
由导电次数和频率决定转子的位置和速度并形成一一对应关系,导电顺序决定方向。考虑到电机的噪音、平稳、力矩和减少角度等诸多因素,本系统采用四相,八拍运行(A-AB-B- BCC-CD-D-DA-A),步距角为0.9度。 1.3 激磁方式
四相电动机有3种激磁方式:
一相激磁法:当目标角度是90°的整数倍时,采用这种方法。
二相激磁法:当目标角度是45°,135°,225°,315°的整数倍时,采用这种方法。 一、二相激磁法:按照表1所示的信号顺序。 2 步进电机定位控制的整体设计
根据步进电机的控制基本原理,系统设计采用模块化设计原则,按照现代EDA工程常用的“自上而下”的设计思想,进行功能分离并按照层次设计,用Verilog语言实现每个模块功能,最后将所有的模块进行综合,实现系统的整体功能。 波形仿真过程:
Modelsim SE6.2b型号能够通过ISE9.1i完成下载、布线、布局、综合。本电机定位控制系统分为驱动、控制、显示、输入和分频等模块。实现电机转子能够定位控制,能够按既定方向和角度旋转等功能,得益于步进电机的顺序(A—B—C—D) 有规律地换相及一个被八细分步距角的技术指标。
在Spartan3 FPFA开发板上,就可以实现整个系统的设计。
开发板上选用3位数码显示来控制信息显示,同时可以选用1个拨码开关按键和3个接触式按键输入系统控制内容。电机转动角度的加计数,减计数可以在2个接触式按键操作下完成,并以十进制方式,在低2位的数码管上显示。
另外,为了控制设置数据的有效性,专门需要1个拨码开关,步进电机的驱动使能就能够在最后一个接触式开关通过后实现。 2.1 分频模块
龙源期刊网 http://www.qikan.com.cn
分频模块属于步进电机驱动控制系统的一个重要部分,主要是基于FPGA条件下,通过一定的技术手段和方式,对主时钟进行不同频率的区分与整合,最终得到步进电机能够正常驱动的频率。
具体做法:FPGA开发板上设置一个50MHz的有源晶振,计数器电路加入FPGA中,系统的频率在累积的计数中,生产不断的变化。板上的分频电路在有源晶振的环境下,生成所要求的时钟。
由于本系统设计所要求的步进电机 2.2 显示和输入模块
步进电机的转动角度和转动方向的输入是由输入模块来完成、控制的,如图2显示的内容所示。按键1表示转动方向、按键2表示减计数、按键3表示加计数、按键4表示驱动使能、方向—1表示正转,方向2代表反转。
通过FPGA开发板上数码管的“1”与“2”的显示,代表了电机旋转的正反方向。板上两个分别实现减计数和加计数的接触式按键操作,可以实现转动角度,同时,2位十进制数能够在低2位数码管中得到显示。如果需要步进电机转动1个最小步进脚,可以用十进制1代表,同理,最多可控制步进电机转动99个最小步距角就可以用十进制的2来代表。5.624/是本系统所使用的步进电机的最小步距角。
(1)外部按键输入模块,其中按键输入模块又有显示、计数器计数和防抖程序等模块之分。通过分时复用技术实现三位数码管显示的显示模块;实现加减计数的是计数器模块;保证不出现输入错误计数的是防抖程序模块。
(2)一个随机数输入模块在FPGA内部产生,为实现步进电机的随机取样转动,需要一个作为驱动模块和控制模块的输入随机数,这个数由FPGA内部产生的。
在FPGA内,产生伪随机码的方法有多种,线性反馈移位寄存器结构(如图3所示)所产生的序列随机特性好、周期长。且方式易实现、结构亦简单。 2.4 驱动模块
步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。驱动模块作用是接受来自控制模块的控制信号即驱动电流波形输入个数。驱动模块的输出波形一共有4 个,分别驱动步进电机的4 个线圈A、B、C、D。
龙源期刊网 http://www.qikan.com.cn
对步进电机的驱动采用四相八拍的运行方式,其步距角是单拍制步距角的一半,因此,电路设计采用细分技术,把步进电机的步距角减小,把原来的一步分成若干步,其运行近似地变为匀速运动,明显提高了步进电机的分辨率;而且由于每一单步增量小,即使在谐振区也不容易失步,电机运行平稳、振动小、噪声低。 3 结语
以FPGA芯片核心部件来控制步进电机的驱动,通过软件编程的方法,在一定范围内自由设定步进电机的转速,往返转动的角度以及转动次数等,还可以方便灵活地控制步进电机的运行状态, 满足了不同用户的要求。简单灵活、降低成本,又提高了系统的控制精度和系统的稳定度。 参考文献:
[1]陈汝倬.基于FPGA的步进电机控制器设计[J].科技信息,2009(8).
[2]余红娟,潘松.FPGA在步进电机任意细分驱动中的应用[J].杭州电子科技大学学报,2005,25(3).
[3]陈建容,叶文才.基于FPGA的多模式步进电机控制器的设计[J].集美大学学报,2007,12(2).
[4]吴亮红,成继勋.基于CPLD的可控步进电机分配器设计[J].控制工程,2005,12(1).
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务