步进电机控制电路一种基于FPGA的实现刘加峰,芦勤,郁苏娟(首都医科大学生物医学工程学院北京100069)摘要:提出了一种利用EDA技术,实现步进电机控制系统数字输入的方案,从而实现了对步进电机的精确控制。介绍了系统的原理与结构框图,详细论述了控制电路核心部分的设计原理和实现,并给出了仿真波形。该系统具有修改方便、使用灵活、可靠性高、可移植性强等优点.关键词:步进电机;细分控制;FPGA;EDADesignofDigitalStepmotorControllerSystemBasedonFPGALiujiafeng,Luqin,Luoshan(CapitalUniversityofMedicalSciences,Beijing,100069,China)Abstract:Inthispaper,firstadigitalinputtechniqueaboutstepmotorbasedonEDAisintroduced.ByusingthistechniquetheStepmotorcanbecontrolledaccurately.Besides,theprincipleandstructureblockdiagramareintroduced.Furthermore,thedesignprincipleandrealizationforthecoresectionofthecontrolcircuitareprobedindetail,andthesimulationwaveispresented.Thesystemhasthefeaturesofbeingeasilymodified,goodflexibility,highreliabilityandpowerfultransplantablecapability.Keywords:stepmotor;subdividedcontrol;FPGA;EDA1前言步进电机作为控制执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统和精密机械等领域,随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用,现在比较常用的步进电机包括反应式步进电机,永磁式步进电机,混合式步进电机和单相式步进电机等。其中反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。现阶段,反应式步进电机获得最多的应用。步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制,正是这个特点,步进电机可以和现代的数字控制技术相结合。传统步进电机控制电路的实现多用单片机或专用接口芯片.然而此类方法存在单片机易受电机干扰!专用接口芯片使用灵活性差等缺点[1]。本文提出一种利用FPGA设计技术实现步进电机控制电路的方案,具有修改方便!使用灵活!可靠性高!可移植性强等优点。2步进电机的控制原理[1]步进电动机是一种用电脉冲信号进行控制并将电脉冲信号转换成相应的角位移的执行器[4]。由于受脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。(1)结构:电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0て、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:图1:定转子的展开图(2)旋转:如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。同理如果以次给B、C相通电,每通一次电转子都会转动1/3て。如再给A相通电,B、C相不通电,齿4与A对齐,转子又向右移过1/3て这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A、B、C、A……通电,电机就每步(每脉冲)1/3て,向右旋转。如按A、C、B、A……通电,电机就反转。由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。,不过,出于对力矩、平稳、噪音及减少角度等方面考虑。本系统采用四相,八拍运行(A-AB-B-BC-C-CD-D-DA-A),步距角为0.9度。3步进电机的FPGA控制步进电机控制的最大特点是开环控制,不需要反馈信号。因为步进电机的运动不产生旋转量的误差累积。由FPGA实现的步进电机控制系统如图1所示。图2中,控制系统的核心芯片是FPGA,如虚线所示,它由两大功能模块组成:1)速度控制模块,核心是锁相环PLL宏模块电路,它在不同速度控制信号作用下,可将经时钟分频器分频后的系统时钟改变为不同的PWM信号[3],将此信号作为速度控制模块的变频时钟,可达到改变步进电机速度的目的;2)方向控制模块,核心是脉冲分配电路,在每一个变频时钟周期内,脉冲分配器可在不同的方向控制信号下产生不同方向的步进时序脉冲,从而控制步进电机是顺时针转动还是逆时针转动。输出接口速度控制模块方向控制模块时钟分频器驱动电路步进电机系统总线FPGA图2:系统原理结构框图3.1步进电机升降速设计在步进电机控制系统中,升速过程由突跳频率加升速曲线组成(减速过程反之)。突跳频率是指步进电机在静止状态时突然施加的脉冲频率f0必须小于启动频率fh,此频率不可太大,否则也会产生堵转和丢步。所以步进电机在启动时,必须有升速过程;在停止时必须有减速过程。在该控制系统中,变速曲线采用直线细分原理,控制效果较好。根据FPGA的性能特点,变速曲线采用直线细分原理[2],也就是对应于启动的频率上升,直线可以变化N个台阶,也就是频率可以细分为N个值,这就是变速曲线采用直线细分原理。从而可驱动步进电机平滑启动和停止,并可防止失步和过冲现象。fofh频率/HZt/s图3:步进电机加速过程中频率变化曲线3.2步进电机方向控制模块的实现及仿真方向控制模块的核心是脉冲分配电路,它有两个输入信号:一个是PWM信号构成的变频时钟,每输入一个PWM脉冲,脉冲分配器的四相输出时序将发生一次变化,从而使步进电机转动一步;另一个是方向控制信号,它的不同状态将使脉冲分配器产生不同方向的步进时序脉冲,从而控制步进电机的转动方向.根据四相八拍的控制方式[3],定子通电顺序为(A-AB-B-BC-C-CD-D-DA-A),因此本系统中采用了Mealy型状态机描述方法,状态取值依次是:S0=0001,S1=0011,S2=0010,S3=0110,S4=0100,S5=1100,S6=1000,S7=1001。→DAB→AB…。按控制时序的要求,用“1”表示该绕组加电,“0”表示该绕组断电。状态图如图4所示。S6S7S0S1S2S5S4S3D=1D=1D=1D=1D=1D=1D=1D=1D=0D=0D=0D=0D=0D=0D=0D=0图4:方向控制模块的状态流程图图5为方向控制模块的仿真波形,从图中可以看出,当信号U和D分别为高电平时,状态流程为相反方向,表示电动机转向相反。图5:方向控制模块的仿真波形图4结语使用FPGA方式驱动步进电机,不但可以通过编程方法,在一定范围内自由设定步进电机的转速!往返转动的角度以及转动次数等,而且还可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求。这样既简化了电路,也降低了成本。今后,可编程逻辑器件在步进电机控制中将发挥其可靠性、灵活性等独特的优越性。参考文献:[1]王德安,常春玲,基于单片机的步进电机控制[J]。计算机应用,2005第3期。[2]林海波,步进电机恒力矩均匀细分驱动器的设计与实现[J]。自动化技术与应用,2003,22(3):52-54。[3]丁伟雄,杨定安,宋晓光,步进电机的控制原理及其单片机控制实现。2005年第6期。[4]张琛,赵小林等,超微型电动机实用化的关键技术及应用前景[J]。上海交通大学学报,2000年第3期第34卷。作者简介:刘加峰,男,1975年出生,助教,1998年毕业于合肥工业大学电气工程系工业电气自动化专业。现从事医疗电子仪器设计与教学。作者详细地址:北京首都医科大学生物医学工程学院医疗电子教研室北京右安门外西头条10号邮编:100069电话:010-83911550Email:meljf@sohu.com