袁 帅, 甘 靖
(1.湖南理工学院 信息与通信工程学院, 湖南 岳阳 414006; 2.湖南理工学院 计算机学院, 湖南 岳阳 414006)
基于FPGA的步进电机细分驱动技术研究
袁 帅1, 甘 靖2
(1.湖南理工学院 信息与通信工程学院, 湖南 岳阳 414006; 2.湖南理工学院 计算机学院, 湖南 岳阳 414006)
受制造工艺的影响, 步进电机的步距角一般较大, 而且还存在低频振动, 导致其只能应用在一些要求较低的场合. 本文设计了一种基于FPGA芯片来实现步进电机细分驱动的方法. 利用FPGA中的嵌入式存储模块存放各相细分电流所需的PWM控制波形数据表, 并通过数字比较器同步产生多路PWM信号, 对步进电机的转角进行均匀细分控制. 测试结果表明, 该步进电机细分驱动技术可以减小步进电机的步距角, 提高电机运行的平稳性, 增加控制的灵活性, 具有较好的实用价值.
FPGA; 电机; 细分驱动; PWM
Abstract:Limited by the manufacture technics, the stepping motor has big step angles and low frequency vibration, and can only be applied to those situations with low demand. This paper designs a method to realize subdivision drive for the stepping motor based on FPGA chip. Firstly, PWM control waveform data table are stored in embedded memory module of FPGA. Secondly, multiple PWM control signals are produced by the digital comparator synchronously. Finally, we realize subdivision control for the step angles of stepping motor. Test result shows that the stepping motor subdivision drive technology can decrease the stepping angle of stepping motor, improve the stabilization and flexibility and has preferable practical value.
Key words:FPGA; stepping motor; subdivision drive; PWM
步进电机作为一种电脉冲——角位移的转换元件, 具有价格低廉、易于控制、无积累误差和计算机接口方便等优点. 由于受制造工艺的影响, 步进电机的步距角一般较大, 而且还存在低频振动, 在低频时有明显的“步进”感. 这些缺点使步进电机一般只能应用在一些要求较低的场合. 步进电机细分驱动技术是70年代中期发展起来的一种可以显著改善步进电机综合使用性能的驱动控制技术. 本文采用FPGA技术进行控制, 可根据细分要求的步距角, 事先计算出电机各相绕组中通过电流对应的PWM值, 存储在FPGA的嵌入式ROM中. 细分控制时, 地址计数器自动产生地址送到LPM_ROM, 根据不同的地址ROM输出相应的数据, 输出到数字比较器, 与线性锯齿波比较后输出PWM波形, 并加到各相的功放电路上,控制功放电路给各相绕组通以相应的电流, 实现步进电机的细分.
步进电机细分驱动技术是70年代中期发展起来的一种可以显著改善步进电机综合使用性能的驱动控制技术. 1975年美国学者T.R. Fredriksen首次在美国增量运动控制系统及器件年会上提出了步进电机步距角细分的控制方法. 在其后的二十多年里, 步进电机细分驱动技术得到了很大的发展, 从本质上讲是对步进电机的励磁绕组中电流的控制, 使步进电机内部的合成磁场为均匀的圆形旋转磁场, 从而实现步进电机步距角的细分. 要想实现步距角均匀细分控制, 必须合理控制电机绕组中的电流, 使步进电机内部合成磁场的幅值恒定, 每个进给脉冲所引起的合成磁场的角度变化要均匀. 实践证明, 步进电机细分驱动技术可以减小步进电机的步距角, 提高电机运行的平稳性, 增加控制的灵活性等[1].
Mθ=45°. 和单四拍方式相比,Mθ和Bθ都减小了一倍, 实现了步距角的二细分. 要使可达到的细分数较大, 就必须能控制步进电机各相励磁绕组中的电流, 使其按阶梯上升或下降, 即在零到最大相电流之间能有多个稳定的中间电流状态, 相应的磁场矢量幅值也就存在多个中间状态, 这样, 相邻两相或多相的合成磁场的方向也将有多个稳定的中间状态. 四相步进电机八细分时的各相电流是以1/4的步距上升或下降的,在两相TA, TB中间又插入了7个稳定的中间状态, 原来一步所转过的角度θM将由8步完成, 实现了步距角的八细分[3].步进电机细分驱动的关键在于细分步进电机各相励磁绕组中的电流.
图1所示为四相步进电机的八细分电流波形, 从图1可以看出, 一般情况下总有两相绕组同时通电. 一相电流逐渐增大, 另一相逐渐减小. 对应于一个步距角, 电流可以变化8个台阶, 也就是电机位置可以细分为8个小角度, 这就是电机的一个步距角被8细分的工作原理[4,5].
图1 步进电机八细分电流
利用FPGA中的嵌入式EAB存放步进电机转角细分电流所需的数据控制波形表, 利用FPGA设计的数字比较器可以同步产生多路PWM电流波形, 对四相步进电机转角进行均匀细分、灵活控制. 若提高ROM控制波形表的数据的位数、并增加计数器和比较器的位数, 提高计数精度, 就可以提高PWM波形的细分精度, 对步进电机的步进转角进行任意细分, 实现步进转角的精确控制. 图2所示为步进电机细分驱动系统的整体结构图.
图2 系统整体结构图
运用自上而下的设计思路, 将系统按功能逐层分解实现层次化设计. 系统的顶层原理图如图3所示.系统是由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的地址由地址计数器产生. 通过对地址计数器进行控制, 可以改变步进电机的旋转方向、转动速度和工作/停止状态.
图3 系统顶层原理图
采用ALTERA公司的EP1K10TC100-3芯片进行系统测试. 此芯片具有低内核电压、低功耗的特点. 芯片内门电路高达1万门, 内部使用RAM作电路结构, 速度高达几百MHZ.测试波形如图4所示, 实现了对步进电机步距角的8级细分.
本文提出了基于FPGA技术实现步进电机细分的控制方案. 采用FPGA的PWM控制, 无须外接D/A转换器, 使外围控制电路大为简化, 比目前单片机加D/A的控制方案更加高效. 通过利用EAB存放电机转角细分电流所需的数据表, 由数字比较器同步产生多路PWM电流波形, 对多相步进电机的转角进行均匀细分. 若提高波形表数据的位数, 增加计数器和比较器的位数, 就可以提高PWM波形的细分精度, 对步进电机的步进转角进行任意细分, 实现步进转角的精确控制.
图4 系统测试波形图
[1] 周明安. 步进电机驱动技术发展及现状[J]. 机电工程技术, 2005, (02):16~17
[2] 徐国山, 潘振良. 步进电机的基本原理[J]. 民营科技, 2007, (07): 9
[3] 潘 松, 黄继业. EDA技术与VHDL [M]. 北京: 清华大学出版社, 2005: 357~358
[4] 晋兆琼, 夏超英, 张 建. 基于单片机的步进电机细分驱动的实现[J]. 电气传动和自动化, 2006, (06): 8~13
[5] 林海波. 步进电机恒力矩均匀细分驱动器的设计与实现[J]. 自动化技术与应用, 2003, (03): 52~54
[6] 李超彪. 基于CPLD的步进电机细分复合控制器[J]. 中国机械工程, 2005, (18):1647~1650
Research of Subdivision Drive Technology of Stepping Motor Based on FPGA
YUAN Shuai1, GAN Jing2
(1.College of Information and Communication Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China; 2. College of Computer Science, Hunan Institute of Science and Technology, Yueyang 414006, China)
TN911.6, TP391.75
A
1672-5298(2010)01-0062-03
2009-12-04
袁 帅(1978- ), 男, 湖南岳阳人, 湖南理工学院信息与通信学院讲师. 主要研究方向: 电子信息技术开发