APP下载

微型步进电机式发动机转速表设计

2014-07-25谢少伟陈银辉张勤侠

关键词:服务程序指针中断

谢少伟 陈银辉 张勤侠

(浙江水利水电学院 浙江 杭州310018)

微型步进电机式发动机转速表设计

谢少伟 陈银辉 张勤侠

(浙江水利水电学院 浙江 杭州310018)

采用微型步进电机及单片机技术,设计一种步进电机驱动的发动机转速表.重点对电源、信号调理、掉电检测、步进电机驱动等线路以及主程序、定时中断服务程序的设计进行了介绍.

微型步进电机;发动机转速表;STC12C5204单片机

发动机转速表常用于摩托车、汽车和航空航天飞机等设备上,由于需要快速判读被测变量的变化趋势,所以往往采用指针式指示仪表.微型步进电机由于具有体积小、运行稳定、能将数字信号准确地转为模拟指示信号等优点,在指针式指示仪表中已有一定的应用.本文介绍一种采用微型步进电机设计而成的发动机转速表,其转速测量范围为0~4 000 r/min.

1 微型步进电机

仪表用微型步进电机一般为两相步进电机,其转子转动经齿轮系减速后带动指针偏转.图1为本设计采用的VID29型步进电机结构原理图,其减速比为180/1,输出轴的步距角最小可以达到1/12°,最大角速度600°/s.微型步进电机在指针式仪表中应用的关键技术包括:细分驱动、加减速平滑运行、掉电回零等.

2 硬件设计

2.1 总体方案设计

硬件线路框图如图2所示,采用STC12C5204型8位单片机,该单片机兼容51单片机指令系统,集成了PWM模块和低压检测模块,具有较强的抗干扰能力,以适应发动机的工作环境及对步进电机控制的需求[1].

2.2 电源稳压电路

如图3所示,采用两级稳压形式设计,其输入直流电压的变化范围为20~30 V,并能耐短时36 V的过压.适用于24V系列汽车等电源环境,其12 V(经D2输出)的电压可给霍尔式转速传感器供电.

其中,D1为SS14肖特基二极管,用于电源电压的反向保护.D2是掉电时,防电容C1(一旦掉电,电容C1可维持+5 V电压一定的时间,确保电机能满刻度回零)向电压输入方向反相放电隔离二极管.D3为防止工作电源从SensePower端误接入隔离二极管.D4是1.5KE39型瞬态抑制二极管,其反向击穿电压为37~41 V,而脉冲电流的峰值可达28.2 A,用于瞬态尖峰干扰脉冲的吸收保护,以适应汽车等电磁干扰较强的工作环境,R1为限流电阻,用于瞬态抑制二极管过流保护.

2.3 掉电检测线路

步进电机无机械回零机构,为了使步进电机掉电后迅速回到零位,设计了如图4所示的掉电检测线路.当LowDetector点电压下降到15 V以下时,分压后加到STC12C5204单片机P1.2/LVD低压检测口线的电压低于内部比较电压1.33 V,触发低压检测中断执行电机回零程序.将掉电检测点设置在图3中的R1之后,是因D4抑制瞬态尖峰干扰脉冲后,可减少干扰引起的掉电误触发.

2.4 传感器信号调理

常用的发动机转速传感器有磁电式和霍尔式两种.磁电式转速传感器为无源传感器,输出为近正弦波的磁感应电势信号,其信号幅值与转速有关,最高值可达50 V,需要对信号进行钳位处理.如图5所示,D5将高于5 V正向输入信号的幅值钳位在5 V;R7和C14构成的低通滤波器,抑制了脉冲干扰信号;二极管D7提高三极管的导通电压,使三极管可靠截止(加D7后传感器输入信号电压低于0.6 V,三极管截止;不加D7,传感器输入信号电压为0 V时,三极管仍有可能导通);由三极管Q1整形输出的方波信号输出到单片机外部中断INT1口线上,进行计数测量[2].图5线路同样适合输出信号为方波的霍尔式转速传感器.

2.5 步进电机驱动

VID29系列步进电机的线圈工作电流范围是15~20 mA,STC12C5204型单片机每个I/O口线的驱动能力均能达到20 mA电流,因此可以使用单片机口线直接进行驱动.其驱动线路如图6所示.图中的R9和R10为限流电阻,以减少电机运行噪声,使电机运行更加稳定,并可对I/O口进行限流保护.电机采用PWM驱动方式,由单片机内部PWM模块产生的两路PWM信号控制线圈的平均电流,并通过单片机P1.0、P1.3口线的高低电平的转换实现相位控制,从而实现24微步控制方式[1].

3 软件设计

软件设计包含主程序、定时器中断服务程序、外部中断服务程序、低压检测中断服务程序等.下面主要介绍主程序、指针运行速度控制程序、加速回零控制程序.

3.1 主程序流程

主程序流程如图7所示.初始化后,为确保上电后仪表指针处于零位,在执行主循环前设置回零标志有效,并由定时器1中断服务程序执行回零程序.上电回零结束后,每100 ms对输入脉冲进行计数(捕捉外部中断1中断触发次数),并经滑动滤波得到500 mA内的脉冲信号数(每100 mA计数结束,比较包括本次100 mA及前6次100 mA的脉冲数据,去掉最大值和最小值后求和).根据转速传感器输出的500 mA脉冲数所对应的转速,计算出指针运行的目标位置,然后调用SetStepTarget()函数计算出指针(步进电机)运行的目标速度和方向,并启动定时器0驱动指针(步进电机)运行到目标位置.

3.2 指针运行速度控制

指针(步进电机)的运行控制主要由定时器0中断服务程序实现.采用每24微步完成转子转动一圈的微步形式驱动指针转动,所以指针运行速度主要通过控制转子微步与微步间的间隔时间来实现.间隔时间和转子的运行方向通过指针的目标位置和指针的当前位置的差值确定,最终实现指针加速、匀速、减速及方向的控制.其流程图如图8所示.

3.3 加速回零控制

加速回零控制由定时器1中断服务程序实现.如图9所示,回零标志位只在上电及掉电(由低压检测中断服务程序置位)时设置有效,一旦有效,通过定时器1中断服务程序,以减少每微步运行时间的方式进行加速回零,直到电机速度到最大值(如500°/s,在此速度下,电机驱动力矩较小,指针回到零位时,电机运行到内部挡块时不致产生剧烈的抖动而造成齿轮系的磨损).定时器1中断服务程序另一个功能是在非加速回零状态时,实现100 mA的计时工作.

4 结论

基于微型步进电机和单片机控制技术设计发动机转速表,实测的满度相对误差达到±0.5%,其硬件线路设计简单可靠,软件设计保证了指针运行快速平滑,能满刻度掉电回零.与磁电式、十字交叉线圈等指针式转速表相比,精度高,结构简单,调试方便,有效降低了生产加工成本,并已在农用车发动机上进行了小批量配套使用.

[1]傅志强.在HCS08系列MCU上用软件实现仪表步进电机的驱动[J].电子产品世界,2010(5):52-54. [2]肖涛.汽车用转速传感器设计及应用[A].江苏省汽车工程学会第九届学术年会论文集[C].2010.

Design of Micro-stepping Motor Engine Tachometer

Xie Shaowei Chen Yinhui Zhang Qinxia

(Zhejiang University of Water Resources and Electric Power, Hangzhou, Zhejiang 310018)

Combined with the micro-stepping motor and microcontroller technology, an engine tachometer driven by a step motor was designed. The paper describes the design of power supply, signal conditioning, brownout detection, stepper motor drive circuit and the flow of the main program, timer interruption service routine, etc.

micro-step motor; engine tachometer; STC12C5204 MCU

2014-01-23

谢少伟(1965-),男,浙江绍兴人,副教授,研究方向:智能仪器仪表、汽车电子及仪表.

TP368.1

A

1008-293X(2014)07-0022-05

猜你喜欢

服务程序指针中断
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
UDP穿透NAT技术实现数据唤醒车联网T-Box设备的方案
为什么表的指针都按照顺时针方向转动
跟踪导练(二)(5)
千里移防,卫勤保障不中断
水利工程施工监理服务程序及质量控制
基于改进Hough变换和BP网络的指针仪表识别
ARM Cortex—MO/MO+单片机的指针变量替换方法
AT89C51与中断有关的寄存器功能表解