汽车故障诊断除了可以让系统更加健壮,并实时处理出现的故障这个功能以外,还能将故障以DTC的形式记录下来,并通过诊断通信的形式传输给外部诊断设备进行分析。DTC被记录下来以后,外部诊断设备通过诊断通信的形式去读取这些故障信息。诊断通信通过不同的诊断服务,执行不同的诊断目的,例如:读取故障的诊断服务,是为了读取控制系统中所记录的DTC;读取数据信息的诊断服务,就是为了读取控制系统的一些参数。
为了更好地分析诊断仪读取诊断信息的原理,不仅需要诊断仪对控制系统进行实时诊断,还需要CANoe将诊断仪和ECU之间交互的信息记录下来。通过分析CANoe实际记录的故障代码数据,进行诊断通信分析。在整车诊断通信中,客户端tester(诊断仪)和服务器端控制系统ECU是统一编址的,且每一个tester和ECU的地址都是惟一的。
ECU发生故障时,ECU通过自诊断模块检测到系统部件敌障,然后将故障的信息以数字代码的形式存储在模块内部的EEPROM中。诊断仪通过诊断通信与ECU建立通信联系,ECU从自身的存储器中读取这些数字代码并传输给诊断设备。诊断设备根据代码所对应的故障信息来识别故障。
诊断仪首先需要请求TCU开始建立诊断通信,然后告知TCU诊断的目的,例如:开始建立连接或读取故障信息等。这种诊断目的性体现在ISO14229中即为诊断服务的方式,例如:请求诊断服务、读取故障服务、读取数据服务等。表2是一段实际的诊断数据。
如表2所示,诊断开始时刻,诊断仪向TCU发送建立诊断请求,TCU进行回复。其中7E1和7E9分别代表TCU诊断标识和TCU响应诊断标识。10表示建立诊断通信请求服务标识,50是响应服务标识。在ISO 14229中规定,ECU的诊断响应ID=ECU诊断请求ID+0x008,例如7E1的请求,响应则为7E9;响应服务的ID=请求服务的ID+0x40,例如10的服务响应则是50。这种规则化的处理方式方便了数据的传输,更方便了数据的处理。诊断通信就是建立在这种规则化的通信方式之上的。
表3、表4所示的两段数据表示诊断仪对TCU进行读取故障码诊断服务,TCU分别反馈故障DTC个数和故障DTC内容的情况。其中,19服务是读取故障码信息服务,59是19服务的肯定响应服务。
根据ISO 14229的诊断协议,19服务有01,02, 04, 06, OA等子服务。在01子服务中,第4个数据字节代表DTC状态掩码,即需要读取哪种状态的DTC。在表3所显示数据的19服务请求中,第4个字节为FF,它代表的意义为读取所有Bit置1位的DTC。在59响应服务中,第5, 6字节表示DTC的个数。如上述数据显示,第5, 6字节均为00,即DTC的个数为0。
19服务的02子服务代表了根据故障信息掩码读取DTC内容。以表4为例,结果显示有1个故障DTC。
数据中前3个字节所代表的含义可参照01子服务,之后的3个字节表示了这个DTC的内容,最后一个字节表示了这个DTC的状态。
根据UDS诊断规范,DTC信息可由4部分组成,分别为DTC高位字节、DTC中位字节以及DTC低位字节和DTC状态。而根据UDS协议,我们将DTC高位字节又分为3个部分,且每一部分赋予了一定的意义,如表5所示。
基于UDS的诊断协议,Bit7和Bit6组合为第1个编码集合;Bit5和Bit4组合为第2个编码集合;Bit3到BitO组合为第3个编码集合。这样做的好处是可以根据不同的编码集合设计不同的故障类别和故障信息,而事实上,因为位数比较多,很多Bit位目前并没有使用,但这样也为未来可扩展性做了预留,是一种非常好的机制。
其中,DTC高位字节first编码集合代表的是汽车上哪种系统出现了故障。目前,规范定义的系统有动力系统、底盘系统、车身系统和网络系统。但随着汽车研究的高速发展,当前定义的4个系统已经不能满足要求,例如安全系统、娱乐系统等均没有制定出来,此时即可以使用其他预留的位加以辅助来进行识别。first编码集合的意义如表6所示。
根据表4分析数据可知:反馈的59信息为d80759 02 FF C l 21 20 DB,其中C12120DB所代表就是DTC的信息,C1, 21, 20分别是DTC高位字节、DTC中位字节和DTC低位字节。将C1分解为8位的二进制为1100 0001,它最高两位(Bit7-6)为11,对应到表6中可知,是网络出现了问题,即出现了通信故障。剩下的几位00 0001和剩下的字节21, 20,根据整车厂策略不同,可以表示不同的内容,例如本文中最开始所提出的范例TCU记录的DTC为与ABS通信丢失,就可通过设置编译后,由剩下的位数表述出此故障信息。最后一个字节OxDB表示了该DTC的状态,此信息含义对应到本文第2章所述,将DB分解为8位二进制,由置1位分析DTC内容,此过程分析见图6。
图6所示DTC状态为:置1位分别为test failed,test failed this operation cycle,confirmed DTC,testnot completed since last clear,test not completedthis operation cycle和Warning Indicator requested,由此分析可知此DTC出现错误,且在当前驾驶循环下被确认。