刘 伟,简林莎,徐海洋,冯 谣,郎明华
Liu Wei1, Jian Linsha1, Xu Haiyang1, Feng Yao1, Lang Minghua2
(1.长安大学 汽车学院,陕西 西安 710064;2.潍柴动力股份有限公司,山东 潍坊 261069)
近年来,随着汽车工业的快速发展和电子控制技术的不断完善,各种功能的电子器件越来越复杂。汽车组合仪表成为车辆主要信息的显示单元,驾驶员运用此平台了解汽车的各种状况,能够直观、实时、动态地掌握车辆本身的各项数据。因此,面对汽车朝节能、低碳、安全和舒适等方面发展,高集成化、高稳定性的步进电机式组合仪表成为科研人员不断努力的研究方向,满足更多复杂信息量处理功能的数字组合式仪表是当今最热的研究内容之一。
CAN总线是控制器局域网络(Controller Area Network, CAN)的简称,由于其串行式总线结构及硬件电路连接简单且便于线束空间布置[1],数据传送具有突出的实时性、可靠性和灵活性,利用CAN总线的特性对各种控制系统在车载控制领域中得到应用。文中所设计的汽车组合仪表是一种基于飞思卡尔公司生产的S9S12HA32型的主控芯片,以 CAN总线为通讯协议,主要功能实时动态地显示如车速、里程、转速、水温和燃油数据值,以及常用的指示信号和故障警示信号灯。
组合仪表系统主要由车速表、转速表、水温表、燃油量表以及里程表组成,另外还有故障报警、系统照明和里程存储数据。该系统硬件的结构框图如图1所示。
系统单片机接收到的信号包括车速、转速、温度和油量等传感器信号,其中车速是脉冲信号,车速传感器输出的脉冲信号经过滤波、整形后输出标准的方波信号,送入单片机完成速度的测量运算;而燃油位置传感器采集的是模拟信号,经过前端电压信号的处理转换,CAN总线收送后送入单片机的 A/D转换器,经过单片机的运算处理,通过CAN总线接口将采集到的数据发送到 LCD显示模块实现数字化显示[2],同时单片机的步进电机驱动端口控制步进电机,通过指针控制精确地显示其数据值。并且主控芯片接收其他CAN总线的节点信号数据,如转速信号、报警信号等一些数据信息,经主控芯片及时处理后在LCD实时显示。为了防止里程数据丢失,主控芯片执行的程序中将里程值的变化保存到数据存储模块中。
硬件电路设计主要有电源电路模块设计、CAN总线通信接口模块设计、步进电机驱动模块设计和LCD液晶显示模块,以及一些常用的状态指示、报警灯等。
组合仪表系统控制器选择飞思卡尔公司型号为S9S12HA32的16位单片机[3]。这是一款集多种专用功能于一身,可用于设计汽车仪表盘的芯片,本身具有LCD驱动和步进电机驱动等功能,其特点是比较适合国内中、低端汽车对于经济高效仪表盘的要求。该芯片需要采用 40×4 的段码式LCD 液晶控制器;芯片内部具有4 个步进电机驱动控制器,以SAEJ2602通信协议为基础,可以支持CAN 协议2.0,完全可以满足用户对硬件资源的需求。为了防止断电后汽车里程数据丢失,该系统采用了型号为93C46可读写数据的存储器芯片(EEPROM)存储数据。微控制器控制的汽车每行驶1 km里程则更新一次数据,并且保存在存储器中。
电源电路设计变压器选用的转换芯片为NCV4275A,是一款针对汽车应用的低压降线性稳压器,内含过流保护、过温保护、短路保护等多种特性[4],将汽车供给系统提供的12V电压转换成单片机需要的5V电压供电,此外该芯片也可以输出3.3V的电压。如图2所示,D1的作用为反向保护,电容C13、C15的作用为过滤电源输出的异常电压,起稳压的作用,另外在芯片右端并联电阻,保证该芯片的正常工作,避免芯片发热的现象。
CAN 控制器采用型号为 MCP2510的芯片,此芯片是Microchip 公司缩减CAN总线的接口应用而独立设计的一种专门控制器,可以支持CAN2.0A/2.0B,与其公司生产的MCP2551型收发器构成一个 CAN总线节点,用于高速CAN 总线的传输[5]。图3所示各种模拟信号经过MCP2551芯片的端口CAN_TX/CAN_RX进入收发器,进而经过微控制器MCP2510的调节送入到主控单元S9S12HA32中,完成各种模拟信号的收集。
单片机根据CAN总线收发器传送过来的数据进行计算处理,主要包括车速、转速、水温和油量等实时动态测得的数据。然后经步进电机的驱动,从而使指针到达指定的位置。S9S12HA32 内部有 4个步进电机驱动控制器,对步进电机可以采用直接驱动的方式来实现,直接选用 4个步进电机可以完成车速、转速、水温和油量的指针指示功能。所设计的组合仪表系统选用 4个STI29-XX型的两相步进电机并经3级齿轮减速转动输出,内置减速比180/1的齿轮系,工作的脉冲电压为5~10V,工作电流为20mA左右,电机输出轴的步距角最小能够达到1/12°,可以分步模式或微步模式驱动实现指针的不同控制方式。图4为指针电机驱动电路。
LCD液晶显示器的作用是将单片机处理后的一些数据如车速、里程、燃油量、水温、机油压力和系统电压值等驾驶操作信息实时滚动地显示出来,利于用户清晰直观地了解汽车的工况性能。LCD液晶显示器利用单片机内嵌的控制驱动器直接驱动来实现,选用两片段码式40×4液晶显示器。
系统软件部分的设计主要是系统主程序设计和系统子程序设计。由于软件设计在系统设计中程序比较复杂,对于本系统的软件部分采用模块式结构设计,这样系统软件部分会结构清晰、表述简洁,避免源代码的重复,有利于系统软件的调试、连接、修改和移植[6]。其中子程序模块包括:车速表模块、CAN收发模块、水温表模块、液晶显示模块和报警信号模块等。图 5为系统软件设计部分的流程图,为了使系统具有可移植性、通用性,使用 C语言编写程序。
CAN通信模块根据 CAN总线协议规范自动负责 CAN总线上数据的接收与发送。包括CAN总线控制器的初始化、接收数据和发送数据。采用中断方式接收报文。主控芯片S9S12HA32接收到 CAN总线传进的信息后,该信息经过滤波器的滤波整形处理并放入接收器中,此时系统产生一个接收中断,并再次等待信号量的到来。这样传送来的信息被主控芯片及时传送到信息存储器,节省CPU的资源,同时也不需要报文缓冲。
基于S9S12HA32主控芯片设计了一款高性能的汽车数字式组合仪表。硬件设计中主要进行了主控芯片、电源电路、CAN总线和步进电机驱动电路的设计。软件重点设计了控制软件的主程序及CAN总线通信模块。所设计的组合仪表系统以S9S12HA32的单片机和LCD液晶显示器替换了之前的模拟仪表板,驱动装置方面采用步进电机代替传统的动磁式及动圈式机芯,提高了组合仪表的精度,实现了对各指针的精确控制。该组合仪表经过调节测试,运行稳定,功能可靠,具有一定的市场推广价值。
[1]杨春杰,王曙光,亢红波.CAN总线技术[M].北京:北京航空航天大学出版社,2010:22-37.
[2]冯正斌.基于 CAN总线的汽车数字仪表系统设计[D].山东:山东理工大学,2011:19-22.
[3]刘源杨,马建辉,王知学,等.基于 MC9S12HY32 的电动汽车仪表盘设计[J].电子设计工程,2012,(8):130-132.
[4]张专成,邹涛,冯立杰,等.一种基于 CAN 总线的集散型火灾报警控制系统[J].嵌入式网络技术应用,2006,(5):29-31.
[5]曹晓琳,王登峰,车晓镭,等.汽车 CAN总线数字组合仪表设计[J].汽车工程,2010,(1):86-89.
[6]王知学,马建辉,车晓波,等.基于MC9S12XS128的汽车BCM的设计与实现[J].电子设计工程,2011,(2):190-192.