微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于步进电机驱动器MC33991的车速表设计

基于步进电机驱动器MC33991的车速表设计

时间:11-14 来源:3721RD 点击:


表1 MC33991内部寄存器

图1 速度传感器信号调理电路图


图2 MC33991与MCU接口电路图

MC68HC908GR16的SPI时钟引脚SPSCK、主机数据输入从机输出引脚MISO、主机数据输出从机输入引脚MOSI和I /O引脚PTC5, 分别接MC33991的SCLK、SO、SI、CS引脚, RSTB引脚与单片机的RST引脚连接。

2.2 软件设计

2.2.1 SPI通信程序

微控制器MC68HC908GR16 上电后要初始化MC33991。MC68HC908GR16的SPI设为主模式。发送数据的格式要符合MC33991接、发数据的时序,MC33991收发数据的时序如图3所示。SPI无数据传输时CS=1, 时钟信号保持低电平。有数据传输时,MC33991的SI引脚在SCLK时钟的下降沿读入1位数据, 而输出引脚SO在时钟的上升沿输出数据。设MC68HC908GR16的SPCR寄存器时钟极性位COPL=0,时钟相位控制位CPHA=1。设引脚PTC5方向寄存器DDRC5=1, 设为输出。不与MC33991通信时令PTC5保持高电平。MC33991每次接收的数据必须是16,32, 48?位。

2.2.2 MC33991初始化流程

MC33991的初始化流程图如图4所示。微控制器先向PECCR发送命令关闭步进电机, 并在2个电机停止转动的情况下发送时钟校正命令。经过时钟校正后, MC33991内部时钟稳定在1 MHz ( ±10%) ,校正时钟后使能电机, 可允许2个或者其中一个工作, 然后向寄存器RTZCR发送命令设置指针回零速度, 向VECR寄存器发送命令控制电机的最大转速。如果步进电机回零时指针不在一个整步位置或者磁场排列没有对齐, MC33991回零检测会发生错误,导致回零失败。所以在发送电机回零命令前, 先使电机前进24微步或者30, 36, 42?微步, 以保持磁场排列整齐, 然后发送指针回零命令, 指针转向电机的逆时针极端。每一时刻只能有一个指针回零,微控制器检测回零状态直至回零结束。

初始化时需要注意, 时钟校正可选为1 MHz,单片机发送完时钟校正命令后拉低引脚, 延时8 μs后再将其拉高。如果电机的齿轮减速比较低则选择0.667 MHz, 这种情况需要延时12 μs。

2.2.3 车速检测

MC33991初始化后设MC68HC908GR16的定时器1通道零为输入捕捉模式, 在输入脉冲的下降沿进入捕捉中断, 并计算2次下降沿的计数差值Δt。本设计的车速仪表盘的最大车速为120 km/h,最高速度与最低速度对应刻度盘的夹角为225 °, 对应MC33991的静态指示位为2 700。

汽车行驶速度可以利用以下公式计算

式中: n---2次速度脉冲间隔内计数器的计数值之差; T---微控制器计数器时钟源的周期;D---车轮外径; μ---汽车轮胎变形系数( 一般取0.93~0.96) ; N---车轮转一周, 车速传感器发送的脉冲数。

微控制器根据计算得到的速度在仪表盘上的位置, 计算出MC33991的静态指示位置, 并把静态指示位发给MC33991, MC33991驱动仪表指向指定位置。为加快程序运行速度, 先根据车速、汽车车速仪表盘的参数计算出一个常数Con。


式中: vmax---汽车仪表盘指示的最大速度;C---用于调整指针指示误差的常数。其中C用来调整车速表的指示位置, 使仪表指示速度不小于汽车的实际速度。车速表指针应指向

的位置P0=Δt /Con, 由微控制器直接向MC33991发送此位置( P0) 命令, MC33991接到位置命令后即控制仪表电机旋转, 指向刻度盘的对应位置。

3 结束语

本文详细介绍了一种汽车车速表的设计方案,设计采用专用集成驱动芯片MC33991。此表在试验台运行测试时, 指针可以平滑转动, 在加速度较高时也没有超调抖动。与传统机械式仪表相比, 这种仪表响应速度快、抖动小、产品的稳定性和可靠性高。与采用其它驱动芯片的步进电机式仪表相比,首先此表占用硬件资源少, 控制方便, 仪表响应快; 其次能从任意位置以设定的速度恒速回零, 到达零点时无抖动; 最后仪表转动时, 微控制器可以随时通过MC33991读取步进电机的工作状态。

立即加入汽车电子互动社区

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

网站地图

Top