打印

基于FPGA的步进电机控制器设计

[复制链接]
1371|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Tianya283|  楼主 | 2012-12-9 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
步进电机是一种将电脉冲信号转换成相应的角位移的特殊电机,每改变一次通电状态,步进电机的转子就转动一步。目前大多数步进电机控制器需要主控制器发送时钟信号,并且要至少一个I/O口来辅助控制和监控步进电机的运行情况。在单片机或DSP的应用系统中,经常配合CPLD或者FPGA来实现特定的功能。本文介绍通过FPGA实现的步进电机控制器。该控制器可以作为单片机或DSP的一个直接数字控制的外设,只需向控制器的控制寄存器和分频寄存器写入数据,即町实现对步进电机的控制。
1 步进电机的控制原理
  步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合对数字系统的控制。步进电机可分为反应式步进电机(简称“VR”)、永磁式步进电机(简称“PM”)和混合式步进电机(简称“HB”)。
  步进电机区别于其他控制电机的最大特点是,通过输入脉冲信号来进行控制,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
  步进电机的驱动电路根据控制信号工作,控制信号由各类控制器来产生。其基本原理作用如下:
  ①控制换相顺序,通电换相。这一过程称为“脉冲分配”。例如:四相步进电机的单四拍工作方式,其各相通电顺序为A-B-C-D。通电控制脉冲必须严格按照这一顺序分别控制A、B、C、D相的通断,控制步进电机的转向。如果给定工作方式正序换相通电,则步进电机正转;如果按反序换相通电,则电机就反转。
  ②控制步进电机的速度。如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整控制器发出的脉冲频率,就可以对步进电机进行调速。

相关帖子

沙发
Tianya283|  楼主 | 2012-12-9 19:08 | 只看该作者
  2 控制器的总体设计
  控制器的外部接口电路如图1所示。各引脚的功能如下:



  控制器的内部原理框图如图2所示,由命令字寄存器(Cmd_reg)、分频系数备份寄存器(fdiv_back)、分频器、相位输出状态机组成。

  其中命令字寄存器Cmd_reg组成如下(对应的地址为“00”):

  X未用位。
  Ini对控制器初始化为1时有效。当该位为1时,备份寄存器的数据直接装入分频器的寄存器reg_data[15~0],装入后由硬件自动置O。
  Newr当对正在运行的控制器写入新的分频系数时,对该位置1;当下一个分频器输出的clkout时钟来到时,将fdiv_back写入到reg_data[15~0]中,分频器便按新的分频系数进行分频。
  Manner[1~0] 电动机的驱动方式,用来控制相位输出状态机的输出,“00”表示单四拍方式,四相位输出为(A-B-C-D);“Ol”表示双四拍,四相位输出为(ABBC-CD-DA),八拍(A-AB-B-BC-C-CD-DDA)。
  分频系数备份寄存器(fdiv_back) 两字节寄存器,reg_data[15~0]为分频器的一个16位寄存器,接收fdiv_back的值,对系统的分频为2~65536。对于12MHz的输入频率,分频后频率为6MHz~183Hz,(本设计中,步进电机的启动转速、转距、加速度由使用者根据实际情况自己计算)分频后每个clkout走一个步距角。对于步距角为1.8°的电机,可以满足各种速度的要求。

使用特权

评论回复
板凳
Backkom80| | 2012-12-10 08:28 | 只看该作者
:)

使用特权

评论回复
地板
gaochy1126| | 2012-12-10 23:40 | 只看该作者
没有看出怎么改变的呀

使用特权

评论回复
5
hawksabre| | 2012-12-11 17:04 | 只看该作者
步进电机这一块使用了一段时间   个人觉得还是电磁变化的控制  呵呵   很不错  **讲的不错   谢谢楼主   需要不断学习   谢谢

使用特权

评论回复
6
GoldSunMonkey| | 2012-12-12 20:58 | 只看该作者
嗯,必须不断学习啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

240

帖子

0

粉丝