基于单片机的步进电机控制器.docx
基于单片机的步进电机控制器caojing导语:第三届伺服与运动控制论坛论文集,基于单片机的步进电机控制器魏彬赵婧马辉。西安工程大学电子信息学院魏彬赵婧马辉本文介绍了一种基于单片机的步进电机控制系统实例,具体阐述了该系统的硬件和软件设计原理,并给出了控制电路原理图及局部控制程序。1步进电机及控制要求步进电动机又称为脉冲电动机,是数字控制系统中的一种执行元件。其功能就是将脉冲电信号变换为相应的角位移或者直线位移,即给一个电脉冲信号,电动机就转动一个角度或者前进一步。因此只要控制输入脉冲的频率以及电机绕组通电相序即可获得所需的转角、转速及转向,很轻易用微机实现数字控制。由于步进电机在负载才能范围内有步距值不因电源电压、负载大小、环境条件的波动而变化、误差不长期累积以及控制性能好等优点,所以步进电机在纺织、仪器仪表、冶金等行业得到了广泛的应用。2系统硬件设计步进电机分为PM型永磁式,VR型反响式和HB型混合式3种类型,相数有两相、三相、四相、五相、六相等多种形式,目前常用的是两相和四相混合式步进电机。本文介绍由51单片机和SLA7026两相功率驱动器组成的两相步进电机控制器。其控制框图如图1所示。IMG=图1控制系统框图/uploadpic/THESIS/2007/11/2007111616292667004S.jpg/IMG图1控制系统框图在图1中由单片机接收来自上位机的脉冲、使能及方向信号,在单片机内部由程序实现脉冲分配器的功能,产生步进电机工作所需的各相脉冲信号,功率驱动局部对单片机输出的弱信号进展放大,产生电机所需要的电流。本控制系统采用STC单片机作为处理器,本系统选用的步进电机为两相混合式步进电机,工作电压为+24V,步距角为1.8。本系统采用SLA7026作为功率放大器。SLA7026是两相步进电机集成控制/驱动模块。采用SIP18封装。使用的电源为1044V,最大输出电流为3A。其封装与管角定义如图2所示。IMG=图2SLA7026封装图/uploadpic/THESIS/2007/11/2007111616295276921B.jpg/IMG图2SLA7026封装图其中INA,IN/A,INB,IN/BA和/A为步进电机绕组的两端为步进电机脉冲控制信号输入端,由于输入兼容5V逻辑电平所以与单片机管角可以直接连接。OUTA,OUT/A,OUTB,OUT/B为步进电机输出控制端,其输出电流为3A因此可直接与电机连接,不需要光耦驱动及隔离。CONTROLSUPPLY和GROUND分别为正电源和地。步进电机具有自锁才能,电机可以停在最后一个脉冲控制的角位移的终点位置上,这样不仅电机就可以实现停车时转子定位。但是这时,步进电机的发热情况十分严重,电机的温度随着自锁时间上升直至一极限值,但是假如该温度高于一定值得话就会破坏电机内部绕线使电机不能正常运转,因此我们可以在适当的时候本系统设定时间为1秒钟使SLA7026的REFERENCE输入端有效,当该管角有效时其输出电流减小为一半,这样就可以有效的解决电机发热问题。半电流锁定详细电路如图3所示。IMG=图3半电流锁定电路图/uploadpic/THESIS/2007/11/2007111616302385512V.jpg/IMG图3半电流锁定电路图IMG=图4拨码开关电路图/uploadpic/THESIS/2007/11/2007111616303081474B.jpg/IMG图4拨码开关电路图运行时,SLA-7026共有三种运行方式,其中两种为全步运行,一种为半步运行。三种运行方式可以通过单片机外接的拨码开关进展选择。拨码开关电路图如图4所示,当拨码开关某一段闭合有效时与之相连接的P口即被拉为低电平。SLA7026作脉冲分配器驱动步进电机的电路图如图5所示。这里上位机发出的脉冲,使能和方向信号经光耦隔离后输入单片机,SLA7026脉冲输入端直接与单片机相连,J2是步进电机接口,其中1角是公共段接+24V,其余4个为步进电机绕组。IMG=图5步进电机驱动电路图/uploadpic/THESIS/2007/11/2007111616304144841R.jpg/IMG图5步进电机驱动电路图3系统软件设计在本系统中,单片机的主要作用是在实现环形分配器的功能,它承受上位机发出的脉冲、使能和方向信号,通过对输入的脉冲序列进展计数然后按顺序传送控制脉冲即相应的控制模型。上电后首先进展使能信号判定,只有当使能信号有效时其他信号才有意义,然后对旋转方向和工作方式进展判定,本系统共有三种工作方式通过外部拨码开关进展选择,第一种方式通电顺序为AB/A/BA,第二种方式通电顺序为AB/AB/A/BA/BAB,第三种方式通电顺序为AABB/AB/A/A/B/BA/BA,如按上述顺序通电,步进电机正向转动,反之,假如通电顺序相反,那么步进电机反向转动。这局部的程序清单如下所示。if!P2_2/通过P口的状态,判定用户所选取的形式if!P2_3m1=1;elsem1=2;elsem1=3;switchi%4/i是脉冲计数器,此段程序是在形式1下的控制case0:/模型ina1=1;/ina,Nina,inb,Ninb分别对应A,/A,B,/BNina1=0;inb1=0;Ninb1=0;break;case1:ina1=0;Nina1=0;inb1=1;Ninb1=0;break;case2:ina1=0;Nina1=1;inb1=0;Ninb1=0;break;default:ina1=0;Nina1=0;inb1=0;Ninb1=1;单片机的主要工作是对输入的脉冲序列进展计数然后按顺序传送控制脉冲即相应的控制模型。首先设一个专用计数器对由单片机P1.2口输入的脉冲序列进展计数,然后利用该计数值进展查表选择所需输出的控制模型,并在模型的最后状态对该计数器清“零。该局部程序清单如下所示。ifdir1/假如方向信号是1正转,计数器加一,反之那么减。contr1+;elseifdir1=0contr1-;ifi>=12|i=20counter1=0;evtimer1=1;4完毕语步进电机在纺织工业中的应用特别广泛,我们研制的基于单片机的步进电机控制系统具有体积小,功耗低,可靠性高及可维护性强等特点。并在电脑横机控制系统的应用中获得了良好的效果。0