查询DTC记录(0x19)
19服务复杂一点,其涉及到多个子服务。比较常用的子服务有19 01,19 02,19 04,19 06和19 0A。在介绍具体的子服务之前,先要介绍一些预备知识。
DTC Status
DTC Status是指DTC状态。DTC状态有八个:
bit0:Test failed,测试失效;
bit1:Test failed this monitoring cycle,本检测周期测试失效;
bit2:Pending DTC,等待DTC;
bit3:Confirmed DTC,确认DTC;
bit4:Test not completed since last clear,上次清零后测试未完成;
bit5:Test failed since last clear,上次清零后测试失效;
bit6:Test not completed this monitoring cycle,本检测周期测试未完成;
bit7:Warning indicator requested,警告指示位请求。
这8个状态实际记录的是当DTC发生的时候当时的一些状态。不要求ECU全部支持这8个状态(具体支持哪些状态要根据车厂要求确定)。每一个DTC都会有自己的DtcStauts,一般用1个字节的8个bit来对应上述8种状态,当DTC发生的时候,DTC根据车厂要求支持的DTC状态,确定自己的DtcStatus值,在该DTC故障消失的时候,再去变更该值。这里要特别注意,status的大小端问题。
DTC Status Mask
诊断仪在发送19信令时,还会发送一个DTC Status Mask值。这个值的意义是,已经记录的DTC中,DTCStatus和这个DtcStatusMask值相与后不为0,才是我们要查找的DTC。