基于MB90F428的汽车仪表设计
引言
汽车仪表是人和汽车的交互界面,为驾驶员提供所需的汽车运行参数、故障、里程等信息,是每一辆汽车必不可少的部件。它经历了机械式、电气式、模拟电路电子式的发展过程,随着汽车电子的网络化,CAN总线技术在汽车领域得到了越来越广泛的应用,因此,CAN总线、嵌入式就成为了汽车仪表未来发展的必然趋势。
汽车仪表的基本结构和功能
汽车上较常用的有四种指示仪表,即车速里程表、发动机水温表、发动机转速表、燃油表等。分别显示汽车行驶速度、单里程和总里程数、发动机冷却液温度、汽车行驶时发动机旋转速度及汽车油箱内的油量。在汽车仪表板上往往还同时装有十几种之多的指示和报警讯号灯,如左右转向信号、刹车信号、远光信号、ABS、电池充电、电池寿命报警、油压报警、油量报警、水温报警等等,这些指示灯在不同的仪表板中有所不同,通常用LED显示。
CAN总线的优点及其在汽车领域的应用
控制器局域网CAN(Controller Area Network)是德国Bosch公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统等应用中,总线的位速率最大可达1Mbit/s。CAN网络正在不断地应用在汽车电子的各个方面。CAN总线具有下列主要特征:(1)多主站依据优先权进行总线访问;(2)无破坏性的基于优先权竞争的总线仲裁;(3)借助接收滤波的多地址帧传送;(4)远程数据请求;(5)配置灵活性;(6)全系统数据相容性;(7)错误检测和出错信令;(8)发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。
汽车仪表板软硬件设计
结合汽车仪表的技术和性能指标,以及简化硬件电路的要求,选择富士通公司的MB90F428芯片为微控制器进行汽车仪表的设计。MB90F428芯片是16 位单片机,内部有CAN总线接口,FLASH ROM,主要应用于汽车与工业等;其CAN 总线符合V2.0 Part A、Part B,能支持更灵活的信息缓冲处理。支持高级语言,可扩展地址模式,有增强乘除指令,增强位操作指令等; 微控制器有32 位累加器(长字处理);周边资源有:8通道的8/10Bit A/D转换器,UART,扩展I/O串行接口,8/16Bit定时器,I/O定时器(输入捕获,输出比较)、8路外部中断、CANBUS接口、 4路步进电机驱动模块、LCD模块(可驱动24 4 的笔段式液晶模块)等。 4路16位输入捕捉通道可以捕捉汽车车速传感器和发动机转速传感器输入的脉冲信号,A/D转换器可以用来转换水温、油量传感器输入的电压信号,I/O口则进行诸多信号指示灯的信号输入,CAN接口主要和CAN总线收发器PCA82C250芯片收发CAN信号,步进电机驱动模块和LCD显示模块用于驱动仪表盘上的4个步进电机指示、里程时间的显示。这种片上自带驱动模块的设计方法,提高了系统的可靠性,降低了成本。
本设计主要分两大模块:检测电路控制模块和仪表驱动模块,如图1所示。检测电路模块主要由输入信号采集、信号处理、以及信号转换电路组成。首先,汽车状况通过相应的传感器检测,转换为电压、脉冲信号,进行滤波放大,然后再输入MB90F428芯片进行内置A/D转换和数字处理,获得所需要的数字量信号,并实时地将所处理好的数字量送到CAN总线。
图1 汽车仪表板结构框图(略)
仪表驱动模块主要由信号接收、存储数据、以及设备驱动电路等组成。当驱动板接收到CAN信号,将通过MB90428芯片进行数据处理,来驱动步进电机、LCD、LED等。点火开关打开时,仪表监测到这一信号后,首先对自身进行检测(此过程中诊断指示灯常亮),并由FLASH RAM里记录的历史工况确定当前的仪表是否需要修正,经过几道程序将仪表初始化。自检程序通过之后,仪表开始由非工作状态进入工作状态,将对车速、转速、水温、油量等信号进行相应的处理,并通过指针和指示灯将当前工况表现出来。
仪表板硬件设计
电源电路
汽车蓄电池提供12V左右的电源,而该仪表板需要两路电源:+5V和+12电源。5V电源用于给MB90F428、CAN接口芯片(PCA82C250)和EEPROM等供电,12V电源给LED、蜂鸣器等供电。考虑到成本和易购性,我们选用7805芯片作为电源转换芯片。为了在掉电的时候可以及时地保存里程数据,在电源地输入端加一个1000 F的电解电容,当电源断开的时候,大电容可以维持单片机电源足够长的时间,使得单片机可以完成外部中断的服务程序。如图 2 所示。
图2 电源电路(略)
调理电路
汽车车速传感器和发动机转速传感器通常采用霍尔器件。当车轮开始旋转时,霍尔效应传感器开始产生一连串脉冲信号,脉冲的个数将随着车速增加而增加,但位置的占空比在任何速度下保持恒定不变。为了改善波形,在输入捕获定时器管脚外添加调理电路,对脉冲信号进行整形放大,这里我们通过RC滤波和三级管放大的方法处理。如图3、图4所示。
图3 车速信号调理电路(略)
图4 转速信号调理电路(略)
CAN接口电路
我们选用CAN收发器PCA82C250芯片进行数据发送与接收,它最初就是为汽车高速通信(最高达1Mbps)应用设计的,该器件可以提供对总线的差动发送能力和对CAN控制器的差动接收能力,它与ISO/DIS11898标准完全兼容,CANH和CANL双线也防止在汽车环境下可能发生的电气瞬变现象。由于汽车经常在恶劣的环境下工作,因此对收发器进行一定的抗干扰处理,这里选用光电耦合器(6N137芯片),如图 5 所示。
图5 CAN接口电路(略)
其他电路
除了以上这些电路以外,本次硬件设计还包括EEPROM电路、LED驱动电路、LCD显示电路、步进电机电路,由于MB90F428芯片是专为汽车设计的芯片,片上自带了大部分驱动,因此简化了硬件驱动电路的设计,节约了成本,提高了系统的可靠性。
仪表板软件设计
图6 软件流程图(略)
图6 所示为仪表板主程序的软件流程图,程序由点火信号控制,当点火开关打开时,仪表板进入主程序循环。整个系统软件由主程序、数据采集子程序、AD转换子程序、数据处理子程序、CAN通讯子程序、LCD/LED显示子程序、步进电机工作子程序等组成。
结论
随着汽车电气系统的总线化,高集成、嵌入式、总线化是汽车仪表发展的必然趋势。本文提出了一种总线思想的汽车仪表设计,包括了信号采集处理部分和驱动显示部分。从总体及软硬件方面详细介绍了带有CAN通讯的嵌入式汽车仪表的设计,该方案已经经过了工程调试,各方面性能良好,仪表的精度和反应速度以及抗干扰方面均达到了国内领先水平。
评论