关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯
1 ECU故障诊断系统介绍
汽车上任何一个零件或任何零件间都可能会产生失效,即使失效的概率极低,但没法保证百分之百不会失效。基于这样的事实,我们没办法阻止,但是尽可能去识别到潜在的失效,这样才能最大限度去避免伤害。所以,汽车的各个控制器都需要故障诊断系统,去不断检测系统、零件等的异常之处,从中找出故障,找出故障后,还希望一方面可以采取临时补救措施,将伤害减到最小,另一方面,保存故障信息,以供后续排查和解决故障。因此,基于这样的需求,完整的ECU故障诊断系统包括车内在线诊断系统和车外离线诊断系统两个部分,将两者配合使用,就可以进行完整地故障诊断。其中,车内在线诊断系统用于监测车内部的传感器,电子控制单元和执行器的工作状态,并根据这些数据信息自动检测系统故障,并将以故障码的形式保存,同时做出相应的故障处理措施,并点亮相对应的故障灯提醒驾驶人员。车外离线诊断系统用于提取已保存的故障信息,通过向车内在线诊断系统发送服务请求(即使用UDS服务)的形式,可进行读取故障码信息、清除故障码和刷写软件等操作,完成故障的调查与维修。也就是说:当汽车出现故障,车内在线诊断系统就应该起作用,最终提醒驾驶员有故障,那驾驶员将汽车返修。维修人员进行查因和维修,就需要使用车外离线诊断系统,查看故障信息、查找原因和更新软件操作等。
2 ECU故障诊断系统设计的若干要点
为了实现上文的ECU故障诊断系统,同时也为铺垫下文的ECU故障诊断系统ECU故障诊断系统实现,需要先介绍设计方面的几个重要知识点,主要包括:诊断故障码DTC,故障诊断机制和UDS服务。2.1 诊断故障码DTC
- 机械/系统故障,以变速箱控制器所涉及的故障为例,像挡位执行器坏了,离合器坏了等故障;
- 电子电器故障,比如电磁阀或传感器短路,电源电压不在工作范围等故障;
- 硬件故障,主要指PCB上的器件故障,比如处理器故障,外围芯片故障等;
- 通讯故障, 比如CAN连不上,CAN报文丢失等故障。
对于这些故障,基于管理和处理方面的考虑,采用诊断故障码(Diagnostic Trouble Code,DTC)来表示。下面就具体了解DTC的几个重要概念:DTC可以说是故障类型的"身份ID",一个DTC映射一个故障类型(诊断事件)。DTC格式是根据几个国际标准协议来定义的,比如ISO-14229-1,SAE J2012 OBD DTC和SAE J1939-73等。总的来说,DTC分为non OBD和OBD两种格式,如下所示:以non OBD为例,DTC包含3个字节数据。其中HighByte和MiddleByte这2个字节表示故障内码,对应5位标准故障码(第一位是字母,后四位是数字)。- 前两位用来区分故障来自的控制系统, 是系统代码,比如B0-B3 是用在车身控制系统,C0-C3 是用在底盘控制系统,P0-P3是用在发动机控制系统,U0-U3 是用在通讯故障;
比如"P080081"这个故障码中,故障内码为"P0800",其中“P08”代表动力系统的传动系统控制故障,“00”代表传感器。LowByte这个字节表示Failure Type,包含Failure category和Failure Sub Type两个部分,具体可参考SAE J2012-DA,比如常见的timeout应该用0x87,信号无效应该为0x81等等;而对于OBD相关的ECU的DTC最低字位均为0x00。接着"P080081"这个故障码,“P08”代表动力系统的传动系统控制故障,“00”代表传感器,“81”代表信号无效,所以这个DTC代表就是动力系统的传动系统控制的传感器信号无效。到此认识了DTC,除此之外还需要了解它的严重程度,因为不同的严重程度将会有不同的处理方式。DTC严重程度采用1个字节来存储,它分为A、B、 C、D四个等级。比如说A类表示立即维修车辆,B类表示及时维修车辆,C类表示影响不大,有时间再维护,D类表示没影响。根据上述DTC的定义,我们可以知道是什么故障以及故障是否严重,但这不能清晰得知故障什么时候发生的,什么原因导致发生的,因此还需要DTC的关键信息,比如DTC状态(DTC status)、DTC快照信息(Snapshot)和DTC扩展数据信息(Extended data)。只有存储下了这些关键信息,才能助于故障的解决。先看DTC状态,用1个字节来存储,其8个bit分别代表为:常听说历史故障和当前故障,对应上表,当前故障为bit0为1的故障,历史故障指bit0为0但是bit3为1的故障,DTCStatus = 0x09 表示当前故障,即DTCStatus = 0x08 表示历史故障。- 历史故障是过去发生但当前还没有清除的故障码。历史故障产生的原因有两种情况,一种是故障己经排除,只是未清除故障码,此代码清除后,故障就不会再次发生;另一种是故障并未排除,只是当前没有发生,此代码清除后,当故障再次发生时,故障还会出现。
- 当前故障是正发生的故障产生的故障码。当前故障是确实存在的故障引起的,它属于持续性故障产生的故障码,它不会被清除。
当前故障是当前确实存在的故障,比较容易判断。而历史故障比较难于判断,因为它是曾经发生的故障而现在没有,重现故障产生的状态,可能需要很长时间来捕捉历史故障码的重现,或者需要人为的创造可重现故障的条件,如加热、振动等,同时需要较好的设备来捕捉故障出现瞬间各种数据参数的变化才行。因此,一般先解决当前故障,而对于历史故障暂时作为故障诊断的参考。快照信息就类似照相机一样,在故障发生的时刻,对整车信息按下快门,做个记录,以便后续分析问题。快照信息一般包括供电电压、里程读数、点火状态、发动机冷却液温度,节气门位置,发动机转速,车速等信息,如下所示。这些会按规定的方式保存下来。扩展数据信息是一组提供DTC相关扩展状态信息的数据组,包括故障出现计数器、故障待定计数器、已老去计数器和老化计数器等,这些信息的具体内容一般都由客户来定义。如下示意:DTC的这些内容设计要么是根据标准协议,要么是根据客户的特定需求,不管是哪种形式,一般都是以需求形式要求实现方实现。当然,除了这些内容会作为需求的一部分,接下来要介绍的故障诊断机制内容也会作为需求的另一部分。2.2 ECU故障诊断机制
关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯