基于CAN总线的汽车仪表摘要:在总线技术快速发展的今天,汽车正在逐步走向智能化和网络化,本文讨论了一个基于CAN总线、液晶显示和步进电机的汽车组合仪表的设计。关键词:汽车电子;CAN总线;步进电机;组合仪表Abstract:NowadaysalongwiththequicklydevelopmentoftheFieldBustechnology,thevehicleindustryhasmakingforIntelligentizationandNetworking.ThispaperpresentsadesignofanewdigitaldashboardbasedonCANBus,LCDandsteppermotor.Keywords:VehicleElectricity;CANBus;StepperMotor;AssembledInstrument.1、汽车仪表在国内外的发展的概况随着汽车工业100年来的发展,汽车仪表也有其自身的发展过程。按照仪表机芯的工作原理可以分为四代,第一代:机械式仪表,它的工作是基于机械作用力。第二代:电气式仪表,它的工作原理是基于电测原理,即通过各类传感器将被测的非电量转换成电细腻好加以测量。第三代:模拟电路电子式仪表,它的工作原来和第二代电气式基本相同,只是用电子器件取代了电气器件,其结构形式经理了动圈式机芯和动磁式机芯两个发展阶段。第四代:步进电机式全数字汽车仪表,它的信号处理方式从模拟信号变成了数字信号,和第三代相比是其工作原理完全不同。由于ECU性能的提高,尤其是在抗强电磁干扰、工作温度范围和对工作电源稳定性要求等方面的改善,再加上价格的降低,“ECU控制步进电机式仪表”得到了各方面的一致看好。由于其精度高,可靠性好,响应速度快、无抖动,适应范围广,重复性好等优点,在国内外的应用都已经相当普及,因而步进电机式汽车仪表必将是未来一段时间内汽车仪表的主导产品。2、CAN总线在汽车中的应用随着汽车电子技术的飞速发展,将汽车工业推入了一个全新的时代。由于汽车、节能、安全和舒适性等使用性能不断提高,使得汽车电子控制程度也越来越高。汽车电子装置发展的一个重要趋势,是大量单片机来改善汽车的性能。汽车电子控制装置的增多,使得连接汽车电子控制装置之间的导线也变得更为复杂,如果采用传统的点到点的布线方式,势必导致车身布线越来越长,越来越复杂,运行可靠性低、故障维修难度大。为解决该问题,德国BOSCH公司在80年代初开发出一种串行数据总新-CAN总线。CAN总线是一种现场总线,将各种汽车电子装置连接成一个网络。由于CAN总线具有通信率高、可靠性好、连接方便、多主站点、通讯协议简单和性能价格比高等突出优点,如今,CAN总线已经成为汽车电子控制装置之间通信的标准总线,在汽车电子仪表中得到了广泛的应用。3、基于CAN总线的汽车仪表设计方案3.1系统硬件设计整个汽车仪表系统以单片机mb96f386为控制中心,采集来自汽车传感器的车速、转速、水温、油压、气压、油量信号。其中车速信号时脉冲信号,经过整形处理后送入单片机完成脉冲信号的测量。前桥和后桥气压、油压是模拟信号,经过前置处理后送入单片机的AD转换输入端,利用单片机内部的AD转换模块完成测量。转速、水温、油量是CAN总线信号,通过CAN接口采集到单片机CAN模块。系统硬件总体结构如下图所示:3.1.1仪表主控制器MB96FM386的功能·直接驱动液晶模块,显示里程小计、总计·直接输出控制6个步进电机的控制信号·带CAN接口,CAN协议符合2.0A/B·蜂鸣器信号输出,当发动机转速过高,或者车速过高时报警·水温、油量、油压报警输出·自带看门狗·自带时钟功能,能计时·具有数据保存功能,能保存仪表的工作参数至外接EEPROM·可通过专用软件对芯片的工作参数及工作方式进行设置,以适合各种车型的需要。3.1.2频率信号的处理汽车的行驶速度关系到行车安全。驾驶车辆时合理地运用、准确地掌握行车速度,对行车安全与高效运用车辆有着重要的意义,所以对于车速表来说,要尽量能够准确地反映出车辆的实际速度。车速传感器输出的不是标准的方波信号,输入的脉冲信号频率低,一般在1K以内,而且往往附加了很多干扰。在设计中采用微分电路改善输入波形,使脉冲更加陡峭,三极管工作在开关状态,用于信号的放大驱动,把车速信号整形为标准的方波信号输入给主控制器。3.1.3模拟信号的处理油压、气压信号是电阻信号,当外部的油压、气压信息产生变化时,传感器输出的电阻值也发生相应的变化。在设计中采用电阻分压的方法,把油压、气压信号转换成电压信号并控制在5V以内输入主控制器的AD转换模块。3.1.4CAN信号的处理CAN模块主要是包括CAN控制器和CAN收发器。通讯介质可采用双绞线,无特殊要求,现场布线和安装简单,最大数据传输距离长达10Km。CAN控制器是集成在主控制器里的,用于执行CAN通信协议,即按照CAN协议的规范进行信息的收发。主要的功能包括信息的缓冲和验收滤波。CAN收发器是工作在物理层,它是CAN总线控制其和物理总线之间的接口,具有从总线上差动收发和接受信号的能力。在设计中只要在主控制器和CAN总线之间连接上一个CAN收发器,就可以接收需要的CAN信号,并且能够发送其他节点需要的信号。汽车内部的电器种类繁多,包括大量的信号灯、照明灯、开关、电机、传感器等,随着车身电器的增加,这种传统的一对一物理连接的网络结构势必需要使用越来越多的线束。线束的增加不但占据了车内的有效空间,增加了装配和维修的难度,提高了整车的成本,而且妨碍整车可靠性的提高。如果转速、油量、水温、信号及各种开关信号是模拟信号的话,则和传统的仪表一样,需要很多很长的线束从传感器及各路开关连接到仪表的接插件,单单用于指示和照明的灯就有100多个,现在这些信号都在CAN总线上,只需要两根双绞线和一个CAN收发器,省去了原来的线束,并且CAN总线的速率达最高达到1Mbit/s,大大地提高了信号传输的性能。一旦转速、油量、水温及各种开关信号出现故障时,我们可以借助专用的CAN测试软件和硬件,通过界面操作可以方便地看到总线上的信息,这样大大简便了仪表的维修和检测。3.2系统软件设计在软件设计上,为了保证软件的通用性和可移植性,软件采用C语言编写,因为C语言编写的软件易于实现模块化,生成的机器代码质量高、可读性强、移植性好。软件模块主要分为主程序模块,CAN通讯模块,数据采集及处理模块,电机驱动模块,LCD显示模块等模块。系统总体结构如下所示:主程序负责调用各个子模块,各个子模块负责处理相应的功能模块。汽车仪表在接通电源以后,进行初始化,采集各个仪表的输入信号,并在相应的指示仪表上进行显示。CAN通讯模块负责CAN总线数据的发送和接收。当MB96F386的CAN接收控制器模块接收到一个完整的标识符,它将通知接收过滤器。接收过滤器响应这个信号,并读出控制器编码、ID,然后来判断是不是仪表需要的信息,如果是仪表需要的转速和水温及各种报警信号,即根据协议将其进行换算然后把他们显示出来。同时仪表把车速信号及时间通过CAN总线向CAN总线上其他节点发送信息。数据采集及处理模块完成对脉冲信号和模拟信号的采集和计算,并进行抗干扰处理,也就是数字滤波。电机驱动模块用于控制步进电机的转动正确的角度和方向,并且减轻指针的抖动。改变电机内线圈的电流方向可以控制步进电机的正转和反转。液晶显示模块用于驱动液晶显示汽车的里程值和时间值。上电后液晶显示的内容是总计,可以通过按钮来进行小计的切换。看门狗模块控制整个软件正常运行,在程序跑飞时能够重新启动。数据存储模块是用于完成对EEPROM的里程数据及各仪表参数的读写任务。以下是系统的主流程图:在软件设计上,为了使仪表能适应各种客户的要求,我们将需由客户确定的各种参数及仪表的各种功能,都以参数的形式保存到连接在微控制器的数据存储芯片上,客户可在仪表出厂时对仪表的各项参数通过专用的计算机软硬件来设置。比如仪表在处理车速信号或发动机转速信号时要求能适应各种车型信号的最大频率值,当输入频率较低而指针反应速度要求高的时候可选用测周期法来测量外部的输入信号,当输入频率较高而指针反应速度要求低的时候可选用测频率法来测量外部的输入信号。4、结束语汽车网络化作为汽车电子系统发展的重要趋势,其对于新一代汽车性能的深远影响已经通过在商品化车型上的成功应用逐渐显现出来。因此,将CAN总线技术引入到汽车仪表中式当前汽车仪表设计的重要环节。本文设计的带有CAN总线的汽车仪表大大简化了汽车全车的线束,减轻汽车的重量,提高整车可靠性和维修性。参考文献[1]李栋梁,基于CAN总线的全数字仪表的应用研究[D],合肥工业大学,2005[2]杨忠敏,汽车仪表的发展现状[J],汽车电器,2004[4]