车载诊断 OBD(CCR 1968.2 / WWH-OBD / OBDonUDS / AUTOSAR Dem-Dcm-FiM)
本质与导读
本质 OBD 不是"一个读故障码的协议",而是法规把排放检测责任反向压给车辆本身的"自监测 + 可审计"契约:车必须持续自测排放相关部件,超标就点亮 MIL 告知车主,并把 DTC、freeze frame、IUMPR 存好,年检一接就能审。它对排放结果负责而非对用户体验负责。
主线坐标:旁支 · 低压控制域 · ↑ 全景主线
1. 硬约束:三大法规体系与 WWH-OBD
OBD 的所有技术细节都不是工程师拍脑袋定的,而是法规倒逼出来的——理解 OBD 必须先理解"谁在管、管什么"。全球排放监管事实上分成三套体系:北美的 EPA/CARB、欧洲的 Euro 系列、中国的国六,三者起源不同、措辞各异,但内核高度趋同,并最终被联合国一份全球技术法规 WWH-OBD 拉到同一框架上。
1.1 三大体系:同根不同表
加州空气资源委员会(CARB)是 OBD 的发源地,其 OBD-II 要求写在 California Code of Regulations 第 13 编 1968.2 节(CCR 1968.2),美国联邦环保署(EPA)随后采纳为联邦要求。欧盟的 OBD 要求嵌在 Euro 6(已实施)与 Euro 7(2025 年落地)排放法规里,并叠加实路排放测试(RDE,Real Driving Emissions)。中国国六(GB 18352.6,轻型车)则同时借鉴美欧两套,监测项与频率要求比照 EPA,并新增远程 OBD(把 OBD 信息周期性上传监管平台)。
| 体系 | 核心法规文本 |
|---|---|
| US EPA / CARB | CCR 1968.2(OBD-II 母法) |
| EU | Euro 6 / Euro 7 + RDE |
| 中国 | GB 18352.6(国六)+ 远程 OBD |
1.2 WWH-OBD:全球统一框架
三套体系各写各的会让 Tier-1 为同一辆车维护三份诊断实现,成本高且易出错。联合国世界车辆法规协调论坛(WP.29)因此推出全球技术法规 GTR No.5,即 WWH-OBD(World-Wide Harmonized OBD),把"监测什么、DTC 怎么编、诊断怎么通信"对齐到统一标准。WWH-OBD 最关键的两个动作:一是把 DTC 从 legacy 的 2 字节升级为 3 字节失效码加 1 字节状态字节(status byte),二是规定诊断走 ISO 14229(UDS)而非 SAE J1979 的固定模式——这直接催生了下一章的协议栈演进。
1.3 点灯、就绪与在用监测频率
法规真正强制的三件事是点灯、就绪、在用频率,它们分别回答"出了问题怎么通知""系统自检了没""自检够不够勤"。MIL(Malfunction Indicator Lamp,故障指示灯,俗称发动机故障灯)的点灯逻辑是:监测器检出排放相关失效后先记为 pending,第二个行程复现才确认点灯;但失火率超过催化器损伤门限这类严重故障可在单次行程内立即点灯。
readiness(就绪位)记录每个监测器是否已完整跑过一次诊断,年检时若大量监测器"未就绪"会被判为可能清过码、拒绝放行。IUMPR(In-Use Monitor Performance Ratio,在用监测性能比,欧盟同义词 IUPR)则防止车厂把监测条件设得极苛刻以逃避真实检测,其机制是一个分数:
法规对该比值设下限(典型量级 0.336),逼着监测器在真实驾驶里足够频繁地真正运行,而不是永远"等不到条件"。
2. 协议栈演进:从 J1979 到 OBDonUDS
法规只规定"要能读到什么信息",不规定字节怎么排——后者由 SAE/ISO 协议标准填。这条协议栈最近十年正经历一次根本迁移:应用层从 SAE J1979 的固定模式表,迁到 J1979-2 的 OBDonUDS。理解这次迁移的因果,比记住具体 PID 号更重要。
2.1 物理接口与传输层
无论应用层怎么变,车主和年检站接触到的物理接口始终是 SAE J1962 定义的 16 针梯形诊断座,传输层则由 ISO 15765-4 规定为诊断 CAN(CAN over CAN,即在 CAN/CAN-FD 上跑诊断报文,带 ISO-TP 分段传输)。这层稳定不变,是整个 OBD 体系唯一不被法规演进推动的部分,因为它只管"把字节可靠送到",与"读什么"解耦。
2.2 legacy SAE J1979 为何被取代
最初的 J1979 把诊断设计成 10 个固定服务模式(0x01–0x0A:0x01 读当前数据、0x02 读 freeze frame、0x03 读 confirmed DTC、0x04 清码、0x05-0x0A 等),每个模式背后是一张固定的 PID(Parameter ID,参数标识)表。这套设计简单,但有个结构性缺陷:它和 OEM 自己的增强诊断(售后用的、走 ISO 14229 UDS)是两套完全不同的协议,ECU 里要同时实现两个诊断栈,既费 ROM 又难维护。
| legacy J1979 模式 | 作用 |
|---|---|
| 0x01 / 0x02 | 读当前数据 / freeze frame |
| 0x03 / 0x07 | 读 confirmed / pending DTC |
| 0x04 | 清 DTC 与 freeze frame |
2.3 J1979-2 OBDonUDS 与 2027 时间线
解决思路很直接:既然 OEM 增强诊断已经用 UDS,就把法规诊断也搬到 UDS 上,两套栈合一。J1979-2(OBDonUDS)正是这么做的——它把原来的固定模式映射到 UDS 服务:读数据用 0x22(ReadDataByIdentifier)、读 DTC 用 0x19(ReadDTCInformation)、清码用 0x14(ClearDiagnosticInformation)、控灯/IO 用 0x85/0x2F。CARB 已经把 OBDonUDS 列为强制:2027 车型年起新认证车型必须支持。这意味着法规诊断与 OEM 增强诊断从此共用一套 UDS 实现,并可顺势承载到 DoIP(Diagnostics over IP,以太网诊断)上。
2.4 DTC 编码结构
DTC(Diagnostic Trouble Code,诊断故障码)的编码由 SAE J2012 / ISO 15031-6 规定。面向车主和年检的"5 字符码"首字符表系统:P 动力总成、C 底盘、B 车身、U 网络;其后数字区分标准码(第二位 0,如 P0xxx,全球统一含义)与厂商自定义码(第二位 1,如 P1xxx);P2xxx、P34xx-P39xx 等区段是标准码在 P0 段写满后扩展出来的。
在 UDS/WWH-OBD 层,DTC 是 4 字节:前 3 字节是失效码(high/mid/low byte,对应 SAE J2012 的数字部分加失效类型 FTB),第 4 字节是 status byte,用 8 个 bit 分别标记 testFailed、confirmedDTC、pendingDTC、warningIndicatorRequested 等状态——这把"故障是什么"和"故障当前处于生命周期哪个阶段"清晰分离,正是下一章状态机的存储载体。
3. DTC 生命周期状态机
法规要求 OBD 既不能漏报(漏了真故障就放过了超标车),也不能误报(一次偶发抖动就点灯会让车主无谓返修)。这对矛盾的解法就是给每个 DTC 配一套状态机:用多次行程确认抑制误报,用 permanent 机制防止车主作弊清码。理解这套状态机是理解 freeze frame、自愈、年检判定的前提。
3.1 推进路径:pending → confirmed → MIL → permanent
故障第一次被监测器判失效时记为 pending DTC,此时不点灯、不打扰车主,只暗中观察。若在第二个 driving cycle(一次满足监测器使能条件的完整行程)里再次复现,则升级为 confirmed DTC,写入 KAM(Keep-Alive Memory,掉电保持存储)并连同 freeze frame(故障置位瞬间的转速/负荷/温度等工况快照)一起保存;达到点灯条件即点亮 MIL。confirmed 的同时会同步写一份 permanent DTC——这是 OBD-II 后期为防作弊引入的:即使车主断电或用工具清了 confirmed DTC,permanent 也删不掉,必须靠车辆自己重新监测确认故障真的修好了才会消。
3.2 自愈:灭灯与自清
法规也给了正当修复后退出故障态的路径,避免修好后灯还一直亮。confirmed DTC 在连续 3 个无故障的 driving cycle 后熄灭 MIL;pending DTC 单次无故障行程即清除。permanent DTC 最严格:要监测器自测 OK,且累计满足一定数量的 warm-up cycle(暖机循环,冷启动后冷却液温度升高 22 摄氏度且达到 70 摄氏度算一次)才自动清除(典型为相关监测器跑通即清,超时则 40 个暖机循环兜底自清)。这套非对称设计——点灯快、灭灯慢——本质是为排放结果负责而非为用户体验负责。
| 状态 | 退出/自愈条件 |
|---|---|
| pending | 单次无故障行程即清 |
| confirmed / MIL | 连续 3 个无故障 driving cycle 灭灯 |
| permanent | 监测器自测 OK,或 40 暖机循环兜底自清 |
4. 实现架构:AUTOSAR Dem / Dcm / FiM
把上面的法规与状态机落到 ECU 软件里,AUTOSAR 把诊断职责切成三个 BSW 模块:Dem 管故障逻辑、Dcm 管对外通信、FiM 管故障联动。这种切分不是随意的——它对应了"故障是什么(状态机)""怎么被外界读(UDS)""故障了要联动抑制什么(功能安全降级)"三件正交的事。
4.1 三模块的职责切分
Dem(Diagnostic Event Manager,诊断事件管理器)是故障逻辑的大脑:诊断监测器(实现为 SWC,软件组件)只负责报告"我这次测下来 Pre-passed 还是 Pre-failed",由 Dem 做去抖计数(debounce)、维护 DTC 状态机、存 freeze frame 与扩展数据、计算 IUMPR 分子分母、维护 readiness、触发 permanent 与 MIL 请求,所有故障事件经 NvM 落到 KAM。Dcm(Diagnostic Communication Manager,诊断通信管理器)是对外的壳:它把第 2 章的 UDS 服务(0x19/0x14/0x22/0x85)路由到 Dem 取数。FiM(Function Inhibition Manager,功能抑制管理器)是联动:某 DTC 置位后,FiM 通知相关功能停止运行(例如某传感器坏了就抑制依赖它的监测器,避免误触发更多故障)。
4.2 monitor 调度与 IUMPR 数据流
监测器按是否随时运行分两类,调度方式不同。连续型监测器(失火、燃油系统、综合元件电路)只要发动机在运行就持续监测;非连续型监测器(催化器、EGR、氧传感器、蒸发系统)需要特定工况窗口才跑一次,因而是 IUMPR 分母的主要约束来源。每个非连续监测器每个行程向 Dem 报告"本行程是否完成了一次完整监测",Dem 据此累加分子;同时只要该行程满足该监测器的通用使能条件(车速、时长等)就累加分母——年检工具通过 0x19 子功能读出这个比值核验车厂没有作弊。
4.3 与 OEM 增强诊断并存
法规诊断与 OEM 增强诊断(售后刷写、参数标定、执行器测试)在 J1979-2 之后共用同一套 UDS 栈,这正是把它们搬到 UDS 的收益。0x19(读 DTC 信息)既服务年检读 confirmed/permanent,也服务售后读全部增强 DTC;0x14(清码)、0x85(控制 DTC 设置,售后维修时临时关闭故障记录)同理。差别仅在权限与会话:增强诊断往往要 0x27(SecurityAccess)解锁与扩展会话,法规 OBD 数据则默认会话即可读,保证年检站不需要厂商密钥。
5. 与功能安全的关系及 EV/ZEV 走向
电驱方向的读者最关心的问题是:OBD 监测和 ISO 26262 的安全机制(safety mechanism)到底是不是一回事?答案是"形似而神不同"——两者都在"持续自测 + 检出失效后响应",但目的、时间窗、响应动作完全不同。理清这点,才能在 EV 架构里正确摆放 OBD 与功能安全各自的位置。
5.1 OBD 监测 vs ISO 26262 安全机制
OBD 排放监测的目的是环保合规:保护对象是大气排放,可接受的检出到响应时间窗是"以行程为单位"(多个 driving cycle 才点灯),响应动作是点灯告知车主去修,本质是事后审计。ISO 26262 安全机制的目的是避免人身伤害:保护对象是整车可控性,时间窗是 FTTI(Fault Tolerant Time Interval,故障容错时间区间,常在毫秒级),响应动作是立即进入安全状态(如切扭矩、主动放电)。
| 维度 | OBD 排放监测 | ISO 26262 安全机制 |
|---|---|---|
| 目的 | 排放合规、可审计 | 避免人身伤害 |
| 时间窗 | 行程级(多 driving cycle) | FTTI(毫秒级) |
| 响应 | 点灯告知,事后修复 | 立即进入安全状态(切扭矩/主动放电) |
| 保护对象 | 大气排放 | 整车可控性 |
两者在 AUTOSAR 里也走不同链路:OBD 经 Dem/Dcm,安全机制经看门狗、E2E、监控分区等。但二者会在同一个传感器上相遇——例如电机位置传感器既是扭矩安全的输入,也可能是 ZEV OBD 的监测项,此时一个故障会同时触发安全降级和 DTC 记录,需要在 FMEA 里统一规划,避免重复或矛盾的响应。
5.2 EV / ZEV 的 OBD 走向
纯电动车没有尾气,传统排放监测项(催化器、EGR、失火)几乎全部失效,于是 CARB 的 ZEV(Zero-Emission Vehicle)OBD 要求把监测对象转向电驱动系统本身的健康:逆变器/功率模块过温监测、电机位置/转速传感器合理性、HV 高压绝缘电阻监测、电池与热管理相关故障,都被纳入 OBD 框架,按同一套 DTC 生命周期管理并对年检可读。架构上这是好消息——这些监测项本就大多已存在于功能安全或 BMS 里,接入同一个 Dem 即可复用状态机与存储,无需另起炉灶。EV OBD 因此更像是把已有的电驱健康监测"法规化、可审计化",而非新增一套独立诊断。
6. 端到端 Worked Design — ZEV OBD 双路监测 AUTOSAR 全配置
本节以 400 V / 100 kW 纯电动 EV 为对象,展示 HV 绝缘监测(连续型)与驱动电机位置传感器合理性(非连续型)两路 ZEV OBD 监测的完整 AUTOSAR Dem / Dcm / FiM 配置,涵盖从物理信号到 IUMPR 计数的全因果链。
系统平台
| 项目 | 选型 |
|---|---|
| MCU | AURIX TC397(AUTOSAR Classic 4.2.x MCAL) |
| HV 绝缘传感器 | Bender ISOMETER IR155-3204(PWM 频率编码) |
| 电机位置 | 双路 resolver + AD2S1210(双通道独立解码) |
| 诊断链路 | CAN-FD @ 5 Mbit/s,ISO 15765-4 ISO-TP,J1979-2 OBDonUDS |
6.1 Monitor A — HV 绝缘监测(连续型,IUMPR 豁免)
Bender IR155-3204 对 400 V 直流母线持续测量绝缘电阻 ,输出 PWM 频率:10 Hz(,正常)、20 Hz(,预警)、40 Hz(,ZEV OBD 故障阈值,来自 ISO 6469-3 / FMVSS 305)。
AUTOSAR Dem 关键参数(Monitor A):
| 参数 | 值 |
|---|---|
| DemEventId | HV_ISO_MONITOR_EVENT(0xAA01) |
| DemEventKind | DEM_EVENT_KIND_BSW(连续型,BSW 直接调用) |
| DemDTCClass | DEM_DTC_CLASS_EMISSION_RELATED(J1979-2 可见) |
| DemDebounceAlgorithmClass | DEM_DEBOUNCE_COUNTER_BASED |
| DemDebounceCounterFailedThreshold | +10(100 ms 轮询 × 10 次 = 1 s 去抖) |
| DemDebounceCounterPassedThreshold | −10 |
| DemConfirmationCycleCounterThreshold | 1(单次行程确认,ZEV 安全相关故障 EPA 允许 1-trip) |
| DemWWHOBDDtcClass | DEM_DTC_WWHOBD_CLASS_A(严重,立即点灯) |
| DTC(WWH-OBD 4 字节) | 0x0A 0xA6 0x00 + status_byte(P0AA6:HV 绝缘一般性故障) |
故障路径:IR155-3204 输出 40 Hz → TC397 MRTC 捕获周期 → SWC 调用 Dem_SetEventStatus(HV_ISO_MONITOR_EVENT, DEM_EVENT_STATUS_PREFAILED) → Dem 计数器 +1 → 到达 +10 → status_byte.testFailed=1 → 1 次 driving cycle 后 confirmedDTC=1 → warningIndicatorRequested=1 → MIL 点亮 → NvM 同步写 permanent DTC。
FiM 联动:FiM_GetFunctionPermission(FID_OBC_CHARGE) 返回 FIM_FUNCTION_INHIBITED,充电功能停止;独立的 ISO 26262 安全通道(FTTI ≤ 200 ms 的高压放电路径)不经 FiM,并行触发。
6.2 Monitor B — 驱动电机位置传感器合理性(非连续型,追踪 IUMPR)
双路 resolver 解算出 和 ,当 持续 时判 Pre-failed(阈值来自 EPS ASIL D FTTI 50 ms 分解预算,此处作为合理性门限复用)。
使能条件:
IUMPR 配置(非连续监测器必须统计):
| 参数 | 值 |
|---|---|
| 分母触发 | 使能条件满足连续 ≥ 120 s,该行程 denominator++ |
| 分子触发 | 监测算法在本行程完整运行且无故障,numerator++ |
| EPA 下限 | IUMPR (CCR 1968.2 非连续监测器) |
IUMPR 估算:典型城区循环中,80% 行程使能条件满足 ≥ 2 min;监测完成率 95%(偶发 CAN 超时丢包)。50 次行程后:denominator = 40(80% × 50),numerator = 38(95% × 40),IUMPR = 38/40 = 0.95 >> 0.336 ✓。寒冷地区 −40°C 冬季边界见 Corner C1。
Dem 关键参数(Monitor B):
| 参数 | 值 |
|---|---|
| DTC(WWH-OBD 4 字节) | 0x0A 0x3F 0x00 + status_byte(P0A3F:驱动电机1位置传感器电路) |
| DemConfirmationCycleCounterThreshold | 2(两次行程确认,传感器合理性典型值) |
| DemIUMPRDenominatorGroupId | DEM_IUMPR_DENGROUP_NON_CONT(非连续组) |
6.3 Dcm 服务路由(J1979-2 OBDonUDS)
诊断工具通过 J1962 物理接口 + ISO 15765-4 ISO-TP 发送请求:
| UDS 服务请求 | 作用 | 典型响应示例 |
|---|---|---|
| 19 02 08 | 读 confirmed+MIL 活跃 DTC | 59 02 08 0AA600 A8 0A3F00 28(两个 DTC,status 含 bit3 confirmed + bit7 MIL) |
| 19 0A | 读 permanent DTC | 59 0A 0AA600 28(P0AA6 permanent 仍存) |
| 19 04 0AA600 | 读 HV 绝缘 freeze frame | 返回:VDC=402 V,TBAT=35°C,SOC=73%,_code=0x26(38 < 100 Ω/V),车速=0 |
| 14 FF FF FF | 清 emission-related DTC | confirmed/pending 清除;permanent 不受此命令清除 |
读 IUMPR(Monitor B):22 F824(DataId 0xF824,IUMPR 数据组),返回 numerator=0x0026、denominator=0x0028(十进制 38/40 = 0.95)。
7. 工程陷阱(G1–G7)
工程师在 ZEV OBD 实现中高频犯的七类错误,每条都对应一个具体根因与后果。
G1 连续监测器 IUMPR 豁免 ≠ 无需持续运行 — HV 绝缘(连续型)豁免 IUMPR 计数,但法规要求其在发动机(驱动电机通电)期间"continuously"执行。若 ECU 在 IR155-3204 PWM 解码失败时选择静默忽略(不报 Pre-failed),即可通过 IUMPR 审计,但在静默期间任意绝缘下降都漏报,年检无法检出。正确实现:PWM 信号缺失超 500 ms → Dem_SetEventStatus(HV_ISO_MONITOR_EVENT, DEM_EVENT_STATUS_PREFAILED) 上报通信故障 DTC,而非静默。
G2 维修断电无法清 permanent DTC — 维修工换件后惯常动作是断 12 V 搭铁复位,期望 DTC 消失。但 AUTOSAR NvM(对应物理 KAM EEPROM/Flash)在上电初始化时恢复 permanent DTC;Dem_ClearDTC 也无权清除 permanent。正确退出路径:监测器在新部件上跑通一次行程(confirmed DTC 不再置位)→ Dem 自动清 permanent status byte → NvM 更新。强制清除须走 Dem_ClearDTC + NvM_EraseBlock 完整序列,属于工厂模式操作,普通售后工具不具备。
G3 OBDonUDS 2027 迁移兼容性陷阱 — J1979-2 用 0x19 / 0x14 / 0x22 替代 J1979 的 0x03 / 0x04 / 0x01 固定服务;现网年检工具(尤其国六 OBD 扫描仪)多数只实现 J1979 格式,对 0x19 Sub-function 不识别,返回 Negative Response 0x7F 0x19 0x11。CARB 要求 2027 车型年过渡期保留 dual-mode(同时响应 J1979 和 J1979-2)或向年检工具供应商提供升级路径,ECU 不能单方面切掉旧服务。
G4 FiM 功能抑制 ≠ ISO 26262 安全关断 — FiM 的 FIM_FUNCTION_INHIBITED 仅通知应用层软件组件"你不该运行"(例如 OBC 停止充电),属于软件级禁止;ISO 26262 安全机制(DESAT 关断、主动放电)走独立硬件路径,不经 FiM。若开发者将两者混用(用 FiM 替代安全关断),HV 绝缘故障后 OBC 虽停,但逆变器仍可驱动电机,人身安全风险不消除;反之若安全关断先于 FiM 通知,车辆已进安全状态但 OBC 仍因 FiM 未触发而继续充电,两者竞争产生矛盾行为。
G5 IUMPR 分母虚高掩盖监测缺口 — 若使能条件仅要求"点火 ON"(几乎每次行程都满足),分母每次加 1;但监测算法(如传感器合理性)因工况受限实际只在 40% 行程真正运行,numerator 增长慢,IUMPR 比值 = 0.40,表面上远超 0.336,但真实诊断执行率被高分母掩盖。CARB 要求使能条件"technically justifiable",即必须能证明:使能条件满足时监测器真的能检出目标故障,而非空跑。
G6 间歇性故障两次行程确认的统计盲区 — 非连续监测器典型要求两次行程复现才 confirmed。若故障是间歇性的(如振动引发的接触问题,单次发作概率 ),两次行程均发作的概率为 。即 91% 的概率该故障永远不会 confirmed,MIL 不亮,排放持续超标却通过年检。这是 OBD 监测方法的统计限制,EPA 对此的工程对策是要求 "robust" 监测器设计(减小间歇性、提高工况覆盖率),而非放宽确认逻辑。
G7 年检扫描仪读 0x14 后 permanent DTC 仍存被误判为工具故障 — 年检工具发 0x14 清码请求后,用 0x19 0x0A 读 permanent DTC,发现 P0AA6 依然存在,工具操作员往往认为清码失败或设备故障,再次发 0x14 甚至断电。正确理解:0x14 设计上不能清 permanent,它只清 confirmed / pending;permanent 仅在监测器自测 OK 后由 Dem 自动清除。年检规程应明确:permanent DTC 存在不等于当前有故障,需结合 status_byte bit0(testFailed)判断当前是否失效,bitfield 必须同时读取才有判断依据。
8. 边界工况(C1–C3)
C1 严寒地区冬季 IUMPR 积累困难 — 在哈尔滨(−40°C 冬季),驱动电机位置传感器监测器的使能条件""在发动机舱暖机前(约 10–15 min)持续不满足;短途行程(< 15 min)全程不计入分母,整个冬季每周分母可能仅增加 5–8 次。全年 IUMPR = numerator / denominator 可能落在 0.15–0.25,低于 EPA 0.336 下限。应对选项:降低温度阈值至 −30°C(需验证算法在低温仍有效);或增设"低温快速诊断子算法"(简化版,在 −30°C 下仍可完成);或在 EPA 申报时将该监测器归入"低温豁免类"(如曲轴箱蒸发监测豁免模式)。
C2 OTA 软件更新改变 OBD 监测阈值须重新认证 — ZEV OBD 认证文件记录了监测阈值(如 );若 OTA 推送将阈值改为 (看似更严),在 CARB 规则下属于监测器技术变更,须提交技术说明或重新认证,擅自下发视为违反 CCR 1968.2。对比案例:VW 排放门(2015)的根因之一即通过软件检测测试工况并调整排放控制,证明 EPA 对 OBD 相关软件修改保持高度关注;OEM OTA 策略须将 OBD 参数列入变更管理白名单,任何修改前走认证流程。
C3 高压电池包换件后 permanent DTC 残留导致 MIL 误报 — 完整 HV 电池包(含 BMS)更换后,TC397 NvM 中的 permanent P0AA6(源自旧包绝缘老化)不会自动消失;新包通过绝缘监测(),但 permanent 仍存,MIL 持续点亮。售后 SOP 正确做法:换包后执行"认证行程"——在监控下完成至少 1 次满足使能条件且监测器运行通过的完整 driving cycle;Dem 判断 confirmed DTC 在本行程未置位 → 自动清除 permanent status byte → NvM 写回 → MIL 熄灭。若不走此流程直接交车,客户体验"换了新包灯还亮",引发不必要的再次返修。
缩写表
下面汇总本页出现的专业缩写,便于回查。
| 缩写 | 全称 |
|---|---|
| OBD | On-Board Diagnostics 车载诊断 |
| MIL | Malfunction Indicator Lamp 故障指示灯 |
| DTC | Diagnostic Trouble Code 诊断故障码 |
| IUMPR / IUPR | In-Use Monitor Performance Ratio 在用监测性能比 |
| WWH-OBD | World-Wide Harmonized OBD 全球统一车载诊断 |
| GTR | Global Technical Regulation 全球技术法规 |
| CARB | California Air Resources Board 加州空气资源委员会 |
| RDE | Real Driving Emissions 实路排放测试 |
| PID | Parameter ID 参数标识 |
| FTB | Failure Type Byte 失效类型字节 |
| KAM | Keep-Alive Memory 掉电保持存储 |
| Dem | Diagnostic Event Manager 诊断事件管理器 |
| Dcm | Diagnostic Communication Manager 诊断通信管理器 |
| FiM | Function Inhibition Manager 功能抑制管理器 |
| DoIP | Diagnostics over IP 以太网诊断 |
| FTTI | Fault Tolerant Time Interval 故障容错时间区间 |
| ZEV | Zero-Emission Vehicle 零排放车 |
核心要点
- OBD 是法规强加的自监测 + 可审计契约:监管把检测责任反向压给车辆,车自测排放相关部件、超标点灯、存证供年检审。
- 三大体系同根不同表,WWH-OBD 统一:EPA/CARB(CCR 1968.2)、Euro 6/7、国六各写各的,GTR No.5 把 DTC 与诊断通信对齐到 UDS。
- 协议栈正从 J1979 迁到 J1979-2 OBDonUDS:固定模式表 → UDS 服务(0x19/0x14/0x22/0x85),2027 车型年起 CARB 强制,与 OEM 增强诊断合一。
- DTC 走 pending→confirmed→MIL→permanent:点灯快、灭灯慢;permanent 工具不可清,专防断电清码作弊。
- IUMPR = 完成次数 / 满足条件行程数:设下限逼监测器在真实驾驶里足够频繁真正运行。
- AUTOSAR 三分:Dem 管故障逻辑/状态机/IUMPR,Dcm 管 UDS 通信,FiM 管功能抑制联动。
- OBD 监测 ≠ ISO 26262 安全机制:前者目的是排放合规、时间窗行程级、响应是点灯;后者目的是人身安全、时间窗 FTTI 毫秒级、响应是进安全状态。
- EV/ZEV 把 OBD 转向电驱健康:逆变器过温、电机传感器、HV 绝缘监测接入同一 Dem,复用已有功能安全/BMS 监测。
Cross-references
- ← 索引
- 汽车网络 — OBD 传输层 ISO 15765-4 CAN 与 DoIP 的总线基础
- 诊断覆盖类别 — OBD 监测器与 ISO 26262 诊断覆盖的监测分类对照
- EV 法规 — ZEV / HV 绝缘等电驱合规与 OBD 监测项的衔接
来源:US EPA / CARB CCR 1968.2、UN GTR No.5(WWH-OBD)、Euro 6/7、GB 18352.6、SAE J1979 / J1979-2(OBDonUDS)、SAE J1962、SAE J2012 / ISO 15031-6、ISO 14229(UDS)、ISO 15765-4、AUTOSAR Dem/Dcm/FiM SWS、ISO 26262 综合整理。