现在的汽车智能化程度越来越高了,汽车的各种功能基本都是由电子控制系统辅助完成的,比如发动机运行、变速箱挡位切换、制动及制动辅助系统控制、转向控制、车身稳定控制、自动空调系统、汽车防盗系统、无钥匙进入与一键启动,等等。当这些系统发生故障时,还会在仪表盘上显示故障灯,以提示驾驶员注意。
在我们维修和保养汽车时,还要用汽车维修电脑调取故障码,查看数据流,以及消除故障码、系统升级与初始化等。这些功能的执行都离不开一个东西——电子控制单元,也就是我们俗称的汽车电脑。那么汽车电脑是如何对汽车各系统进行控制的呢?它又是如何监视到故障码的呢?我们常说的汽车电脑自诊断又是怎么回事呢?下面我们就来简单的说说汽车电脑的工作原理,以及它是如何进行自诊断的。
汽车电控单元,俗称汽车电脑,它是按照系统内预定的程序,自动地对各种传感器的输入信号进行处理,然后输出信号给执行器,从而控制汽车运行的电子设备。由于汽车电脑工作条件恶劣,环境变化多样,需要承受-40-80°C的温度变化,以及1000Hz以下的振动,所以需要它有稳定的可靠性和对环境的耐久性,并且足够的智能化,具有自诊断和检测能力,能及时发现系统中存在的故障,并存储故障码,告知维修人员故障可能存在的部位,以便于维修。
汽车电脑都是单片机,集运算器、控制器、存储器、输入输出接口这四个基本组成部分于一体。它的存储器分为两个部分,一部分是固件存储器(ROM),汽车各种功能的控制程序就安装在这里,这个部分即使汽车完全断电了,这些程序也不会有任何的改变与丢失;另一部分是临时存储器(RAM),用来存储汽车运行中各种变量和传感器参数,以及汽车运行过程中产生的故障码、自适应学习值、时间、密码,等等,这些参数在汽车断电后就彻底丢失了。
汽车电脑的工作过程包括信号的过滤和放大、模数(A/D)转换、信号运算与输出控制等。具体的过程非常复杂,也就不详细论述了。举一个例子来说一下:发动机控制单元ECU,它在工作过程中接收发动机上各种传感器传递过来的信号,比如节气门位置信号、空气流量计信号、曲轴转速信号、水温信号,氧传感器信号,等等,然后把这些信号转换成电脑可以识别的数字信号,作为ECU内部存储的控制程序运算参数,计算出一个最佳的控制参数,然后把这个控制参数传递给发动机上的执行元件,执行元件按照这个参数来控制发动机的运行,比如喷油器的喷油脉宽、点火系统的点火提前角、可变正时系统的凸轮轴转角控制等。其它系统的电控单元工作过程与此类似,比如自动变速箱控制单元TCU、车身控制单元ECM、ABS控制单元、安全气囊控制单元等。
现在的汽车上有多个电控单元,一般执行单独某一项功能的系统都有一个独立的电控单元,比如发动机控制单元ECU、变速箱控制单元TCU、车身控制单元ECM以及制动防抱死系统ABS控制单元、电动助力转向系统的EPS控制单元、安全气囊控制单元、自动空调系统控制单元,等等。由于汽车在工作时是一个整体,所以各系统之间需要协调配合,统一动作。为此,各控制单元之间需要能够实时通讯,各种信息快速传递与交换,汽车电控单元之间采用通信网络技术连成一个网络系统,为了简化电路以及降低成本,通常采用CAN总线来完成的这项工作。
那么汽车电脑的自诊断功能又是怎么回事呢?汽车电脑自诊断是指汽车在工作过程中,各电控单元可以随时对系统内各元器件的工作状态,以及各电控单元之间的通讯状态,进行自动的检查和监测。当发现异常时,就会点亮仪表盘上的故障灯,提示驾驶员注意,并在电控单元中存储故障码,以便维修人员查阅。一般具有故障发现、故障分类、故障报警、故障存储、故障处理这几项基本功能。
存储在电控单元中的异常信号,就是所谓的故障码。故障码的产生有两种原因,一是传感器输入信号或者执行器输出信号错误,或者信号参数超出了规定的阈值,这种情况一般是传感器、执行器自身故障或线路故障;另一种是控制逻辑错误,即控制单元接收到的信息互相冲突,无法执行,或者各控制单元之间的通讯中断或者混乱,无法协调与沟通。通过解读故障代码,绝大多数的时候都能正确识别故障部位以及可能导致故障发生的原因。
不过在有些情况下,故障码显示的故障并不一定是准确的,需要我们结合故障的具体现象以及部位,对相关部件的控制逻辑进行分析判断才能得出正确的结论。比如一个简单的发动机失火故障码,可能导致发动机失火的原因有可能是火花塞,也可能是点火线圈、高压线、点火控制单元,也有可能是机械故障,比如气缸压力过低、喷油器堵塞等,这就需要我们具体的测量与分析判断。还有比如发动机故障灯点亮,显示的故障码是氧传感器故障,但是真实原因可能是可燃混合气过浓或过稀,是由于发动机积碳过多或者喷油器故障导致的。
此外,还有一些纯机械故障是不显示故障码的,比如发动机异响、变速箱异响、悬架系统故障,汽车各部位自然磨损导致的间隙变化、疲劳断裂、腐蚀磨损等。有些司机来修车,不论什么故障都要求用电脑检查一遍,认为这是高科技,比人工强多了。其实再高的科技,也是为人服务的,汽车维修过程中,这些检查只是辅助手段,更重要的是修理工的经验、对汽车原理的精通、以及认真负责的态度。很多时候,如果完全按照故障码修车,往往会误入歧途,最后绕了一个很大的弯才出来,甚至根本绕不出来了。
汽车故障码的消除有两种方式,一种是使用维修电脑直接消除,这种方式简单直接,对汽车其它的功能没有任何影响;另一种方法是断开蓄电池的负极,让汽车全车断电,此时临时存储在电控单元中的故障码就被清除了。不过这种方式同时也把汽车的自适应学习值、时间设置、密码设置等一些临时数据也同时清除了,甚至会带来一些麻烦,尽可能不要采用。此外,还有一些偶发性的故障,比如在维修过程中不慎拔下某个传感器插头等,也会以故障码的形式存储在电控单元中,这样的故障码在汽车发动50~80次之后再没有出现类似的故障,就会自动清除。
那么汽车出现故障码之后,汽车还能正常使用吗?在绝大多数情况下,故障码都是不影响汽车使用的。比如发动机故障灯点亮,绝大多数情况都是由于发动机尾气排放超标了,有可能只是你使用了不合格的燃油导致的,但是发动机的性能不会受到任何影响;在比如汽车ABS故障灯点亮,此时的汽车防抱死功能缺失,但是常规制动性能不受任何影响。如果是比较严重影响汽车正常运行的故障,汽车还会进入“跛行”模式,用一套固定的控制程序控制汽车的运行,比如节气门开度固定,变速箱挡位固定等,让汽车可以勉强行驶,脱离危险,找到修理厂。
现在汽车故障码的编制基本都要符合OBD-Ⅱ的标准,各种不同的车型故障码读取规则和含义基本都是一致的。汽车电控单元的生产厂家也不多,基本被德国的博世、美国的德尔福以及日本的电装垄断了。不过即使是相同的电控单元,不同车企编制存储在电控单元中的控制程序,可就大不一样了,我们经常说的汽车调校功力,其实就是指这种程序的编写。这里面的很多参数,是车企经过大量实验和实际的汽车运行数据采集,优化计算出来的最佳结果,这个过程通常需要几十年的技术积累,不是一朝一夕就能完成的。所以,对于我们这样只有十几年造车历史的国家来说,还需要努力奋斗。