AUTOSAR_SWS_DiagnosticCommunicationManager 中文翻译

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

本翻译覆盖原文档 1-639 页正文(约 5.89 MB)。
原文为软件规范(SWS),定义诊断通信管理器(Dcm, Diagnostic Communication Manager)模块——AUTOSAR 诊断栈核心模块,实现 UDS(ISO 14229)/ OBD(ISO 15031)协议,含 34 个 API 函数与 1000+ SWS_Dcm_NNNNN 规范项。


1 引言与功能概述

Dcm(Diagnostic Communication Manager)是 AUTOSAR 诊断栈的核心模块,实现 UDS(Unified Diagnostic Services,ISO 14229)与 OBD(On-Board Diagnostics,ISO 15031)协议。Dcm 通过 PduR 接收诊断请求(Tester → ECU),解析后调用应用层 SWC(如 Dem/FiM),构造诊断响应(ECU → Tester),通过 PduR 发送回 Tester。

Dcm 主要功能:

2 缩略语与缩写

缩略语描述
UDSUnified Diagnostic Services(统一诊断服务,ISO 14229)
OBDOn-Board Diagnostics(车载诊断,ISO 15031)
DTCDiagnostic Trouble Code(诊断故障码)
DIDData Identifier(数据标识符)
PIDParameter ID(OBD 参数 ID)
Tester诊断测试仪(外部诊断工具)
PduRPDU Router(PDU 路由)
DEMDiagnostic Event Manager(诊断事件管理器)
FiMFunction Inhibition Manager(功能抑制管理器)
DoIPDiagnostics over Internet Protocol(基于 IP 的诊断)

3 相关文档

4 约束与假设

Dcm 为 BSW 服务层模块;UDS/OBD 协议实现严格遵循 ISO 标准;多协议传输由 DcmPduRouter 抽象层处理。

5 依赖

Dcm 依赖 PduR(PDU 路由)、CanTp(CAN 传输层)/ DoIP(以太网传输层)、Dem(事件管理)、FiM(功能抑制)、NvM(非易失存储)、DCM/KeyM(安全密钥管理)、CSM(加密服务)、DET(开发错误)、EcuM(状态管理)、ComM(通信管理)。

6 需求可追溯性

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

7 功能规范

7.1 UDS 服务(10+)

SID服务描述
0x10DiagSessionControl诊断会话控制(Default/Programming/Extended)
0x11ECUResetECU 复位(Hard/Soft)
0x14ClearDiagnosticInformation清除 DTC 信息
0x19ReadDTCInformation读取 DTC 信息
0x22ReadDataByIdentifier通过 DID 读数据
0x23ReadMemoryByAddress通过地址读内存
0x24ReadScalingDataByIdentifier读缩放数据
0x27SecurityAccess安全访问(Seed-Key)
0x2AReadDataPeriodicIdentifier读周期数据
0x2CDynamicallyDefineDataIdentifier动态定义 DID
0x2EWriteDataByIdentifier通过 DID 写数据
0x2FInputOutputControlByIdentifier通过 DID IO 控制
0x31RoutineControl例程控制(启动/停止/结果查询)
0x34RequestDownload请求下载(编程准备)
0x35RequestUpload请求上传
0x36TransferData传输数据(编程)
0x37RequestTransferExit请求传输退出
0x3DWriteMemoryByAddress通过地址写内存
0x3ETesterPresent测试仪存在(保持诊断会话)
0x83SecuredDataTransmission安全数据传输(SecOC)
0x84ControlledDTCSettingDTC 设置控制
0x85ResponseOnEvent事件响应(RoE)
0x86LinkControl链路控制(DoIP)

7.2 OBD 服务(8+)

MID服务描述
01RequestCurrentPowertrainDiagnosticData请求当前动力总成诊断数据
02RequestPowertrainFreezeFrameData请求冻结帧数据
03RequestEmissionRelatedDTCs请求排放相关 DTC
04ClearResetEmissionRelatedDTCs清除/复位排放相关 DTC
05RequestOxygenSensorMonitoringTestResults请求氧传感器监测结果
06RequestOnBoardMonitoringTestResults请求 OBD 监测结果
07RequestEmissionRelatedDTCsDuringCurrentDriveCycle请求当前循环 DTC
08RequestControlOfOnBoardSystem请求 OBD 系统控制
09RequestVehicleInformation请求车辆信息
0APermanentEmissionRelatedDTCs永久排放相关 DTC

7.3 安全访问

Seed-Key 机制:

  1. Tester 发送 RequestSeed(带 SecurityLevel);
  2. Dcm 返回 Seed;
  3. Tester 计算 Key 并发送 SendKey;
  4. Dcm 验证 Key(调用 KeyM 异步验证);
  5. 验证成功 → 解锁 SecurityLevel;失败 → 递增 AttemptCounter,超限锁定。

7.4 编程/刷写

5 步编程流程:

  1. RequestDownload(指定地址/大小);
  2. TransferData(传输数据块,每块 0-4095 字节);
  3. RequestTransferExit(结束传输);
  4. 调用应用层 FlashDriver 编程;
  5. RoutineControl 验证编程(CRC/Checksum)。

7.5 多协议传输

协议传输层速率应用场景
CANCanTp(ISO 15765)500 kbps - 5 Mbps传统车辆诊断
CAN FDCanTp2-5 Mbps现代车辆诊断
CAN XLCanTp10+ Mbps下一代车辆
FlexRayFrTp10 MbpsFlexRay 车辆
Ethernet (DoIP)DoIP(ISO 13400)100 Mbps - 1 Gbps远程诊断/工厂编程
LINLinTp19.2 kbpsLIN 子网诊断

7.6 错误分类

7.6.1 开发错误

DCM_E_UNINIT / DCM_E_ALREADY_INITIALIZED / DCM_E_PARAM_INVALID / DCM_E_PARAM_POINTER / DCM_E_DCM_SERVICE_INVALID / DCM_E_PROTOCOL_NOT_SET / DCM_E_SESSION_NOT_CONFIGURED / DCM_E_PADDING / DCM_E_INVALID_NRC / ... 等 30+ 个。

7.6.2 运行时错误

DCM_E_PERIODIC_NOT_SUPPORTED / DCM_E_REQUEST_ENVLR_NOT_OK 等。

8 API 规范

8.1 通用 API(2 个)

API功能
Dcm_Init初始化 Dcm
Dcm_GetVersionInfo获取版本信息

8.2 主函数(1 个)

API功能
Dcm_MainFunction主函数(诊断请求处理调度)

8.3 Dem 接口(2 个)

API功能
Dcm_DemTriggerOnDTCStatusDem 触发 DTC 状态变化通知
Dcm_GetVin获取 VIN(车辆识别号)

8.4 通用 API(10+)

Dcm_SetDeauthenticatedRole / Dcm_GetSecurityLevel / Dcm_GetSesCtrlType / Dcm_GetActiveProtocol / Dcm_ResetToDefaultSession / Dcm_TriggerOnEvent / Dcm_SetActiveDiagnostic

8.5 大数据传输 API(5 个)

Dcm_StartOfReception / Dcm_CopyRxData / Dcm_TpRxIndication / Dcm_CopyTxData / Dcm_TpTxConfirmation

8.6 回调 API(10+)

Dcm_TxConfirmation / Dcm_ComM_NoComModeEntered / Dcm_ComM_SilentComModeEntered / Dcm_ComM_FullComModeEntered / Dcm_CsmAsyncJobFinished / Dcm_KeyMAsyncCertificateVerifyFinished

8.7 内存读写 API(6 个)

Dcm_ReadMemory / Dcm_WriteMemory / Dcm_SetProgConditions / Dcm_GetProgConditions

8.8 文件操作 API(6 个)

Dcm_ProcessRequestAddFile / Dcm_ProcessRequestDeleteFile / Dcm_ProcessRequestReplaceFile / Dcm_ProcessRequestReadFile / Dcm_ProcessRequestReadDir / Dcm_WriteFile / Dcm_ReadFileOrDir

共 34 个 API 函数(含主函数 + 各类接口 + 回调)。

9 配置规范

9.1 容器

容器描述
Dcm根容器(开发错误检测、版本 API、PDU 配置)
DcmConfigSet配置集
DcmDslDSL(Diagnostic Session Layer)配置
DcmDslBufferDSL 缓冲配置
DcmDslConnectionDSL 连接配置
DcmDslProtocolDSL 协议配置(CAN/CAN FD/Ethernet/FlexRay/LIN)
DcmDsdDSD(Diagnostic Service Dispatcher)配置
DcmDspDSP(Diagnostic Service Processing)配置
DcmDspRoutine例程配置(RoutineControl 0x31)
DcmDspSession会话配置(DiagSessionControl 0x10)
DcmDspSecurity安全级别配置(SecurityAccess 0x27)
DcmDspDataInfoDID/PID 数据信息配置
DcmDspComControl通信控制(CommunicationControl 0x28)
DcmDspPeriodicTransmission周期传输配置
DcmPublishedInformation发布信息

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

10 序列图(典型)

  1. 诊断会话切换:Tester → Dcm → 请求切换会话 → 通知 ComM/EcuM → 响应;
  2. 读数据:Tester → Dcm → 应用 SWC(ReadData)→ Dcm → 响应;
  3. 编程刷写:Tester → Dcm → FlashDriver → Dem → 验证 → 响应;
  4. 大数据传输:Tester → Dcm_StartOfReception → 多块 Dcm_CopyRxData → Dcm_TpRxIndication → 应用 → 响应 → Dcm_CopyTxData → Dcm_TpTxConfirmation;
  5. OBD 读 DTC:Tester → Dcm → Dem(查询 DTC)→ Dcm → 响应。

校对记录

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