基于STM32和FPGA的多通道步进电机控制系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于STM32和FPGA的多通道步进电机控制系统设计步进电机是一种开环控制电机,在自动控制系统中扮演着重要的角色,是其主要执行元件。在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲

信号的频率和脉冲数,而不受负载变化的影响[1]。

传统的步进电机控制系统多采用单片机和DSP芯片作为其核心,通常以定时器的方式产生控制脉冲[2],因此占用了较为可观的系统资源,脉冲频率更是为微控制器所限制,控制系统和驱动电路的设计复杂且昂贵,并在在设计完成后很难再做修改或者灵活应用于其他场合,系统的可移植性比较差,并且难以实现人机交互,控制精度低。在实际的工作和生产过程通常需要多台设备协调共同作用完成,因此就需要使用多台步进电机进行控制。

对多台电机联动控制的方法有很多,一般而言,可以采用多个CPU共同控制多台电机的方法,但是这种方法提升了系统硬件成本,增加了设计的难度,并且随着CPU数量以及元器件的增多,控制系统的稳定性和可靠性难以保证。为解决以

上这些问题,本文提出了一种基于ARM和FPGA(现场可编程门阵列)的多通道步进电机控制系统。

该控制系统以STM32和FPGA为核心,能够完成对8台步进电机的实时精确控制的功能。本文提出的多通道步进电机控制系统主要由上位机、STM32、FPGA和步进电机驱动器四部分组成。

上位机负责系统参数的定义、管理、监控,并对各步进电机的数据进行显示和保存等工作,并提供简便直观的人机交互界面而不参与步进电机的实时控制。STM32控制模块与PC端上位机和FPGA状态转换及分频模块分别进行通信,从而实现三者之间数据和命令的传递处理。

FPGA采用硬件编程语言Verilog-HDL进行编写。实时控制模块中的FPGA负责与STM32微控制器进行通信并执行上位机发送过来的相关命令,实现控制脉冲的输出,从而控制步进电机在启动、加速、减速等状态间的转换。

步进电机驱动器中的L297芯片负责将从FPGA输入的控制脉冲信号按一定规律进行分配,再通过L298芯片进行功率放大,最终实现对8台步进电机的控制。光栅传感器将电机的实时运行状态数据发送给FPGA,并最终传入STM32,与发送给电机的控制信号进行比较,从而比较精准的控制电机的运行,达到对步进电机进行闭环控制的目的。

相关文档
最新文档