汽车仪表是用来显示和记录汽车的各种行驶信息及发动机运转情况的重要装置。使用步进电机可以非常精确地控制电机转动轴位置,不需要昂贵的传感器和控制电路,跟踪所加输入脉冲数可知其位置,且步进电机具有良好的起动和停止响应功能。因此,为了能够满足汽车仪表高抗干扰能力、高可靠性、高集成度、多功能和智能化的需求,本文设计了一种带有模拟量采样复用和带有步进电机的总线式汽车智能组合仪表。
1 仪表结构的组成原理
仪表的组成模块如图1所示,由采集控制模块、显示模块和外围电路模块组成。显示模块和外围电路模块均与采集控制模块相连。采集控制模块包括主处理器和输入输出模块,输入输出模块与主处理器相连。显示模块包括显示接口模块和显示处理器,并且互相连接。采集控制模块中的模拟量采样复用电路,包括电阻网络调整电路和模拟量复用输入信号前级处理电路,经过电阻网络调整电路调整后的输入信号,经模拟量复用输入信号前级处理电路选择,传输至采集控制模块的主处理器。
2 步进电机驱动设计与中断控制
2.1 步进电机的驱动设计
车速表、转速表、油位表和水温表均由步进电机驱动。硬件设计时只需用引线将单片机与步进电机连接即可。图2为单独一个步进电机工作在双全桥模式时的连接方法,它由两个脉宽调制(PWM)通道控制,通道X控制线圈0,通道X+1控制线圈1。实际电路的原理图如图3所示,M1、M2、M3和M4分别为车速表、转速表、油位表和水温表。
2.2 利用实时中断RTI控制步进电机
为了解决实时性问题,采用实时中断RTI来控制步进电机。RTI是时钟和复位发生器中的一个子模块,可以产生实时中断。本文采用的分频系数为3&TImes;215,即F=8 M/3×215=81.38 Hz,每次中断间隔时间t=1/81.38=12.3 ms。微控制器每12.3 ms改变一次所有步进电机的输出,进而改变步进电机的指针位置。当步进电机的控制方式是双四拍的时候,每次中断都给指令(永久磁体)使其转动90°(一个分步),即每经过4次实时中断转子转过一周(一个全步)。在RTI实时中断间隔内可以运行另外的程序。
因为油位表、发动机转速表和水温表的数据都是从CAN总线传过来的,所以将这三块表的程序整理到同一个模块中,转速表和水温表的函数功能与油位表相同。程序流程图如图4所示。
利用实时中断控制步进电机时,每次中断步进电机只能走一分步,因为一周之内的四分步在引脚的输出不同,所以首先要判断转子处在哪个位置。每次中断都要判断步进电机的变量是否更新,并且判断正转还是反转,以决定调用哪个单步函数。
3 模拟量采样复用电路设计
本仪表设计的模拟量采集复用电路能够通过调整电阻网络分别实现电压、电流、电阻信号的测量,如图5所示。
(1)当接入的模拟量为电压信号时,电路调整如图6所示。
(2)当接入的模拟量为电流信号时,电路调整如图7所示。
该电路在实际应用过程中,可根据需要采样的信号类型、信号范围以及芯片模拟量接口基准电压的值计算并确定电阻网络中相关电阻的大小。
本设计开发了步进电机的驱动程序,采用实时中断控制步进电机,很好地满足了汽车仪表高抗干扰能力、高可靠性、高集成度、多功能和智能化的需求。