您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > VHDL-步进电机控制
1用VHDL语言设计的步进电机控制器施纪红(健雄职业技术学院计算机工程系,江苏太仓215411)摘要:提出了一种利用VHDL语言设计步进电机控制器的思路,该控制器能够实现速度控制、工作方式选择等多种功能。对该系统的结构、各模块的功能,综合、仿真进行了详细的论述。该系统具有修改方便、使用灵活、可靠性高、可移植性强等优点。关键词:VHDL;步进电机;脉冲分配器;仿真中图分类号:TN702;TH39文献标识码:A1引言随着电子技术的发展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现,使得电子系统的设计者利用与器件相应的电子设计软件,在实验室里就可以设计自己的专用集成电路ASIC器件。其中电子设计自动化(EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。[1]利用VHDL这些优点和先进的EDA工具,根据具体的实际要求,将设计一个步进电机控制器电路。步进电机是一种将电脉冲转化为角位移的执行机构。也就是当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。现场可编程门阵列(FPGA)是对步进电机实现一体化控制的理想选择。本文主要介绍了利用VHDL语言设计的三相反应式步进电机驱动电路的设计思路:现场可编程门阵列(FPGA)将接口电路送来的一系列信号,转换成步进电机的驱动脉冲经过功率放大后送给步进电机,以此控制步进电机的转动方向和速度。如图1。图1步进电机驱动电路原理图Fig.1Circuitousphilosophyofsteppermotordevice2步进电机控制器原理步进电机控制器主要由三部分组成,原理如图2。2图2步进电机控制器原理图Fig.2Circuitousphilosophyofsteppermotorcontroller2.1频率发生器步进电动机的转动是由脉冲控制的,通过控制脉冲频率即可控制电机转动的速度和加速度,从而达到调速的目的。此处设置了四档调速。CLK是外部输入频率,P2和P1是分频模式选择,P2、P1:00:外部输入脉冲频率(不分频);P2、P1:01:对外部输入频率4分频;P2、P1:10:对外部输入频率8分频;P2、P1:11:对外部输入频率16分频;处理过的脉冲信号由CK端送入脉冲分配器。[2]2.2方向锁存器步进电机的状态分为启动和停止,启动后又分为正转、反转。据此电机转动控制上设置了三个信号输入端,Z为正转启动脉冲信号,F为反转脉冲信号,T为停止的脉冲信号。通过方向锁存器将输入的脉冲信号转为电平信号,并且保证信号的唯一性。根据三相线圈轮流通电方式的不同,三相反应式步进电动机有三相单三拍、三相双三拍、三相六拍等三种通电方式,实际应用中三相单三拍运行方式很少采用,因为这种运行方式每次只有一相绕组通电,容易使转子在平衡位置附近产生摆动,因而稳定性不好。所以此控制器设置了后两种拍通电方式,M为供电方式的选择,M=1为三相六拍,M=0为三相双三拍。2.3脉冲分配器三相六拍运行的供电方式是:A—AB—B—BC—C—CA—A……一个循环周期换接六次,有六种通电状态,故称三相六拍运行方式。如果每次都是两相控制绕组同时通电,即按AB—BC—CA—AB……的顺序通电为三相双三拍.根据M的状态,控制脉冲的输出情况。脉冲分配器设计的主要思路是,设置一个6进制的计数器。三相六拍正转为1-6循环,反转为6-1循环;三相双三拍正转为2-4-6循环,反转为6-4-2循环。示意见图3。[3-5]图3脉冲分配器设计思路Fig.3Realizationschemeofpulsedistributor根据需要先用VHDL语言调试和仿真出频率发生器、方向锁存器、脉冲分配器三个部,按照图4完成顶层文件。完成整个步进电机控制器的设计。3图4顶层文件Fig.4Topdocument鉴于篇幅有限,仅提供脉冲分配器部分的源程序清单如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymcisport(inclk:instd_logic;smzfd:instd_logic_vector(3downto0);outputcba:outstd_logic_vector(2downto0));endmc;architecturearch_mcofmcissignalsa:std_logic_vector(2downto0);beginprocess(inclk,smzfd)isbeginif(rising_edge(inclk))thenif(smzfd=1100)thenif(sa=6)thensa=001;elsesa=sa+1;endif;elsif(smzfd=1010)thenif(sa=1)thensa=110;elsesa=sa-1;endif;elsif(smzfd=1000)thensa=000;elsif(smzfd=0100)thenif(sa=6)thensa=010;elsesa=sa+2;endif;elsif(smzfd=0010)thenif(sa=2)thensa=110;elsesa=sa-2;endif;elsif(smzfd=0000)thensa=000;4endif;endif;endprocess;withsaselectoutputcba=001when001,--1011when010,--2010when011,--3110when100,--4100when101,--5101when110,--6000whenothers;--0endarch_mc;3仿真结果利用ALTERA公司提供的MAXPLUSII软件对程序进行了编译,适配的FPGA器件为ALTERA公司的EP1K30QC208-3芯片。仿真部分结果见图5、图6,可看出本程序的设计是正确的。图5三相双三拍正转仿真波形Fig.5Three-phasewithdoubletriplebeatinpositiverotationofstimulationwave图6三相六拍正转仿真波形Fig.6Three-phasewithsix-beatinpositiverotationofstimulationwave4结语本文介绍了用VHDL语言设计的一种步进电机控制器,根据仿真波形的分析,基本达到了设计初的要求,能完成步进电机两种工作模式的选择,实现步进电机正、反、停的要求,可以实现步进电机频率的控制。可见利用EDA软件可以缩短设计周期,是一种快捷方便的电路设计方法。参考文献:[1]史小波,程梦璋,许会芳.集成电路设计VHDL教程[M].北京:清华大学出版社,2005.[2]余少辉.基于FPGA的数字输入式步进电机控制系统设计[J].现代电子技术,2004,186(19):87-88.[3]赵京东.双三拍与三相六拍步进电机控制器的GAL电路设计[J].曲阜师范大学学报,2001,1(17):95-96.5[4]王春侠.基于CPLD的步进电动机控制[J].陕西工学院学报,2003,19(1):24-25.[5]吴亮红,成继勋.基于CPLD的可控步进电机脉冲分配器设计[J].控制工程,2005,1(12):94-95.TheControllerofStepperMotorDesignedwithVHDLSHIJi-hong(DepartmentofComputerEngineering,Chien-shiungInstituteofTechnology,Taicang215411,China)Abstract:ArealizationschemeofcontrolcircuitbasedonVHDLforsteppermotorispresented.Thecontrollercanrealizefunctionsofspeedcontrolandworkmodelselection,etc.Theframework,thefunctionofeachmoduleanddesignoptimization,synthesis,simulationabouttheprogramisdiscussedindetails.Thissystemhasthefeaturesofbeingeasilymodified,goodflexibility,highreliabilityandpowerfultransplantablecapability.Keywords:VHDL;steppingmotor;pulsedistributor;simulate作者简介:施纪红(1976-),女,江苏镇江人,健雄职业技术学院计算机工程系讲师,主要研究方向为单片机开发。
本文标题:VHDL-步进电机控制
链接地址:https://www.777doc.com/doc-5703801 .html