基于网络化汽车组合仪表的设计

本文作者:admin       点击: 2008-08-11 00:00
前言:
一、引言

组合仪表是汽车的重要组成部件,对于汽车安全行驶至关重要。组合仪表通常是由以下几部件构成:油量表,水温表,转速表,车速表,里程表,照明系统和报警系统等。为了简化电子控制单元之间进行复杂的信息传递和数据交换,汽车网络化技术应运而生。迄今为止,已有多种网络标准,如ISO的VAN、 SAE的J1850和BOSH的CAN等。其中,CAN以起独特的设计,优异的性能和极高的可靠性得到了最为广泛的应用。

二、系统硬件设计

本设计采用CAN总线来实现仪表和汽车上其他电子系统的信息交流。仪表所需的所有信息都由CAN总线来传递,由于MOTOROLA的MC9S12H256微控制器内部有两个独立的MSCAN控制器,从而大大降低系统开发难度,缩短了开发周期,更好的提高了系统的稳定性和抗干扰性。同时,仪表和整个车身CAN网络相连接,形成了一个完整的汽车一体化网络控制系统。
1.MC9S12H256芯片
MC9S12H256是MOTOROLA公司的HC9S12系列16位控制芯片的一种。其内部基本结构包括:HCS12中央处理器(CPU);两个独立的MSCAN控制器-兼容CAN2.0A/B协议;8通道16位可软件编程控制的定时器/计数器;5通道步进电机直接驱动控制模块;32 x 4 的LCD驱动控制模块以及串行通信接口(SCI)等,片内有4KB的EEPROM,12KB的RAM和256KB的FLASH EEPROM。这些丰富的资源足以满足作为汽车仪表的ECU对各种数据的处理,CAN报文的接收和发送,以及仪表的驱动等。MC9S12H256内部结构框图如图1所示。
2.CAN总线特点
CAN 全称为Controller Area Network,即控制器局域网,由德国Bosch 公司最先提出,被誉为自动化领域的计算机局域网。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。CAN 是一种多主方式的串行通信总线,基本设计规范要求有高的位速率、高抗电磁干扰性,而且要能够检测出总线的任何错误。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CAN(Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;
其次,CAN总线通过CAN控制器的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
3.组合仪表的硬件设计
该仪表是全数字式组合仪表,硬件结构原理图如图2所示。仪表盘包括一个高速的CAN接口和一个低速CAN接口,1个LCD显示器和4个指针式表,水温和油压传感器,4X4键盘以及报警系统和通信接口等。其中里程(包括单里程)由LCD显示;车速、水温、转速和油量仪表用指针式显示,由步进电机驱动。
与一般的仪表采用专用芯片来驱动步进电机的方式不同,本设计中对步进电机的驱动采用的是由MC9S12H256的电机控制模块直接驱动步进电机带动指针旋转以分别显示车速,水温,发动机转速和油量等信息,将原本由专用芯片驱动完成的功能改为软件来实现。
设计中采用的是VID29-05P两相式步进电机,其工作电压为5V~10V,工作环境温度:-40℃~105℃。最大消耗电流为20mA,内置减速比180/1的齿轮系,最高精度可达到输出轴的步距角为1/12o。其一个整步的步距角为180o,每一个整步分为3个分步,其微步的工作方式为将每一分步再细分成4步走完,即将电机每相绕组的电流分为4个台阶投入或切断。每一个微步的步距角为150,绕组的电流波形为一正弦阶梯波。
步进电机驱动模块采用双全桥模式(Dual Full H-bridge Mode)每4个通道一组组成一个控制端输出动态的PWM序列驱动一个步进电机运行,通过控制PWM信号的占空比的变化控制电流有效值的变化,实现电机的微步驱动。
4.键盘、LCD和指示灯的硬件设计
4X4的矩阵键盘以满足各种输入命令,如转向灯、刮雨器、喇叭和电动门窗空调设备启停等等。LCD显示模块选用一块10位7段制LCD显示屏,以数字显示汽车行驶的累计里程值和分里程值,显示范围0-9999999.999公里,。驱动则由MC9S12H256内置的LCD模块直接驱动。PORTA和PORTB口用做驱动LCD接口,剩余的口线用做普通的I/O口,实时输出汽车不同状态下的控制信号用来控制指示灯以指示汽车车身的相关信息。

三、系统软件设计

软件部分采用C语言编写,主要由主程序和CAN接收中断子程序构成,其中主程序完成系统初始化,按扭动作扫描及相关动作的处理,组合仪表的步进驱动和LCD的显示以及各种报警等。中断服务程序用来处理CAN接收。软件流程图如图3所示。
主程序里采取调用函数的方式进行循环扫描汽车各种状态。结构如下:
Main()
{  init(); //系统初始化
   Wait(); //延时
   Delay();
   Can_init(); //CAN初始化
   Tdata_can(); //CAN数据
   Trdata_can();
   while(1)
     { keyscan(); Lcd_dsiplay(); }          //按键处理,显示
}
汽车仪表在工作过程中环境变化无常,在设计上通过硬软件综合考虑,实现抗干扰和数据可靠存储设计。在软件抗干扰措施方面,首先考虑到数字信号在传输过程中受到干扰易引起码元波形变坏,传输到接收端后,可能发生错误的情况,在编码设计时,着重考虑编码结构,采用抗干扰性强的交织卷积码方式;为了杜绝程序在使用过程中出现死机的现象,设计了看门狗以实现硬件对软件的保护作用;为了消除对数据采集带来的误差,对变化缓解的油位传感器等信号采样值使用了算术平均法数字滤波,以消除油位波动给采样值带来的影响。

四、结束语

本文提出了一个基于网络化的汽车组合仪表设计,应用PWM直接驱动数控指针式仪表。方案采用软件算法处理方式代替了传统的专用驱动芯片来实现对数控指针式仪表步进电机的驱动,简化了电路,有效地节约了成本,提高了抗干扰和便于和其它系统通信以及进行数据处理,在稳定性、可靠性以及实时性完全达到了现代汽车仪表的要求,具有很好的经济性和实用性。