当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 基于VHDL的直流电机控制功能模块设计

 

仝 勇 陶东娅 金银旗
(1.台州职业技术学院机电工程学院 2.台州市光跃饮水设备有限公司)


摘要:介绍了一种基于VHDL直流电机控制功能模块的设计方案。用硬件描述语言VHDL写代码生成功能模块IP核,并通过SOPC Builder将此IP核加入到NiosII软核中生成直流电机系统模块原理图。最后给出功能模块仿真时序图,结果表明与现有的其它方法相比,该方法具有灵活方便、稳定、易维护、高效率等优点。
关键词:VHDL;直流电机;FPGA;控制功能模块;NiosII;

0 引言
    随着社会的发展,直流电机的应用越来越普遍,对直流电机控制方式的要求也不断提高。本文利用ALTERA公司最新开发的SOPC解决方案,提出了基于NiosII软核处理器的直流电机功能模块的设计方案,给出了VHDL代码生成功能模块IP核。IP核的生成,不仅方便设计者灵活使用,节省资源,也大大缩短了设计周期。设计者可以根据需要直接调用IP核来组成NiosII系统,然后将此系统下载到FPGA中实现。IP核不仅可以用在电机控制中,还可以用来控制其它一些小型家电,全彩LED等,具有广阔的应用前景。

1 直流电机总体硬件设计
    如图1所示,系统整体由FPGA芯片控制,其控制核心为ALTERA公司的NiosII软核CPU,本文将着重介绍图中两个控制功能模块PWM模块和测速模块的设计与生成。这两个控制功能模块均采用VHDL硬件描述语言自行设计生成可以调用的IP核,通过QuartusII对其进行编译、仿真验证其正确性,最后将生成自定义接口功能模块添加到顶层原理图中,完成整个调速系统的设计。



2 PWM功能模块的设计
    PWM模块利用直流电机占空比来控制电机电枢电压,从而控制直流电机的转速。设计过程如图2所示。


    PWM功能模块的仿真波形如图3所示。


    从图3可以看出,仿真时给定一个时钟信号Clk,Sta用来控制直流电机正反转,图3中的0表示直流电机处于正转状态,1表示停止,3表示反转;Conword为占空比信号,仿真中有25%、78%、50%三种值;PWM A表示直流电机处于正转状态时的占空比输出,这时PWM B的输出为0;PWM B表示直流电机处于反转时的占空比输出,此时PWM A的输出值为0;而当电机处于停止状态时,如图中当Sta值为1时,PWM A和PWM B的输出值均为0。经仿真时序图验证此设计是有效的,从而将其生成PWM功能模块。
    PWM功能模块如图4所示。


    PWM控制功能模块的原理如下:将时钟源50MHz的基频信号64分频,作为PWM模块的基频信号,以256个该基频脉冲信号作为PWM输出的一个周期,由NiosII处理器给出Conword的值指定一个PWM周期内高电平持续时间,改变Conword的值即刻改变占空比输出的值。Sta用来控制电机正反转。
    PWM控制功能模块管脚分配图如图5所示。



3 测速功能模块的设计
    测速模块的作用主要是利用基频的周期来计算光栅信号的周期,算出直流电机的转速。其设计的流程图如图6所示。


    测速模块的时序仿真波形图如图7所示。
    从图7中可以看出,仿真时给定一个时钟信号Clk用于计时,en为使能信号,即表示光栅有效,dout表示光栅有效时间,仿真中有200、400、700三种值。通过时序仿真验证了此设计的测速模块是有效的,从而将其生成测速功能模块。
    测速功能模块如图8所示。


    其工作原理如下:给出己知频率的基频,用光栅作为门限,测基频脉冲的个数,由基频的周期来计算光栅信号的周期,再算出转速,电机控制算法即根据测速模块测出的速度进行算法调整,达到闭环控制的效果。
    测速模块的管脚分配图如图9所示。



4 结束语
    根据直流电机的功能需求,利用VHDL语言设计了PWM功能模块和测速模块,并进行了仿真,验证了设计的正确性,完成了系统设计。本文的创新之处在于利用软硬件直接设计控制功能模块,这种设计具有开发周期短、通用能力好、易于开发扩展等优点,值得推广。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭