步进电机是一种开环控制电机,在自动控制系统中扮演着重要的角色,是其主要
执行元件。在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲信号的频
率和脉冲数,而不受负载变化的影响[’]。传统的步进电机控制系统多采用单片机和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,与发送给电
机的控制信号进行比较,从而比较精准的控制电机的运行,达到对步进电机进行闭环
控制的目的。
|