基于VHDL的直流电机控制功能模块设计
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功能模块和测速模块,并进行了仿真,验证了设计的正确性,完成了系统设计。本文的创新之处在于利用软硬件直接设计控制功能模块,这种设计具有开发周期短、通用能力好、易于开发扩展等优点,值得推广。
- 基于FPGA的三相PWM发生器(06-23)
- 基于CPLD的高速可程控数字延迟线系统的设计(08-02)
- 基于CPLD在臭氧电源中的应用(08-19)
- 基于SPCE061A和CPLD的电动自行车充电系统研制(10-22)
- 基于FPGA电火花加工脉冲电源的设计与研究(11-11)
- 一种高效多串口单一中断源的芯片设计(11-14)