新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的步进电机控制器研究和实现

基于FPGA的步进电机控制器研究和实现

作者: 时间:2011-04-02 来源:网络 收藏

调用LPM库中的模块,定制一个lpm_compare0元件,然后在lpm_compare0的输入/输出端接入输入/输出信号,并将这些模块包装为一个symbol,以备总模块调用,如图9所示。

本文引用地址://m.amcfsurvey.com/article/191259.htm

10.JPG


2.3.4 各模块集成
各功能模块设计完成后,用原理图的输入法生成总的功能模块,实现设计功能,最后生成的顶层电路图如图10所示。

11.JPG



3 系统调试
3.1总模块时序仿真调试及分析
总模块在QuartusⅡ6.1软件环境下编译通过,再进行总体仿真。
图11中各信号的定义为u_d为正、反转控制;clock0为转动速度控制;clock5为PWM计数时钟;s=1为细分;s=0为非细分。Y[3..0]分别对应步进电机的4个相,即DP,CP,BP,AP;s为选择细分控制。

12.JPG


图11给出了步进电机无细分仿真波形图。图12给出了步进电机从A相(1000即8)→AB相(1100即12)→B相(0100即4)→BC相(0110即6)→相C(0010即2)→CD相(0010即3)→D相(0001即1)→DA相(1001即9)→…的工作过程仿真波形。通过图12可以清楚地看到,首先步进电机A相导通,B,C,D相截止;然后B项的数据逐渐增大,从1增大到4,电机中的磁场经过4拍从A相转到了AB相,再经过4拍,A相的数据逐渐减小,电机中的磁场从AB相转到B相。从A到AB再到B共经过了8拍,实现了步距角的8细分。图13给出了步进电机反转8细分仿真波形图。
步进电机的转速取决于输入的脉冲频率。如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。2个脉冲的间隔越短,步进电机转得越快。调整发出的脉冲频率,就可以对步进电机进行调速。从图14可以看出,当改变输入脉冲clock0的周期时,A,B,C,D四相绕组的高低电平宽度将发生变化,它将导致通电和断电的变化速率发生变化,随之使电机转速发生变化。所以调节输入脉冲的周期就可以控制步进电机的运动速度。

13.JPG


由图14与图15的对比可知,通过减少clock0周期,步进电机的运行速度明显加快。通过以上对步进电机的仿真分析可知,该设计实现了对步进电机的各种基本控制。

14.JPG


3.2 下栽到实际器件上进行工程调试
各模块经过编译优化后,就要选择合适的目标芯片进行综合、管脚配置。该系统选用Altera公司的高性价比Cyclone系列芯片,型号为EP1C6Q240C8,芯片在32 678 Hz下工作,将实验板GW48-PK3的JTAG PORT接口和下载接口USBBlaster用数据线连接,最后打开板子的电源。
在该硬件环境中,通过键7可以控制步进电机的正、反转,键8可以选择步进电机的细分/非细分功能,这证明该设计完成了步进电机细分驱动的设计要求,最终取得了令人满意的结果。

4 结语
该系统以为核心部件,根据步进电机的工作原理,利用EDA技术实现了步进电机的细分驱动控制。采用VHDL语言并根据步进电机的不同,改变模块程序的参数,实现不同型号的步进电机控制。在系统设计过程中,力求硬件简单,并充分发挥VHDL语言软件编程灵活方便和FPGA快速的特点来满足系统设计要求,同时大大缩短系统的开发时间和成本。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭