搜索
您的当前位置:首页基于 FPGA 设计的步进电机控制系统

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

来源:飒榕旅游知识分享网
http://www.paper.edu.cn

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

褚达华

上海交通大学微电子学院,上海 (200030)

E-mail:chudahua@citiz.net

摘 要:本文介绍了以Xilinx公司Spartan II系列FPGA实现步进电机控制的方法,并对该系统的结构、各模块功能、系统仿真和下载试验都作了详细论述。 关键词:步进电机;Verilog HDL语言;FPGA 中图分类号:TN4

1. 引 言

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

一路脉冲

脉冲分配器 图1 步进电机控制图 功率放大 步进 电机 2. 步进电机控制系统方案

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

- 1 -

http://www.paper.edu.cn

脉 冲 发生器 分频器模块译码显示模块数码显示电机控制模块 电机驱动模块步进 电机图2 步进电机控制系统方案

3. FPGA结构设计

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

其Verilog顶层源代码如下:

module main(GClk_50MHz,reset,select,data_out,wave_out); input GClk_50MHz; input reset; output[1:0] select; output [7:0]data_out; output wave_out;

wire [3:0]synthesized_wire_1; wire [3:0]synthesized_wire_2;

fdiv fdiv(.reset(reset),.GClk_50MHz(GClk_50MHz),.Clk_1KHz(Clk_1KHz),. Clk_1Hz(Clk_1Hz));

stepmotor stepmotor(.reset(reset),. Clk_1KHz(Clk_1KHz),. Clk_1Hz(Clk_1Hz),. display1(synthesized_wire_1),. display2(synthesized_wire_2),.wave_out(wave_out));

dispedcoder dispedcoder(.Clk_1KHz(Clk_1KHz),.display1(synthesized_wire_1),. display2(synthesized_wire_2),.select(select),.data_out(data_out)); endmodule

- 2 -

http://www.paper.edu.cn

图3 步进电机控制系统顶层电路

3.1 分频器模块

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

3.2 译码显示模块

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

3.3 电机控制模块

电机控制模块[6]主要由基脉冲模块、脉冲叠加模块、脉冲调速器模、脉冲输出控制模块组成。

3.3.1基脉冲模块

基脉冲模块内部有一个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。 3.3.2脉冲调速模块

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

- 3 -

http://www.paper.edu.cn

f 恒速

加速 减速0 t 图5 加减速定位控制

3.3.3脉冲叠加模块

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

总脉冲输出控制模块是根据步进电机的位置信息,输出控制步进电机的走步距离。其实现可以直接对输出的脉冲计数,当计数值未达到设定的总脉冲数时,一直输出脉冲;当计数值与设定的总脉冲数相一致时,控制不再输出脉冲。

4. 功能仿真和下载验证

各模块Verilog HDL就要选择合适的目标芯片进行综合、管脚配置。本系统选用Xilinx选用优化效率和兼容性优秀的综合器XST对程序进公司的Spartan-IIE系列XC2S100E芯片[8],

行综合,将综合生成的网表文件由ModelSim进行仿真,得到如图6所示结果。

图6 功能仿真

图7是基于FPGA设计的步进电机控制系统的硬件图,Xilinx开发板输出脉冲信号连接到电机驱动板的脉冲输入端,电机驱动板进行脉冲分配和功率放大后连接到4相步进电机。图中Xilinx开发板的电源由USB端口供电,电机驱动板的电源输入24V电源。芯片在50MHz下工作,能顺利完成对步进电机精确控制。

- 4 -

http://www.paper.edu.cn

图7 下载验证

5. 结束语

步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字化执行元件。随着电子技术和计算机技术的发展,在许多领域将得到广泛的应用。

本控制器采用Xilinx公司Spartan II的FPGA实现了步进电机的精确控制,与传统的由多个分立元件和集成块构成的步进电机控制系统相比,具有可靠性高、性能稳定、成本低廉的特点。而且使用先进的EDA设计工具使设计更加简单方便,灵活快速。

参考文献

[1] 余少辉, 基于FPGA的数字输入式步进电机控制系统 [J].电子世界,2004年,12期 [2] 石英, 李新新. 姜宇柏.ISE应用与开发技巧[M] ,北京:机械工业出版社,2006,10 [3] 常晓明等.Verilog HDL工程实践入门[M] ,北京:北京航空航天大学出版社,2005,8 [4] 刘秋云,王佳.Verilog HDL设计实践和指导[M],北京:机械工业出版社,2005.1 [5] 王金明.Verilog HDL程序设计教程[M] ,北京:人民邮电出版社,2004.1

[6] 冼进.Verilog HDL数字控制系统设计实例[M] ,北京:中国水利出版社,2007 [7] 王晓明.电动机的单片机控制[M] ,北京:北京航空航天大学出版社,2002.5 [8] 黄智伟.FPGA系统设计与实践[M] ,北京:电子工业出版社,2005.1

FPGA-based design of the stepper motor control system

CHU Dahua

Department of Micro Electronics,Shanghai Jiaotong University, Shanghai (200030)

Abstract

This paper introduces the control system used for stepping motor ,which is realized on the FPGA of Xilinx's Spartan II series, It makes a detail discuss about the system structure、the function of each mode、system simulation and download experiment.

Keywords: Stepping motor; Verilog HDL language; FPGA

- 5 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Top