基于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脉冲被封锁。设置该位的目的是为了在多个步进电机工作时分别控制各个电机的启停而不影响到其他电机的运行状态。
mtr_reset是控制模块复位信号,A_out为图3中下标为A的驱动芯片控制信号,B_out为图3中下标为B的驱动芯片的控制信号。步进电机的控制模块的仿真波形图如图5所示。从图5可以看出,仿真波形完全符合图2中步进电机的驱动时序,即控制模块的设计满足预定的设计需求。
由上分析,利用上述多个步进电机控制模块以图6所示的方式进行适当的连接,就能够构成本文所论述的基于SOPC的步进电机多轴控制器。由于MPU、ROM、RAM、电机控制模块等都是以功能模块的形式集成在FPGA芯片内部,因此大大缩小了基于SOPC的步进电机多轴控制器的尺寸。这些功能模块可以根据实际的应用进行添加或删除(即对FPGA芯片的内部逻辑结构进行重构),因此极大地增强了系统设计的灵活性,能更好地满足不同应用领域的需求。
IP技术的飞速发展使得开发人员很容易获得多数通用模块的可复用IP核,从而减轻了开发人员的负担,缩短了开发周期。当系统需要升级时,也不需要对硬件电路重新设计,只需通过修改FPGA中相应模块的配置文件,因此节约了控制器的升级成本。同时,由于MPU模块的功能与实际的微处理器相同,因而在微处理器上可运行的控制程序也可以很容易移植到MPU模块中运行。
为了便于阐述基于SOPC的步进电机多轴控制器,本文侧重于阐述多个步进电机同速恒速运行的情况。对于变速运行的情况,可通过在MPU的脉冲输出端和各电机控制模块的脉冲输入端之间插入MPU可控的分频模块来获得,同时增加插补模块以实现不同电机之间的联动功能。
本文所述的基于SOPC的步进电机多轴控制器应用于半自动生化分析仪的取样针移位系统中,能够实现传统步进电机多轴控制器的所有控制功能,控制器的尺寸小于传统控制器;当控制器的数字电路部分需要修改时,无需更换控制器的实际硬件电路,大大方便了控制器的研究设计工作并节约了相应的开发成本。
FPGA步进电机多轴控制 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)