新闻中心

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

步进电机控制器的FPGA实现

作者: 时间:2009-04-22 来源:网络 收藏

该模块的主要功能是将count与angleDnCount产生的数值经过编码,再通过baBA输出到,来对电机进行控制。模块仿真图见图2。
假设resel=1,则将count和angleDnCount设置成0。
假设reset=O,clk为上升沿触发且ini=0时,就将设定的初值(cntini与angle)赋给count和angleDn―Count两个信号端,也就是(count=O+cntini)与(an―gleDnCount=angle)。
假设reset=O,clk为上升沿触发且ini=1时,则将count与cntini相加,再将结果存为count。然后判断angleDnCount的值是否大于angleDnCntDec。如果大于,则用angleDnCount减angleDnCntDec,将结果存为angleDnCount;否则,将angleDnCount设为0(因为此时angleDnCount的值小于angleDnCntDec,表示电机已经到达设定位置,故不需要继续转动了)。BaBA[3..O]是将count与angleDnCount产生的数值经过编码后输出到四相的端口的。

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


3 QuartusⅡ仿真结果
上述程序在ALTERA公司免费提供的QuartusⅡ环境下编译通过,适配的器件为FLEXlOKlO。最后得到的系统仿真图及生成的系统模块符号图分别如图3,图4所示。

reset是系统内部自复位信号;dir是正反转的方向控制;clk是由外部提供的时钟信号;ini是赋初值的使能开关;manner[1..O]是激磁方式的选择开关(00:自动检测角度输入,决定激磁方式;01:一相激磁;10:二相激磁;11:一、二相激磁);angle[7..0]是步进角的倍数设定数如引脚;baBA[3..0]是系统输出信号引脚,是内部计数器的count[3..O]数值编码的结果。


4 结 语
步进电机作为一种数字伺服执行元件,具有结构简单,运行可靠,控制方便,控制性能好等优点,但现实中步进电机的控制比较复杂。
这里设计的步进电机方法简单,支持四相步进电机的三种励磁方式、正反转运行,这种基于的设计方法,可以加速同类型产品的开发速度,节约投资。并且可以根据步进电机的不同,改变分层模块的VHDL程序的参数,实现不同型号步进电机的控制,在实际应用中有利于步进电机的广泛应用。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭