网站首页 > 电机控制> 文章内容

基于FPGA设计的步进电机控制系统

※发布时间:2017-6-19 22:47:23   ※发布作者:habao   ※出自何处: 

  步进电机是一种将电脉冲信号变换成相应的角位移或直线位移的机电执行机构。控制步进电机的输入脉冲数量、频率及电机各相绕组的接通顺序,可以得到各种需要的运行特性。由于步进电机具有步距值不受诸如电压和温度变化的影响、误差不长期积累以及控制性能好等优点, 所以在仪器仪表、、数控机床、纺织、轻工、石油、邮电、冶金和化工等行业得到了越来越广泛的应用。本文讨论一种基于设计的步进电机控制系统,利用FPGA的I/O端口多,可以编程支配、定义其功能的特点。不仅实现简单方便,而且容易仿真。且鉴于FPGA芯片和Verilog HDL语言的特点,系统具有良好的扩展性和通用性。

  基于 FPGA 设计的步进电机控制系统方案的框图[1]如下,它主要由脉冲发生器、分频器模块、电机控制模块、译码显示模块和电机驱动模块和数码显示6 个模块组成。当系统工作时,脉冲发生器提供时钟的输入信号,通过分频器模块对脉冲信号进行分频,分别为电机控制模块和译码显示模块提供时钟信号。电机控制模块输出控制步进电机的脉冲信号,通过电机驱动模块进行脉冲分配和功率放大后直接驱动步进电机。同时电机控制模块输出电机的运行数据到译码显示模块,进行译码后动态显示于数码管,在数码管上可以实时观测电机运行状态。图中虚线框起来的部分包括分频器模块、译码显示模块、电机控制模块都是通过FPGA进行实现,其余部分为外部设备。

  基于 FPGA 设计的步进电机控制系统主体采用Verilog HDL 语言设计,将系统按功能进行划分实现层次化设计。在顶层设计中对内部各功能模块的连接关系和对外接口关系进行描述,系统按基本功能分为分频器模块、译码显示模块、电机控制模块,其中电机控制模块的具体功能有下层模块实现。将各模块进行综合[2]组成了步进电机控制系统,其顶层Verilog HDL 源代码[3][4][5]和电图如下所示。

  分频器模块实现将 50MHz 全局时钟分频得到一1Hz 时钟信号和一1KHz 的时钟信号。1KHz 时钟信号分别提供给电机控制模块和显示模块,1Hz 时钟信号提供给电机控制模块。

  译码显示模块是由动态显示驱动、数据多选择、译码电构成,译码显示模块的功能是将电机运行数据经译码后动态显示于数码管上,同步显示电机运行结果。

  基脉冲模块内部有一个 10 位数据的计数器,其计数时钟是分频后的1KHz 时钟信号。通过计数器计数实现对1KHz时钟信号的分频,分别完成1/2、1/4、1/8、1/16、1/32、1/64、1/128、1/256、1/512、1/1024 时钟信号的基脉冲。脉冲输出时,只需要控制将其需要的频率成分叠加,这样就可以组合成连续可调频率的脉冲输出信号,输出脉冲的范围在1~1024Hz。

  每秒输出脉冲数寄存器模块根据速度以及加速度信息,控制每秒输出的脉冲个数,最终达到控制步进电机速度的目的。根据总的脉冲数来判断距离长短,以确定步进电机运行模式。步进电机按两种模式[7]运行,短距离时,步进电机以恒速进行运行;长距离时,步进电机不仅有恒速过程,还有加减速过程,以快速反应。

  每秒输出脉冲数寄存器模块根据速度以及加速度信息,控制每秒输出的脉冲个数,最终达到控制步进电机速度的目的。脉冲叠加模块是根据每秒钟的脉冲个数来控制脉冲的输出,其实质是根据每秒钟的脉冲个数,将10 种频率不同并且互相不重叠的脉冲信号叠加后输出脉冲,这样的脉冲中包含了速度信息、加速度信息等控制步进电机运行的参数。

  推荐:

  

相关阅读
  • 没有资料