引言 汽车仪表由各种仪表、指示器,特别是驾驶员用警示灯和警报器等组成,为驾驶员提供所需的汽车运行参数信息。按汽车仪表的工作原理不同,可大致分为三代。第一代汽车仪表是机械机心表;第二代汽车仪表称为电气式仪表[1];第三代为全数字汽车仪表,它是一种网络化、智能化的仪表,其功能更加强大,显示内容更加丰富,线束连接更加简单。 目前的汽车仪表多为第三代仪表,它可以利用A/D转换或是数字脉冲直接从传感器获得数据,也可以利用CAN总线通过汽车网络获得数据;它可以通过步进电机来驱动仪表指针,也可以利用LCD屏直接显示图形或文字信息。同时它还有智能处理单元,可以与汽车其他控制单元交互信息。
总体需求及设计 汽车仪表的功能就是获取需要的数据并采用合适的方式显示出来。以前的仪表一般限制在3~4个量的显示和4~5个警告功能,现在新式仪表则达到有约15个量的显示和约40个警告监测功能。导致仪表显示信息量快速增长的主要原因有以下几方面[2]: ● 汽车上的新功能部件不断增加,如ABS、安全气囊、倒车雷达等; ● 对汽车行驶中的状态要求更加实时的了解,如胎压、水温、油耗等; ● 对汽车各部件的工况要求更加细致的掌握,如灯光、车门、车锁、安全带等。
不同的信息有不同的获取方式和显示方式,目前新式仪表信息获取方式主要有三种: ● 通过车身总线传输; ●通过A/D采样转化; ●通过IO状态变化获取。 对于显示方式,主要有五种方式:通过驱动步进电机带动指针转动;通过点阵LCD屏显示图形或数字信息;通过段式LCD屏或数码管显示;通过LED灯的开关显示;通过蜂鸣器的不同鸣音指示当前状态。 根据以上要求,本文设计的汽车仪表盘节点由MCU系统、步进电机驱动、LED显示、LCD显示、报警功能、记忆功能、按键处理、LIN总线通信、高速CAN通信、低速容错CAN总线通信以及电源供给等几个方面构成(图2)。
硬件电路设计 H8Sx/1544是一款完全符合第三代汽车仪表需要的芯片,它具有高速运算能力的32位MCU,带有两路CAN通道,能直接驱动步进电机和LCD模块,性能参数满足汽车工业级要求[3]。外围模块包括步进电机控制PWM定时器,LCD模块接口,16位定时器脉冲单元(TPU),DMA控制器(DMAC),CAN总线控制器、串行接口,A/D转换器,警示灯和报警器的输出,LED PWM调光等。这些模块可以满足车速、转速、油量、冷却水液位的信号采集和显示,可以很容易地实现外设元件很少的仪表板电路[4]。基于H8Sx/1544的汽车仪表板框图如图3所示。
6组步进电机可直接通过H8Sx/1544的PWM引脚驱动,分别用于指示汽车行驶的车速、发动机转速、冷却液温度、燃油箱的油量、机油压力和发电机电压。选用具有并行8080接口的点阵式液晶模块,可直接与MCU相连,用于显示图形和其他信息。高速CAN和低速CAN分别与汽车内的两个CAN网络相连,必要时可作为网关使用。汽车车速传感器和发动机转速传感器通常采用霍尔器件,为了改善波形,在输入捕获定时器管脚外使用了施密特电路进行整形。
软件设计
为了提高代码的可重用性、可读性以及可维护性,软件编写的基本思想是在满足系统功能的前提下,尽可能使应用软件标准化、模块化。每一个模块是一个具有独立功能的程序,可以单独设计、调试与管理。 软件模块主要有主程序模块、初始化模块、数据采集模块、步进电机驱动模块、CAN通讯模块、LIN通讯模块、SPI通讯模块、显示模块、存储记忆模块、报警模块、中断模块等。 报警模块实现异常情况下控制告警信号输出,如冷却液温度升高近沸点或燃油箱内的燃油量少于某一规定值时,音频告警会发出不同频率的告警信号,点亮指示灯。中断模块有四种中断源:按键信号、车轮转速信号、发动机转速信号及掉电保护信号,分别完成面板功能设置、测速和掉电时的数据保存。数据采集模块根据输入参数对相应的模拟信号进行采样、量化,并对采样信号进行抗干扰处理。显示模块完成LCD的初始化,并显示各种需要符号和数值。步进电机驱动模块采用微步方式驱动步进电机,有加速、匀速、减速三种模式,以克服电机在启动时滞后、停止时过冲的现象。
结语
本文通过对汽车仪表系统基本功能的分析,完成了一款高集成、嵌入式、总线化的汽车组合电子仪表。该仪表能实现步进电机带动表盘指针实时指示以及LCD的图形化显示,实现了功耗低、容错性强、模块化程度高的设计要求。该组合电子仪表精度高、线性度好、响应速度快、适应性强、记录准确、性能稳定,各方面性能均达到了国内领先水平。