完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
步进电机是一种将电脉冲信号转换成相应的角位移的特殊电机,每改变一次通电状态,步进电机的转子就转动一步。目前大多数步进电机控制器需要主控制器发送时钟信号,并且要至少一个I/O口来辅助控制和监控步进电机的运行情况。在单片机或DSP的应用系统中,经常配合CPLD或者FPGA来实现特定的功能。本文介绍通过FPGA实现的步进电机控制器。该控制器可以作为单片机或DSP的一个直接数字控制的外设,只需向控制器的控制寄存器和分频寄存器写入数据,即可实现对步进电机的控制。
1 步进电机的控制原理 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合对数字系统的控制。步进电机可分为反应式步进电机(简称“VR”)、永磁式步进电机(简称“PM”)和混合式步进电机(简称“HB”)。 步进电机区别于其他控制电机的最大特点是,通过输入脉冲信号来进行控制,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 步进电机的驱动电路根据控制信号工作,控制信号由各类控制器来产生。其基本原理作用如下: ① 控制换相顺序,通电换相。这一过程称为“脉冲分配”。例如:四相步进电机的单四拍工作方式,其各相通电顺序为A—B—C—D。通电控制脉冲必须严格按照这一顺序分别控制A、B、C、D相的通断,控制步进电机的转向。如果给定工作方式正序换相通电,则步进电机正转;如果按反序换相通电,则电机就反转。 ② 控制步进电机的速度。如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整控制器发出的脉冲频率,就可以对步进电机进行调速。 2 控制器的总体设计 控制器的外部接口电路如图1所示。各引脚的功能如下: data[7~0] 控制器与单片机等设备的总线接口; cs片选信号,低电平有效; wr写信号,低电平有效; reset复位信号,低电平有效; adr[1~0] 内部寄存器地址信号,与单片机等设备地址线相连; clk待分频的时钟,可由FPGA提供; abcd[3~0] 四相位输出。 控制器的内部原理框图如图2所示,由命令字寄存器(Cmd_reg)、分频系数备份寄存器(fdiv_back)、分频器、相位输出状态机组成。 其中命令字寄存器(Cmd_reg组成如下(对应的地址为“00”): X未用位。 Ini 对控制器初始化为1时有效。当该位为1时,备份寄存器的数据直接装入分频器的寄存器reg_data[15~0],装入后由硬件自动置0。 New 当对正在运行的控制器写入新的分频系数时,对该位置1;当下一个分频器输出的clkout时钟来到时,将fdiv_back写入到reg_data[15~0]中,分频器便按新的分频系数进行分频。 Manner[1~0] 电动机的驱动方式,用来控制相位输出状态机的输出,“00”表示单四拍方式,四相位输出为(A—B—C—D);“01”表示双四拍,四相位输出为(AB—BC—CD—DA),八拍(A—AB—B—BC—C—CD—D—DA)。 分频系数备份寄存器(fdiv_back) 两字节寄存器,reg_data[15~0]为分频器的一个16位寄存器,接收fdiv_back的值,对系统的分频为2~65 536。对于12 MHz的输入频率,分频后频率为6 MHz~183 Hz,(本设计中,步进电机的启动转速、转距、加速度由使用者根据实际情况自己计算)分频后每个clkout走一个步距角。对于步距角为1.8°的电机,可以满足各种速度的要求。 3 分频器的设计 分频器是该控制器实现的关键,在这里作为一个独立的模块,data[15~0]为分频系数。系统时钟Clk被分频系数寄存器中值分频后,输出Clkout作为相位输出状态机的时钟,每个Clkout到来时,产生一次相位转换,步进电机运行一个步距角。分频器的程序如下: 图3所示为3分频时单四拍的输出仿真图。 结 语 本文的创新点为将该步进电机控制器的控制字和分频系数映射在主控制器(DSP或单片机等)的内存空间,控制时仅需对其进行写操作,使步进电机的控制变得简单方便;而且,可节省主控制器(DSP或单片机等)的外围资源,减少板上负载。系统中可以加入电机运行总步数控制寄存器及其电路、加速度寄存器及其控制电路等,打造一个更智能的步进电机控制器。 |
|
|
|
只有小组成员才能发言,加入小组>>
789 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1069浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 22:45 , Processed in 1.122085 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号