AUTOSAR_SWS_DiagnosticEventManager 中文翻译

文档编号:085 | 状态:Final | 发布于:AUTOSAR CP Release 4.4.0
所属标准:AUTOSAR Classic Platform | 文档责任方:AUTOSAR

本翻译覆盖原文档 1-516 页正文(约 8.71 MB)。
原文为软件规范(SWS),定义诊断事件管理器(Dem, Diagnostic Event Manager)模块——AUTOSAR 诊断栈核心模块,管理 DTC 状态、快照/扩展数据、IUMPR 等,含 52 个 API 函数与 1000+ SWS_Dem_NNNNN 规范项。


1 引言与功能概述

Dem(Diagnostic Event Manager)管理 ECU 内的诊断事件(DTC, Diagnostic Trouble Code)。Dem 与 SWC 配合:

2 缩略语与缩写

缩略语描述
DTCDiagnostic Trouble Code(诊断故障码)
UDSUnified Diagnostic Services(统一诊断服务,ISO 14229)
OBDOn-Board Diagnostics(车载诊断,ISO 15031)
IUMPRIn-Use Monitor Performance Ratio(使用中监测器性能比)
Freeze Frame快照数据(事件发生时的环境参数)
Extended Data扩展数据(事件附加信息)
Event Status Bits事件状态位(TestFailed/TestFailedThisOpCycle/ConfirmedDTC/PendingDTC/...)
Operation Cycle操作循环(Power/Ignition/Driving/...)
Aging老化机制(DTC 在无故障循环后自动清除)
Displacement位移机制(DTC 优先级)

3 相关文档

4 约束与假设

Dem 为 BSW 服务层模块;DTC 状态符合 ISO 14229 标准位定义;OBD IUMPR 符合 ISO 15031。

5 依赖

Dem 依赖 Dcm(诊断服务)、NvM(非易失存储)、FiM(功能抑制)、DET、DEM、SWC(应用层调用 SetEventStatus)。

6 需求可追溯性

SWS_Dem_NNNNN 规范项 ID 约 1000+ 条(编号 00001-91001)。

7 功能规范

7.1 DTC 状态机

每个 DTC 有 8 个状态位(符合 ISO 14229):

名称含义
Bit 0TestFailed最后一次测试结果为失败
Bit 1TestFailedThisOperationCycle当前操作循环内测试失败
Bit 2PendingDTC待定 DTC(本次循环失败但未确认)
Bit 3ConfirmedDTC已确认 DTC
Bit 4TestNotCompletedSinceLastClear自上次清除以来测试未完成
Bit 5TestFailedSinceLastClear自上次清除以来测试失败
Bit 6TestNotCompletedThisOperationCycle当前操作循环内测试未完成
Bit 7WarningIndicatorRequested警告指示灯请求(MI)

7.2 IUMPR(In-Use Monitor Performance Ratio)

IUMPR = 计数器(Numerator)/ 分母(Denominator),反映 OBD 监测器的实际使用情况:

7.3 快照数据(FreezeFrame)

事件发生时,Dem 捕获环境参数(车速/发动机转速/电池电压/环境温度/...)作为快照。Dem 支持:

7.4 操作循环(Operation Cycle)

Dem 支持多种操作循环:

7.5 错误分类

7.5.1 开发错误

DEM_E_UNINIT / DEM_E_ALREADY_INITIALIZED / DEM_E_PARAM_POINTER / DEM_E_PARAM_INVALID / DEM_E_PARAM_CONFIG / DEM_E_PARAM_DTC / DEM_E_PARAM_EVENT / DEM_E_PARAM_CONFIG_PTR 等 20+ 个。

7.5.2 运行时错误

DEM_E_NV_STORAGE_ERROR / DEM_E_MEMORY_ERROR 等。

8 API 规范

8.1 通用 API(3 个)

API功能
Dem_Init初始化 Dem
Dem_Shutdown关闭 Dem(保存数据)
Dem_MainFunction主函数(事件处理调度)

8.2 事件状态 API(10+)

API功能
Dem_SetEventStatus设置事件状态(应用调用)
Dem_ResetEventStatus重置事件状态
Dem_GetEventStatus获取事件状态
Dem_ClearEventStatus清除事件状态
Dem_GetEventFailed获取事件失败状态
Dem_GetEventTested获取事件已测试状态

8.3 DTC 控制 API(10+)

API功能
Dem_SetDTC设置 DTC 状态
Dem_DisableDTCSetting禁用 DTC 设置
Dem_EnableDTCSetting启用 DTC 设置
Dem_ClearDTC清除 DTC
Dem_DisableDTC禁用单个 DTC
EnableDTCRecordUpdate启用 DTC 记录更新

8.4 快照 API(10+)

API功能
Dem_SelectFreezeFrameData选择快照数据
Dem_GetNumberOfFreezeFrameRecords获取快照记录数
Dem_GetFreezeFrameData获取快照数据
Dem_UpdateFreezeFrameData更新快照数据
Dem_ClearFreezeFrameData清除快照数据

8.5 扩展数据 API(5+)

Dem_GetExtendedData / Dem_UpdateExtendedData / Dem_ClearExtendedData / Dem_GetSizeOfExtendedData 等。

8.6 IUMPR API(10+)

API功能
Dem_SetIUMPRDenCondition设置 IUMPR 分母条件
Dem_GetIUMPRDenCondition获取 IUMPR 分母条件
Dem_RepIUMPRFaultDetect上报 IUMPR 故障检测
Dem_RepIUMPRDenRelease上报 IUMPR 分母释放
Dem_GetIUMPR获取 IUMPR 值

8.7 OBD/DCM 接口(10+)

Dem_DcmReadDataOfPID01-91 / Dem_DcmGetDTCOfOBDFreezeFrame / Dem_DcmGetAvailableOBDMIDs / Dem_DcmGetNumTIDsOfOBDMID / Dem_DcmGetDTRData / Dem_SetDTR / Dem_GetDTCSeverityAvailabilityMask / Dem_GetB1Counter 等。

8.8 J1939Dcm 接口(10+)

Dem_J1939DcmSetDTCFilter / Dem_J1939DcmGetNumberOfFilteredDTC / Dem_J1939DcmGetNextFilteredDTC / Dem_J1939DcmFirstDTCwithLampStatus / Dem_J1939DcmGetNextDTCwithLampStatus / Dem_J1939DcmClearDTC / Dem_J1939DcmSetFreezeFrameFilter / Dem_J1939DcmGetNextFreezeFrame / Dem_J1939DcmGetNextSPNInFreezeFrame / Dem_J1939DcmSetRatioFilter / Dem_J1939DcmGetNextFilteredRatio / Dem_J1939DcmReadDiagnosticReadiness1-3 等。

8.9 周期数据 API(5+)

Dem_ReadDataOfPID01 / Dem_GetDataOfPID21 / Dem_SetDataOfPID21 / Dem_SetDataOfPID31 / Dem_SetDataOfPID4D / Dem_SetDataOfPID4E / Dem_GetCycleQualified / Dem_SetCycleQualified / Dem_SetPtoStatus 等。

共 52 个 API 函数(含 Init/VersionInfo/MainFunction + 各类接口)。

9 配置规范

9.1 容器

容器描述
Dem根容器(开发错误检测、版本 API)
DemGeneral通用配置(DTC 数、操作循环数、OBD 支持)
DemConfigSet配置集
DemDTCDTC 定义(ID/严重性/快照/扩展数据)
DemEvent事件定义(事件 ID → DTC 映射)
DemOperationCycle操作循环定义(Power/Ignition/Driving/...)
DemFreezeFrameClass快照类定义(快照数据元素)
DemExtendedDataClass扩展数据类定义
DemIUMPRGroupIUMPR 组定义
DemRatioGroup比率组定义(OBD 比率)
DemOBDClassOBD 类定义(OBD DTC/PID)
DemJ1939DTCClassJ1939 DTC 类定义
DemJ1939SPNClassJ1939 SPN 类定义
DemCallback回调函数(应用实现)
DemPublishedInformation发布信息

共 15+ ECUC 容器,含 200+ 配置参数。

10 序列图(典型)

  1. 事件上报:SWC → Dem_SetEventStatus(EventId, Status) → Dem 更新 DTC 状态位 → 触发快照(如有);
  2. DTC 查询:Tester → Dcm → Dem_GetDTCStatusAvailabilityMask() → Dcm 构造响应 → Tester;
  3. DTC 清除:Tester → Dcm → Dem_ClearDTC() → Dem 清除状态/快照/扩展数据 → NvM 持久化;
  4. 快照捕获:事件发生 → Dem 自动捕获当前快照 → NvM 持久化;
  5. IUMPR 更新:Dem 在操作循环结束时更新 IUMPR → NvM 持久化。

校对记录

校对轮次:L1 自动校对(2026-06-13)