Dem是AUTOSAR中配置项最多,实现功能最为复杂的模块之一,主要负责记录故障诊断以及其关联数据,是实现诊断功能至关重要的模块
诊断故障基础
当汽车出现故障时,DTC故障码就等同于“检验结果”,汽车工程师通过该标识码便可以查表的方式获得该故障信息,如故障触发条件、故障解除条件、系统功能表现等,得出解决该故障的策略。
DTC(Diagnostic Trouble Code)顾名思义诊断故障码,一种用来记录当ECU发生或者检测到某种故障时呈现给大家的标识码。
DTC故障码是一个4个字节的标识符,由以下两部分组成:DTC Catogory 与Failure Type,其中DTC Catogory 又可以根据Powertrain、Body、Chasis、N etwork四大子系统来进一步定义其范围,简称PBCU四大子系统,如下表所示:
故障码有以下两点意义:
1)产线下线检测:一辆车的零部件的开发,系统集成,整车组装,其中涉及的流程之长,零部件数量之多,可以说是相当复杂。为了产线生产的车能正常下线,安全上路,就需要确保在车辆下线前,各零部件本身以及零部件相互配合是没有问题的。因此在产线电检流程中,会读取整车故障码,通过故障码说明车辆是否正常。
2)车辆维修:当车辆出故障时,维修工程师是如何快速定位到故障零部件呢?车辆是由上万个零部件组成,如果依赖于维修工程根据经验慢慢排查,效率会极其低下。因此,维修工程师会使用诊断仪读取整车故障码,并将故障码与故障现象对照,快速得出维修策略。
DTC故障类型
以非排放相关的ECU为例,可以将DTC故障类型分为以下几个部分:
硬件故障:如RAM、Flash、CPU时钟等硬件本身失效的问题
软件故障:如配置字故障,标定故障或客户定义的软件功能性故障
外部环境故障:电压过高或者欠压、环境温度过高或过低等
通讯相关故障:如报文丢失、信号无效,Checksum/Rolling 障等
每个DTC都有一个字节用来表示该故障的状态,这个字节中每个bit的含义如下:
Bit0:请求时刻测试结果为失败;
Bit1:在当前点火循环至少失败过1次;
Bit2:在当前或者上一个点火循环测试结果不为失败;
Bit3:请求时刻DTC被确认,一般确认是在一个点火周期内发生错误1次;
Bit4:自上次清除DTC之后测试结果已完成,即测试结果为PASS或者FAIL结果;
Bit5:自上次清除DTC后测试结果都不是FAIL;
Bit6:在当前点火周期内测试结果已完成,即为PASS或FAIL状态;
Bit7:ECU没有得到点亮警示灯请求
冻结帧与扩展数据
从上文可知,DTC中8bit位可以描述DTC状态,但8个bit位能够承载的信息是有限的,仅能说明故障是当前故障还是历史故障。故障发生时的车速,温度,油量,电量等关键信息怎么记录呢?
UDS中规定了冻结帧可以用来记录故障发生时的详细情况,扩展数据可以提供故障码相关的扩展信息,包括老化计数器。
DEM详解
Dem全称Diagnostic Event Manager,负责诊断故障事件的处理,存储诊断故障事件以及故障事件相关联的数据(故障发生时温度,车速等)。简而言之,Dem发挥了AUTOSAR架构中故障”中央处理器作用”,用户软件模块只需要将故障上