基于XC2267M的仪表盘步进电机控制

发布者:beup001最新更新时间:2010-06-09 来源: 今日电子关键字:步进电机  XC2267M  仪表盘 手机看文章 扫描二维码
随时随地手机看文章

  随着现代电子技术的发展,中高档汽车上的组合数字仪表越来越多地采用“机电一体化”的步进电机。步进电机又称脉冲电动机,它能将输入的脉冲信号变成不连续的机械动作,是一种将电脉冲转化为角位移的执行机构。对步进电机的每一相来讲,输入的是一个脉冲列,只要控制好电脉冲,就能精确控制步进电机的角位移量,转速和转矩。从这个意义上来说,步进电机控制的核心是PWM(脉冲宽度调制)细分控制技术。

  用单片机来控制步进电机已有近15年的发展历史。出于降低总体成本的考虑,长期以来所采用的芯片都是8位单片机。由于单片机自身性能的局限性,对于步进电机的控制常常采用不彻底的细分控制或带外设的细分控制。不彻底的细分控制一般是将步进电动机的控制位置数(以两相步进电机为例)的四拍通电逻辑顺序变为八拍通电逻辑顺序,从而将步进角降为原来的一半。这种方法细分度有限,电机运行极不平滑,而且对步进电机也有损伤。带外设的细分控制能够使步进电机的运行平滑稳定,但增加了外部设备(如恒流斩波电路等),使得硬件设计趋于复杂,并且提高了成本。随着科技的进步和单片机的进一步发展,16位单片机的价格不断降低,使得其在步进电机控制上的广泛应用成为可能。由于单片机自身功能曾强了,繁琐的外部设备不再需要,软件编程也变得相对简单。这里即采用 16位英飞凌单片机XC2267M实现步进电机的平稳控制。

  硬件选择

  Infineon XC2267M属于XC2200微控制器系列,集成了电压调节器和多种振荡器,是全功能的16位单片CMOS微控制器。此方案主要使用的是XC2267M 的CC2(Capture/Compare Unit2 捕获/比较单元2)模块。

  CC2模块提供了16个捕获/比较通道以及同它们相配合的2个16位定时器,能支持16个内部中断。每个CC2通道都可捕获内部或外部事件,也可以比较计时器的内容与给定值,并修改输出信号。这里采用的是其中的8个通道配合8个I/O口控制4个步进电机。其中,SIN+和COS+为CC2通道,输出 PWM波形,SIN-和COS-为I/O口,进行0-1变化。

表1  CC2模块各通道功能列表

CC2模块各通道功能列表

  由于单片机可以直接输出几路互不影响的PWM,所以无需依靠任何外部设备就可以同时实现对几个步进电机的控制。

基于XC2267M的仪表盘步进电机控制示意图

图1 基于XC2267M的仪表盘步进电机控制示意图(仪表盘其他模块图中未标明)

  汽车仪表中应用的主要是两相步进电机,即步进电机中有两个独立绕组(定子两个相对极上的线圈串联成为独立绕组)。步进电机两个绕组的夹角一般有90°和60°两种样式,实验采用的是60°样式的VID29-05,内置减速比180:1的齿轮系,输出轴的步距角最小为1/12°,最大角速度 600°/s。

  软件编程

  1确定细分度,建立变量赋值表

  ● 确定步进电机每圈的细分度,并根据细分度建立电机在每个位置的两相PWM占空比表。这里采用的是15细分,即每步间隔24°。

  ● 根据两相电压表,结合所选用的单片机的特性建立对应的PWM寄存器赋值表,储存在全局数组里。

  ● 根据所选用的步进电机型号的特性曲线,建立速度等级数组。步进电机的转速完全和PWM寄存器赋值的速度有关。根据VID29-05的特性,速度数组里包含 255个元素。这255个元素定义了PWM寄存器赋值的时间间隔,元素值越大,步进电机转速越慢。

  2 仪表盘步进电机驱动的编程注意事项

  指针的运动要有“惯性”的视觉效果。即,指针从任意位置甲移动到目标位置乙的时候,在开始阶段,要进行加速运动,运动至接近位置乙的时候,要进行减速,最后稳定在位置乙。

  加速减速的幅度与当前位置和目标位置的间距以及步进电机的选型相关。在指针转动的过程中,对目标位置的变化要实时反应。只有在当前位置和目标位置的差距大于一定范围时,指针才运动。步进电机不允许旋转方向的突变,比如,电机正转时接到反转请求,一定要匀减速至0后才能反转。

  考虑到EMC的要求,PWM的频率不要超过20kHz。

  3  算法

  主程序对当前步数和目标步数比较判定,决定是否转动,以及转动的速度大小。为达到这个目的,引入变量Move-time 与转动一步标志位Move_One_Step_Enable,实际转动的速度控制通过在主循环最后Move_One_Step_Enable置1和依据当前步进电机速度级别从速度数组里取相应的元素对Move-time的赋值和来实现。只有当Move-time=0时,才再一次进入主循环对其进行赋值。

   中断程序对走步计时递减,并根据标志做马达转动一步处理。每进入一次中断,只要Move-time不为0,则Move-time减1。如果 Move_One_Step_Enable为1,步进电机赋值一次,否则不赋值,中断时间为200μs。

  比如,最低的速度等级元素为100,则在主循环里,Move_One_Step_Enable被置为1,Move-time赋值为100。在此后的第一个中断里,电机运行一步,Move_One_Step_Enable=0,同时Move-time减为99。此后,主程序和中断程序都不进行任何操作,直到第100次中断发生,Move-time减为0,才再一次进入主循环对Move-time赋值。也就是说,在(200×100)μs的时间里,步进电机只行动了一次。相反,如果速度等级高,则Move-time的赋值相应小,电机会在更短的时间内再次行动,使步进电机转速看上去“提高”了。

  为保证速度之间过渡的平滑性,防止突变对步进电机造成的损伤,每3次进入主循环才允许更改一次速度等级,即每个速度等级步进电机至少走3 步。

  4 主函数详解

  首先判断指针是否需要转动,如果否,直接跳到结束,等待新一轮判断。如果判定结果为需要转动,继续判断上一步是正向还是反向运动。

主函数流程图

图2 主函数流程图

  若判定结果为正向运动,进入正向运动模块,继续判断当前位置和目标位置是否一致。

  如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move-time 置为1。

  如果目标位置和当前位置不一致,则要进一步判断目标位置是否大于当前位置。如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动的请求。此时,进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志位。

  如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置之差的大小。如果位置差很大,而步进电机转速没有到达最大,则提速;如果转速已达到最大,则保持该速度。如果位置差小于某一特定值,则进入减速状态。

  5中断函数详解

  首先判断指针是否需要转动,如果是,表明上次转动尚未完成,直接跳出中断,等待下一次中断。如果判定结果为不要转动,继续判断上一步是正向还是反向运动。

中断函数流程图

图3 中断函数流程图

  若判定结果为正向,则继续进行下一步判断:目标位置和当前位置是否一致。结果为反向则进入反向运动中断处理模块,流程结果类似。

  判断转动一步标志位是否为1。若为1,依据当前位置从PWM数组里赋新值给PWM寄存器,步进电机行动一步,当前位置前进一步(若为反向则退后一步)并清零转动一步标志位。这样下次进入中断时,若转动一步标志位没有在主循环里重新赋值为1,步进电机就不会再次转动。

  每次进入中断,当Move_time不为0时,Move_time减1,直至减为0为止。

  实验结果

  经过巴特沃斯二阶低通滤波后,步进电机两相电压波形都为比较平滑的正弦波,波形相位差为120°,与理论的细分波形相吻合。

  步进电机从位置A移动到位置B的过程中,先加速(如果AB距离足够大,步进电机将加速到最大转速后匀速运行)。在接近位置B时,步进电机将减速,最后停止在位置B。从上图可以看出,加速阶段正选的波长逐渐变窄,减速时则逐渐变宽。

步进电机匀速运转两相电压图

图4 步进电机匀速运转两相电压图

步进电机加速状态单相电压示意图

图5 步进电机加速状态单相电压示意图

步进电机减速状态单相电压示意图

图6 步进电机减速状态单相电压示意图

  结论

  利用单片机可方便的对步进电机的速度和位置进行控制,可靠地实现各种步进电机的操作,完成各种复杂工作。这里提出的步进电机分步控制方法,依靠Infineon最新的XC2267M单片机CC2模块强大的16个PWM输出通道,同时驱动4个步进电机,成功通过软件编程代替驱动芯片实现仪表盘步进电机的细分控制,运行结果稳定可靠,并节省了外部设备,降低了成本。

关键字:步进电机  XC2267M  仪表盘 引用地址:基于XC2267M的仪表盘步进电机控制

上一篇:用台达变频替换CT伺服应用恒张力控制
下一篇:基于单片机的步进电机控制系统设计

推荐阅读最新更新时间:2024-03-30 21:31

基于ATMEGA48单片机的仪表步进电机的细分控制
 仪表步进电机   步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。   仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。
[单片机]
基于ATMEGA48单片机的仪表<font color='red'>步进电机</font>的细分控制
合泰单片机控制5线4相步进电机控制程序
;步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!! ; 28BYJ48步进电机步进角为 5.625度 ; A组线圈对应 PC.0 ; B组线圈对应 PC.1 ; C组线圈对应 PC.2 ; D组线圈对应 PC.3 ; 正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转5.625度) ; 完整的源程序下载:http://www.51hei.com/f/htbjdj.rar include HT66F50.inc ORG 0000H JMP A1 ORG 0014H ;多功能中断入口地址 JMP ZD1 ORG 002DH Q1: DC 03H ; 0 AB DC 06H ;
[单片机]
单片机红外遥控+步进电机+1602液晶显示c语言源程序
这是我做的红外遥控控制的1602显示转速和转向的步进电机c语言原程序,已经调试成功!有些模块是以前做其他实验时做的,现在是直接调用的,包括1602液晶显示技术,TC9012红外解码,然后就是四相步进电机的控制程序了,我是把这些东西结合起来。对这个东西有兴趣的或者要做毕业设计的可以看看啊,不懂的请上单片机论坛 http://www.51hei.com/bbs/ 公开讨论,我会给大家做出详细的解答。 #include AT89X51.h #include stdio.h #include intrins.h #define uchar unsigned char #define uint unsigned int static u
[单片机]
PLC在准确定位控制系统中的应用
0 引言     在自动化生产、加工和控制过程中,经常要对加工工件的尺寸或机械设备移动的距离进行准确定位控制。这种定位控制仅仅要求控制对象按指令进入指定的位置,对运动的速度无特殊要求,例如生产过程中的点位控制(比较典型的如卧式镗床、坐标镗床、数控机床等在切削加工前刀具的定位),仓储系统中对传送带的定位控制,机械手的轴定位控制等等。在定位控制系统中常使用交流异步电机或步进电机等伺服电机作为驱动或控制元件。实现定位控制的关键则是对伺服电机的控制。由于可编程控制器(PLC)是专为在工业环境下应用而设计的一种工业控制计算机,具有抗干扰能力强、可靠性极高、体积小等显著优点,是实现机电一体化的理想控制装置。本文旨在阐述利用PLC控制伺服电机 实
[嵌入式]
步进电机最简单的驱动方法_步进电机控制方法
  步进电机最简单的驱动方法   最简单的步进电机驱动方法是单相双极驱动方式,也称为双相步进驱动方式。该方式只需要使用一个 H桥驱动器和一个脉冲发生器,即可实现步进电机的驱动控制。   具体的驱动过程如下:   将步进电机的两个相连接到 H桥驱动器的两个输出端口。   将脉冲发生器连接到 H桥驱动器的输入端口,通过控制脉冲的频率和占空比,可以控制步进电机的转速和方向。   通过控制脉冲的数量和频率,可以控制步进电机旋转的步数和转角。   需要注意的是,单相双极驱动方式只能实现单个步进电机的基本驱动控制,对于需要高精度、高速度和高扭矩的应用场景,需要采用更复杂的驱动方式和控制算法。   步进电机控制方法   步进电机的控制方法主
[嵌入式]
步进电机发热的解决方法
步进电机最有意义的一个优点就是在开环系统里可以实现精确的控制。开环控制意味着不需要关于(转子)位置方面的反馈信息。这种控制避免了使用昂贵的传感器以及象光学编码器这样的反馈设备,因为只需要跟踪输入的步进脉冲就可以知道(转子)的位置。而步进电机也容易出现发热的问题,那么遇到这种情况该怎么解决? 1、减少电机发热,减少发热,就是减少铜损和铁损。减少铜损有两个方向,减少电阴和电流,这就要求在选型时尽量选择电阻小和额定电流小的电机,对两相电机,能用串联的电机就不用并联电机,但是这往往与力矩和高速的要求相抵触。 2、对于已经选定的电机,则应充分利用驱动器的自动半流控制功能和脱机功能,前者在电机处于静态时自动减少电流,后者干脆将电流切断。
[嵌入式]
实用的步进电机驱动电路
概述 步进电机是一种将电脉冲转化为角位移的执行机构,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计选用第三种方案,用PMM8713三相或四相步进电机的脉冲分配器、SI-7300A两相或四相功率驱动器,组成四相步进电机功率驱动电路,以提高集成度和可靠性,步进电机控制框图见图1。 图1 步进电机控制系统框图 硬件简介 ● PMM8713原理框图及功能 PMM8713是日本三洋电机公司生产的步进电机脉冲分配器,适
[嵌入式]
解答步进电机发热问题及对策
      步进电机 作为一种数字式执行元件,在运动控制系统中得到广泛的应用。许多用户朋友在使用步进电机的时候,感觉电机工作时有较大的发热,心存疑虑,不知这种现象是否正常。实际上发热是步进电机的一个普遍现象,但怎样的发热程度才算正常,以及如何尽量减小步进电机发热呢?本文将对这些问题做一简单的分析。 1、 步进电机为什么会发热         对于各种步进电机而言,内部都是由铁芯和绕组线圈组成的。绕组有电阻,通电会产生损耗,损耗大小与电阻和电流的平方成正比,这就是我们常说的铜损,如果电流不是标准的直流或正弦波,还会产生谐波损耗;铁心有磁滞涡流效应,在交变磁场中也会产生损耗,其大小与材料,电流,频率,电压有关,这叫铁损。铜损和铁损都会
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved