首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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

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

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


分频器模块
分频器模块实现将 50MHz 全局时钟分频得到一路1Hz 时钟信号和一路1KHz 的时钟信号。1KHz 时钟信号分别提供给电机控制模块和显示模块,1Hz 时钟信号提供给电机控制模块。
译码显示模块
译码显示模块是由动态显示驱动、数据多路选择、译码电路构成,译码显示模块的功能是将电机运行数据经译码后动态显示于数码管上,同步显示电机运行结果。
电机控制模块
电机控制模块[6]主要由基脉冲模块、脉冲叠加模块、脉冲调速器模、脉冲输出控制模块组成。
基脉冲模块
基脉冲模块内部有一个 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 种频率不同并且互相不重叠的脉冲信号叠加后输出脉冲,这样的脉冲中包含了速度信息、加速度信息等控制步进电机运行的参数。
脉冲输出控制模块
总脉冲输出控制模块是根据步进电机的位置信息,输出控制步进电机的走步距离。其实现可以直接对输出的脉冲计数,当计数值未达到设定的总脉冲数时,一直输出脉冲;当计数值与设定的总脉冲数相一致时,控制不再输出脉冲。
功能仿真和下载验证
各模块Verilog HDL就要选择合适的目标芯片进行综合、管脚配置。本系统选用Xilinx公司的Spartan-IIE系列XC2S100E芯片[8],选用优化效率和兼容性优秀的综合器XST对程序进行综合,将综合生成的网表文件由ModelSim进行仿真,得到如图6所示结果。

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

结束语
步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字化执行元件。随着电子技术和计算机技术的发展,在许多领域将得到广泛的应用。本控制器采用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
作者:褚达华
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表