8.4 故障诊断协议
汽车自动变速器在使用中,会出现不同级别的故障,各个变速器生产厂家故障诊断策略定义了不同处理措施。随着现代商用车制造商之间的合作,国际汽车工业界故障诊断普遍采用如下通信协议的标准。
1)ISO15765-4:道路车辆-CAN总线诊断 第4部分:排放相关系统的要求。
2)SAE J1939-73:应用层-诊断。
3)ISO 27145道路车辆-车载诊断(WWH-OBD)。
国际标准化组织道路车辆技术委员会和电气装置技术委员会规定,目前各厂家可自选ISO15765-4、SAE J1939-73和ISO 27145中任何一种通信协议,但逐步统一到ISO 27145规定的通信协议。
在此,简要介绍SAE J1939-73应用层诊断协议,该协议定义了用于诊断服务的报文,可用于车辆故障的诊断和维修。SAE J1939期望的诊断要求,主要包含以下几个方面:
1)安全性:定义了使用串行数据链接的安全方案,使工业标准测试工具能在维修服务程序中完成必需的任务,包括操作诊断指令,存取车辆配置信息,重新标定控制模块。
2)连接器:测试工具可以通过连接器接入整车网络,连接器定义见SAE J1939-13。
3)诊断状态信息支持:能够读取/清除故障信息,监控整车运行参数,读取/设置车辆及部件的配置信息以及其他相关信息。
4)诊断测试程序支持:支持测试工具使控制模块进入指定的测试程序,由此确定执行元件的运行状态。
SAE J1939-73中定义的主要的故障报文帧内容及其功能如下:
1)DM1(Diagnostic Message 1)——当前激活状态的诊断故障报文(Active Di-agnostic Trouble Codes)。根据故障发生个数,分为单个故障、无故障和多个故障情况。
①PGN65226 DM1——单个故障DM1报文。
触发方式:事件触发(故障发生时触发)。
数据长度:8byte。
数据页:0。
PDU格式:254。
特定PDU:202。
默认优先值(P):6。
标示符ID:0x18FECA03。
参数组编号(PGN):FECA。

②当无故障发生时,DM1报文ID和单个故障一样,但发送周期为1s,具体字节定义采用默认值,如下所示。

③当有多个故障发生时,DM1报文采用多包传输方式,发送节点将数据拆分成若干个数据包发送,接收节点将接收到的数据包重组为原始数据。多包传输的重组报文由数据管理报文(Transport Protocol Connection Management,TP.CM)和数据发送报文(Transport Protocol Data Transfer,TP.DT)组成,报文ID也为0x18FECA00。
PGN60671 TP.CM——数据管理报文。
发送周期:1s。
数据长度:8byte。
数据页:0。
PDU格式:236。
特定PDU:255。
默认优先值(P):6。
标示符ID:0x18ECFF03。
参数组编号(PGN):ECFF。

报文所占字节数=(故障个数×4)+2,每个故障诊断代码由4个字节组成,另外两个字节主要是灯的状态(故障灯和刷写灯)。如有两个故障发生,则报文所占字节数=(2×4)+2=10字节,超过8个字节,数据包的个数为2。
PGN60415 TP.DT——数据发送报文。
发送周期:50ms。
数据长度:8byte。
数据页:0。
PDU格式:235。
特定PDU:255。
默认优先值(P):6。
标示符ID:0x18EBFF03。
参数组编号(PGN):EBFF。
DM1,多包传输第1包,报文定义如下。(https://www.daowen.com)

DM1,多包传输第2包,报文定义如下。

DM1,多包传输第3包,报文定义如下。

数据包按照包编号顺序发送,最后一个数据包的字节以0xFF填充。数据包的个数取决于进入故障内存的个数。
2)DM2(Diagnostic Message 2)——先前激活故障码(Previously Active Diag-nostic Trouble Codes)。和DM1报文一样,据故障发生个数,分为单个故障、无故障和多个故障情况,相应报文字节定义也一样。不同的是触发方式为请求报文(PGN:59904)触发,如果不支持该参数组,发送否定应答。另外,DM2单个故障和无故障时,发送报文ID变为0x18FECB03,由数据管理报文和用到的对应的重组报文ID也为0x18FECB03。
3)DM3(Diagnostic Message 3)——清除/复位先前激活故障(Diagnostic Data Clear/Reset Of Previously Active DTCs),与激活DTC有关的诊断数据将不受影响。当操作完成或无先前激活DTC,必须通过应答报文(PGN:59392)发送肯定应答。如果不支持或不能执行请求,必须发送否定应答。若请求指向全局目标地址,控制模块不发送任何应答。
触发方式:请求触发(请求报文PGN:59904)。
数据长度:0。
数据页:0。
PDU格式:254。
特定PDU:204。
默认优先值(P):6。
标示符ID:0x18FECC03。
参数组编号(PGN):FECC。
4)DM4(Diagnostic Message 4)——冻结帧参数(Freeze Frame Parameters),是指记录一个DTC发生时相关参数的列表。记录每个DTC的冻结帧包括要求的参数和制造商定义的参数,冻结帧和故障码是一一对应的关系。DM4适用于排放和动力传动相关领域,主要和发动机相关,但在变速器开发中也适用。
触发方式:请求触发(请求报文PGN:59904),如果不支持发送否定应答(应答报文PGN:59392)。
数据长度:可变。
数据页:0。
PDU格式:254。
特定PDU:205。
默认优先值(P):6。
标示符ID:0x18FECD03。
参数组编号(PGN):FECD。

DM4报文根据故障码个数不同,分为不同填充规则。
当没有DTC时:
1byte=0,字节2~5=0,字节6~8=255。
当有多个冻结帧存在时,存在如下关系:
总的报文字节个数=(故障发生个数×13(可变字节)(冻结帧长度(1byte)+DTC(4byte)+冻结帧参数(8byte)+制造商相关信息(可变字节))
例如:有两个故障发生,制造商相关信息=0byte,则总的报文字节个数=(2×13)=26,需要传输的包的个数为4。
有3个故障发生,制造商相关信息=2,则总的报文字节个数=(2×15)=30,需要传输的包的个数为5。
定义a=冻结帧长度,b=要求的参数(DTC+冻结帧参数),c=制造商相关信息,则报文格式为a,b,c,a,b,c,…
5)DM11(Diagnostic Message 11)——清除/复位当前激活故障(Diagnostic Data Clear/Reset For Active DTCs),清除与激活DTC相关的所有诊断信息。当该操作完成时或被控制模块内没有故障码时,通过应答报文发送肯定应答。当由于某种原因,控制模块不能执行要求的操作,就必须发送否定应答。若请求指令发送全局地址,则不会发送任何应答。
触发方式:请求触发(请求报文PGN:59904)。
数据长度:0。
数据页:0。
PDU格式:254。
特定PDU:211。
默认优先值(P):6。
标示符ID:0x18FED303。
参数组编号(PGN):FED3。
变速器故障诊断使用SAE J1939诊断协议,应支持读取DTC(DM1、DM2)、清除DTC(DM3、DM11)、读取冻结帧(DM4)报文基本功能。另外,诊断准备就绪(Diagnostic Readiness1,DM5)、连续监测系统的测试结果(Pending DTCs,DM6)、报告标定信息(DM19)、检测性能比率(DM20)等功能也逐渐在开发控制器中应用,详见SAE J1939-73应用层诊断协议。