微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于MCU和DSP的步进电机控制技术

基于MCU和DSP的步进电机控制技术

时间:01-10 来源:克里夫兰州立大学 Dan Simon 点击:

当S1断开,S2闭合时,电流流向变为由左至右。因此,我们仅用两个开关就能改变电流的流向(而在双极电机中需要4个开关才能做到)。表3所示为单极电机驱动电路中,每一步激励时开关所处的位置。

虽然单极电机的驱动器控制起来相对简单,但由于在电机中使用了中心抽头,因此它比双极电机更复杂,而且其价格通常比双极电机贵。此外,由于电流只流经一半的电机绕组,所以单极电机只能产生一半的磁场。

在知道了单极电机和双极电机的构造原理之后,当我们遇到一个没有标示抽头也没有数据手册的电机时,我们就能自己推导出抽头和绕组的关系。带4个抽头的电机就是一个双相双极电机,我们可以通过测量导线之间的阻抗来分辨哪两个抽头属于同一个绕组。带6个抽头的电机可能是一个双相单极电机,也可能是一个三相双极电机,具体情况可以通过测量导线之间的阻抗来确定。

表1 双相电机动作过程中的绕组抽头极性


电机控制

本文前面讨论的电机控制理论可以采用全硬件方案实现,也可以用微控制器或DSP实现。图8说明了如何用晶体管作为开关来控制双相单极电机。每个晶体管的基极都要通过一个电阻连接到微控制器的一个数字输出上,阻值可以从1到10M欧姆,用于限制流入晶体管基极的电流。每个晶体管的发射极均接地,集电极连到电机绕组的4个抽头。电机的中心抽头均连接到电源电压的正端。

每个晶体管的集电极均通过一个二极管连接到电压源,以保护晶体管不被旋转时电机绕组上的感应电流烧坏。转子旋转时,电机绕组上会出现一个感应电压,如果晶体管集电极没有通过二极管连接到电压源,感应电压造成的电流就会涌入晶体管的集电极。

表2:双相电机动作过程中开关的位置


举个例子,假设数字输出do1为高而do2为低,于是do1会使晶体管T1导通,电流从+V流经中心抽头和T1的基极,然后由T1的发射极输出。但此时do2处于断开状态,因此电流无法流经T2。这样推理下去,我们就能将表3改为驱动电机所需的微控制器数字输出的改变顺序。

一旦清楚了驱动电机所需的硬件和数字输出的顺序,我们就可以对最顺手的微控制器或DSP编写软件,实现这些序列。

固件控制

我本人在一块Microchip PIC16F877上,利用1N4003二极管和2SD1276A达灵顿晶体管实现了以上谈到的电机控制器。PIC的PortA第0位到第3位用来做数字输出。电机采用在Jameco购买的5V双相单极电机(Airpax [Thomson]生产,型号为M82101-P1),并且用同一个5V电源为PIC和电机供电。但在真正应用时,为避免给微控制器的电源信号引入噪声,建议大家还是分别用不同的电源为电机和微控制器供电。

列表1给出了控制程序的汇编源代码,该程序每50毫秒旋转电机一次。首先,程序会将微控制器的数字输出初始化为表4中第一步的值,然后每隔50毫秒(此时间常数由程序中的常量waitTime定义)按照正确的顺序循环输出数字信号。若需使电机反向旋转,只需按与表4所示相反的顺序输出数字信号即可。

本人所用的电机为24极电机,即每一步输出可以控制电机旋转180°/24=7.5°。电机每50毫秒旋转7.5°,也就是每2.4秒转一周。如果将常量waitTime减小一半,电机转速会加快一倍。但因为转子受惯性、摩擦力和其他机械限制,所以电机转速有一个上限,当定子磁场旋转过快时,转子的转速无法跟上,导致电机的旋转也无法跟上,开始跳动(skipping)。如果这时再降低欧姆aitTime,电机很可能干脆就停止旋转。

除了本文重点讨论的双相电机以外,步进电机还有其他类型,如三相步进电机或四相步进电机。另外还有一些双相步进电机,它们只有一个中心抽头,同时连接到两个绕组的中心点,这类步进电机外部有5个抽头引出。

同样,步进电机也不是电机家族中的唯一成员,最古老也最简单的电机是直流(DC)电机。早期的直流电机使用电刷,现在已经不再流行。如今常见的无刷直流电机,就是利用电子线路代替电刷进行换向的直流电机,这类电机中不存在电刷老化问题,因此其寿命比有刷直流电机长很多。

还有一种感应电机,其工作原理与步进电机或直流电机完全不同。直流电机采用的是直流电压源,而感应电机则采用交流(AC)电压源,并且步进电机和直流电机中转子与定子磁场的旋转是同步的,而感应电机中转子的转速滞后于定子磁场的转速。

本文小结

本文对步进电机进行了概括性的介绍,更多的细节等待着您的发现。但只要您理解了本文介绍的电机工作原理,那么您就已经完全可以开始设计、维护和调试步进电机的驱动软、硬件了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top