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

与非网 中字

  FPGA芯片内部由MPU模块、通讯模块、RAM模块、ROM模块、计数器模块、电机控制模块等构成。当控制器失电时,这些模块信息存储在配置芯片中,等到系统重新上电时,FPGA芯片再从配置芯片中读取其配置信息,重构内部模块结构。MPU模块是整个控制器的核心,它的功能等同于事实的微处理器。它通过通讯模块与外部主机进行数据的交换,并将数据存储在RAM模块中。RAM模块同时还用于暂存MPU模块执行ROM模块所存储的程序段时的某些中间过程值,而MPU则根据ROM模块中程序执行的结果输出相应的控制信号给电机控制模块。

  电机控制模块的输出连接到实际的芯片引脚上,以驱动相应的功率驱动电路工作,从而实现步进电机的运转。在闭环控制时,步进电机轴端的编码器模块输出编码信号。该信号经编码器反馈电路进行隔离等处理之后,由FPGA芯片内部的计数器模块进行计数,并将结果传输给MPU模块进行处理,从而形成位置/速度的闭环控制。

  图2只表示了单个步进电机闭环控制的结构框图,对于多轴步进电机而言,FPGA芯片只需要增加相应的功率驱动电路及编码器反馈电路即可。电机控制模块和计数器模块都在FPGA内部集成,因而硬件电路的结构较为稳定。

  由于IP技术的飞速发展,在图2中的FPGA芯片内部模块中,MPU、ROM、RAM、计数模块等的IP核都可以很方便地获得,而电机控制模块由于与具体的功率放大电路实际相关,因而通常需要用户自行设计。下面介绍这一模块的设计。

  2 二相步进电机控制模块结构

  以小惯量的二相步进电机为例阐述步进电机控制模块的结构。该步进电机由两片PBL3717a芯片所驱动,其驱动时序及其控制模块如图3、图4所示。

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

  在控制模块中,mtr_cp为步进电机的脉冲输入端,每个脉冲驱动步进电机前进/后退一步,脉冲频率即为步进电机运行的速度,因此这个脉冲信号由MPU模块根据ROM内部程序的执行结果输出。mtr_dir为步进电机的正/反转切换信号,mtr_mode为步进电机全/半步运行方式选择,mtr_on_off是电机的启停位,该位置1时,mtr_cp能够驱动步进电机工作;为0时,mtr_cp脉冲被封锁。设置该位的目的是为了在多个步进电机工作时分别控制各个电机的启停而不影响到其他电机的运行状态。

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存