打印
[应用相关]

STM32和FPGA的多通道步进电机控制系统

[复制链接]
4394|50
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Diyer2015|  楼主 | 2018-10-15 12:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于STM32和FPGA的多通道步进电机控制系统设计



沙发
Diyer2015|  楼主 | 2018-10-15 12:28 | 只看该作者
    步进电机是一种开环控制电机,在自动控制系统中扮演着重要的角色,是其主要
执行元件。在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲信号的频
率和脉冲数,而不受负载变化的影响[’]。传统的步进电机控制系统多采用单片机和DSP
芯片作为其核心,通常以定时器的方式产生控制脉冲[2l,因此占用了较为可观的系统资
源,脉冲频率更是为微控制器所限制,控制系统和驱动电路的设计复杂且昂贵,并在
在设计完成后很难再做修改或者灵活应用于其他场合,系统的可移植性比较差,并且
难以实现人机交互,控制精度低。
    在实际的工作和生产过程通常需要多台设备协调共同作用完成,因此就需要使用
多台步进电机进行控制。对多台电机联动控制的方法有很多,一般而言,可以采用多
个CPU共同控制多台电机的方法,但是这种方法提升了系统硬件成本,增加了设计的
难度,并且随着CPU数量以及元器件的增多,控制系统的稳定性和可靠性难以保证。
    为解决以上这些问题,本文提出了一种基于ARM和FPGA(现场可编程门阵列)
的多通道步进电机控制系统。该控制系统以STM32和FPGA为核心,能够完成对8台
步进电机的实时精确控制的功能。
    本文提出的多通道步进电机控制系统主要由上位机、STM32, FPGA和步进电机
驱动器四部分组成。上位机负责系统参数的定义、管理、监控,并对各步进电机的数
据进行显示和保存等工作,并提供简便直观的人机交互界面而不参与步进电机的实时
控制。STM32控制模块与PC端上位机和FPGA状态转换及分频模块分别进行通信,
从而实现三者之间数据和命令的传递处理。FPGA采用硬件编程语言Verilog-HDL进行
编写。实时控制模块中的FPGA负责与STM32微控制器进行通信并执行上位机发送过
来的相关命令,实现控制脉冲的输出,从而控制步进电机在启动、加速、减速等状态
间的转换。步进电机驱动器中的L297芯片负责将从FPGA输入的控制脉冲信号按一定
规律进行分配,再通过L298芯片进行功率放大,最终实现对8台步进电机的控制。光
栅传感器将电机的实时运行状态数据发送给FPGA,并最终传入STM32,与发送给电
机的控制信号进行比较,从而比较精准的控制电机的运行,达到对步进电机进行闭环
控制的目的。

使用特权

评论回复
板凳
Diyer2015|  楼主 | 2018-10-15 12:31 | 只看该作者

使用特权

评论回复
地板
Diyer2015|  楼主 | 2018-10-15 12:31 | 只看该作者

使用特权

评论回复
5
Diyer2015|  楼主 | 2018-10-15 12:31 | 只看该作者

使用特权

评论回复
6
Diyer2015|  楼主 | 2018-10-15 12:32 | 只看该作者

使用特权

评论回复
7
Diyer2015|  楼主 | 2018-10-15 12:33 | 只看该作者

使用特权

评论回复
8
Diyer2015|  楼主 | 2018-10-15 12:33 | 只看该作者
    多通道步进电机控制系统要对多台电机进行控制。本文中所使用的电机为两相双
极性混合式步进电机,采用ARM与FPGA共同完成此系统的设计,ARM负责发送控
制指令给FPGA, FPGA执行相应的控制指令,如启动、加速、减速、步数调整、停止
等。此系统中ARM与FPFA各行其是,节省了大量的系统资源,提高了运行速度,降
低了系统开发成本。
    步进电机由脉冲信号进行驱动运行,本系统中,由FPGA通过对时钟分频产生所
需要的脉冲,用以控制电机的运行状态。产生的脉冲信号由步进电机驱动器进行分配
和放大,驱动电机运行。

使用特权

评论回复
9
Diyer2015|  楼主 | 2018-10-15 12:34 | 只看该作者

使用特权

评论回复
10
Diyer2015|  楼主 | 2018-10-15 12:34 | 只看该作者

使用特权

评论回复
11
Diyer2015|  楼主 | 2018-10-15 12:35 | 只看该作者

使用特权

评论回复
12
Diyer2015|  楼主 | 2018-10-15 12:35 | 只看该作者
    单通道步进电机控制系统结构图如图2-3所示,控制信号(速度、位置或扭矩)
控制信号输入控制系统检测反馈单元,检测相应的反馈信号,并与输入信号进行比较,
对步进电机进行相应的控制。当控制信号为扭矩时,检测反馈为扭矩检测传感器,当
控制信号为速度或位置时,检测反馈环节为光栅传感器,单通道控制系统性的目的是
要单通道电机的输出跟随相应的输入信号,形成控制单通道闭环回路,达到对单台电
机闭环控制的目的。

使用特权

评论回复
13
Diyer2015|  楼主 | 2018-10-15 12:35 | 只看该作者

使用特权

评论回复
14
Diyer2015|  楼主 | 2018-10-15 12:36 | 只看该作者
如下模块化划分:
      C1)上位机
    上位机部分按照功能可分成参数设置、通信、网口控制、状态显示以及命令控制
等5个模块。在参数设置功能模块中完成对8台步进电机通道号的选择和对各步进电
机的频率、步数等参数的调整;通信模块的主要作用是实现上位机与STM32微控制器
之间的数据传输,最常使用的通信方式有串口通信和网口通信,串口通信是通过串口
将PC机与STM32连接,具有实现简单并且可靠性较高的优点,网口通信则是通过网
线连接上下位机,其最突出的优点便是数据传输速度较快。本文提出的多通道步进电
机控制系统对实时性要求比较高,数据量大,所以采用网口通信的方式。网口控制模
块的最主要作用便是对上下位机的通信情况进行实时监测,并显示上位机收发数据的
状况。状态显示功能模块实时显示出8台电机的各个参数,例如当前步数、加速时间、
停止时间等。命令控制功能模块包括了发送、复位、启动、停机等命令。

使用特权

评论回复
15
Diyer2015|  楼主 | 2018-10-15 12:36 | 只看该作者
      C 2 )  STM32微控制器
    依据STM32的功能作用,将其划分为JTAG下载功能模块、通信模块、I/O接口
模块、功能模块等。JTAG下载功能模块的主要功能是将编写好的程序烧写进SMT32
中,进行调试。通过通信模块,STM32接收上位机发送来的各步进电机的相应参数及
控制命令。I/O接口模块的功能是实现STM32与FPGA的通信,完成数据的传输。而
功能模块的主要作用则是将STM32要进行收发的数据进行相关处理,并分别存储,供
上位机与FPGA进行读写。

使用特权

评论回复
16
Diyer2015|  楼主 | 2018-10-15 12:37 | 只看该作者
      (3)FPGA
    FPGA中功能模块的划分与STM32类似,也有JTAG下载模块、I/O接口模块、功
能模块,所不同的是多出了脉冲输出这一模块。JTAG下载功能模块与STM32中的一
样,将编写好的程序烧写入FPGA进行调试。I/O接口功能模块于STM32的接口模块
相连接,用于数据的收发。FPGA的功能模块则是负责对其主频进行分频、输出波形计
数、控制步进电机在各个状态之间进行切换等。本文提出的多通道步进电机控制系统
采用的FPGA的基频为50MHz,按照各步进电机运行指标的要求,应当对FPGA主频
进行分频。FPGA使用状态机功能,完成电机在启动、加速、减速、停止等各个状态之
间转换的功能。控制个电机运行的脉冲信号则通过脉冲输出功能模块进行输出。

使用特权

评论回复
17
Diyer2015|  楼主 | 2018-10-15 12:37 | 只看该作者
      (4)步进电机驱动器
    步进电机驱动器是控制电机所必需的一部分,包括光藕隔离功能模块、功率放大
功能模块和输出模块等。输出模块则是将功率放大之后的脉冲信号输送给步进电机,
驱动各个电机运行。光藕隔离功能模块最主要的功能有两个:一、接收FPGA发送来
的脉冲信号;二、接收脉冲信号之前予以光藕隔离[[34]。步进电机驱动器的最重要部分
就是功率放大模块,因为FPGA发送来的脉冲并不足以驱动电机,而功放模块的功能
便是对发送来的脉冲信号予以环形分配,并进行功率放大。

使用特权

评论回复
18
Diyer2015|  楼主 | 2018-10-15 12:37 | 只看该作者
    (5)光栅传感器
    光栅传感器是对步进电机进行闭环控制所必需的一部分,相比于其他检测元件,
在对精度有较高要求的反馈控制系统中光栅传感器有着更好的性能。基于对光栅尺输
出的两相信号的捕获功能,内部寄存器记录下边沿变化产生的次数和变化方向实现相
对位移的测量。光栅传感器记录下来的电机实时运行信息交由FPGA和ARM进行处
理,最终实现对电机的闭环控制。

使用特权

评论回复
19
Diyer2015|  楼主 | 2018-10-15 12:38 | 只看该作者

使用特权

评论回复
20
Diyer2015|  楼主 | 2018-10-15 12:38 | 只看该作者

使用特权

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

本版积分规则

63

主题

1615

帖子

13

粉丝