网站大量收购独家精品文档,联系QQ:2885784924

三相六拍步进电机FPGA实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三相六拍步进电机FPGA实现

三相六拍步进电机的FPGA实现 一.实验要求 用硬件描述语言描述一个控制三相六拍步进电机相序的控制模块。该控制电路模块的输入信号分别为方向控制信号dir,复位信号reset和时钟信号clk,输出信号分别是步进电机的三相绕组A、B和C。当复位信号reset为高电平时,步进电机的三相绕组A、B和C只有A相通电,即输出信号只有A为高电平,B和C均为低电平;复位信号reset为低电平,方向控制信号dir为低电平时,在时钟信号的控制下,相序为A→AB→B→BC→C→AC→A;方向控制信号dir为高电平时,相序为A→AC→C→BC→B→AB→A。时序图如图所示。编写仿真程序,观察输入激励和输出波形。 二.实验原理 步进电机是一种将电脉冲转化为角位移的执行机构。也就是当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。 步进电机控制器主要由三部分组成 1.频率发生器 步进电动机的转动是由脉冲控制的,通过控制脉冲频率即可控制电机转动的速度和加速度,从而达到调速的目的。此处设置了四档调速。CLK是外部输入频率,P2和P1是分频模式选择,P2、P1:00:外部输入脉冲频率;P2、P1:01:对外部输入频率4分频;P2、P1:10:对外部输入频率8分频;P2、P1:11:对外部输入频率16分频;处理过的脉冲信号由CK端送入脉冲分配器步进电机的状态分为启动和停止,启动后又分为正转、反转。据此电机转动控制上设置了三个信号输入端,Z为正转启动脉冲信号,F为反转脉冲信号,T为停止的脉冲信号。通过方向锁存器将输入的脉冲信号转为电平信号,并且保证信号的唯一性。 根据三相线圈轮流通电方式的不同,三相反应式步进电动机有三相单三拍、三相双三拍、三相六拍等三种通电方式,实际应用中三相单三拍运行方式很少采用,因为这种运行方式每次只有一相绕组通电,容易使转子在平衡位置附近产生摆动,因而稳定性不好。所以此控制器设置了后两种拍通电方式,M为供电方式的选择,M=1为三相六拍,M=0为三相双三拍。 三相六拍运行的供电方式是:A—AB—B— BC—C—CA—A一个循环周期换接六次,有六种通电状态,故称三相六拍运行方式。如果每次都是两相控制绕组同时通电,即按AB—BC—CA— AB的顺序通电为三相双三拍.根据M的状态,控制脉冲的输出情况。脉冲分配器设计的主要思路是,设置一个6进制的计数器。三相六拍正转为1-6循环,反转为6-1循环;三相双三拍正转为2-4-6循环,反转为6-4-2循环。module motor(clk,reset,dir,a,b,c); input clk,reset,dir; output a,b,c; reg a,b,c; parameter st0=3b001,st1=3b011,st2=3b010,st3=3b110,st4=3b100,st5=3b101; reg[2:0] pst,nst; always @(posedge clk) begin if(reset) pst=st0; else pst=nst; end always @(pst or dir) begin if(!dir) begin case(pst) st0:nst=st1; st1:nst=st2; st2:nst=st3; st3:nst=st4; st4:nst=st5; st5:nst=st0; endcase end else begin case(pst) st0:nst=st5; st1:nst=st0; st2:nst=st1; st3:nst=st2; st4:nst=st3; st5:nst=st4; endcase end end always @(pst) begin case(pst) st0:{c,b,a}=st0; st1:{c,b,a}=st1; st2:{c,b,a}=st2; st3:{c,b,a}=st3; st4:{c,b,a}=st4; st5:{c,b,a}=st5; endcase end endmodule 仿真结果如下图: 转载: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mc is port(inclk: in std_logic; smzfd: in st

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档