首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
步进电机控制器的FPGA实现
来源:本站整理  作者:佚名  2009-04-22 13:30:44




    该模块的主要功能是将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产生的数值经过编码后输出到四相步进电机的端口的。


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

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


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

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:7,210.93800 毫秒