Back to Guides

SPN 与 FMI 代码详解:如何读懂任何 J1939 故障码

PrimoDeTech Editorial8/25/2026 75 viewsProtocols & Standards

一位司机把手机递给我,屏幕上是他仪表盘的照片:SPN 3216 FMI 4。"这是什么意思?严重吗?"问得好。重型卡车不像你的皮卡那样用 P0301 这类代码说话,它们说的是 SPN 和 FMI 数字对。一旦你会读这套代码,就能解读任何一台讲 J1939 的卡车上的任何故障——基本上就是所有现代柴油车。

SPN FMI 代码的含义分成两半:SPN 告诉你是什么在报警,FMI 告诉你它是怎么坏的。下面是完整的解码指南,包括那张值得收藏、凌晨两点在卡车服务区能救急的完整 FMI 对照表。

仪表盘上那串数字

当一台 J1939 卡车报出故障时,显示屏或诊断仪会显示类似这样的内容:

SPN 3216 FMI 4 — OC 3 — Active(激活)

每次都是四条信息:

  • SPN(Suspect Parameter Number,可疑参数编号)——被怀疑的部件、电路或系统。这里的 3216 是后处理进气侧 NOx 传感器的读数。
  • FMI(Failure Mode Identifier,故障模式标识符)——它失效的方式。FMI 4 表示"电压低于正常,或对低电位短路"。也就是说 NOx 传感器电路读到的电压偏低——先想线束、接插件或传感器坏了,未必是排放系统本身有问题。
  • OC(Occurrence Count,发生次数)——该故障已触发过多少次。
  • Active / Previously Active(激活 / 曾激活)——此刻正在发生,还是过去发生过。

这就是整套语言。SPN=是什么。FMI=怎么坏。OC=多频繁。状态=现在还是以前。手上有个代码只想要答案?把 SPN 和 FMI 输入我们免费的 DTC 查询工具,直接得到大白话解释。本指南接下来教你自己读懂它们。

SPN:说"是什么"——车上每个部件都有一个编号

SPN 是 Suspect Parameter Number(可疑参数编号) 的缩写,"可疑"二字是有讲究的:代码指向的是那个看起来不对劲的参数——头号嫌疑人,但不一定是真凶。

SPN 由 SAE(美国汽车工程师学会)在 J1939 标准中统一分配,且分配是全行业通用的。不管引擎盖上挂的是什么牌子,SPN 100 都是机油压力,SPN 110 是冷却液温度,SPN 639 是 J1939 数据链路本身。同一个编号,同一个含义,任何品牌都一样——发动机、变速箱、制动和后处理共用一本字典。(想深入了解这个网络的工作原理,请读我们的 J1939 协议完整指南。)

已分配的 SPN 有数万个,没人会去背整张表——你只需记住每周常见的那五十个,其余的查表即可。

一句提醒:SPN 指的是可疑参数,不是维修方案。SPN 3216 不等于"去买个 NOx 传感器"——磨破的线束和坏掉的传感器会报同一个 SPN。真正开始区分这些可能性的,是 FMI。

FMI:说"怎么坏的"——完整 0–31 对照表

FMI 是 Failure Mode Identifier(故障模式标识符) 的缩写,取值 0 到 31,定义在 SAE J1939-73 中。它是最多人跳过的那一半,也是告诉你问题属于哪一类的那一半——电气短路、断路、数据超范围、机械故障还是网络问题。完整表格如下:

FMI含义(依据 SAE J1939-73)
0数据有效但高于正常工作范围——最严重级别
1数据有效但低于正常工作范围——最严重级别
2数据不稳定、间歇或不正确
3电压高于正常,或对高电位短路
4电压低于正常,或对低电位短路
5电流低于正常,或断路
6电流高于正常,或对地短路
7机械系统无响应,或调整失当
8频率、脉宽或周期异常
9更新速率异常
10变化速率异常
11根本原因未知
12智能设备或部件损坏
13标定超差
14特殊说明
15数据有效但高于正常工作范围——最轻级别
16数据有效但高于正常工作范围——中等严重级别
17数据有效但低于正常工作范围——最轻级别
18数据有效但低于正常工作范围——中等严重级别
19接收到的网络数据有误
20数据向高漂移
21数据向低漂移
22–30保留(供 SAE 分配)
31故障条件存在

记住几条规律,这张表就活了:

  • FMI 3、4、5、6 是电气类。 对高短路、对低短路、断路、对地短路。先查线束、接插件和传感器本身,再去怀疑它测量的那个系统。我们的 SPN 3216 FMI 4 例子正是如此:是电路问题,不能证明排放系统有故障。
  • FMI 0、1、15、16、17、18 表示读数是真的,只是超了范围。 传感器说的是实话,只是实话不好听。这些数字还编码了严重程度:机油压力报 FMI 1 意味着立刻熄火;同一个 SPN 报 FMI 17 则是留意观察。
  • FMI 2 是让人头疼的间歇性故障——数据时有时无。常见原因是一颗松动的插针,一到烂路就发作。
  • FMI 7 是机械类——被指令动作的执行器没有走到位。
  • FMI 9 和 19 是网络问题。 数据链路上的报文来晚了、乱码了,或者干脆没来——那个"坏掉"的模块可能是总线上别处线路故障的受害者。
  • FMI 31 是兜底项:故障条件为真,但没有更具体的失效模式适用。后处理系统特别爱用这一条。

这些都不用背——代码一出现,最快得到大白话答案的路径就是免费 DTC 查询,SPN 和 FMI 一次查全。

OC 以及"激活"与"曾激活"

**OC(Occurrence Count,发生次数)**是该故障已触发的次数。OC 1 可能只是偶然——冷启动时的一次电压跌落。OC 27 就是规律,而有规律就能诊断。

**Active(激活)**表示故障条件此刻正在发生。Previously active(曾激活)(开小车的人叫"存储码")表示它发生过,随后自己消失了。激活的代码要直接去追;曾激活且次数很高的代码,通常指向间歇性问题——振动、温度、受潮——要靠摇晃线束测试和观察实时数据来诊断,而不是靠换件。

与你熟悉的 P 码如何对应

从小车行当过来的?像 P0117(冷却液温度传感器,输入偏低)这样的 P 码,把"是什么"和"怎么坏"打包进一个五位代码。J1939 把两者拆开——SPN 110(冷却液温度)+ FMI 4(电压偏低)表达同样的意思,但更精确,也不需要为每种组合再造一个新码。SPN/FMI 数字对是重卡这边的母语,这也是为什么你的小车诊断仪在半挂车上一无所获——那笔糊涂账我们在为什么小车 OBD2 诊断仪读不了半挂卡车里讲过了。

代码出现时的三步操作手册

  1. 把整条信息记全。 SPN、FMI、OC 和状态——别只记一个数。拍张仪表盘照片也行。
  2. 查含义。 把 SPN 和 FMI 输入 DTC 查询工具。电气类 FMI(3–6)把你引向线束和接插件;数据范围类 FMI(0/1/15–18)则指向系统本身。
  3. 判断是激活还是间歇。 激活 + 次数攀升 = 立刻诊断。曾激活 + 次数少 = 观察。曾激活 + 次数高 = 间歇性故障;准备好看实时数据、做摇晃线束测试,而不是抡起换件大炮。

光有代码不够时:实时数据

诚实地说,读码有它的极限:故障码只是某个阈值被越过时的一张快照。它告诉你曾经出了问题,却不告诉你系统此刻在干什么。那个轨压偏低的代码,是油泵在衰竭,还是只有在热车带载时压力才塌下去?答案要靠在车辆运转时盯着实时数值看——指令值对实际值,进口对出口。

这就是一台带实时数据的真正 J1939 读码器的价值所在。如果你到了这一步——一个不想再为"读个码"就掏钱进店的自雇车主——看看我们为重型卡车打造的诊断工具。先从免费的代码查询开始;等光读码不够用了,再升级到硬件。

常见问题

故障码里的 SPN 是什么意思? Suspect Parameter Number(可疑参数编号)——由 SAE 分配、用于标识故障所涉部件、电路或系统的编号。同一个 SPN 在任何符合 J1939 的卡车上含义相同。

FMI 4 是什么意思? "电压低于正常,或对低电位短路。"电路读到的电压比应有的低——常见原因是对地短路、线束破损、接插件腐蚀或传感器失效。这是电气故障,不能证明被测系统本身有问题。

SPN 代码在每个卡车品牌上都一样吗? SPN 和 FMI 的定义是一样的——这正是 SAE 标准的意义所在。因厂家而异的是哪些故障会被检测、触发它们的阈值,以及叠加在标准之上的厂家自定义代码。

我能自己清除 SPN/FMI 代码吗? 用支持 J1939 的工具,标准故障一般可以清。但清码不等于修好——激活的故障马上就会回来,清掉历史还会把 OC 和状态信息一并扔掉。先用 DTC 查询解码,修好原因,再清码。

"激活"和"曾激活"有什么区别? 激活表示故障条件此刻存在;曾激活表示它发生过、后来消失了。曾激活的代码若发生次数很高,通常意味着间歇性问题。

报 SPN 3216 FMI 4 还能继续开吗? 这是后处理 NOx 传感器读数上的电气电路故障——不是迫在眉睫的机械威胁,但后处理故障放着不管,可能导致车辆逐级降功率限制(derate)。尽快安排检查,别一拖再拖。

spnfmij1939fault-codes

Need Help Choosing?

Our product specialists can recommend the right diagnostic tool for your specific needs.