在HCS08系列MCU上用软件实现仪表步进电机的驱动
步进电机由于具有角位移和输入脉冲数成正比并且没有累积误差的特点,而被广泛地用作汽车仪表的显示部件。在多数情况下,人们会使用专用的驱动芯片来驱动步进电机,主控制器只需要给出方向控制信号和控制转动步数的脉冲就行了。另外,也有集成了步进电机驱动电路的MCU(微控制器),如Freescale的MC9S12HY系列,其使用方法也比较简单。然而,在很多较低端的汽车仪表,如微型车、农用车、三轮货车和摩托车的仪表上,人们为了降低成本,希望能够不用专用驱动芯片或相对较贵的带驱动电路的MCU,而是用普通的MCU直接去驱动步进电机。本文介绍了在Freescale的HCS08系列MCU上,如何用软件来实现对VID29系列步进电机的直接驱动。本文所附带的程序,已经在Freescale的LG32 Cluster Reference Design演示板上运行验证过。
本文引用地址:http://www.amcfsurvey.com/article/109228.htm分步驱动和微步驱动
步进电机的驱动通常有分步方式和微步方式两种。分步方式的优点是驱动信号的幅度只有0和电源电压(5V)两种,与数字信号的低电平和高电平完全一一对应,因此只要使用MCU的普通数字I/O口(GPIO)就可以产生驱动信号,驱动程序也比较简单。但是由于分步方式下,定子线圈产生的气隙磁场的方向在每走一步的过程中都发生一个较大的跳变——对于VID29系列步进电机而言是60°的跳变,定子磁场从原来的方向跳变到下一个平衡位置的方向,转子则在磁力的作用下加速向下一个平衡位置转动,当它到达平衡位置的瞬间,速度达到最大值,而磁场力则变为零(只考虑切向力,不考虑径向力,因为径向力与转动无关。下同);然后,如果驱动信号没有变化的话,转子就会在惯性的作用下继续往前转动,偏离平衡位置,这时磁场力将会增大,而其方向却变成跟刚才相反,于是就使转子减速,当转子与平衡位置的偏离达到最大时,其速度减为零,然后在磁场力作用下往回加速转动;当转子转回平衡位置时,磁场力又变为零,而速度不为零,于是在惯性的作用下继续转动偏离平衡位置……如此反复,只要驱动信号还没有再次改变,转子就会象荡秋千一样在平衡位置附近来回振荡,并在摩擦力的作用下幅度逐渐减小。这种振荡还会产生一定的噪声,所以用分步方式驱动时,步进电机的噪声和抖动会比较大。
为了减小步进电机运行时的噪声和抖动,人们设法让定子线圈的磁场方向的跳变幅度变小,把一个分步一次的大跳变分成若干次较小的跳变来完成,于是就有了微步驱动方式,也叫细分驱动方式。
根据矢量合成的原理,当步进电机中的两个线圈各自产生的磁场的强度按照正/余弦规律变化的时候,它们的合成磁场的方向就会匀速旋转,而合成磁场的强度保持不变,如图1所示。线圈产生的磁场强度与通过它的电流大小成正比,因此微步驱动方式就是让通过线圈的驱动电流不是像分步方式那样在0和最大值之间跳变,而是按照正/余弦规律分成几个阶梯逐步变化,如图2所示。
那么如何来产生阶梯变化的驱动电流呢?通常的做法是将一个PWM波形电压信号施加到线圈上,以PWM的占空比来控制通过线圈的平均电流。对每个阶梯电流,我们事先计算出所需的PWM脉冲的占空比,并做成查找表存放在FLASH中。在驱动步进电机转动的时候,每走一个微步就从表中取出相应的占空比来对PWM模块进行设置,然后在当前的这一步结束之前不再改变PWM脉冲的占空比。
pwm相关文章:pwm是什么
评论