基于MC9S12HZ256的汽车仪表步进电机控制

2010-11-22 06:44罗永革杨启梁石振东
湖北汽车工业学院学报 2010年1期
关键词:寄存器中断车速

赵 心,罗永革,杨启梁,石振东

(1.武汉科技大学,湖北 武汉 430081;2.湖北汽车工业学院,湖北 十堰 442002)

步进电机是将脉冲信号转变为角位移或线位移的控制元件。每当输入一个脉冲,它就相应的运行一步。作为数字式执行元件,具有结构简单、成本低、易于控制等优点而逐渐取代传统的游丝阻尼元件应用于汽车仪表系统中。MC9S12HZ256微控制器是飞思卡尔公司为汽车仪表系统设计而开发的16位微控制器,其集成了用于步进电机控制的步进电机控制模块(MC)和步进电机归零检测的步进电机失步检测模块(SSD),从而省去了步进电机驱动器,简化了步进电机驱动电路节约了成本。

1 步进电机驱动控制

1.1 MC9S12HZ256的电机控制模块

MC9S12HZ256电机控制模块(MC)有16通道的PWM输出,集成了用于步进电机驱动的H桥电路。电机控制模块的PWM输出可以工作在高分辨率模式(11位分辨率)或快速模式(7位分辨率),工作在高分辨率模式下时可使用抖动功能,在不改变当前分辨率的条件下,降低PWM的工作周期;PW M波形输出有左对齐、右对齐和中心对齐3种模式。电机控制模块可在双H桥、H桥和半H桥3种模式下工作,用于驱动步进电机、其它类型电机或者其它PWM驱动设备的控制应用。

要正确驱动步进电机,必须对电机控制模块的各寄存器进行相应的配置。MC9S12HZ256电机控制模块对电机控制通过以下寄存器完成。

1)电机控制模块控制寄存器0(MCCTL0)用来设定电机控制模块运行的时钟频率,PWM分辨率选择,抖动模式使能,另外还有模块计数器溢出中断标志位。

2)电机控制模块控制寄存器1(MCCTL1)用来设定在电机线圈在非驱动状态下续流电路的回路选择和PWM低电平有效还是高电平有效,模块计数器溢出中断使能。

3)电机控制模块周期寄存器(MCPER)用来设定PWM的周期。

4)电机控制模块通道控制寄存器 (MCCC)用来设定PWM通道的输出模式选择,即双H模式、H模式、半桥模式的选择,PWM的对齐方式的选择,PWM输出延迟。

5)电机控制模块占空比寄存器(MCDC)用来设定PWM输出的占空比,PWM输出引脚。

1.2 硬件设计

步进电机选用瑞士SONCEBOZ公司仪表用6405r201型二相混合式步进电机。步进电机的两相定子线圈夹角为90°,转子中共有5对磁极,采用整步方式步距角 θN为 18°(360°/2/10),电机采用一级减速比1:36的齿轮减速,因此整步方式驱动下实际输出步距角为0.5°。

MC9S12HZ256微控制器内部集成了H桥驱动电路(图1),因此简化了硬件设计,只需将电机控制模块的 PWM 通道 x与通道 (x+1)(x为 0、2、4、6)组合起来构成双H桥(图2)直接与步进电机的2组定子线圈连接就可用于步进电机驱动。MC9S12HZ256采用双H方式可控制4个步进电机。

图1 电机控制模块的H桥电路

图2 双H桥驱动步进电机

1.3 控制软件设计

对步进电机控制主要就是1)控制步进电机换相顺序;2)控制步进电机的转向;3)控制步进电机的转速。二相混合式步进电机整步方式运行的通电换相的正序为A→B→A→B,步进电机就正转;如果按照反序B→A→B→A的通电换相顺序,步进电机就反转。步进电机的转速与步进电机的通电换相的速度有关,即各相的通电脉冲的频率有关。MC9S12HZ256通过电机控制模块占空比寄存器(MCDC)可实现电机通电相序的改变,通过延时时间的长短来改变通电相序转换的速度控制电机的转速。图3是对单个步进电机控制程序的流程图。

图3 步进电机驱动控制流程

电机控制模块在双H桥模式下可以同时控制4个步进电机。对多个步进电机可采用定时中断的方式进行控制,采用定时中断代替上面流程中的延时程序,每次中断间隔的时间来控制步进电机的转速。

2 步进电机归零控制(RTZ)

汽车仪表步进电机系统采用的是没有位置反馈的开环控制的方法,因此步进电机的初始位置准确与否将直接影响到步进电机运行中定位的精确度。要获得较高的定位精确度就要求步进电机在初始状态下的位置必须准确为初始 “0” 点。MC9S12HZ256集成了失步检测模块(SSD),利用这个模块可以检测电机初始位置是否为“0”,若不为“0”则可驱动步进电机使初始位置归零。

3.1 步进电机失步检测模块(SSD)

步进电机失步检测模块(SSD)提供了检测步进电机以整步驱动方式驱动仪表指针进行归零操作时在没有通电线圈中产生的感生电流的电路。在指针归零过程中,步进电机以整步驱动的方式顺时针转动或者是逆时针转动,在任意时刻只有一组线圈通电。非通电线圈产生的感生电动势在经过一段消隐时间后被积分采样,采样结果存储在一个16位的累加器中。16位的模数计数器用来控制消隐时间和采样时间。16位累加器中的值表示了所连接的线圈的感生电动势的波动,它可以用来和一个存储的阈值比较。当这个值大于阈值时表明电机仍在转动,在这种情况下电机将会进行下一个整步转动,采样就会继续。当这个值小于阈值时表明电机发生了失步,此时电机已经归零。失步检测模块(SSD)与电机控制模块(MC)公用引脚,在 SSD模块工作时必须关闭电机控制模块释放引脚。图5为失步检测模块(SSD)的模块框图。

SSD模块实现步进电机的归零控制是由以下几个寄存器完成。

1)归零控制寄存器(RTZCTL)控制归零检测的模式(消隐模式、采样模式);线圈是否通电;回流电路的选择;极性选择;步进电机选择;整步状态。

2)模数向下计数器控制寄存器(MDCCTL)控制模式向下计数器溢出中断使能;模数计数器运行模式选择;模数计数器读取模式选择;分频选择;模数向下计数器使能;累加器溢出中断使能。

3)步进失步检测控制寄存器(SSDCTL)控制归零使能;Σ-Δ转换电路通电;等待模式选择;采样频率选择。

4)步进失步检测标志寄存器(SSDFLG)包含模数计数器向下溢出中断标志和累加器溢出中断标志。

5)16位载入寄存器(MDCCNT)是一个16位寄存器,来控制消隐时间和采样时间的长短。

6)积分累加器寄存器 (ITGACCx)是一个16位有符号寄存器,用来存储Σ-Δ转换电路经过转换后的感生电动势的采样值。它的值增加还是减小是由Σ-Δ转换电路的转换值决定。

图5 失步检测模块(SSD)模块框图

3.2 步进电机归零软件设计

步进电机归零控制主要包括对步进电机归零转动的方向,归零过程中步进电机的转速以及对零点的判断这3个方面。

1)步进电机归零控制中归零转动方向是由归零控制寄存器(RTZCTL)的STEP位即寄存器的第0位和第1位的值所决定。若STEP值的变化为,则步进电机为逆时针方向转动归零;若STEP值的变化为,则步进电机顺时针方向转动归零。

2)步进电机归零的速度由所设定的消隐时间与积分采样时间的和来决定。消隐时间与积分采样时间的和就是步进电机一次整步运转所用时间。消隐时间和积分采样时间要根据步进电机的启动频率确定,满足步进电机的启动要求。步进电机归零检测中,消隐时间是为了避免在线圈换相时产生的较大的感生电动势对积分累加寄存器的结果产生的误差,而在这段时间内放弃积分采样。消隐时间一般比积分采样时间短得多,大约只是积分采样时间的1/100。

3)步进电机归零检测中采用失步阈值和积分累加寄存器值比较来进行对步进电机零点的判断。积分累加器寄存器 (ITGACC)的值为一个有符号数,因此失步阈值是一个正负之间的一个区间。若积分累加器寄存器(ITGACC)的值在这个区间内,则可认为发生了失步,指针已经归零。步进电机归零检测所用的失步阈值与步进电机的特性和采样时间有关,可以根据电机的特性和采样时间自己选择确定。图6是采用单个步进电机归零的软件设计流程图。

图6 归零软件设计流程图

要对多个步进电机同时进行归零的操作就要采用SSD模块中断的方式进行。MC9S12HZ256的步进电机失步检测模块(SSD)可以产生4个中断源,分别对应4个采用双H模式进行驱动的步进电机。采用中断方式进行步进电机的归零操作时,2次SSD中断对应步进电机进行一个步距的转动。第1次中断是在消隐时间结束时产生,中断服务中要把积分采样的时间写入寄存器中,Σ-Δ转换电路通电,积分采样使能;第2次中断在积分采样时间结束后产生,在中断服务中对积分采样值与阈值进行比较,判断是否归零,归零则操作结束,未归零则应向寄存器写入下次消隐时间并修改STEP值。

3 系统调试

步进电机系统的误差是由步进电机运行中失步和初始状态下没有完全处于零点造成的。对汽车仪表步进电机系统的调试也是要避免出现驱动过程中失步和初始状态没有处于零点。图7为采用步进电机为指针指示元件的汽车仪表系统,该仪表系统由7个步进电机指针式仪表盘和1个液晶显示屏组成。仪表盘指示车速、水温等信号,显示屏用于数字和图形化显示车辆信息。汽车组合仪表中的车速表要求指针能迅速响应车速变化,且在汽车行驶过程中的指针指示变化范围大、往复频繁,因此在汽车仪表步进电机系统调试中选择车速表作为驱动调试的对象,来验证步进电机是否有失步。在步进电机归零调试中7个仪表共同作为调试对象,来验证归零的准确性和可靠性。

图7 汽车仪表系统

3.1 步进电机驱动调试

仪表步进电机失步一般是由于步进电机转子的转速和定子磁场转速不协调造成的,因此设置步进电机换相的时间是解决失步的一个重要方面。在驱动控制中采用了8 ms/步的定子磁场转换速度,在这个步进电机换相频率下车速表的指针转动的速度适中;该换相频率避开了步进电机电机的共振频率,减少步进电机运行噪音。

车速信号采用信号发生器作为模拟信号源,改变信号发生器的输出频率就相当于改变车速的大小。车速信号经过调理电路转换为脉冲信号,通过MC9S12HZ256微控制器的脉冲累加器对信号进行采样,并采用移动平均滤波方式对采样结果进行处理,最终将车速信息通过车速表指示出来。车速表在初始零位置启动,车速表指针经过连续近10000次从零点到满量程中不停滞的来回往复转动,回到零位置时没有出现失步的现象,添加新的车速信号后,车速表所指示的车速与液晶显示屏所显示的数字车速相一致,准确指示采样数值,车速指示准确。

3.2 步进电机归零调试

汽车仪表步进电机归零调试中,对采用SSD模块归零与不使用SSD模块归零进行了对比测试,并对采用SSD模块进行步进电机归零的稳定性进行了调试,同时解决了在SSD模块使用中出现的问题。

在不采SSD模块进行归零时,为确保在仪表在每次运行前都要准确的处于初始的零位置,需要在初始化中使步进电机满量程回转。若此时步进电机不是在最大的位置,则会出现步进电机在初始零点位置堵转的现象,影响汽车仪表步进电机的归零速度,同时也会对步进电机的齿轮减速机构造成损害,加速齿轮磨损,使齿轮的间隙过大,造成步进步进电机运行中的误差。采用SSD模块进行归零可以完全避免上面所述情况的发生,在SSD模块检测到电机失步的时候也就是步进电机回到初始零点位置时就会停止电机驱动。这样就避免了步进电机在初始位置发生堵转,提高了步进电机归零的效率,也保护了步进电机。

使用SSD模块进行步进电机归零就是使步进电机能快速准确的回到初始零点,因此根据步进电机的特性设定归零过程的消隐时间和积分采样时间是步进电机快速回零的关键。步进电机驱动中采用8 ms/步的步进电机转动速度,在归零过程中步进电机的归零速度可以大于驱动时的速度,使步进电机更为快速的回到零点。在调试中采用2 ms/步的步进电机归零速度,设定步进电机失步阈值用于判断是否归零完成。在归零调试过程中出现在启动时仪表指针没有转动无法归零的现象。这种现象的出现主要是由于在初始启动时步进电机的转速不高,未通电线圈产生的感生电动势微弱衰减较快,使16位累加计数器采样值小于设定的阈值,从而判断出步进电机已经失步回到零点,导致SSD模块关闭。因此可以在步进电机归零检测的前几步不对积分采样值和失步阈值进行比较,在步进电机完全启动后再进行失步检测。采用这种方法对步进电机进行连续进行1000次的不同位置归零测试中,全部成功回到初始零点位置,没有再发生启动后就指针就停止的现象。

4 小 结

本文重点阐述了使用MC9S12HZ256的电机控制模块(MC)和失步检测模块(SSD)对汽车仪表步进电机进行控制的方法,针对所研制汽车组合仪表系统进行了步进电机指示系统的调试,并对调试过程中出现的一些问题也分别加以解决。

1)使用电机控制模块(MC)对汽车仪表步进电机进行驱动控制时,注意步进电机的转速,合理的选择脉冲换相时间,有利于步进电机步进的准确性,降低步进电机振动,减少步进电机失步的情况发生。

2)使用失步检测模块(SSD)可使步进电机快速归零,有利于步进电机位置控制的准确性,减少初始状态所累积的位置误差。同时也应注意在归零启动时出现的问题,采用启动初期不检测的方法避免启动后仪表指针无反应的状况发生。

使用MC9S12HZ256的电机控制模块(MC)和步进电机失步检测模块(SSD)方便了对步进电机进行的控制,使汽车仪表步进电机定位准确、工作稳定。

[1] MC9S12HZ256 V2 datasheet.

[2]朱维杰,陈永降,曾向阳.MC9S12HZ在空心十字线圈仪表中的应用[J].汽车电器, 2008(11):10-13.

[3] 王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2007.

[4] 史敬灼.步进电动机伺服控制技术[M].北京:科学出版社,2006.

[5] 李 飞,姜森霖,王景存.基于MC68HC908LJ12的汽车组合仪表设计 [J].湖北汽车工业学院学报,2008,22(4):49-52.

猜你喜欢
寄存器中断车速
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
轮速信号在定速巡航控制中的应用
2012款奔驰R300车修改最高车速限制
跟踪导练(二)(5)
跑跑卡丁车
千里移防,卫勤保障不中断
北京现代途胜车车速表不工作
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析