前言:以下关于SAE J1939协议知识点的学习均抄录自书籍,侵权请联系删除。
故障诊断
SAE J1939诊断应用层定义了用于诊断服务的报文帧,诊断报文(DM)提供了用于车辆进行诊断和维修的功能。
诊断故障代码定义
SAE J1939在应用层中还定义了12种诊断报文(Diagnostic Message,DM)、诊断故障代码(Diagnostic Trouble Code,DTC)。
诊断故障代码由三部分组成:可疑参数号(Suspect Parameter Number,SPN)、故障模式标志(Failure Mode Identifier,FMI)及故障发生次数(Occurrence Count,OC)。一个故障代码由4字节构成,三个部分的位数分配如表所示。

通过诊断故障代码,诊断设备可以确定是哪个控制器在报告诊断信息。诊断故障代码以4字节发送。DTC表示法定义如图所示。

可疑参数编号SPN是一个19位的值,用于识别特定的元素组件或与ECU相关的参数。这在诊断中非常有用,它允许已经检测到某个部件如传感器有效故障情况的ECU发送一个故障报文以识别故障部件。SPN由SAE委员会分配。初始的511个SPN是预置SPN,所有其他的SPN将从512开始继续编号,且每加1作为一个新的赋值。生产厂商可自定义可疑参数,编号自520 192~524 287,多达4096个。
FMI定义了为SPN所识别的子系统中发现的故障类型,该故障可能不是电子故障,相反可能是需要报告给设备技术员甚至操作员的子系统故障或条件,

SAEJ1939协议定义了用于车辆诊断的服务,包括12种诊断报文(DM)和诊断故障代码(DTC)。DTC由SPN(可疑参数号)、FMI(故障模式标志)和故障发生次数组成。DM1用于报告当前激活状态的故障代码,DM2记录历史故障,DM3用于清除/复位历史故障代码。传输协议处理超过8字节的消息拆装和重组,确保多包报文的正确发送和接收。
最低0.47元/天 解锁文章
1万+





