基于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所示。
在控制模块中,mtr_cp为步进电机的脉冲输入端,每个脉冲驱动步进电机前进/后退一步,脉冲频率即为步进电机运行的速度,因此这个脉冲信号由MPU模块根据ROM内部程序的执行结果输出。mtr_dir为步进电机的正/反转切换信号,mtr_mode为步进电机全/半步运行方式选择,mtr_on_off是电机的启停位,该位置1时,mtr_cp能够驱动步进电机工作;为0时,mtr_cp脉冲被封锁。设置该位的目的是为了在多个步进电机工作时分别控制各个电机的启停而不影响到其他电机的运行状态。
图片新闻
技术文库
最新活动更多
-
即日-12.26立即报名>>> 【在线会议】村田用于AR/VR设计开发解决方案
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
1月9日立即预约>>> 【直播】ADI电能计量方案:新一代直流表、EV充电器和S级电能表
-
即日-1.14火热报名中>> OFweek2025中国智造CIO在线峰会
-
即日-1.20限时下载>>> 爱德克(IDEC)设备及工业现场安全解决方案
-
即日-1.24立即参与>>> 【限时免费】安森美:Treo 平台带来出色的精密模拟
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论