DEENESPTFRRUARHIKOZHNL

Diagnostic Communication Manager (DCM)

ModulDCM (Diagnostic Communication Manager)
BSW-Modul-ID53
Standard-Header#include "Dcm.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticCommunicationManager.pdf
ClusterDiagnostic Services

模块指南人工智能生成

接收来自测试仪的诊断请求,对其进行验证,并使用来自故障存储器和应用程序的数据进行应答。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: c4fbaab8dd0b 来源 未决问题(3)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

接收来自测试仪的诊断请求,对其进行验证,并使用来自故障存储器和应用程序的数据进行应答。

DCM 是 ECU 的诊断服务器:它通过 PduR 接收 UDS 和 OBD 请求,验证这些请求,并交由 DSP 或应用程序 callout 执行。仅在完整接收后,请求才会被转发 [SWS_Dcm_00111]。在此之前,DSD 检查服务、会话、安全级别和模式条件。如果处理耗时过长,DCM 会使用 NRC 0x78 来维持 P2 时间限制 [SWS_Dcm_00024]。它仅允许在 ComM 启用的通信模式下发送。

DCM 处理外部测试仪的诊断请求。它实现 UDS 服务(如 DiagnosticSessionControl、ReadDataByIdentifier 和 RoutineControl [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257])以及 OBD 服务 [SWS_Dcm_00243]。在内部,DSL 管理通信和时间参数 [SWS_Dcm_00027],DSD 检查并分发请求 [SWS_Dcm_00178],DSP 执行服务。DCM 从 DEM、应用程序 callout 以及通过 RTE 端口获取数据 [SWS_Dcm_01263] [SWS_Dcm_00793]。

kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD 检查、分发 DSL->DSD 完整请求 ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP 服务执行 DSD->DSP 执行服务 Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm 证书检查 (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

上下文图:位于 PduR、ComM、DEM、NvM、BswM、CSM/KeyM 和应用 SW-C 之间的 DCM。来源:[SWS_Dcm_00094] [SWS_Dcm_01376] SWS DCM 第209页

根据 Dcm_Init [SWS_Dcm_00037],默认会话(Default Session)和安全级别 DCM_SEC_LEV_LOCKED 处于激活状态 [SWS_Dcm_00033] [SWS_Dcm_00034]。请求通过 Dcm_StartOfReception、Dcm_CopyRxData 和 Dcm_TpRxIndication 到达。仅在成功接收后,它才会到达 DSD [SWS_Dcm_00111]。DSD 检查服务标识符、会话、安全级别和模式条件 [SWS_Dcm_00196] [SWS_Dcm_00211] [SWS_Dcm_00217]。响应通过 PduR_DcmTransmit 和 Dcm_CopyTxData 发出 [SWS_Dcm_00115] [SWS_Dcm_00092]。

处理诊断请求PduRDSLDSDDSP应用Use Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)转发请求(仅在 E_OK 后)SID-, Sitzungs-, Security-和模式检查执行服务Xxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)转发确认DspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

时序图:请求的接收、验证、执行和发送。来源:[SWS_Dcm_00093] [SWS_Dcm_00351] [SWS_Dcm_00741]

异步应用接口通过 Dcm_OpStatusType 被重复调用 [SWS_Dcm_00984] [SWS_Dcm_00530]。如果处理持续时间长于 P2ServerMax,DCM 将发送 NRC 0x78 [SWS_Dcm_00024]。通过 0x10 进行的会话切换仅在发送确认后生效。S3Server 超时或 Dcm_ResetToDefaultSession 会导致返回默认会话 [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520]。ComM 模式控制是否允许发送。ROE 和周期性传输仅在 Full Communication 下运行 [SWS_Dcm_00148] [SWS_Dcm_00123]。

错误通常会转换为否定响应。如果应用程序返回 E_NOT_OK,其 ErrorCode 将作为 NRC 发送 [SWS_Dcm_00678]。DEM 错误会被映射到 NRC 0x22 或 0x31 [SWS_Dcm_00704] [SWS_Dcm_00708]。在每次发送确认后,DCM 都会释放发送缓冲区 [SWS_Dcm_00352]。

诊断协议栈中的角色:DSL、DSD 和 DSP

DCM 响应外部测试仪的诊断请求。它实现 UDS 服务(如 DiagnosticSessionControl (0x10)、ReadDataByIdentifier (0x22) 和 RoutineControl (0x31) [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257])以及 OBD 服务(如 $01 [SWS_Dcm_00243])。在内部,它由三个子模块组成:

向下,DCM 为 PduR(传输数据)和 ComM(通信模式)提供回调。示意图 SWS DCM 第209页 对此仍使用较旧的名称,如 Dcm_RxIndication。在 R20-11 中,规范的名称为 Dcm_TpRxIndication 和 Dcm_ComM_NoComModeEntered [SWS_Dcm_00093] [SWS_Dcm_00356]。

其他连接:

  • DCM 通过 DEM API 访问故障存储器,例如在 ClearDiagnosticInformation 时使用 Dem_SelectDTC [SWS_Dcm_01263]。
  • 它通过可配置的 callout 以及端口(如 Xxx_ReadData 或 Xxx_Start [SWS_Dcm_00793] [SWS_Dcm_01203])访问应用程序数据和例程。
  • 对于诊断模式(如 DcmDiagnosticSessionControl 和 DcmEcuReset),它本身即为模式管理器 [SWS_Dcm_00775]。
kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD 检查、分发 DSL->DSD 完整请求 ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP 服务执行 DSD->DSP 执行服务 Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm 证书检查 (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

上下文图:DCM 位于 PduR 与服务提供者 DEM、NvM、BswM、CSM/KeyM 和应用 SW-C 之间;ComM 控制其发送就绪状态。来源:[SWS_Dcm_00094] [SWS_Dcm_01376] [SWS_Dcm_00512] [SWS_Dcm_00868] [SWS_Dcm_01463] SWS DCM 第209页

启动:Dcm_Init 与循环时钟

Dcm_Init [SWS_Dcm_00037] 接收指向包含 post-build 参数的 Dcm_ConfigType 的指针 [SWS_Dcm_00982]。它据此初始化所有全局变量 [SWS_Dcm_00334]。此后以下基本状态生效:

其他启动任务取决于配置:

  • Dcm_GetProgConditions 识别从引导加载程序(Bootloader)的返回 [SWS_Dcm_00536]。
  • 当 DcmDDDIDStorage = TRUE 时,DDDID 定义将从 NvM 恢复 [SWS_Dcm_00867]。
  • 失败尝试计数器通过 Xxx_GetSecurityAttemptCounter 读取 [SWS_Dcm_01154]。
  • 在配置了 DcmVinRef 的情况下,通过 Dcm_GetVin 一次性获取 VIN [SWS_Dcm_01174]。

Dcm_MainFunction [SWS_Dcm_00053] 驱动所有异步处理流程。如果某项操作返回 DCM_E_PENDING,它将在例如下一个 MainFunction 周期中被再次触发 [SWS_Dcm_00760]。这同样适用于挂起的 DEM 调用 [SWS_Dcm_01412]。解释:该函数应由 BSW 调度器周期性调用。 问题 Q-2dbd09d50c66575f (未决)

从请求到响应

接收过程分为三个步骤(SWS DCM 第55页):

  1. Dcm_StartOfReception 报告总长度、首帧和元数据 [SWS_Dcm_00094]。如果请求过大,DCM 返回 BUFREQ_E_OVFL [SWS_Dcm_00444]。若长度为 0,则返回 BUFREQ_E_NOT_OK [SWS_Dcm_00642]。
  2. Dcm_CopyRxData 将分段复制到 DCM 缓冲区 [SWS_Dcm_00443]。
  3. 仅在 Dcm_TpRxIndication 返回 E_OK 之后,DSL 才将请求转发至 DSD [SWS_Dcm_00111]。

DSD 分多个阶段检查请求:

dsd start Anfrage von DSL sid SID in aktiver Service-Tabelle? start->sid ses In aktueller Sitzung erlaubt? sid->ses 是 nrc negative Antwort sid->nrc 不 sec 在当前 Security-Level 下 是否允许? ses->sec 是 ses->nrc 不 mode 模式条件 是否满足? sec->mode 是 sec->nrc 不 ind Xxx_Indication (falls konfiguriert) mode->ind 是 mode->nrc 不 nrcErr NRC = ErrorCode ind->nrcErr E_NOT_OK keine 无响应 ind->keine E_REQUEST_NOT_ACCEPTED dsp DSP 执行服务 ind->dsp E_OK spr suppressPosRspMsgIndicationBit gesetzt? dsp->spr send Antwort an DSL spr->send 不 nopos 无肯定响应 spr->nopos ja, positives Ergebnis

活动图:DSD 仅在检查通过后才允许请求传递至 DSP;E_REQUEST_NOT_ACCEPTED 抑制所有响应。解释:顺序已简化。来源:[SWS_Dcm_00197] [SWS_Dcm_00677] [SWS_Dcm_00678] [SWS_Dcm_00200] [SWS_Dcm_00827]

响应的发送过程如下:

  1. DSD 委托 DSL 执行发送 [SWS_Dcm_00114]。
  2. DSL 使用配置的 Tx-PDU 调用 PduR_DcmTransmit [SWS_Dcm_00115]。
  3. PduR 使用 Dcm_CopyTxData 获取数据 [SWS_Dcm_00092]。
  4. Dcm_TpTxConfirmation 结束传输 [SWS_Dcm_00351]。
  5. 确认被发送至 DSP,随后发送至 Xxx_Confirmation [SWS_Dcm_00235] [SWS_Dcm_00741]。

两个特殊情况:如果设置了 suppressPosRspMsgIndicationBit,则不发送肯定响应 [SWS_Dcm_00200]。对于通用连接,DCM 会保存元数据中的源地址 [SWS_Dcm_00848],并在发送时将其设置为 TARGET_ADDRESS_16 [SWS_Dcm_00849]。

处理诊断请求PduRDSLDSDDSP应用Use Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)转发请求(仅在 E_OK 后)SID-, Sitzungs-, Security-和模式检查执行服务Xxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)转发确认DspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

时序图:带有 TP 回调和确认的请求接收、检查、执行和发送。来源:[SWS_Dcm_00094] [SWS_Dcm_00556] [SWS_Dcm_00093] [SWS_Dcm_00092] [SWS_Dcm_00742] SWS DCM 第479页

应用程序接口、OpStatus 和 Response Pending

异步接口带有一个 Dcm_OpStatusType [SWS_Dcm_00984]:

适用同步还是异步变体由配置决定(DcmDspDataUsePort)。一个示例是 Xxx_ReadData [SWS_Dcm_00793] [SWS_Dcm_91006]。

如果应用程序需要更多时间,DCM 会发送 NRC 0x78 [SWS_Dcm_00024],以遵守时间限制 P2ServerMax 和 P2*ServerMax [SWS_Dcm_00027]。此类响应的数量是有限且可配置的 [SWS_Dcm_00120] [SWS_Dcm_01567]。应用程序也可以自行触发 NRC 0x78:它返回 DCM_E_FORCE_RCRRP,并在发送确认后被再次调用 [SWS_Dcm_00528] [SWS_Dcm_00529]。内存 callout 的表现与此类似 [SWS_Dcm_00839]。

异步操作与 Response PendingTesterDcm应用DiagnoseanfrageXxx-Operation (OpStatus = DCM_INITIAL)DCM_E_PENDINGaltP2ServerMax abgelaufenNRC 0x78 (responsePending)应用程序返回 DCM_E_FORCE_RCRRPNRC 0x78 sofort发送确认后:OpStatus = DCM_FORCE_RCRRP_OKloopbis EndergebnisXxx-Operation (OpStatus = DCM_PENDING)在下一个 MainFunction 周期中E_OK 或 E_NOT_OK + ErrorCode肯定响应或 NRC = ErrorCode

时序图:通过 OpStatus 的再次调用以及通往 NRC 0x78 的两条途径。来源:[SWS_Dcm_00530] [SWS_Dcm_00528] [SWS_Dcm_91015] SWS DCM 第470页

对于带有发送方-接收方端口的 InputOutputControlByIdentifier [SWS_Dcm_00256],DCM 写入 IOOperationRequest 并评估 IOOperationResponse。DCM_RESPONSE_PENDING 导致 NRC 0x78,正值导致肯定响应 [SWS_Dcm_01441] [SWS_Dcm_01439](SWS DCM 第186页)。

会话、安全访问和通信模式

会话切换通过服务 0x10 进行:

session init Dcm_Init def Default Session (0x01) init->def nondef Non-Default Session (z. B. 0x02, 0x03) def->nondef 0x10 已确认: 设置会话 + P2,Modeswitch, ComM_DCM_ActiveDiagnostic nondef->def S3Server-Timeout nondef->def Dcm_ResetToDefaultSession() nondef->def 0x10 Default Session: 停止 IO-Controls 和周期性 DID, ComM_DCM_InactiveDiagnostic nondef->nondef 0x10 anderer Typ

状态图:诊断会话的生命周期及其转换和伴随动作。来源:[SWS_Dcm_00034] [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520] SWS DCM 第477页

SecurityAccess (0x27) [SWS_Dcm_00252] 分两步运行:

激活的级别由 Dcm_GetSecurityLevel 返回 [SWS_Dcm_00338]。

SecurityAccess (0x27)TesterDcm (DSP)Security-SW-C27 requestSeed (ungerade)altLevel 已激活positive Antwort, Seed = 0x00Level 未激活Xxx_GetSeed(OpStatus, Seed, ErrorCode)E_OK + Seed包含 Seed 的肯定响应27 sendKey (gerade)Xxx_CompareKey(Key, OpStatus, ErrorCode)altE_OKneues Security-Level setzenModeswitch DcmSecurityAccesspositive AntwortDCM_E_COMPARE_KEY_FAILED计入失败尝试次数必要时启动延迟定时器Xxx_SetSecurityAttemptCounter() (falls aktiviert)negative Antwort

时序图:带有失败尝试处理的 Seed/Key 流程。来源:[SWS_Dcm_00323] [SWS_Dcm_91003] [SWS_Dcm_91004] [SWS_Dcm_00660] [SWS_Dcm_01155]

ComM 模式切换决定 DCM 允许发送和接收的内容:

comm full Full Communication 接收与发送、 ROE 及周期性传输处于激活状态 silent Silent Communication 禁止发送 (含 ROE 及周期性传输) full->silent Dcm_ComM_SilentComModeEntered nocom No Communication 禁止接收与发送 full->nocom Dcm_ComM_NoComModeEntered silent->full Dcm_ComM_FullComModeEntered silent->nocom Dcm_ComM_NoComModeEntered nocom->full Dcm_ComM_FullComModeEntered nocom->silent Dcm_ComM_SilentComModeEntered

状态图:每个 ComM 模式下 DCM 的发送和接收使能。来源:[SWS_Dcm_00356] [SWS_Dcm_00358] [SWS_Dcm_00360] SWS DCM 第478页

Response On Event 与跳转至 Bootloader

每个 ROE 事件均具有“cleared”、“stopped”和“started”状态 [SWS_Dcm_00871](SWS DCM 第61页):

事件由 Dcm_TriggerOnEvent 或 Dcm_DemTriggerOnDTCStatus 触发 [SWS_Dcm_00920] [SWS_Dcm_00614]。随后相关的 ServiceToRespondTo 如同常规请求一样运行 [SWS_Dcm_00922]。

roe init Dcm_Init cleared ROE cleared init->cleared stopped ROE stopped cleared->stopped 有效设置 stopped->cleared clearResponseOnEvent (0x06) started ROE started stopped->started startResponseOnEvent (0x05) started->cleared clearResponseOnEvent (0x06) started->stopped stopResponseOnEvent (0x00) 或退出会话

状态图:RoeEvent 的生命周期。来源:[SWS_Dcm_00872] [SWS_Dcm_00873] [SWS_Dcm_00876] [SWS_Dcm_00879] SWS DCM 第61页

若服务 0x10 请求针对 OEM 或供应商 Bootloader 的会话 [SWS_Dcm_00532] [SWS_Dcm_00592],则执行以下流程(SWS DCM 第489页):

  1. DCM 将上下文(Dcm_ProgConditionsType)传递给 Dcm_SetProgConditions [SWS_Dcm_00543] [SWS_Dcm_00988]。
  2. 在 E_OK 时,它切换模式 DcmEcuReset [SWS_Dcm_00719]。
  3. 重启后,Dcm_GetProgConditions 通过 Dcm_EcuStartModeType 报告是否需要发送响应 [SWS_Dcm_00544] [SWS_Dcm_00987]。
跳转至 BootloaderTesterDcmDcm-Callouts (Integrator)Nutzer DcmEcuReset10 02 (Bootloader-Sitzung)NRC 0x78(取决于配置)Dcm_SetProgConditions(OpStatus, ProgConditions)altE_OKModeswitch DcmEcuReset:JUMPTOBOOTLOADER / JUMPTOSYSSUPPLIERBOOTLOADER复位 / 跳转至 BootloaderDCM_E_PENDING在下一个 MainFunction 周期中再次调用E_NOT_OKkein Reset, DET-FehlerUse Case: 从 Bootloader 返回后Dcm_Init 期间的 Dcm_GetProgConditions()DCM_WARM_START + ProgConditionsoptResponseRequired = TRUEpositive Antwort ($50 / $51)

时序图:跳转至 Bootloader 以及返回后的响应。解读:由 DcmEcuReset 的使用者触发复位。来源:[SWS_Dcm_00720] [SWS_Dcm_01184] [SWS_Dcm_01181] [SWS_Dcm_00536] SWS DCM 第489页

发生错误时的行为

错误通常被转换为否定响应。在未规定特定代码之处,DCM 发送 NRC 0x10 [SWS_Dcm_00271]。具体情况如下:

进一步详细证据

基于 prompt 中提供的 R20-11 需求与文档出处的 AI 生成指南;后续版本的插图仅供说明之用。唯有规范具有规范性效力。

Diagnostic Communication Manager (DCM)

The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

函数 Dcm_Init [SWS_Dcm_00037] 📄 PDF

void Dcm_Init (const Dcm_ConfigType* ConfigPtr);

Service for basic initialization of DCM module.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: fd12917cfa80 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且不可重入的函数 Dcm_Init 用于 DCM 模块的基础初始化 [SWS_Dcm_00037]。对于 post-build 变体,它通过参数 ConfigPtr 接收指向配置集的指针,并且没有返回值 [SWS_Dcm_00037]。在执行期间,该模块使用配置中的值初始化所有 DCM 全局变量 [SWS_Dcm_00334]。

在初始化流程中,将配置各个功能区域和状态:

  • DDDID 管理:如果配置参数 DcmDDDIDStorage 设置为 FALSE,DCM 在启动时将所有动态定义的数据标识符(DDDID)初始化为不存在 [SWS_Dcm_00866]。如果该参数设置为 TRUE,则从 NvM 恢复 DDDID 定义 [SWS_Dcm_00867]。
  • Response on Event (ROE):DCM 在 Dcm_Init 期间将每个事件的状态转换为“ROE cleared”状态 [SWS_Dcm_00872]。
  • 认证状态:若未配置 DcmDspAuthenticationPersistStateModeRuleRef 或引用的模式规则求值结果为 false,则该模块将所有认证状态置为“deauthenticated”状态 [SWS_Dcm_01480]。
  • 通信状态:Dcm_Init 完成后,DCM 将参数 ActiveDiagnostic 设置为“DCM_COMM_ACTIVE” [SWS_Dcm_01069]。

关于执行环境,规定 Dcm_Init 为不可重入 [SWS_Dcm_00037]。在接口规范中,未针对该初始化服务指出特定的错误码以及向 DET 或 DEM 发送的标准化错误报告 [SWS_Dcm_00037]。

此使用说明基于AUTOSAR规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00614] 📄 PDF

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 47d30a9a675c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步接口 Dcm_DemTriggerOnDTCStatus(服务 ID 0x2B)通过头文件 Dcm_Dem.h 提供,用于向 DCM 报告 UDS 状态字节的更改 [SWS_Dcm_00614]。这允许 DCM 针对诊断服务子服务 OnDTCStatusChanged 触发事件响应(ROE)事件 [SWS_Dcm_00614]。在调用时,该函数接收三个输入参数:受影响的故障代码 DTC(uint32)、先前状态 DTCStatusOld(Dem_UdsStatusByteType)以及更新后的状态 DTCStatusNew(Dem_UdsStatusByteType)[SWS_Dcm_00614]。不存在输入/输出参数 [SWS_Dcm_00614]。

返回值与错误处理

作为返回值,该函数提供类型 Std_ReturnType,其中根据规范无例外地返回 E_OK [SWS_Dcm_00614]。该调用未标明特定错误代码、回退值或向 DEM 或 DET 发送的单独通知。

并发性与交互

该函数被归类为可重入,并具有同步执行语义 [SWS_Dcm_00614]。关于与诊断请求的交互,存在一个固定的约束条件:如果 DCM 中当前正在处理清除事件内存(EventMemory)的请求,则 DCM 必须忽略回调 Dcm_DemTriggerOnDTCStatus 的传入调用 [SWS_Dcm_01410]。

本使用说明基于 AUTOSAR Classic Release R20-11 规范。

实现者指南即将推出(复杂度 I2)

函数 Dcm_BndMWriteBlockFinish [SWS_Dcm_91088] 📄 PDF

void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);

Called by BndM to indicate that a block write operation has finished.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e13cfc7b4a9c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Dcm_BndMWriteBlockFinish 用作 BndM 向 DCM 的通知接口,以指示块写入操作的完成 [SWS_Dcm_91088]。该函数在头文件 Dcm.h 中声明,具有服务 ID 0x7a,不返回任何返回值(void)并同步执行 [SWS_Dcm_91088]。

该接口需要两个传递参数 [SWS_Dcm_91088]:

  • BlockId(类型:BndM_BlockIdType):标识写入过程已完成的块。
  • result(类型:BndM_ResultType):将写入操作的结果传递给 DCM。

功能交互及错误情况下的行为与先前由 DCM 触发的原子性 BndM 写入操作相绑定:

  • 如果带有状态 result = E_OK 调用 Dcm_BndMWriteBlockFinish,DCM 会对挂起的请求发送肯定诊断响应 [SWS_Dcm_01584]。
  • 如果带有 result = E_NOT_OK 调用该函数,DCM 在出错时会以否定诊断响应 0x72(generalProgrammingFailure)做出反应 [SWS_Dcm_01585]。

关于并发性,Dcm_BndMWriteBlockFinish 被指定为不可重入(Non Reentrant)[SWS_Dcm_91088]。因此调用者必须确保该函数不会被多个上下文并行或中断式调用。

本使用说明由 AI 生成,并基于 AUTOSAR 规范 R20-11。

函数 Dcm_SetDeauthenticatedRole [SWS_Dcm_91069] 📄 PDF

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);

Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 948c170851fe 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

函数 Dcm_SetDeauthenticatedRole 为同步且可重入执行([SWS_Dcm_91069])。它允许软件组件为通过 connectionId 标识的连接分配一个类型为 Dcm_AuthenticationRoleType 的新角色 deauthenticatedRole,以用于去认证状态([SWS_Dcm_91069]、[SWS_Dcm_01486])。作为返回值,无一例外地返回 E_OK([SWS_Dcm_91069])。

状态条件与错误处理

仅当连接处于去认证状态(deauthenticated state)时,DCM 才会处理调用([SWS_Dcm_01487])。由于签名未提供其他错误值且始终返回 E_OK([SWS_Dcm_91069]),在此状态之外的调用推测可能会在没有错误消息的情况下被丢弃。 问题 Q-6f14770eae6ce896 (未决)规范中未定义具体的 DET 或 DEM 事件。

有效期限与生命周期

如果成功采用了用于去认证状态的角色([SWS_Dcm_01486]),该分配将临时保持:

  • 一旦连接转换到认证状态(authenticated state),所设置的角色将被丢弃([SWS_Dcm_01488])。
  • 有效期至迟在电子控制单元(ECU)复位时结束([SWS_Dcm_91069])。

本使用说明是基于 AUTOSAR 规范自动生成的。

实现者指南即将推出(复杂度 I2)

函数 Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);

This function provides the active security level value.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7c05be541216 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数Dcm_GetSecurityLevel查询 DCM 当前活动的安全级别并将其提供[SWS_Dcm_00338]。该函数通过头文件Dcm.h声明,并通过类型为Dcm_SecLevelType*的输出参数SecLevel将确定的状态值传递给调用方。根据规范,返回值无一例外地返回E_OK [SWS_Dcm_00338]。

内部安全级别的确定基于测试仪在 SecurityAccess 服务框架内根据固定转换公式SecurityLevel = (SecurityAccessType + 1) / 2传输的参数SecurityAccessType [SWS_Dcm_00338]。

在与上层诊断服务处理的交互中,DSP 子模块等会使用该值:如果该模块接收到具有子功能类型“requestSeed”(奇数值)的已配置请求,并且根据Dcm_GetSecurityLevel对应的访问级别已处于活动状态,则 DSP 子模块将种子内容设置为0x00 [SWS_Dcm_00323]。

在并发性和错误处理方面,该函数被定义为可重入的[SWS_Dcm_00338]。由于未指定特定的错误代码或 DET 检查,且始终返回E_OK,因此大概不会进行空指针检查;调用方因此推测必须始终为SecLevel传递指向有效内存空间的指针。 问题 Q-5402d82ac0151b22 (未决)

本文档由 AI 生成。内容可能不完整;请以 AUTOSAR 规范为准。

实现者指南即将推出(复杂度 I1)

函数 Dcm_ResetToDefaultSession [SWS_Dcm_00520] 📄 PDF

Std_ReturnType Dcm_ResetToDefaultSession (void);

The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9e815ace4649 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Dcm_ResetToDefaultSession 允许应用程序将活动诊断会话复位为默认会话(Default Session)[SWS_Dcm_00520]。一个典型的应用场景是,一旦车辆超过预设的速度门限,便自动终止扩展诊断会话 [SWS_Dcm_00520]。

使用与错误处理

  • 接口与参数:该函数可通过 Dcm.h 使用,服务 ID 为 0x2a,具有签名 Std_ReturnType Dcm_ResetToDefaultSession (void),且不需要传入参数 [SWS_Dcm_00520]。
  • 返回值与错误:作为返回类型返回 Std_ReturnType,其中无一例外地返回值 E_OK [SWS_Dcm_00520]。在针对该调用的需求中,未指定特定的错误码、DET 运行时检查或 DEM 事件。

并发性与交互

执行以同步方式进行,并声明为可重入 [SWS_Dcm_00520]。

除了实际的会话切换外,Dcm_ResetToDefaultSession 还必须为 ModeDeclarationGroupPrototype DcmDiagnosticSessionControl 触发模式切换 [SWS_Dcm_01062]。在此过程中,该函数在内部调用 SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION),以通知系统环境已切换至默认会话 [SWS_Dcm_01062]。

此使用说明基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 Dcm_TriggerOnEvent [SWS_Dcm_00521] 📄 PDF

Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);

The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 398801f84afa 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数Dcm_TriggerOnEvent(服务 ID 0x2D)通过头文件Dcm.h提供,用于触发与 ResponseOnEvent 请求(ROE)关联的事件[SWS_Dcm_00521]。

调用与工作方式

调用方传递的唯一参数为RoeEventId(类型为uint8的输入参数),该参数标识要触发的事件;不存在输入或输出参数[SWS_Dcm_00521]。调用该函数后,DCM 会检查事件的状态:如果传入的RoeEvent处于活动状态,DCM 将触发相应的事件[SWS_Dcm_00920]。只要RoeEventId的关联模式处于“ROE started”,DCM 就会执行与该事件关联的服务[SWS_Dcm_00521]。

返回值与校验

调用会同步返回一个类型为Std_ReturnType的状态,该状态提供有关参数有效性的信息[SWS_Dcm_00521]:

并发性与属性

该接口被指定为可重入的[SWS_Dcm_00521]。因此,可以并发调用它以向 DCM 同步报告事件[SWS_Dcm_00521]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 Dcm_StartOfReception [SWS_Dcm_00094] 📄 PDF

BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: ab9eb5ff232f 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 Dcm_StartOfReception([SWS_Dcm_00094])在传输协议模块开始接收 N-SDU 时被调用——无论是对于单帧消息(Single Frame, SF)还是分段消息(First Frame, FF)。它可在中断上下文中调用([SWS_Dcm_00094])。该调用会在开始接收时触发停止 S3Server 定时器等操作([SWS_Dcm_00141])。

通过 info 传递有效负载数据与元数据;对于通用连接,除其他操作外,还会通过它存储 SOURCE_ADDRESS_16([SWS_Dcm_00848])并检查 TARGET_ADDRESS_16([SWS_Dcm_01347])。如果既不存在有效负载也不存在元数据,则传递 NULL_PTR([SWS_Dcm_00094])。通过 bufferSizePtr,该函数返回用于计算块大小(BS)的可用缓冲区([SWS_Dcm_00094])。如果成功接受,它将返回 BUFREQ_OK,随后通过 Dcm_CopyRxData 复制后续数据([SWS_Dcm_00443])。

错误情况和拒绝情况通过返回值发出信号:

本段文本由 AI 生成。所有说明完全基于 AUTOSAR R20-11 规范摘录。

实现者指南即将推出(复杂度 I2)

函数 Dcm_CopyRxData [SWS_Dcm_00556] 📄 PDF

BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 8d38cdb7c8ea 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

调用同步函数 Dcm_CopyRxData,以将接收到的 I-PDU 段(N-PDU)数据传递给 DCM 中的上层 [SWS_Dcm_00556]。每次调用都会提供 I-PDU 数据的下一部分 [SWS_Dcm_00556]。通过参数 id 标识接收到的 I-PDU [SWS_Dcm_00556]。指针 info 通过 SduDataPtr 提供源缓冲区,并通过 SduLength 提供要复制的字节数 [SWS_Dcm_00556]。复制过程完成后,DCM 中剩余的空闲缓冲区大小将通过 bufferSizePtr 反馈 [SWS_Dcm_00556],[SWS_Dcm_00443]。

如果调用 Dcm_CopyRxData 时 SduLength 为 0,则仅用于缓冲区查询 [SWS_Dcm_00556]。在这种情况下,SduDataPtr 允许为 NULL_PTR;该函数返回 BUFREQ_OK,并将接收缓冲区的剩余大小填入 bufferSizePtr [SWS_Dcm_00556],[SWS_Dcm_00996]。

相互作用

在复制之前,必须已以 BUFREQ_OK 完成 Dcm_StartOfReception;后续对 Dcm_CopyRxData 的调用会将数据从提供的缓冲区复制到 DCM 缓冲区中,并更新 bufferSizePtr [SWS_Dcm_00443]。

错误处理

该函数将状态作为 BufReq_ReturnType 返回:BUFREQ_OK 确认复制成功或缓冲区查询成功,而 BUFREQ_E_NOT_OK 指示由于错误未复制任何数据 [SWS_Dcm_00556],[SWS_Dcm_00996]。

并发性与限制

Dcm_CopyRxData 被指定为可重入,且允许在中断上下文中调用 [SWS_Dcm_00556]。该接口通过 Dcm.h 提供 [SWS_Dcm_00556]。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 Dcm_TpRxIndication [SWS_Dcm_00093] 📄 PDF

void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9917213332e5 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

在通过 TP API 接收到 I-PDU 后,通常由模块 PduR 调用同步函数 Dcm_TpRxIndication [SWS_Dcm_00093], [SWS_Dcm_00112]。它传递 PDU 标识(id)及接收结果(result),并且不返回任何返回值 [SWS_Dcm_00093]。由于该函数具有可重入性且可在中断上下文中调用,因此调用者和模块状态必须针对相应的并发性进行设计 [SWS_Dcm_00093]。

接收出错时的行为

如果调用 Dcm_TpRxIndication 时传入的结果值偏离 E_OK,则模块 Dcm 不得对分配给所引用 I-PDU 的缓冲区进行求值 [SWS_Dcm_00344]。

子模块间的相互作用

子模块 DSL 仅在以参数值 result = E_OK 调用时,才将接收到的数据转发至子模块 DSD [SWS_Dcm_00111]。诊断请求在此适用特定规则:

  • 如果成功接收到的请求(Result = E_OK)是设置了 suppressPosRspMsgIndicationBit 的 TesterPresent 命令(SID 0x3E,子功能 0x80),则 DSL 子模块重置会话超时定时器 S3Server [SWS_Dcm_00112]。
  • 在这种情况下,DSL 子模块不会将该请求转发给 DSD 子模块进行进一步解释 [SWS_Dcm_00113]。

此使用说明基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_CopyTxData [SWS_Dcm_00092] 📄 PDF

BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a321989ea1cd 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

同步且可重入的函数 Dcm_CopyTxData 由下层模块(如传输协议)调用,以获取用于传输的 I-PDU 段(N-PDU)数据 [SWS_Dcm_00092]。调用方通过参数 info 传递目标缓冲区 SduDataPtr 和所需的字节长度 SduLength。SduLength 的值设为 0 可用于通过 retry 发出状态更改信号或查询可用数据量;在这种情况下,SduDataPtr 允许为 NULL_PTR [SWS_Dcm_00092]。DCM 通过 availableDataPtr 报告发送缓冲区中的剩余字节数,该字节数可由 TP 模块用于确定后续段大小,且不得超过尚待发送的字节数 [SWS_Dcm_00092],[SWS_Dcm_00350]。

缓冲区管理与传输重试

通过参数 retry 控制数据的确认或重试 [SWS_Dcm_00092]:

  • 如果 retry 为 NULL_PTR,则允许在复制过程之后直接从缓冲区中移除数据 [SWS_Dcm_00092]。
  • 对于 TP_CONFPENDING,先前复制的数据必须保留在 TP 缓冲区中,以便进行可能的错误恢复 [SWS_Dcm_00092]。
  • TP_DATACONF 确认释放此调用之前复制的所有数据 [SWS_Dcm_00092]。
  • TP_DATARETRY 从相对于当前位置的偏移量 TxTpDataCnt 开始重新复制数据 [SWS_Dcm_00092]。

返回值与错误处理

如果数据已成功且完全复制,则该函数返回 BUFREQ_OK [SWS_Dcm_00092],[SWS_Dcm_00346]。如果没有足够的发送数据可用,则不执行复制过程并返回 BUFREQ_E_BUSY;下层可以在稍后重试该调用 [SWS_Dcm_00092]。如果请求失败,该函数将返回 BUFREQ_E_NOT_OK [SWS_Dcm_00092]。在这种情况下,来自 PduR_DcmTransmit() 的发送请求尚未完成;只有对 Dcm_TpTxConfirmation 的最终调用才会结束该过程并允许进行新的传输 [SWS_Dcm_00350]。

并发性

该函数是可重入的,也允许在中断上下文中调用 [SWS_Dcm_00092]。

此使用说明基于 AUTOSAR Classic 平台 Release R20-11 的规范。

实现者指南即将推出(复杂度 I2)

函数 Dcm_TpTxConfirmation [SWS_Dcm_00351] 📄 PDF

void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e2141a66244b 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

在诊断 I-PDU 已在网络上传输后,回调函数 Dcm_TpTxConfirmation([SWS_Dcm_00351])由下层传输层同步调用。通过参数 id 标识受影响的 I-PDU,而 result 报告发送过程的成功或失败([SWS_Dcm_00351])。该函数没有返回值,具有可重入性,并明确允许在中断上下文中执行([SWS_Dcm_00351])。

在调用 Dcm_TpTxConfirmation 时,DCM 模块执行核心的清理与状态转换:

  • 分配的发送缓冲区被解锁([SWS_Dcm_00352])。
  • 正在运行的错误监控(如页面缓冲区超时以及 P2ServerMax 和 P2*ServerMax 超时)被停止([SWS_Dcm_00353])。
  • 释放自接收(Dcm_TpRxIndication)以来一直被阻塞的连接的 DcmPduId,以便能够接收后续请求([SWS_Dcm_00241])。
  • 当前协议不会因确认 DSL 响应而终止(不调用 xxx_StopProtocol)([SWS_Dcm_00624])。

在发生错误时(当 result 指示错误,或在失败的 Dcm_CopyTxData 之后确认中止时),[SWS_Dcm_00350] 强制要求进行该最终调用,以便正式完成发送作业并通过 PduR_DcmTransmit() 允许新的传输。如果确认指示出错,DSD 子模块不得重新发送诊断响应([SWS_Dcm_00118])。

此外,对响应(非 NRC 0x78)的确认标志着诊断请求的常规结束([SWS_Dcm_01378])。在确认对 EcuReset 的肯定响应后,DCM 在复位处理期间忽略所有后续请求([SWS_Dcm_00834])。

本文由 AI 创建;无法保证准确性。

实现者指南即将推出(复杂度 I2)

函数 Dcm_TxConfirmation [SWS_Dcm_01092] 📄 PDF

void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: ef08d41ee8bf 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

根据 [SWS_Dcm_01092],同步接口 Dcm_TxConfirmation(服务 ID 0x40,在 Dcm.h 中声明)由下层通信接口模块调用,以确认 PDU 的发送或报告传输失败。该函数无返回值并处理两个输入参数:

  • TxPduId:已发送 PDU 的标识符(PduIdType)。
  • result:传输状态(Std_ReturnType)。有效值为成功传输时的 E_OK,以及 PDU 传输失败时的 E_NOT_OK。

错误处理和状态反馈

传输结果通过参数 result 直接通知 DCM([SWS_Dcm_01092])。在提供的规范摘录中未为该函数定义具体的 DET 或 DEM 错误消息。

并发与调用上下文

关于可重入性,Dcm_TxConfirmation 对于使用不同 PDU ID 的调用是可重入的,但对于相同的 TxPduId 不可重入([SWS_Dcm_01092])。需要注意的是,下层模块的调用可在中断上下文中进行([SWS_Dcm_01092])。

相互作用

在周期性传输(PeriodicTransmission)的情况下,根据 [SWS_Dcm_01073] 通过 Dcm_TxConfirmation 调用 DCM,以便向其通告各自的发送结果。

本使用说明基于针对 R20-11 的 AUTOSAR 规范自动创建。

实现者指南即将推出(复杂度 I1)

函数 Dcm_ComM_NoComModeEntered [SWS_Dcm_00356] 📄 PDF

void Dcm_ComM_NoComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 84327c759831 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 Dcm_ComM_NoComModeEntered(服务 ID 0x21)向 DCM 模块通知通信网络转换至状态 COMM_NO_COMMUNICATION [SWS_Dcm_00356]。该接口通过头文件 Dcm_ComM.h 提供,没有返回值,并通过 uint8 类型的输入参数 NetworkId 标识受影响的网络 [SWS_Dcm_00356]。

通过该调用,DCM 关闭指定网络上的所有通信,从而完全停用消息的接收与发送 [SWS_Dcm_00148]。这强制包括以下传输类型:

因此,在执行 Dcm_ComM_NoComModeEntered 后,DCM 模块不得再针对该上下文调用 PduR 函数 PduR_DcmTransmit() [SWS_Dcm_00152]。

如果调用该函数时传入的 NetworkId 不对应于 DCM 中通过配置参数 DcmDslProtocolComMChannelRef 引用的任何 ComM 通道,则 DCM 模块不执行任何操作并立即返回 [SWS_Dcm_01324]。

本段文本由 AI 生成并由 autodocs 进行质量保证。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ComM_SilentComModeEntered [SWS_Dcm_00358] 📄 PDF

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2f5bafafbcf2 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 Dcm_ComM_SilentComModeEntered([SWS_Dcm_00358])用于向 DCM 模块通知通信网络转换至状态 COMM_SILENT_COMMUNICATION。该接口的服务 ID 为 0x22,不返回任何返回值,并期望将受影响网络的标识符作为输入参数 NetworkId([SWS_Dcm_00358])。它通过头文件 Dcm_ComM.h 提供([SWS_Dcm_00358])。

一旦进行此调用,DCM 必须完全停止受影响网络通道上的所有发送活动([SWS_Dcm_00153])。具体包括以下措施:

关于错误处理和边界条件,规定若传入的 NetworkId 对应的 ComM 通道未在 DCM 中通过配置参数 DcmDslProtocolComMChannelRef 被引用,则 DCM 必须在不执行任何进一步操作的情况下直接返回([SWS_Dcm_01325])。对于该调用,未指定特定的开发错误或错误返回值。

Interpretation: 一旦完成向静默通信模式的转换,该调用通常可能由模块 ComM 进行。 问题 Q-fc9b6303ae0c0e41 (未决)

本使用说明由 AI 系统生成,完全基于 AUTOSAR 规范 R20-11。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ComM_FullComModeEntered [SWS_Dcm_00360] 📄 PDF

void Dcm_ComM_FullComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f50471437e1e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 Dcm_ComM_FullComModeEntered 通过头文件 Dcm_ComM.h 提供,并向 DCM 模块通知通信网络转换至状态 COMM_FULL_COMMUNICATION [SWS_Dcm_00360]。输入参数为 NetworkId,用于标识受模式切换影响的网络 [SWS_Dcm_00360]。

通过该调用,激活该网络的所有通信,从而使消息接收和发送均被启用 [SWS_Dcm_00157]。这包括以下传输类型:

一旦 Dcm_ComM_FullComModeEntered 被调用,DCM 无限制地处理内部功能 DslInternal_ResponseOnOneDataByPeriodicId() 和 DslInternal_ResponseOnOneEvent() [SWS_Dcm_00162]。在时间时序上,DCM 必须等待该调用,然后才发起诊断响应的传输;从请求接收的时间点起算,等待时间不得长于 P2ServerMax [SWS_Dcm_01142]。

在错误情况下,如果传入的 NetworkId 涉及未在 DCM 中配置的 ComM 通道(参数 DcmDslProtocolComMChannelRef),则该函数立即返回且不执行进一步操作 [SWS_Dcm_01326]。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_CsmAsyncJobFinished [SWS_Dcm_91076] 📄 PDF

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);

Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: dde3623859f0 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

一旦异步作业处理完成,Crypto Service Manager (CSM) 便会调用同步且可重入的回调函数 Dcm_CsmAsyncJobFinished [SWS_Dcm_91076]。它通过类型为 Csm_ResultType 的 result 接收已完成 CSM 作业的结果作为输入参数 [SWS_Dcm_91076]。作为返回值,该函数始终返回 E_OK [SWS_Dcm_91076]。

配置与约束条件

集成人员必须在 CSM 的 ECUC 配置中将此函数名称配置为异步作业的回调 [SWS_Dcm_91076]。对于 DCM,仅有唯一一个此类回调可用;根据规范,已完成作业的标识通过评估作业参数 [SWS_Dcm_91076] 来进行。然而,由于 C 函数签名仅传递 result,DCM 可能会在内部通过当前认证的事务状态来确定相关作业。 问题 Q-04ad1d5fb514f467 (未决)

仅当配置中设置了参数 DcmDspAuthenticationConnection(不等于 null)时,该接口才可用 [SWS_Dcm_91076]。针对该调用未指定特定错误处理或 DET 报告,因为返回值恒为 E_OK [SWS_Dcm_91076]。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 Dcm_KeyMAsyncCertificateVerifyFinished [SWS_Dcm_91077] 📄 PDF

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);

Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4af905fb6f66 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

在异步证书验证完成后,模块 KeyM 会调用同步且可重入的回调函数 Dcm_KeyMAsyncCertificateVerifyFinished [SWS_Dcm_91077]。它向 DCM 通知校验过程的完成情况及结果,并始终返回 E_OK 作为返回值 [SWS_Dcm_91077]。

参数与工作机制

  • CertID:已完成验证的证书标识符。DCM 根据此标识符确定哪个校验作业已完成 [SWS_Dcm_91077]。
  • Result:来自 KeyM 的异步验证作业的返回值和状态 [SWS_Dcm_91077]。

配置与约束条件

集成人员必须在 KeyM 的 ECUC 配置中将此函数名称配置为异步作业的回调 [SWS_Dcm_91077]。由于该通知仅提供一个回调,DCM 依赖于通过参数 CertID 解析相应证书 [SWS_Dcm_91077]。

仅当在路径 Dcm/DcmDsp/DcmDspAuthentication 中配置了配置参数 DcmDspAuthenticationConnection(!= null)时,该接口才可用 [SWS_Dcm_91077]。针对该调用未指定特殊错误代码或 DET 报告 [SWS_Dcm_91077]。

本使用说明自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ReadMemory [SWS_Dcm_00539] 📄 PDF

Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d18b075d45c8 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

在 Dcm_Externals.h 中声明的标注函数 Dcm_ReadMemory([SWS_Dcm_00539])用于 DCM 根据起始地址(MemoryAddress)和字节大小(MemorySize)读取服务器内存数据。该函数用于 UDS 服务 ReadMemoryByAddress (0x23)([SWS_Dcm_00495])、地址范围在 0xF200 至 0xF3FF 内针对动态 DID 的 ReadDataByIdentifier (0x22)([SWS_Dcm_00653])、RequestUpload 以及 TransferData([SWS_Dcm_00539])。如果不使用参数 MemoryIdentifier,则必须将其设置为 0([SWS_Dcm_00539])。

该接口是异步且不可重入的([SWS_Dcm_00539])。调用状态通过 OpStatus 传递,其取值为 DCM_INITIAL、DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK。只要读取过程持续,函数就返回 DCM_READ_PENDING([SWS_Dcm_00985])。如果调用返回 DCM_READ_FORCE_RCRRP,DCM 会立即触发发送 RCR-RP 消息(NRC 0x78),并在收到发送确认前暂停进一步的调用([SWS_Dcm_00839])。在确认 RCR-RP 后,DCM 会使用 OpStatus = DCM_FORCE_RCRRP_OK 重新调用来自 Dcm_MainFunction 的函数([SWS_Dcm_00840])。

在成功的情况下,读取的数据被写入缓冲区 MemoryData 并返回 DCM_READ_OK([SWS_Dcm_00539],[SWS_Dcm_00985])。如果操作失败,函数将返回 DCM_READ_FAILED 并设置 ErrorCode。随后 DCM 发送带有相应 NRC 值的否定响应([SWS_Dcm_00644])。

基于 AUTOSAR 规范自动生成的使用说明。

实现者指南即将推出(复杂度 I2)

函数 Dcm_WriteMemory [SWS_Dcm_00540] 📄 PDF

Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: eb9ee6486bcd 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

在 Dcm_Externals.h 中声明的标注函数 Dcm_WriteMemory 由 DCM 异步且不可重入地调用,以根据起始地址和字节大小写入内存数据 [SWS_Dcm_00540]。它用于实现 UDS 服务 WriteMemoryByAddress (0x3D)、RequestDownload 和 TransferData [SWS_Dcm_00540]。在接收到 WriteMemoryByAddress 时,DCM 仅在检查请求后才调用该标注 [SWS_Dcm_00491]。

为了控制流程,传递 OpStatus(可能的值:DCM_INITIAL、DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK)[SWS_Dcm_00540]。参数 MemoryAddress 和 MemorySize 确定目标内存区域,而 MemoryData 指向 DCM 的诊断缓冲区 [SWS_Dcm_00540]。如果不使用 MemoryIdentifier 或 MemoryAddress(例如在压缩数据的情况下),则必须将它们设置为 0 [SWS_Dcm_00540]。

返回值 Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 定义了 DCM 中的进一步处理:

本段文本由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_SetProgConditions [SWS_Dcm_00543] 📄 PDF

Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);

The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7125f1a0f508 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

标注函数 Dcm_SetProgConditions 使集成商能够在因 ECUReset 请求而进入引导加载程序或复位之前持久保存相关信息 [SWS_Dcm_00543]。相关上下文数据通过指向结构 Dcm_ProgConditionsType 的指针传递,该结构等汇总了连接和测试仪源地址、服务和子功能 ID 以及诸如 ReprogramingRequest 和 ResponseRequired 等控制标志 [SWS_Dcm_00988]。在接收到带有子功能 0x02 的 UDS 服务 0x10 时,DCM 会设置这些标志并调用该接口 [SWS_Dcm_01182]。

调用以异步方式进行并且不可重入(Non Reentrant)[SWS_Dcm_00543]。通过参数 OpStatus 控制状态 DCM_INITIAL、DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK [SWS_Dcm_00543]。如果执行仍在持续且函数返回 DCM_E_PENDING,则 DCM 会在下一个主函数周期中再次调用该接口以完成设置 [SWS_Dcm_00543],[SWS_Dcm_01184]。借助 DCM_E_FORCE_RCRRP 可以强制传输 Response-Pending 响应(NRC 0x78)[SWS_Dcm_00543]。根据配置,DCM 仅在成功传输 NRC 0x78 后才进行调用 [SWS_Dcm_00535]。

如果条件已正确设置且标注返回 E_OK,则 DCM 将触发 ModeDeclarationGroupPrototype DcmEcuReset 向 EXECUTE 的模式切换 [SWS_Dcm_00719],[SWS_Dcm_01163],[SWS_Dcm_01180]。相反,如果无法保存状态且函数响应 E_NOT_OK,则复位以及引导加载程序跳转将被忽略,模式切换将被阻止,并且 DCM 发送否定响应 NRC 0x22(Conditions not correct)[SWS_Dcm_00715],[SWS_Dcm_01181]。

本使用说明由 AI 基于 AUTOSAR Classic Release R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_GetProgConditions [SWS_Dcm_00544] 📄 PDF

Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);

The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 64f9fe813c22 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

具有服务 ID 0x62 的标注函数 Dcm_GetProgConditions 在 DCM 初始化期间被调用,以确定是否必须发送对服务 $50 或 $51 的待处理诊断响应 [SWS_Dcm_00544]。该接口的声明通过头文件 Dcm_Externals.h 提供 [SWS_Dcm_00544]。

用法与参数

函数执行同步进行,不传递常规的输入或输入/输出参数 [SWS_Dcm_00544]:

  • 输出参数:通过类型为 Dcm_ProgConditionsType* 的指针 ProgConditions,标注返回在其中请求先前从引导加载程序跳转的条件 [SWS_Dcm_00544]。相关上下文参数保存在数据类型 Dcm_ProgConditionsType 中 [SWS_Dcm_00544]。
  • 返回值:函数向调用方返回类型为 Dcm_EcuStartModeType 的状态值 [SWS_Dcm_00544]。

并发与错误处理

该函数被归类为不可重入(Non Reentrant),因此不得并发执行 [SWS_Dcm_00544]。在接口规范中未为此标注定义针对 DET 或 DEM 的特定错误代码 [SWS_Dcm_00544]。

本使用说明由 AI 基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 Dcm_ProcessRequestAddFile [SWS_Dcm_91078] 📄 PDF

Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 1834b880b12c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

Callout 函数 Dcm_ProcessRequestAddFile 由 DCM 调用,以启动采用操作模式 0x01(AddFile)的服务 RequestFileTransfer([SWS_Dcm_91078])。它可通过 Dcm_Externals.h 获得,具有服务 ID 0x72,并被指定为不可重入(Non Reentrant)和异步([SWS_Dcm_91078])。

异步调用流程的控制通过参数 OpStatus 进行:

  • DCM_INITIAL:所有输入参数均有效。这包括文件路径与名称(filePathAndName 带有 filePathAndNameLength)、字节 dataFormatIdentifier(高半字节用于压缩,低半字节用于加密)以及未压缩和压缩后的文件大小(fileSizeUncompressed、fileSizeCompressed)([SWS_Dcm_91078])。
  • DCM_PENDING、DCM_CANCEL 和 DCM_FORCE_RCRRP_OK:在这些后续调用中,所有输入参数均设置为 0x00([SWS_Dcm_91078])。

作为返回值,该函数在成功执行时返回 E_OK,在仍在处理中时返回 DCM_E_PENDING,或者在应用程序请求发送临时响应(NRC 0x78)时返回 DCM_E_FORCE_RCRRP([SWS_Dcm_91078]、[SWS_Dcm_91086])。在成功的情况下,maxNumberOfBlockLength 定义后续 TransferData 消息的最大允许块长度(不含 SID 和块计数器)([SWS_Dcm_91078])。

在出错时,函数返回 E_NOT_OK。在此情况下,必须通过参数 ErrorCode 传递否定响应码(NRC),DCM 将其在发往客户端的否定诊断响应中发送([SWS_Dcm_91078])。如果激活了配置 DcmRequestFileTransferUsePort,则该功能作为接口 RequestFileTransfer 的端口操作 ProcessRequestAddFile 备选提供([SWS_Dcm_91086])。

本使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ProcessRequestDeleteFile [SWS_Dcm_91079] 📄 PDF

Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 236f3be8e83f 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与调用语义

Callout 函数 Dcm_ProcessRequestDeleteFile 由 DCM 调用,以在诊断服务 RequestFileTransfer 的上下文中启动服务器上文件(modeOfOperation = 0x02)的删除 [SWS_Dcm_91079]。该函数在 Dcm_Externals.h 中声明,并以异步且不可重入(Non Reentrant)的方式工作 [SWS_Dcm_91079]。

传递和评估根据参数 OpStatus 进行:

  • DCM_INITIAL:指示操作开始。此时所有输入参数均有效;filePathAndName 传递要删除文件的存储位置和名称,其字节长度通过 filePathAndNameLength 指定 [SWS_Dcm_91079]。
  • DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK:在继续处理或中止时,所有输入参数均设置为 0x00 [SWS_Dcm_91079]。

作为返回值,该函数在成功执行时返回 E_OK,在执行仍在进行且需要进一步调用时返回 DCM_E_PENDING,或者在应用程序请求发送带有 NRC 0x78(Response Pending)的中间消息时返回 DCM_E_FORCE_RCRRP [SWS_Dcm_91079],与服务 RequestFileTransfer 类似 [SWS_Dcm_91086]。

错误处理

若处理失败,函数返回 E_NOT_OK。在此情况下,必须通过输出参数 ErrorCode 提供否定响应码,DCM 将其作为否定响应(NRC)发送给测试仪 [SWS_Dcm_91079]。

此使用说明基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ProcessRequestReplaceFile [SWS_Dcm_91080] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: c623f64b1110 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

Callout 函数 Dcm_ProcessRequestReplaceFile 由 DCM 调用,以启动采用操作模式 0x03(ReplaceFile)针对 RequestFileTransfer 的诊断过程 [SWS_Dcm_91080]。该函数被定义为不可重入(Non Reentrant)且异步,并通过头文件 Dcm_Externals.h 提供 [SWS_Dcm_91080]。

异步处理流程的控制通过参数 OpStatus 进行:

  • 在带有 DCM_INITIAL 的初始调用中,DCM 传递所有有效的输入参数,其中包括路径和文件名(filePathAndName 带有长度信息 filePathAndNameLength)、压缩与加密标识(dataFormatIdentifier)以及未压缩和压缩后的文件大小(fileSizeUncompressed、fileSizeCompressed)[SWS_Dcm_91080]。
  • 在后续调用或中止时(DCM_PENDING、DCM_CANCEL、DCM_FORCE_RCRRP_OK),所有 In 参数均设置为 0x00 [SWS_Dcm_91080]。
  • 在成功的情况下,该函数通过 Out 参数 maxNumberOfBlockLength 向 DCM 返回后续 TransferData 请求的最大有效负载长度(不含 SID 和块序列计数器)[SWS_Dcm_91080]。

预期的返回值包括:成功执行时的 E_OK、仍在处理中的 DCM_E_PENDING 以及用于请求 Response-Pending 响应(NRC 0x78)的 DCM_E_FORCE_RCRRP [SWS_Dcm_91080]、[SWS_Dcm_91086]。若执行失败,函数返回 E_NOT_OK 并为参数 ErrorCode 分配相应的否定诊断响应码(NRC),DCM 将其发送给测试仪 [SWS_Dcm_91080]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ProcessRequestReadFile [SWS_Dcm_91081] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: da3fd9bbf78e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

Callout 函数 Dcm_ProcessRequestReadFile 由 DCM 调用,以启动采用操作模式 ReadFile(modeOfOperation 0x04)的文件传输过程(服务 RequestFileTransfer)[SWS_Dcm_91081]。该函数在头文件 Dcm_Externals.h 中声明,以异步方式工作且不可重入(Non Reentrant)[SWS_Dcm_91081]。

调用通过状态参数 OpStatus 进行:在初始调用 DCM_INITIAL 时所有输入参数均有效,而在通过 DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK 进行的后续调用中它们被设置为 0x00 [SWS_Dcm_91081]。应用程序通过 filePathAndName(长度在 filePathAndNameLength 中)获取路径和文件名,通过 dataFormatIdentifier 获取压缩和加密格式,并通过 fileSizeUncompressed 和 fileSizeCompressed 获取文件大小 [SWS_Dcm_91081]。作为输出参数,应用程序必须使用后续 TransferData 响应的最大字节数(不含 SID 和块序列计数器)来设置 maxNumberOfBlockLength [SWS_Dcm_91081]。

Std_ReturnType 的返回值定义为:成功执行时的 E_OK、异步处理仍在进行时的 DCM_E_PENDING 或用于请求“Response Pending”响应(NRC 0x78)的 DCM_E_FORCE_RCRRP [SWS_Dcm_91081]。若操作失败,它返回 E_NOT_OK;在此情况下,DCM 向测试仪发送带有在输出参数 ErrorCode 中设置的 NRC 值的否定响应 [SWS_Dcm_91081]。该交互对应于服务 RequestFileTransfer 的常规处理流程,这与针对诸如 ProcessRequestAddFile 等其他文件操作的配置类似 [SWS_Dcm_91086]。

此文本由 AI 系统生成,仅基于 AUTOSAR Classic R20-11 规范。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ProcessRequestReadDir [SWS_Dcm_91082] 📄 PDF

Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 1f3142abbb5b 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

Callout 函数 Dcm_ProcessRequestReadDir 通过头文件 Dcm_Externals.h 声明并由 DCM 调用,以异步启动采用操作模式 0x05(ReadDir)的服务 RequestFileTransfer [SWS_Dcm_91082]。处理进度通过传递参数 OpStatus 控制 [SWS_Dcm_91082]。在带有 DCM_INITIAL 的首次调用中,DCM 通过 filePathAndName 连同字节长度 filePathAndNameLength 传递路径或名称 [SWS_Dcm_91082]。在后续调用或中止时(DCM_PENDING、DCM_CANCEL、DCM_FORCE_RCRRP_OK),所有输入参数均设置为 0x00 [SWS_Dcm_91082]。

作为输出值,应用程序必须通过 dirInfoLength 提供目录数据的大小,并通过 maxNumberOfBlockLength 提供后续传输的最大允许块大小 [SWS_Dcm_91082]。除了成功执行时的 E_OK 之外,当操作仍在进行时函数可以返回 DCM_E_PENDING,或者返回 DCM_E_FORCE_RCRRP 以触发中间响应(NRC 0x78)的发送 [SWS_Dcm_91082]。

错误处理

如果发生错误,函数必须返回 E_NOT_OK。在此情况下,DCM 读取参数 ErrorCode 并将其值作为否定响应码(NRC)发送给测试仪 [SWS_Dcm_91082]。该接口未规定具体的 DET 或 DEM 报告;因此,所传递路径的错误检查可能完全由特定于应用程序的实现负责。 问题 Q-278dbc3db7b4363b (未决)

并发性与交互

该函数被指定为不可重入(Non Reentrant),因此不得针对多个诊断请求并发调用 [SWS_Dcm_91082]。它是服务 RequestFileTransfer 接口组的一部分,其接入可以通过配置参数进行影响 [SWS_Dcm_91086]。

本使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Dcm_WriteFile [SWS_Dcm_91083] 📄 PDF

Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 20f77ea9ba1a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

当通过 UDS 服务 TransferData (0x36) 接收到数据且先前通过带有模式 0x01(AddFile)或 0x03(ReplaceFile)的 RequestFileTransfer 启动的下载过程处于活动状态时,Callout 函数 Dcm_WriteFile 由 DCM 调用 [SWS_Dcm_01444]。该接口可通过 Dcm_Externals.h 获取 [SWS_Dcm_91083]。

参数赋值取决于进度状态 OpStatus [SWS_Dcm_91083]:

  • DCM_INITIAL:所有输入参数均有效。指针 Data 指向要写入的有效数据,DataLength 指定其字节长度。DataLength 的值不超过先前在 Dcm_ProcessRequestFileTransfer 协商的最大块长度(NumberOfBlockLength)。
  • DCM_PENDING、DCM_CANCEL 和 DCM_FORCE_RCRRP_OK:所有输入参数均设置为 0x00。

异步语义与返回值

该函数以异步且不可重入(Non Reentrant)方式工作 [SWS_Dcm_91083]。它返回以下状态值:

  • E_OK:写入过程已成功完成。
  • DCM_E_PENDING:处理尚未完成,需要进一步调用。
  • DCM_E_FORCE_RCRRP:应用程序请求发送等待响应(Response Pending,NRC 0x78)。
  • E_NOT_OK:操作失败。

错误处理

若 Dcm_WriteFile 返回值 E_NOT_OK,则 DCM 模块发送否定 UDS 响应,其 NRC 对应于通过输出参数 ErrorCode 提供的值 [SWS_Dcm_91083]。

此文本由基于 AI 的系统生成,须根据 AUTOSAR 规范进行核实。

实现者指南即将推出(复杂度 I2)

函数 Dcm_ReadFileOrDir [SWS_Dcm_91085] 📄 PDF

Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 57060973c3b0 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

当在当前文件或目录上传(先前通过 UDS 服务 RequestFileTransfer 带有用于 ReadFile 的模式 0x04 或用于 ReadDir 的模式 0x05 启动)的上下文中收到符合格式的 UDS 服务 TransferData (0x36) 请求时,DCM 模块调用 Callout 函数 Dcm_ReadFileOrDir [SWS_Dcm_01445]。该函数用于提供作为响应发送给客户端的数据 [SWS_Dcm_91085]。接口声明可通过头文件 Dcm_Externals.h 获取 [SWS_Dcm_91085]。

执行为异步进行,并被指定为不可重入(Non Reentrant)[SWS_Dcm_91085]。交互与参数赋值取决于所传递的操作状态:

  • 操作状态(OpStatus):在带有 DCM_INITIAL 的初始调用中,所有输入参数均有效。在带有 DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK 的后续或中止调用中,所有输入参数均设置为 0x00 [SWS_Dcm_91085]。
  • 缓冲区和块长度:参数 DataLength 在输入侧传递最大允许块长度(对应于向客户端报告的值 maxNumberOfBlockLength),并在输出侧返回实际在 Data 中提供的字节长度,该长度不得超过输入值 [SWS_Dcm_91085]。解释:尽管 Data 在接口中形式上被声明为 In 参数,但它应该用于传递要读取的有效数据。 问题 Q-53de8a0bdbc4a2b4 (未决)
  • 返回值:该操作在成功提供数据时返回 E_OK,在处理尚未完成时返回 DCM_E_PENDING,或者在应用程序想要强制发送中间消息(Response Pending,NRC 0x78)时返回 DCM_E_FORCE_RCRRP [SWS_Dcm_91085]。

若应用程序中的处理失败,则返回 E_NOT_OK。在此错误情况下,DCM 模块向客户端发送否定 UDS 响应(NRC),其错误代码对应于在输出参数 ErrorCode 中设置的值 [SWS_Dcm_91085]。

此文本由 AI 生成,仅供参考。一切以官方 AUTOSAR 规范为准。

实现者指南即将推出(复杂度 I2)

函数 Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF

void Dcm_MainFunction (void);

This service is used for processing the tasks of the main loop.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: c8dffd7076b9 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Dcm_MainFunction 用于处理 Diagnostic Communication Manager([SWS_Dcm_00053])主循环的核心任务。其签名具有 void Dcm_MainFunction(void) 且不提供返回值。由于它通过头文件 SchM_Dcm.h 提供,其调用推测可能周期性地在基础软件调度器任务的上下文中进行。 问题 Q-e083a72aae447ab5 (未决)

一项关键任务是控制并跨周期继续进行异步流程:

  • 如果带有 Dcm_OpStatusType 的操作返回返回值 DCM_E_PENDING,则只要该状态持续存在,DCM 就会在每次调用 Dcm_MainFunction 时使用 OpStatus = DCM_PENDING 再次调用该操作([SWS_Dcm_00530])。
  • 如果 Dem_ClearDTC() 返回状态 DEM_PENDING,则该函数将在 Dcm_MainFunction 的下一个周期中再次被调用;DCM 会在需要时发送 NRC 78(ResponsePending)([SWS_Dcm_00703])。
  • 在设置了参数 FilterForFault-DetectionCounter 的情况下调用 Dem_SetDTCFilter(),必须强制在 Dcm_MainFunction 的上下文中进行([SWS_Dcm_00519])。
  • 在确认 RCR-RP 传输后,DCM 会从 Dcm_MainFunction 中再次使用 OpStatus = DCM_FORCE_RCRRP_OK 调用诸如 Dcm_WriteMemory 或 Dcm_ReadMemory 等操作([SWS_Dcm_00529]、[SWS_Dcm_00838]、[SWS_Dcm_00840])。
  • 如果对于 Xxx_GetSecurityAttemptCounter 报告了值 DCM_E_PENDING,则调用将被中断并在下一个周期中继续([SWS_Dcm_01351]);在超过配置的超时时间时,DCM 会使用 OpStatus = DCM_CANCEL 中止挂起的操作([SWS_Dcm_01352])。

本使用说明是基于 AUTOSAR 规范自动生成的。

实现者指南即将推出(复杂度 I2)

函数 Xxx_GetSeed [SWS_Dcm_01151] 📄 PDF

Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5df748b42b56 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_GetSeed(通过 Dcm_Externals.h 提供)用于由应用程序异步向 DCM 模块提供种子值 [SWS_Dcm_01151]。一旦接收到子功能类型为“requestSeed”的服务 SecurityAccess (0x27) 的 UDS 请求,且请求的安全级别尚未激活,该函数即被调用 [SWS_Dcm_00862],[SWS_Dcm_00324]。

调用上下文与参数

该接口定义为不可重入(Non Reentrant)并以异步方式运行 [SWS_Dcm_01151]:

  • SecurityAccessDataRecord:指向用于种子计算的附加输入数据的指针;根据 DcmDspSecurityADRSize,最小大小为一字节 [SWS_Dcm_01151]。
  • OpStatus:指示异步操作的当前状态 [SWS_Dcm_01151]。
  • Seed:输出指针,应用程序通过其提供计算出的种子 [SWS_Dcm_01151]。
  • ErrorCode:用于返回否定错误码(NRC)的输出参数 [SWS_Dcm_01151]。

返回值与错误处理

  • E_OK:种子已成功计算并提供 [SWS_Dcm_01151]。
  • DCM_E_PENDING:计算尚未完成;完成需要后续计算或调用 [SWS_Dcm_01151]。
  • E_NOT_OK:请求失败。在此情况下,DCM 模块发送带有在参数 ErrorCode 中传递的 NRC 值的否定 UDS 响应 [SWS_Dcm_01151],[SWS_Dcm_00659]。

集成说明

根据 DcmDspSecurityUsePort 的配置,在 USE_ASYNCH_FNC 时作为 C 函数连接(通过 DcmDspSecurityGetSeedFnc 引用)[SWS_Dcm_00862],或在 USE_ASYNCH_CLIENT_SERVER 时作为 Rte 操作连接 [SWS_Dcm_00324]。只要无需传递附加访问数据,就会使用不带参数 SecurityAccessDataRecord 的替代函数签名 [SWS_Dcm_91003]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_GetSeed [SWS_Dcm_91003] 📄 PDF

Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 664a58989509 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_GetSeed 作为模块 DCM 面向应用程序的异步接口,用于在 UDS 服务 SecurityAccess(0x27)中遇到类型为“requestSeed”的请求时提供种子值 [SWS_Dcm_91003]、[SWS_Dcm_00862]。只要安全级别尚未激活且配置规定了 USE_ASYNCH_CLIENT_SERVER 或 USE_ASYNCH_FNC,调用便由 DCM DSP 子模块发起 [SWS_Dcm_00324]、[SWS_Dcm_00862]。

该接口设计为异步且不可重入(Non Reentrant)[SWS_Dcm_91003]。处理进度的控制通过输入参数 OpStatus(类型 Dcm_OpStatusType)进行 [SWS_Dcm_91003]。定义的返回值包括成功提供时的 E_OK、出错时的 E_NOT_OK,以及在种子生成仍在进行且需要进一步调用时的 DCM_E_PENDING [SWS_Dcm_91003]。生成的值通过指针 Seed(输入输出/输出缓冲区)传递 [SWS_Dcm_91003]。

如果操作失败且 Xxx_GetSeed 返回 E_NOT_OK,则 DCM 模块必须发送带有错误码的否定响应(NRC),该错误码通过输出参数 ErrorCode(Dcm_NegativeResponseCodeType)设定 [SWS_Dcm_91003]、[SWS_Dcm_00659]。该服务通过头文件 Dcm_Externals.h 声明 [SWS_Dcm_91003]。

本段文本由人工智能基于 AUTOSAR 标准 R20-11 生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_CompareKey [SWS_Dcm_91004] 📄 PDF

Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e106fb6bb967 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_CompareKey 由 Diagnostic Communication Manager([SWS_Dcm_91004])以异步且非重入的方式调用,以便在 UDS 服务 SecurityAccess(0x27,子功能 sendKey)的框架内将接收到的密钥与应用程序的内部逻辑进行比对([SWS_Dcm_00863])。当访问状态尚未激活、种子请求成功且配置参数 DcmDspSecurityUsePort 设置为 USE_ASYNCH_CLIENT_SERVER([SWS_Dcm_00324]),或者根据 [SWS_Dcm_00863] 该函数接口通过 USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc 配置时,使用该函数。该接口在 Dcm_Externals.h 中声明([SWS_Dcm_91004])。

传递内容包括待检查的密钥指针 Key、当前操作状态 OpStatus(类型为 Dcm_OpStatusType)以及用于在发生错误时输出否定响应码的指针 ErrorCode([SWS_Dcm_91004])。指定的返回值包括:

  • E_OK:密钥检查成功([SWS_Dcm_91004])。
  • DCM_E_PENDING:检查尚未完成;需要由 DCM 模块进一步调用以完成处理([SWS_Dcm_91004])。
  • E_NOT_OK:处理未成功。随后 DCM 发送带有在 ErrorCode 中设置的 NRC 的 UDS 否定响应,而不会更改内部安全等级或增加失败尝试计数器(AttemptCounter)([SWS_Dcm_01150])。
  • DCM_E_COMPARE_KEY_FAILED:密钥不匹配([SWS_Dcm_91004])。

如果密钥比对失败(DCM_E_COMPARE_KEY_FAILED),则在配置了 DcmDspSecurityNumAttDelay 的情况下,AttemptCounter 将递增([SWS_Dcm_01397])。如果计数器低于限值,DCM 发送 NRC 0x35(InvalidKey)([SWS_Dcm_00660])。如果失败尝试次数达到或超过配置的限制 DcmDspSecurityNumAttDelay,DCM 将启动时长为 DcmDspSecurityDelayTime 的 SecurityDelayTimer,并发送 NRC 0x36(exceededNumberOfAttempts)([SWS_Dcm_01349])。在这两种情况下,安全等级均保持不变。

本使用说明由自动化生成,基于 AUTOSAR Classic R20-11 DCM 模块的规范。

实现者指南即将推出(复杂度 I3)

函数 Xxx_GetSecurityAttemptCounter [SWS_Dcm_01152] 📄 PDF

Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);

Read the attempt counter for a specific security level from the application

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: bf7f9ceecc6b 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

异步且不可重入的函数 [SWS_Dcm_01152] 在 DCM 初始化时从应用程序中读取已配置安全级别的当前失败尝试计数器。对 DcmDspSecurityRow 中配置参数 DcmDspSecurityAttemptCounterEnabled 设置为 TRUE 的每个条目均进行调用 [SWS_Dcm_01154]。

流程控制通过带有值 DCM_INITIAL、DCM_PENDING 或 DCM_CANCEL 的参数 OpStatus 进行管理 [SWS_Dcm_01152]。如果函数返回 DCM_E_PENDING,DCM 将中断调用链并在 Dcm_MainFunction() 的下一个周期中继续该调用链 [SWS_Dcm_01351]。如果超过了在第一个周期后配置的超时监控 DcmDspSecurityMaxAttemptCounterReadoutTime,DCM 将以 DCM_CANCEL 中止尚待处理的过程 [SWS_Dcm_01352]。

成功时,接口返回 E_OK 并通过输出参数 AttemptCounter 传递计数器数值 [SWS_Dcm_01152]。如果调用返回 E_NOT_OK,DCM 会自动将计数器设置为针对该安全级别配置的值 DcmDspSecurityNumAttDelay [SWS_Dcm_01156]。

只要并非所有计数器值都已最终确定或中止,DCM 就会以否定响应码 conditionsNotCorrect (0x22) 拒绝用于请求种子的对 SecurityAccess (0x27) 的任何请求 [SWS_Dcm_01354]。查询链完成后,DCM 会检查计数器值:如果有至少一个计数器达到或超过阈值 DcmDspSecurityNumAttDelay,DCM 将使用 DcmDspSecurityDelayTimeOnBoot 和 DcmDspSecurityDelayTime 中的较大值启动 SecurityDelayTimer [SWS_Dcm_01355]。

本使用说明基于 AUTOSAR 规范 R20-11 自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_SetSecurityAttemptCounter [SWS_Dcm_01153] 📄 PDF

Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);

Set the attempt counter for a specific security level in the application

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 47588581abb8 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_SetSecurityAttemptCounter 用于设置应用程序中特定安全级别的尝试计数器([SWS_Dcm_01153])。它通过头文件 Dcm_Externals.h 提供。

调用与语义

执行方式为异步,并指定为不可重入(Non Reentrant)([SWS_Dcm_01153])。该调用通过带有值 DCM_INITIAL、DCM_PENDING 或 DCM_CANCEL 的参数 OpStatus 控制流程。新的计数器值通过输入参数 AttemptCounter(uint8)传递。

返回值与错误处理

使用 Std_ReturnType 作为返回类型([SWS_Dcm_01153]):

  • E_OK:请求已成功完成。
  • E_NOT_OK:执行未成功。
  • DCM_E_PENDING:处理尚未结束;需要进一步调用以完成。

若正在运行的异步操作被中止,DCM 将传递状态 DCM_CANCEL([SWS_Dcm_01153])。

交互与约束条件

DCM 模块一旦更改了尝试计数器,就会调用 Xxx_SetSecurityAttemptCounter,以通知应用程序该更新([SWS_Dcm_01155])。这要求对应 DcmDspSecurityRow 的配置参数 DcmDspSecurityAttemptCounterEnabled 配置为 TRUE([SWS_Dcm_01155])。由于该接口不可重入,应用程序必须排除对同一实例的并发执行([SWS_Dcm_01153])。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReadData [SWS_Dcm_00793] 📄 PDF

Std_ReturnType Xxx_ReadData (uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3c55bb861b02 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

当配置参数DcmDspDataUsePort设置为USE_DATA_SYNCH_CLIENT_SERVER时,同步函数Xxx_ReadData向应用程序请求 DID 或 PID 的当前数据值[SWS_Dcm_00793]。该接口通过头文件Dcm_Externals.h提供,并具有服务 ID 0x34 [SWS_Dcm_00793]。被调用的应用程序将请求的有效负载数据直接复制到传入的缓冲区Data中[SWS_Dcm_00793]。

关于返回值,规定该调用无一例外地返回E_OK [SWS_Dcm_00793]。此签名未指定特定的错误代码、否定响应或 DET/DEM 消息。解释:在此接口层面上推测不考虑数据提供失败的情况,因为与异步变体[SWS_Dcm_91005]不同,既不存在用于否定响应码(NRC)的参数ErrorCode,也不存在诸如E_NOT_OK或DCM_E_PENDING之类的返回值。 问题 Q-adcf0171ecfd37c4 (未决)

关于并发性和边界条件,该函数被指定为不可重入(Non Reentrant),并且完全同步工作[SWS_Dcm_00793]。与诊断请求的交互发生在多个场景中:

  • 当接收到带有不可用 PID 的 OBD 服务 $01 请求时,DCM 为该 PID 的所有数据调用各自配置的Xxx_ReadData函数,以采集响应值[SWS_Dcm_00408]。
  • 当接收到带有不可用标识符的服务 0x22(ReadDataByIdentifier)的 UDS 请求时,DCM 为OBDDataIdentifier [SWS_Dcm_01380]以及OBDInfoTypeDataIdentifier [SWS_Dcm_01389]的所有数据调用这些函数。
  • 相反,如果需要异步行为,则根据[SWS_Dcm_91006]或[SWS_Dcm_91005]采用带有OpStatus的独立签名。

本文档由 AI 生成,完全基于 Release R20-11 的规范。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReadData [SWS_Dcm_91006] 📄 PDF

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7c21ae7ad0af 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

只要参数DcmDspDataUsePort配置为USE_DATA_ASYNCH_CLIENT_SERVER([SWS_Dcm_91006]),函数Xxx_ReadData便用于从应用程序异步查询 DID 或 PID 的数据值。它通过头文件Dcm_Externals.h声明([SWS_Dcm_91006])。

调用时,参数OpStatus(类型Dcm_OpStatusType)控制正在进行的操作的进度,而通过指针Data(类型uint8*)传递输出缓冲区,所请求的数据将被复制到该缓冲区中([SWS_Dcm_91006])。定义的返回值包括成功完成时的E_OK,以及在处理仍在继续且需要进一步调用以完成时的DCM_E_PENDING([SWS_Dcm_91006])。

DCM 模块将该函数集成到以下诊断流程中:

  • 在接收到 OBD Service $01 时,DCM 通过配置的Xxx_ReadData函数读取当前 PID 值(可用性 PID 除外)([SWS_Dcm_00408])。
  • 在 UDS Service 0x22(ReadDataByIdentifier)时,DCM 为 OBDDataIdentifier([SWS_Dcm_01380])和 OBDInfoTypeDataIdentifier([SWS_Dcm_01389])调用该函数。

在执行方面,该函数被指定为不可重入(Non Reentrant)([SWS_Dcm_91006])。与同步接口([SWS_Dcm_00793])或带有附加ErrorCode参数的异步变体([SWS_Dcm_91005])不同,此函数形式不提供否定响应码的直接返回。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I3)

函数 Xxx_ReadData [SWS_Dcm_91005] 📄 PDF

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 85898fb6f53f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

只要配置参数 DcmDspDataUsePort 设置为 USE_DATA_ASYNCH_CLIENT_SERVER,函数 Xxx_ReadData 便向应用程序异步请求 DID 或 PID 的数据值 [SWS_Dcm_91005]。函数声明通过接口文件 Dcm_Externals.h 提供 [SWS_Dcm_91005]。

该接口具有以下调用和运行特性:

  • 语义和参数:输入参数 OpStatus 控制正在进行的操作的进度 [SWS_Dcm_91005]。成功完成时,请求的有效数据被复制到输出缓冲区 Data 中,并返回 E_OK [SWS_Dcm_91005]。如果应用程序需要更多处理时间,则发出 DCM_E_PENDING 信号,随后需要进行后续调用 [SWS_Dcm_91005]。
  • 错误处理:如果操作失败并返回 E_NOT_OK,则 DCM 模块评估输出参数 ErrorCode 并发送带有此 NRC 代码的否定诊断响应 [SWS_Dcm_91005]。
  • 并发性:该函数被定义为不可重入(Non Reentrant)[SWS_Dcm_91005]。解释:挂起处理时的重复调用应在 DCM 主处理循环中按序进行。 问题 Q-541226d5f242f7c2 (未决)
  • 交互:DCM 模块在 OBD 服务 $01 针对不可用 PID 发出请求时 [SWS_Dcm_00408],以及在 UDS 服务 ReadDataByIdentifier (0x22) 针对 OBDDataIdentifier [SWS_Dcm_01380] 和 OBDInfoTypeDataIdentifier [SWS_Dcm_01389] 时调用该函数。与同步变体 [SWS_Dcm_00793] 或没有 NRC 参数的异步接口 [SWS_Dcm_91006] 相比,该签名允许传输特定的否定错误。

本段文本由人工智能生成,并完全基于 AUTOSAR 版本 R20-11 的规范要求。

实现者指南即将推出(复杂度 I3)

函数 Xxx_WriteData [SWS_Dcm_00794] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a454be11e891 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

函数 Xxx_WriteData 由 Diagnostic Communication Manager (DCM) 调用,以请求应用程序写入 DID 数据值(Data Identifier)([SWS_Dcm_00794])。声明通过头文件 Dcm_Externals.h 提供。调用在服务 ID 0x51 下同步进行([SWS_Dcm_00794])。

参数与返回值:

  • Data(in):指向带有待写入有效载荷数据的缓冲区的指针([SWS_Dcm_00794])。
  • ErrorCode(out):指向在失败时写入否定诊断代码(NRC)的变量的指针([SWS_Dcm_00794])。
  • 返回值(Std_ReturnType):E_OK 指示写入成功,E_NOT_OK 指示操作失败([SWS_Dcm_00794])。

错误处理

如果函数返回 E_NOT_OK,则 DCM 模块读取参数 ErrorCode 并发送带有此 NRC 代码的否定诊断响应([SWS_Dcm_00794])。

并发性与限制

该函数被指定为不可重入(Non Reentrant)([SWS_Dcm_00794]),不得并发执行。

相互作用

由于不存在长度参数,该变体可能旨在用于具有固定数据长度的 DID。 问题 Q-ebc074ac1cb66aaa (未决)对于具有可变长度的 DID,AUTOSAR 提供了带有参数 DataLength 的同步签名([SWS_Dcm_91007])。此外,对于耗时的过程,存在带有 OpStatus 且可能返回 DCM_E_PENDING 的异步变体,既包括固定数据长度([SWS_Dcm_91008]),也包括可变长度参数([SWS_Dcm_91009])。

此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_WriteData [SWS_Dcm_91007] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 33408eaf87e7 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数Xxx_WriteData用于请求应用程序写入数据标识符(DID)的数据值[SWS_Dcm_91007]。该接口通过头文件Dcm_Externals.h声明,并具有服务 ID 0x52 [SWS_Dcm_91007]。该调用同步执行,并被指定为不可重入(Non Reentrant),因此不得对同一函数进行并发调用[SWS_Dcm_91007]。

在参数方面,该函数接收包含待写入有效负载数据的缓冲区Data以及包含以字节为单位的长度规范的DataLength [SWS_Dcm_91007]。作为返回值,它提供类型Std_ReturnType,成功执行时返回E_OK,出错时返回E_NOT_OK [SWS_Dcm_91007]。如果操作失败并返回E_NOT_OK,则 DCM 模块必须向诊断测试仪发送否定响应;此时否定响应码(NRC)对应于通过指针参数ErrorCode传递的值[SWS_Dcm_91007]。

在整个系统中,[SWS_Dcm_91007]代表具有显式长度规范的 DID 的同步变体。此外,还存在没有参数DataLength的同步变体[SWS_Dcm_00794](服务 ID 0x51)。对于较长的写入过程,标准提供了异步接口:不带长度规范的[SWS_Dcm_91008](服务 ID 0x35)以及带有DataLength的[SWS_Dcm_91009](服务 ID 0x3e)。这两个异步函数均通过OpStatus控制,除E_OK和E_NOT_OK外,还可以返回DCM_E_PENDING [SWS_Dcm_91008] [SWS_Dcm_91009]。

本使用说明基于 AUTOSAR Classic Release R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_WriteData [SWS_Dcm_91008] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 073fd835e70e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

函数Xxx_WriteData请求应用程序写入数据标识符(DID)的数据值[SWS_Dcm_91008]。它在头文件Dcm_Externals.h中声明,并具有带服务 ID 0x35的异步执行语义[SWS_Dcm_91008]。

参数和返回值划分如下[SWS_Dcm_91008]:

  • Data(IN):指向包含待写入数据的缓冲区的指针。
  • OpStatus(IN):当前操作的状态,用于控制异步调用流程。
  • ErrorCode(OUT):指向错误代码(NRC)的指针,该代码在发生错误时设置。
  • 返回值(Std_ReturnType):E_OK确认写入过程成功,E_NOT_OK报告失败,DCM_E_PENDING表示操作仍在进行中且需要进一步调用以完成。

错误处理与并发

如果调用返回值E_NOT_OK,则 DCM 模块必须发送带有输出参数ErrorCode中传递的 NRC 值的否定响应[SWS_Dcm_91008]。该函数被指定为不可重入[SWS_Dcm_91008],因此针对同一实例的并发或重叠调用是不允许的。

交互与变体

符合[SWS_Dcm_91008]的此接口涵盖了没有独立长度参数的异步写入访问。AUTOSAR 为此在 DCM 中定义了相关变体:不带长度规范的同步签名[SWS_Dcm_00794],以及带有用于同步流程[SWS_Dcm_91007]和异步流程[SWS_Dcm_91009]的附加参数DataLength的签名。

本使用说明是由 AI 系统基于 AUTOSAR CP R20-11 规范生成的。

实现者指南即将推出(复杂度 I2)

函数 Xxx_WriteData [SWS_Dcm_91009] 📄 PDF

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9f5cd6e5b7ea 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数Xxx_WriteData请求应用程序写入数据标识符(DID)的数据值[SWS_Dcm_91009]。它通过头文件Dcm_Externals.h声明,并具有服务 ID 0x3e [SWS_Dcm_91009]。执行是异步进行的(Asynchronous),为此传递以下参数:

  • Data(in):指向包含待写入有效负载数据的缓冲区的指针[SWS_Dcm_91009]。
  • DataLength(in):待写入数据的长度,以字节为单位[SWS_Dcm_91009]。
  • OpStatus(in):操作状态(Dcm_OpStatusType),用于控制异步处理进度[SWS_Dcm_91009]。
  • ErrorCode(out):用于在发生错误时接收否定响应码(NRC)的指针[SWS_Dcm_91009]。

作为类型为Std_ReturnType的返回值,定义了E_OK(写入请求成功完成)、E_NOT_OK(请求失败)以及DCM_E_PENDING [SWS_Dcm_91009]。状态DCM_E_PENDING表明该过程尚未完成,需要进一步的后续调用才能完成[SWS_Dcm_91009]。解释:当返回DCM_E_PENDING且带有继续的OpStatus时,DCM 大概会循环重新调用该函数,直到得出最终结果。 问题 Q-fdbd734dab052f5c (未决)

错误处理与并发

如果函数返回数值E_NOT_OK,则必须通过参数ErrorCode提供相应的错误代码;DCM 模块随后发送带有此 NRC 值的否定响应[SWS_Dcm_91009]。针对该接口的有效负载中未定义特定的 DET 或 DEM 消息。关于并发性,该函数被指定为不可重入(Non Reentrant)[SWS_Dcm_91009]。

交互与接口变体

签名[SWS_Dcm_91009]涵盖具有显式长度规范的异步写入访问。DCM 中存在Xxx_WriteData的其他变体:

注意:本使用说明是基于 AUTOSAR Classic Release R20-11 规范自动生成的。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReadDataLength [SWS_Dcm_00796] 📄 PDF

Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 06fc1b2bd018 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

通过函数 Xxx_ReadDataLength,DCM 模块请求应用程序确定并返回某项数据的字节长度 [SWS_Dcm_00796]。该接口在头文件 Dcm_Externals.h 中声明,并具有服务 ID 0x36 [SWS_Dcm_00796]。该查询同步执行 [SWS_Dcm_00796]。应用程序通过类型为 uint16* 的输出参数 DataLength 将要读取的数据的字节长度传递给 DCM [SWS_Dcm_00796]。未定义输入参数或输入/输出参数 [SWS_Dcm_00796]。作为返回值,该函数始终提供类型为 Std_ReturnType 的 E_OK [SWS_Dcm_00796]。

并发性与限制

该接口被指定为不可重入(Non Reentrant)[SWS_Dcm_00796]。由于该函数同步工作且根据规范始终报告 E_OK,因此未针对此调用规定特定的错误代码或不同的状态返回值 [SWS_Dcm_00796]。

相互作用

除同步函数外,还存在一个同名的异步变体,其服务 ID 为 0x4c,同样通过 Dcm_Externals.h 提供 [SWS_Dcm_91010]。同步版本 [SWS_Dcm_00796] 不需要操作状态,而异步对应项则要求类型为 Dcm_OpStatusType 的输入参数 OpStatus [SWS_Dcm_91010]。此外,如果请求尚未完成且需要更多调用来完成,则异步接口除了 E_OK 之外还可以提供返回值 DCM_E_PENDING [SWS_Dcm_91010]。

此文本由 AI 生成,用作参考指引。具有约束力的是相应 AUTOSAR 规范的规定。

实现者指南即将推出(复杂度 I1)

函数 Xxx_ReadDataLength [SWS_Dcm_91010] 📄 PDF

Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 33edca28ea35 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 [SWS_Dcm_91010](服务 ID 0x4c)请求应用程序确定数据元素以字节为单位的数据长度。它在头文件 Dcm_Externals.h 中声明,用于 Diagnostic Communication Manager (DCM) 灵活查询诊断数据长度。

用法与语义

调用时,DCM 模块通过类型为 Dcm_OpStatusType 的输入参数 OpStatus 传递当前进度([SWS_Dcm_91010])。应用程序将查询结果写入输出参数 DataLength(类型 uint16*)。如果数据长度无法立即获取,函数通过返回值 DCM_E_PENDING 发出信号,表示处理仍在进行且需要进一步调用([SWS_Dcm_91010])。一旦结果就绪,应用程序便返回 E_OK 报告完成。

并发性与限制

根据规范,该函数被归类为非重入([SWS_Dcm_91010]),因此必须排除 DCM 的并发调用。由于规范除了 DCM_E_PENDING 之外未规定具体的错误值,因此在返回 E_OK 时,DCM 应该始终假定已有效设置了字节大小。 问题 Q-e7ecd3a518e2cbcb (未决)

相互作用

异步接口 [SWS_Dcm_91010] 与相关的同步变体 [SWS_Dcm_00796](服务 ID 0x36)有所不同。后者没有参数 OpStatus,以同步方式执行,并始终立即返回长度 E_OK。相反,[SWS_Dcm_91010] 允许应用程序将耗时的计算异步分散到多个调用周期中。

本文件由人工智能根据 AUTOSAR 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ConditionCheckRead [SWS_Dcm_00797] 📄 PDF

Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: de67913a1de3 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步标注函数 Xxx_ConditionCheckRead 通过头文件 Dcm_Externals.h 提供,用于向应用程序查询读取诊断数据的条件是否满足 [SWS_Dcm_00797]。

该接口没有输入参数,并通过类型为 Std_ReturnType 的返回值指示检查状态 [SWS_Dcm_00797]:

如果函数返回 E_NOT_OK,则 DCM 模块发送带有错误码的否定响应(Negative Response),该错误码由应用程序通过输出参数 ErrorCode(类型 Dcm_NegativeResponseCodeType*)传递 [SWS_Dcm_00797]。

关于并发性,该函数被指定为不可重入(Non Reentrant),并以服务 ID 0x49 同步执行 [SWS_Dcm_00797]。因此,在应用端应当立即评估该检查而无阻塞等待时间,以避免造成同步 DCM 调用方延迟。 问题 Q-ada29c78c29d961e (未决)

与此同步操作不同,[SWS_Dcm_91011] 在服务 ID 0x37 下定义了异步变体。该变体额外使用输入参数 OpStatus(类型 Dcm_OpStatusType),并且在需要后续步骤以完成检查时,除 E_OK 和 E_NOT_OK 外还可以返回 DCM_E_PENDING [SWS_Dcm_91011]。

此使用说明基于 AUTOSAR 规范 R20-11 自动生成。

实现者指南即将推出(复杂度 I1)

函数 Xxx_ConditionCheckRead [SWS_Dcm_91011] 📄 PDF

Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: fc286a7e5706 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数 Xxx_ConditionCheckRead 通过头文件 Dcm_Externals.h 提供,用于向应用软件查询读取诊断数据的条件是否满足 [SWS_Dcm_91011]。执行在服务 ID 0x37 下以异步方式进行 [SWS_Dcm_91011]。通过输入参数 OpStatus(类型 Dcm_OpStatusType)传递正在运行的操作的当前状态 [SWS_Dcm_91011]。

返回值与错误处理

作为返回值,该函数提供类型为 Std_ReturnType 的状态[SWS_Dcm_91011]:

  • E_OK:请求成功且满足读取条件 [SWS_Dcm_91011]。
  • E_NOT_OK:检查失败 [SWS_Dcm_91011]。在这种情况下,应用必须通过输出参数 ErrorCode 设置一个类型为 Dcm_NegativeResponseCodeType 的否定响应码(NRC);随后 DCM 模块发送带有该 NRC 的否定响应 [SWS_Dcm_91011]。
  • DCM_E_PENDING:检查尚未完成,因此需要进一步调用以完成 [SWS_Dcm_91011]。

并发性与区别

该接口被指定为非重入(Non Reentrant)[SWS_Dcm_91011]。与此异步变体不同,[SWS_Dcm_00797] 在服务 ID 0x49 下定义了一个不带 OpStatus 参数的同步签名,该签名仅返回 E_OK 或 E_NOT_OK [SWS_Dcm_00797]。

此使用说明由AI基于AUTOSAR R20-11规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_GetScalingInformation [SWS_Dcm_91012] 📄 PDF

Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application for the scaling information of a Data.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9208fcf4cae3 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

异步接口 Xxx_GetScalingInformation 通过头文件 Dcm_Externals.h 提供,用于从应用程序请求数据元素的缩放信息 [SWS_Dcm_91012]。一旦接收到针对 UDS 服务 ReadScalingByIdentifier 的诊断请求,DCM 模块就会针对为所请求 DID 配置的每个数据项调用此函数 [SWS_Dcm_00394]。

参数与返回值

该函数定义了以下参数和语义 [SWS_Dcm_91012]:

  • OpStatus(输入):传递正在运行的操作的当前状态。
  • ScalingInfo(输出):用于接收缩放信息(scalingByte 和 scalingByteExtension)的缓冲区。
  • ErrorCode(输出):在操作失败时代收否定响应码。

指定的返回值包括:成功完成时的 E_OK、发生错误时的 E_NOT_OK,以及在处理尚未完成且需要进一步调用以完成时的 DCM_E_PENDING [SWS_Dcm_91012]。

错误处理与并发

如果调用返回 E_NOT_OK,则 DCM 模块必须发送一个否定响应,其 NRC 对应于通过输出参数 ErrorCode 提供的值 [SWS_Dcm_91012]。该函数被指定为非重入(Non Reentrant)[SWS_Dcm_91012]。Interpretation:是调用带有 OpStatus 的此异步函数,还是调用备选指定的无 OpStatus 的同步变体 [SWS_Dcm_00798],应该取决于相应 DID 的配置。 问题 Q-c4054a798f17a52c (未决)

本段文本由 AI 创建;无法保证信息的正确性和完整性。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReturnControlToECU [SWS_Dcm_01285] 📄 PDF

Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to return control to ECU of an IOControl.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e19d5f1a8714 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_ReturnControlToECU 通过头文件 Dcm_Externals.h 提供,并请求应用程序将输入/输出控制(IOControl)的控制权交还给 ECU [SWS_Dcm_01285]。该调用同步进行,并被指定为不可重入 [SWS_Dcm_01285]。

参数和变体

函数签名取决于外部控制掩码的配置 [SWS_Dcm_01285]:

  • 如果 DcmDspDidControlMask 设置为 DCM_CONTROLMASK_EXTERNAL 且掩码大小最多为四个字节(DcmDspDidControlMaskSize <= 0x04),则传递类型为 Dcm_ControlMask_{DID}Type 的输入参数 controlMask [SWS_Dcm_01285]。
  • 如果掩码大小为 5 个或更多字节(DcmDspDidControlMaskSize >= 0x05),则改用类型为 uint8* 的指针 controlMask2 [SWS_Dcm_01285]。
  • 发生错误时,函数通过输出参数 ErrorCode(类型 Dcm_NegativeResponseCodeType*)将具体的否定响应码(NRC)传递给 DCM [SWS_Dcm_01285]。

返回值与错误处理

该函数返回状态 Std_ReturnType。成功归还控制权时,应用程序报告 E_OK [SWS_Dcm_01285]。若操作失败,函数必须返回 E_NOT_OK;在这种情况下,DCM 模块会向诊断仪发送带有 ErrorCode 中存储的 NRC 的否定响应 [SWS_Dcm_01285]。

交互与调用上下文

当 DcmDspDataUsePort 配置为 USE_DATA_SYNCH_FNC、USE_DATA_ASYNCH_FNC 或 USE_DATA_ASYNCH_FNC_ERROR 时,DCM 会调用已配置的函数接口(参数 DcmDspDataReturnControlToEcuFnc)[SWS_Dcm_01435]。除常规诊断操作外,在必须中止活动的 IO 控制序列时,DCM 尤其会调用 Xxx_ReturnControlToECU [SWS_Dcm_01435]。

本使用说明基于规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 Xxx_ResetToDefault [SWS_Dcm_01286] 📄 PDF

Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9813f0093a24 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数接口 Xxx_ResetToDefault 通过头文件 Dcm_Externals.h 提供,用于请求应用程序将 I/O 控制(IOControl)重置为默认值 [SWS_Dcm_01286]。

调用上下文与参数

该函数的服务 ID 为 0x4d,以同步方式工作,并被指定为非重入 [SWS_Dcm_01286]。根据所配置的外部控制掩码大小,将传递两个备选输入参数之一:

  • 当 DcmDspDataUsePort 配置为 USE_DATA_SYNCH_FNC、DcmDspDidControlMask 处于 DCM_CONTROLMASK_EXTERNAL 且 DcmDspDidControlMaskSize 最多为 0x04 时,使用 controlMask(类型 Dcm_ControlMask_{DID}Type)[SWS_Dcm_01286]。
  • 在相同的边界条件下,如果 DcmDspDidControlMaskSize 配置为大于或等于 0x05,则使用 controlMask2(类型 uint8*)[SWS_Dcm_01286]。

返回值与错误处理

如果重置能够成功执行,函数将返回 E_OK [SWS_Dcm_01286]。如果操作失败,则必须返回 E_NOT_OK。在这种情况下,应用程序会将相应的否定响应码(NRC)填入输出参数 ErrorCode(类型 Dcm_NegativeResponseCodeType*),DCM 模块会将其作为否定反馈传输给测试仪 [SWS_Dcm_01286]。

相互协作与区分

如果系统设计为通过 USE_DATA_ASYNCH_FNC 或 USE_DATA_ASYNCH_FNC_ERROR 进行异步接口处理,则将使用带有附加参数 OpStatus 且服务 ID 为 0x3c 的异步变体来替代此同步函数 [SWS_Dcm_01314]。

本段文本由 AI 生成,基于 AUTOSAR Classic R20-11 规范。

实现者指南即将推出(复杂度 I1)

函数 Xxx_ResetToDefault [SWS_Dcm_01314] 📄 PDF

Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: bb8786261cbc 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

异步函数 [SWS_Dcm_01314] 请求应用程序将输入/输出控制(IOControl)重置为其默认值。它在 Dcm_Externals.h 中声明,且其服务 ID 为 0x3c。通过参数 OpStatus 控制操作的进度。在处理尚未完成时,函数返回 DCM_E_PENDING;而成功完成时则通过 E_OK 确认。

根据配置和掩码大小(DcmDspDidControlMaskSize 至 4 字节或 5 字节起),在外部掩码情况下会额外传递 controlMask 或 controlMask2 [SWS_Dcm_01314]。如果重置失败,函数将返回 E_NOT_OK。在这种情况下,必须通过输出参数 ErrorCode 传递一个否定响应码(NRC),DCM 模块会将其作为否定响应发送给测试仪 [SWS_Dcm_01314]。

该函数被指定为非重入(Non Reentrant)[SWS_Dcm_01314]。当 DcmDspDataUsePort 设置为 USE_DATA_ASYNCH_FNC 或 USE_DATA_ASYNCH_FNC_ERROR 时使用它。对于同步接口配置(USE_DATA_SYNCH_FNC),可选择使用不带 OpStatus 的同步变体 [SWS_Dcm_01286]。

本段文本由 AI 创建,基于 AUTOSAR R20-11 的规范状态。

实现者指南即将推出(复杂度 I2)

函数 Xxx_FreezeCurrentStateManager [SWS_Dcm_01290] 📄 PDF

Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 80356e7cc659 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步函数 Xxx_FreezeCurrentState(在元素目录中列为 Xxx_FreezeCurrentStateManager)用于请求应用程序冻结输入或输出控制(IOControl)的当前状态 [SWS_Dcm_01290]。该函数可通过头文件 Dcm_Externals.h 获取,其 Service ID 为 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager 第279页。(Interpretation:前缀 Xxx 可能是相应应用模块的占位符。) 问题 Q-f8c864cda732acc2 (未决)

接口参数取决于外部控制掩码的配置(DcmDspDidControlMask 设置为 DCM_CONTROLMASK_EXTERNAL)[SWS_Dcm_01290]:

  • controlMask(输入,类型 Dcm_ControlMask_{DID}Type):当掩码大小 DcmDspDidControlMaskSize 配置为小于或等于 4 字节(<= 0x04)时传递。
  • controlMask2(输入,类型 uint8*):当掩码大小至少包含 5 字节(=> 0x05)时改用此项。
  • ErrorCode(输出,类型 Dcm_NegativeResponseCodeType*):用于在发生错误时接收否定响应码的指针。

错误处理与返回值

作为 Std_ReturnType,该函数在成功执行时返回 E_OK,在请求未成功时返回 E_NOT_OK [SWS_Dcm_01290]。如果发生错误并返回 E_NOT_OK,应用程序必须在参数 ErrorCode 中填入特定的否定响应码(NRC);DCM 模块随后发送带有该 NRC 码的诊断否定响应 AUTOSAR_SWS_DiagnosticCommunicationManager 第279页。

并发性与限制

该操作被指定为不可重入(Non Reentrant)[SWS_Dcm_01290]。调用方必须确保针对同一实例的调用同步执行且无并发重叠。

本文本由 AI 创建,仅供参考。具有约束力的是 AUTOSAR 规范。

实现者指南即将推出(复杂度 I1)

函数 Xxx_FreezeCurrentStateManager [SWS_Dcm_01315] 📄 PDF

Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 18f0c2b6db95 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

异步函数 Xxx_FreezeCurrentState 由 DCM 模块调用,以请求应用软件冻结输入/输出控制(IOControl)的当前状态 [SWS_Dcm_01315]。其声明通过头文件 Dcm_Externals.h 提供 [SWS_Dcm_01315]。

参数和控制掩码

使用以下参数进行调用 [SWS_Dcm_01315]:

  • OpStatus:传递异步操作的当前状态(Dcm_OpStatusType)。
  • controlMask 或 controlMask2:如果控制掩码被配置为外部(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL)并且使用异步函数接口,则 DCM 根据 DcmDspDidControlMaskSize,在最多 4 字节时传递参数 controlMask(类型为 Dcm_ControlMask_{DID}Type),而在 5 字节及以上时传递指针 controlMask2(uint8*)。
  • ErrorCode:指向 Dcm_NegativeResponseCodeType 的指针,用于返回错误码。

返回值与错误处理

该函数返回类型为 Std_ReturnType 的状态 [SWS_Dcm_01315]:

  • E_OK:状态冻结已成功完成。
  • DCM_E_PENDING:请求仍在处理中,需要后续调用。
  • E_NOT_OK:操作失败。在这种情况下,DCM 会发送带有通过 ErrorCode 设置的 NRC 值的诊断否定响应。

并发性

该接口定义为不可重入(Non Reentrant),因此每个控制实例需要同步处理 [SWS_Dcm_01315]。

本段文本由 AI 生成并根据编辑准则整理。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ShortTermAdjustment [SWS_Dcm_00802] 📄 PDF

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 897170f9942c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Xxx_ShortTermAdjustment 请求应用程序临时调整特定的 I/O 信号 [SWS_Dcm_00802]。它通过头文件 Dcm_Externals.h 提供,并具有服务 ID 0x50 [SWS_Dcm_00802]。

通过指针 ControlStateInfo,该函数从诊断请求的参数 ControlOptionRecord 中获取控制状态信息 InputOutputControlByIdentifier [SWS_Dcm_00802]。如果配置了外部控制掩码(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL),则根据 DcmDspDidControlMaskSize,还会额外传递类型为 Dcm_ControlMask_{DID}Type 的 controlMask(最多 4 字节)或作为 uint8* 的 controlMask2(5 字节及以上)[SWS_Dcm_00802]。

作为返回值,该操作提供 Std_ReturnType [SWS_Dcm_00802]:

  • E_OK:I/O 信号的调整已成功执行 [SWS_Dcm_00802]。
  • E_NOT_OK:调整失败 [SWS_Dcm_00802]。在这种情况下,应用程序必须通过输出参数 ErrorCode 设置特定的否定响应码(Dcm_NegativeResponseCodeType),DCM 模块会在发送给测试仪的否定诊断响应中将其返回 [SWS_Dcm_00802]。

该函数为不可重入(Non Reentrant)且被同步调用 [SWS_Dcm_00802]。当数据元素配置为同步函数调用时,使用此同步变体(DcmDspDataUsePort == USE_DATA_SYNCH_FNC)[SWS_Dcm_00802]。相反,对于配置为异步的端口(USE_DATA_ASYNCH_FNC 或 USE_DATA_ASYNCH_FNC_ERROR),存在服务 ID 为 0x55 且具有包含 OpStatus 和 DataLength 在内的扩展参数集的异步变体 [SWS_Dcm_01316]。

此文本由 AI 创建,基于 AUTOSAR R20-11。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ShortTermAdjustment [SWS_Dcm_01316] 📄 PDF

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: bd9ccbb93144 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

函数 [SWS_Dcm_01316] 由 Diagnostic Communication Manager (DCM) 调用并通过 Dcm_Externals.h 提供。它异步请求应用程序在诊断服务 InputOutputControlByIdentifier 的框架内调整 IO 信号。控制数据通过指针 ControlStateInfo(来自参数 ControlOptionRecord)传递,并补充有字节长度 DataLength。执行流程通过 OpStatus 控制:只要调整仍在持续,应用就返回 DCM_E_PENDING;在成功完成后,它报告 E_OK。

变体与掩码参数

在外部配置控制掩码(DCM_CONTROLMASK_EXTERNAL)时,将传递附加参数 [SWS_Dcm_01316]:

  • 若掩码大小小于或等于 4 字节,则传递类型为 Dcm_ControlMask_{DID}Type 的 controlMask。
  • 若掩码大小至少为 5 字节,则改为传递指向 uint8 的指针 controlMask2。

错误处理与并发

如果信号控制失败,函数返回 E_NOT_OK 并通过指针 ErrorCode 设置否定响应码(NRC),DCM 在否定响应中传输该代码 [SWS_Dcm_01316]。该函数被指定为非重入。

相互协作与区分

当 DID 数据端口配置为 USE_DATA_ASYNCH_FNC 或 USE_DATA_ASYNCH_FNC_ERROR 且数据类型配置为 UINT8_DYN 时,使用此接口 [SWS_Dcm_01316]。它与同步变体 [SWS_Dcm_00802] 不同,后者既不使用 OpStatus 也不使用 DataLength,并且专用于静态数据类型的同步端口。

本段文本由 AI 策展助手基于 AUTOSAR 规范 R20-11 自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_IsDidAvailable [SWS_Dcm_00803] 📄 PDF

Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);

This function requests if a specific DID is available within the range or not.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 71db369fb246 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_IsDidAvailable 用于异步检查请求的诊断标识符(DID)在定义的 DID 范围内是否可用 [SWS_Dcm_00803]。它通过头文件 Dcm_Externals.h 提供,并具有服务 ID 0x53 [SWS_Dcm_00803]。

用法与参数

使用以下参数进行调用 [SWS_Dcm_00803]:

  • DID(In):要查询的 DID 标识符值 [SWS_Dcm_00803]。
  • OpStatus(In):用于控制异步流程的操作当前状态 [SWS_Dcm_00803]。
  • supported(Out):指示 DID 是否在范围内可用;DCM_DID_SUPPORTED 表示支持,而 DCM_DID_NOT_SUPPORTED 表示不支持 [SWS_Dcm_00803]。

异步语义与返回值

由于该函数是异步执行的,确定过程可能需要多个调用步骤 [SWS_Dcm_00803]。返回值 DCM_E_PENDING 指示请求尚未完成,需要进一步调用来完成 [SWS_Dcm_00803]。当检查完成时报告返回值 E_OK [SWS_Dcm_00803](解读:推测 E_OK 结束该查询,随后参数 supported 包含有效结果)。 问题 Q-22c62d306a7ac4f1 (未决)

并发性与限制

该接口被指定为不可重入(Non Reentrant)[SWS_Dcm_00803]。因此,对于同一实例内的相同或其他 DID,不允许并发调用。

此文本由 AI 创建,完全基于 AUTOSAR Classic R20-11 的规范数据。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReadDidData [SWS_Dcm_00804] 📄 PDF

Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests to the application a data value of a DID

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 8a35ced9ade2 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与参数接口

函数Xxx_ReadDidData(服务 ID 0x40)可通过Dcm_Externals.h获取,并向应用程序请求诊断标识符(DID)的数据值[SWS_Dcm_00804]。传递和反馈通过以下参数进行:

异步语义与返回值

该函数被定义为异步(Asynchronous),并返回类型为Std_ReturnType的状态[SWS_Dcm_00804]:

错误处理与并发

如果应用程序为Xxx_ReadDidData返回返回值E_NOT_OK,DCM 模块将向诊断仪发送带有通过参数ErrorCode设置的 NRC 码的否定响应[SWS_Dcm_00804]。该函数被指定为不可重入(Non Reentrant)[SWS_Dcm_00804]。Interpretation:由于采用DCM_E_PENDING进行异步处理,该调用通常可能发生在 DCM 的周期性任务上下文中。 问题 Q-5e41e9fb7dc261b9 (未决)

本使用说明基于 SWS_Dcm_00804 中的规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_WriteDidData [SWS_Dcm_00805] 📄 PDF

Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests the application to write a data value of a DID.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: da9c861c9607 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数Xxx_WriteDidData由模块 DCM 调用,以请求应用程序写入 DID 的数据值[SWS_Dcm_00805]。声明可通过头文件Dcm_Externals.h获取[SWS_Dcm_00805]。

调用与语义

该调用为异步进行,并定义为不可重入(Non Reentrant)[SWS_Dcm_00805]。调用时传递以下参数[SWS_Dcm_00805]:

  • DID:要写入的数据标识符的标识符。
  • Data:指向包含待写入数据缓冲区的指针。
  • OpStatus:当前操作的状态。
  • DataLength:要写入的数据长度(以字节为单位)。
  • ErrorCode:用于否定响应码(NRC)的输出参数。

返回值与错误处理

作为返回值,函数提供Std_ReturnType,其含义如下[SWS_Dcm_00805]:

  • E_OK:写入作业已成功执行。
  • DCM_E_PENDING:操作尚未完成;需要进一步调用以完成操作。
  • E_NOT_OK:操作未成功。在此情况下,DCM 模块会发送带有输出参数ErrorCode中传递的 NRC 值的否定响应。

此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ReadDidRangeDataLength [SWS_Dcm_01271] 📄 PDF

Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests the application to return the data length of a DID Range.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: c6168b2bb633 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_ReadDidRangeDataLength 用于请求应用软件返回 DID 范围(DID Range)的数据长度 [SWS_Dcm_01271]。它是 AUTOSAR 模块 Dcm 的组成部分,具有服务 ID 0x5e,并通过头文件 Dcm_Externals.h 提供 [SWS_Dcm_01271]。

调用采用异步语义(Asynchronous),通过以下接口参数进行 [SWS_Dcm_01271]:

  • DID (IN, uint16):标识所请求 DID 范围的具体数据标识符(Data ID value)[SWS_Dcm_01271]。
  • OpStatus (IN, Dcm_OpStatusType):指示正在运行操作的当前处理状态 [SWS_Dcm_01271]。
  • DataLength (OUT, uint16*):指向要读取或写入的数据长度的指针 [SWS_Dcm_01271]。

类型为 Std_ReturnType 的返回值通知长度查询的结果 [SWS_Dcm_01271]:

关于并发性,该接口被规定为不可重入(Non Reentrant)[SWS_Dcm_01271]。

使用说明基于 AUTOSAR Classic R20-11 中 DCM 的规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_GetInfotypeValueData [SWS_Dcm_91014] 📄 PDF

Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);

The function provides the data related to the requested Infotype.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e6074adc9b96 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

一旦接收到 OBD Service $09 的诊断请求,且所请求的 InfoType 不是可用性 InfoType(“availability InfoType”),DCM 模块就会调用异步接口 Xxx_GetInfotypeValueData [SWS_Dcm_00423]。为了提供数据,DCM 调用为该 InfoType 配置的所有函数,并将这些值合并作为对 Service $09 的响应 [SWS_Dcm_00423]。声明可通过 Dcm_Externals.h 获取 [SWS_Dcm_91014]。

数据的传递和反馈通过定义的缓冲区和状态参数 [SWS_Dcm_91014] 进行:

  • OpStatus(in):指示当前正在进行的操作的进度状态。
  • DataValueBuffer(out):用于接收特定 InfoType 有效负载的缓冲区。
  • DataValueBufferSize(inout):在调用时包含以字节为单位的最大可写入缓冲区大小,并由被调用函数写入实际写入的数据字节数。

作为异步函数,它在成功完成时返回 E_OK,在发生错误时返回 E_NOT_OK,或者在操作尚未完成且需要进一步调用以完成时返回 DCM_E_PENDING [SWS_Dcm_91014]。由于该函数被指定为不可重入(Non Reentrant),因此不得对同一函数进行并发调用 [SWS_Dcm_91014]。

此文本由 AI 生成,仅供参考。一切以 AUTOSAR 官方规范为准。

实现者指南即将推出(复杂度 I2)

函数 Xxx_Start [SWS_Dcm_01203] 📄 PDF

Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️

This function requests to the application to start the execution of a routine.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 402aa4484a21 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_Start 通过头文件 Dcm_Externals.h 声明,并请求应用软件启动诊断例程的执行 [SWS_Dcm_01203]。一旦接收到针对 RoutineControl (0x31) 且带有子功能 startRoutine 的 UDS 服务请求并成功验证 [SWS_Dcm_00400],或者当接收到带有不可用性 OBDTestId 的 RoutineControl 请求时 [SWS_Dcm_01392],DCM 模块就会调用此函数。

该接口支持固定以及可变的数据格式,并以异步方式运行 [SWS_Dcm_01203]:

  • 输入参数:固定输入信号 dataIn_1 至 dataIn_n,或通过字节数组 dataInVar 传递的可变数据,以及操作状态 OpStatus [SWS_Dcm_01203]。
  • 输出参数:固定输出信号 dataOut_1 至 dataOut_n,或可变输出数据 dataOutVar,以及用于否定响应消息的错误码 ErrorCode [SWS_Dcm_01203]。
  • 长度参数:在可变数据长度情况下,输入和输出参数 currentDataLength 传递 dataInVar 或 dataOutVar 中的有效字节数 [SWS_Dcm_01203]。
  • 返回值:E_OK 确认成功启动,E_NOT_OK 报告失败,DCM_E_PENDING 表示处理步骤仍在进行中,而 DCM_E_FORCE_RCRRP 则请求提前发送挂起反馈(NRC 0x78)[SWS_Dcm_01203]。

关于并发性,Xxx_Start 被定义为非重入(Non Reentrant)[SWS_Dcm_01203]。在返回值为 DCM_E_PENDING 的异步流程中,DCM 模块会以继续执行的 OpStatus 周期性地再次调用该函数,直到操作完成 [SWS_Dcm_01203]。

如果操作以 E_OK 成功结束,DCM 模块将发送带有通过 dataOut 提供的数据作为 routineStatusRecord 的 UDS 肯定响应 [SWS_Dcm_00401]。若执行以 E_NOT_OK 失败,DCM 将发送带有参数 ErrorCode 中所指定 NRC 的否定响应 [SWS_Dcm_01203]。在 OBD 例程上下文中,不等于 E_OK 的返回值会导致发送 NRC 0x22 [SWS_Dcm_01394]。

本段文本由 AI 生成,仅供参考。唯一具有约束力的是 AUTOSAR 规范。

实现者指南即将推出(复杂度 I2)

函数 Xxx_StartConfirmation [SWS_Dcm_91016] 📄 PDF

Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a StartRoutine request

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7f9172ca4312 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

根据 [SWS_Dcm_91016],函数 Xxx_StartConfirmation 明确指示对先前 StartRoutine 请求的响应传输。该接口在头文件 Dcm_Externals.h 中声明,并具有同步执行语义([SWS_Dcm_91016])。作为唯一的输入参数,传入类型为 Dcm_ConfirmationStatusType 的 ConfirmationStatus,用于描述例程传输的确认状态。根据规范,不存在其他输入和输出参数([SWS_Dcm_91016])。

错误处理与返回值

作为返回值,该函数提供类型为 Std_ReturnType 的状态值([SWS_Dcm_91016])。其中,值 E_OK 确认请求执行成功,而 E_NOT_OK 则表示处理失败。负载中未为该函数定义具体的错误码或向 Development Error Tracer (DET) 或 Diagnostic Event Manager (DEM) 发送的显式消息。

并发性与限制

关于并发性,Xxx_StartConfirmation 被归类为不可重入(Non Reentrant)([SWS_Dcm_91016])。这要求调用者严格避免并发或重叠执行。解释:该函数可能由 DCM 调用,以通知应用侧例程实现发送过程已完成。 问题 Q-be2dafd63bf2a9a5 (未决)

本段文本由 AI 生成,基于 AUTOSAR 标准版本 R20-11。

实现者指南即将推出(复杂度 I2)

函数 Xxx_Stop [SWS_Dcm_01204] 📄 PDF

Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to stop the execution of a routine

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 250ef3c4dcf3 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

函数 [SWS_Dcm_01204] 由 DCM 调用,以终止应用程序中正在运行的诊断例程的执行。一旦成功完成必要的预检查,便在具有子功能 stopRoutine 的 UDS 服务 RoutineControl (0x31) 的框架内执行该调用 [SWS_Dcm_00402]。该接口具有服务 ID 0x5c,并通过头文件 Dcm_Externals.h 声明 [SWS_Dcm_01204]。

参数与返回值

根据例程的配置,DCM 传递固定或可变输入数据(dataIn_1 至 dataIn_n 或 dataInVar)以及输出数据的缓冲区引用(dataOut_1 至 dataOut_n 或 dataOutVar)[SWS_Dcm_01204],[SWS_Dcm_00402]。在可变数据长度的情况下,currentDataLength 包含输入或输出数据的字节数 [SWS_Dcm_01204]。Std_ReturnType 的返回值规定如下:

  • E_OK:例程已成功终止;DCM 发送带有生成的输出数据作为 routineStatusRecord 的肯定 UDS 响应 [SWS_Dcm_01204],[SWS_Dcm_00403]。
  • E_NOT_OK:中止例程失败;DCM 发送带有在 ErrorCode 中保存的 NRC 的否定 UDS 响应 [SWS_Dcm_01204]。
  • DCM_E_PENDING:操作仍在处理中;DCM 再次调用该函数以完成 [SWS_Dcm_01204]。
  • DCM_E_FORCE_RCRRP:应用程序请求 DCM 传输 Pending 响应(NRC 0x78)[SWS_Dcm_01204]。

并发性与限制

该操作被指定为异步且不可重入(Non Reentrant)[SWS_Dcm_01204]。如果在执行过程中发生错误,应用程序必须使用相应的 Dcm_NegativeResponseCodeType 写入参数 ErrorCode 并返回 E_NOT_OK [SWS_Dcm_01204]。

本使用说明基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 Xxx_StopConfirmation [SWS_Dcm_91017] 📄 PDF

Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a StopRoutine request

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2f01639593ff 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Xxx_StopConfirmation 用于指示对先前 StopRoutine 请求的响应传输 [SWS_Dcm_91017]。在调用时,系统通过类型为 Dcm_ConfirmationStatusType 的输入参数 ConfirmationStatus 传递例程停止的具体确认状态 [SWS_Dcm_91017]。作为返回值,该接口提供类型为 Std_ReturnType 的值:其中 E_OK 表示请求已成功处理,而 E_NOT_OK 则指示请求失败 [SWS_Dcm_91017]。

关于并发性和调用条件,该接口被指定为不可重入(Non Reentrant),且具有服务 ID 0x69 [SWS_Dcm_91017]。其声明通过头文件 Dcm_Externals.h 提供 [SWS_Dcm_91017]。解释:由于通过 Dcm_Externals.h 提供且具有可自定义的前缀 Xxx_,该函数可能由 DCM 模块调用,并由特定于应用程序的软件组件或负责的例程处理程序实现。 问题 Q-743e69ff8cf92321 (未决)

需求中未指出特定的错误码或向开发错误管理 (DET) 或 Diagnostic Event Manager (DEM) 发送的通知。在此接口级别上,错误情况下的行为形式上仅限于在处理未能成功完成时返回错误值 E_NOT_OK [SWS_Dcm_91017]。

本使用说明基于 AUTOSAR Classic R20-11 规范。

实现者指南即将推出(复杂度 I2)

函数 Xxx_RequestResults [SWS_Dcm_91013] 📄 PDF

Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application the result of a routine execution

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 684a0371b6d5 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 [SWS_Dcm_91013] 由 DCM 模块调用,以便从应用程序查询例程执行结果。这是在 UDS 服务 RoutineControl(0x31)及其子功能 requestRoutineResults 的框架下进行的,前提是所有输入侧检查均已成功通过 [SWS_Dcm_00404]。该接口可通过 Dcm_Externals.h 获取,异步工作且被指定为不可重入 [SWS_Dcm_91013]。

DCM 模块通过参数 OpStatus 控制操作流程。该函数接收从 routineControlOptionRecord 派生的固定输入数据(dataIn_1 至 dataIn_n)或可变数据(dataInVar)[SWS_Dcm_00404]。应用程序通过固定输出参数(dataOut_1 至 dataOut_n)或可变输出缓冲区(dataOutVar 和 variableDataLength)将结果数据传递给 DCM [SWS_Dcm_91013]。

如果查询成功完成并返回 E_OK,DCM 模块将根据配置参数 DcmDspRequestRoutineResultsOut 将输出数据整合为一个 routineStatusRecord 并发送肯定响应 [SWS_Dcm_00405]。若操作仍在进行,应用程序可返回 DCM_E_PENDING 进行后续调用,或返回 DCM_E_FORCE_RCRRP 以发送临时响应(NRC 0x78)[SWS_Dcm_91013]。

发生错误时,函数返回 E_NOT_OK 并将 ErrorCode 设置为适用的 NRC 值,随后 DCM 模块发送相应的否定响应 [SWS_Dcm_91013]。由于该函数不可重入,因此不得针对同一例程并发调用 [SWS_Dcm_91013]。

基于 AUTOSAR R20-11 自动生成的用法说明。

实现者指南即将推出(复杂度 I2)

函数 Xxx_RequestResultsConfirmation [SWS_Dcm_91018] 📄 PDF

Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function indicates the transmission of a response to a RequestRoutineResults request

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 64d7d5ec22d3 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数 Xxx_RequestResultsConfirmation 用于确认已传输针对 RequestRoutineResults 请求的诊断响应 [SWS_Dcm_91018]。它在头文件 Dcm_Externals.h 中声明,并具有服务 ID 0x70 [SWS_Dcm_91018]。通过类型为 Dcm_ConfirmationStatusType 的输入参数 ConfirmationStatus,实现可以获取例程结果传输完成时的状态信息 [SWS_Dcm_91018]。调用为同步执行并返回一个 Std_ReturnType,其中 E_OK 表示处理成功,E_NOT_OK 表示失败 [SWS_Dcm_91018]。

并发性与限制

根据规范,该函数被归类为不可重入(Non Reentrant)[SWS_Dcm_91018]。因此,不得针对同一实例进行并发调用。解释:DCM 模块的调用在响应确认的上下文中按顺序进行,因此该函数应在没有阻塞操作的情况下执行。 问题 Q-935a06744e7b9af7 (未决)

错误处理与交互

错误处理仅限于返回值 E_NOT_OK,因为未针对此调用指定单独的开发错误 (DET) 或生产错误 (DEM) [SWS_Dcm_91018]。解释:该函数用作 DCM 的应用特定确认端点(回调),以便在发送例程结果后在应用级别同步诊断作业的完成。 问题 Q-d3dd0142a30e1363 (未决)

本段文本由 AI 生成。内容基于 AUTOSAR CP R20-11。

实现者指南即将推出(复杂度 I2)

函数 Xxx_RequestControl [SWS_Dcm_01338] 📄 PDF

Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);

Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 751e2cd17257 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Xxx_RequestControl 用于执行特定于 TID 的控制功能,通常用于实现 OBD Service $08([SWS_Dcm_01338])。一旦接收到测试 ID(TID)非可用性 TID(“availability TID”)的 OBD Service $08 请求,DCM 模块便会同步调用已配置的函数([SWS_Dcm_00419])。接口的声明通过头文件 Dcm_Externals.h 提供([SWS_Dcm_01338])。

参数和缓冲区处理

  • InBuffer:指向所接收 OBD 请求有效负载的指针。此输入数据的字节数必须与 DCM 模块中配置的大小完全一致([SWS_Dcm_00419],[SWS_Dcm_01338])。
  • OutBuffer:指向输出缓冲区的指针,被调用的控制函数将其结果存放在该缓冲区中。缓冲区大小是固定的,取自 DCM 模块的配置([SWS_Dcm_00419],[SWS_Dcm_01338])。

返回值与错误处理

该函数返回 Std_ReturnType 作为状态值:值 E_OK 表示成功执行,而 E_NOT_OK 表示错误状态([SWS_Dcm_01338])。如果 Xxx_RequestControl 返回的结果不是 E_OK,DCM 模块会向诊断仪回复否定响应码 NRC 0x22(Conditions Not Correct)([SWS_Dcm_01192])。

并发性与限制

该函数被指定为不可重入(Non Reentrant),其 Service ID 为 0x63([SWS_Dcm_01338])。

AI 提示:本段文本基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 Xxx_StartProtocol [SWS_Dcm_01339] 📄 PDF

Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9d0e79263799 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Xxx_StartProtocol 通过头文件 Dcm_Externals.h 提供,使应用程序能够在诊断协议的首次请求时检查当前环境条件,并放行或拒绝进一步的协议处理 [SWS_Dcm_01339]。

调用上下文与参数

针对所有配置的函数 [SWS_Dcm_00036]、[SWS_Dcm_01339],该调用由 DCM 的 DSL 子模块以同步且非重入的方式触发。以下输入参数被传递给该函数 [SWS_Dcm_01339]:

  • ProtocolType:要启动的诊断协议类型,
  • TesterSourceAddress:发出请求的测试仪源地址,
  • ConnectionId:连接的唯一标识符。

返回值与错误处理

作为返回值,函数在成功放行时返回带有 E_OK 的 Std_ReturnType,在检查未成功时返回 E_NOT_OK,或者在协议不允许的情况下返回 E_PROTOCOL_NOT_ALLOWED [SWS_Dcm_01339]。如果至少有一个配置的 Xxx_StartProtocol 函数未返回 E_OK,则 DCM 中止协议启动并以 NRC 0x22 作出响应 [SWS_Dcm_00674]。

成功放行后的初始化

只有当所有配置的 Xxx_StartProtocol 回调均已返回 E_OK 时,DCM 才会执行后续的初始化步骤:

  • 从默认会话配置中加载标准时序参数 [SWS_Dcm_00144],
  • 激活服务表 [SWS_Dcm_00145],
  • 重置安全状态(Security State)[SWS_Dcm_00146],
  • 将会话状态重置为默认诊断会话,并通过 SchM_Switch_<bsnp>_DcmDiagnosticSessionControl 执行至 RTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION 的模式切换 [SWS_Dcm_00147]。

本使用说明是基于 AUTOSAR R20-11 的规范要求自动创建的。

实现者指南即将推出(复杂度 I2)

函数 Xxx_StopProtocol [SWS_Dcm_01340] 📄 PDF

Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

This function informs the application of the protocol stop.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b7698a26c02a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步回调函数 Xxx_StopProtocol 通知应用程序诊断协议的终止([SWS_Dcm_01340])。它通过头文件 Dcm_Externals.h 声明,并被指定为非重入(Non Reentrant)([SWS_Dcm_01340])。

在以下抢占场景中,DSL 子模块会触发对所有配置的 Xxx_StopProtocol 函数(通过参数 DcmDslCallbackDCMRequestService 配置)的调用:

  • 正在运行的诊断请求被另一协议的更高优先级请求抢占([SWS_Dcm_00459])。
  • 具有更低或相同优先级的请求抢占更高优先级的协议,前提是该较高优先级协议处于 Default Session 且没有处于执行阶段的活动请求([SWS_Dcm_00625])。

调用时将传递协议类型(ProtocolType)、测试仪源地址(TesterSourceAddress)以及连接标识符(ConnectionId)([SWS_Dcm_01340])。作为返回值,函数在执行成功时返回 E_OK,或返回 E_NOT_OK([SWS_Dcm_01340])。如果函数未返回 E_OK,则 DCM 以否定响应码 NRC 0x22 作出响应([SWS_Dcm_01190])。

本段文本由自动化生成,完全基于 AUTOSAR Classic R20-11 的规范要求。

实现者指南即将推出(复杂度 I1)

函数 Xxx_Indication [SWS_Dcm_01341] 📄 PDF

Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9ac147c3e642 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步、不可重入函数 Xxx_Indication 通过头文件 Dcm_Externals.h 声明 [SWS_Dcm_01341]。它向应用程序指示诊断服务即将执行,并允许其拒绝该服务请求的执行 [SWS_Dcm_01341]。当配置容器 DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] 或 DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516] 存在时,由 DSD 子模块在所有配置的 ServiceRequestIndication 端口上进行同步调用。

传入的输入参数包括服务 ID(SID)、不带 SID 的请求数据(RequestData、DataSize)、寻址类型(ReqType)、连接 ID(ConnectionId)、协议类型(ProtocolType)以及测试仪源地址(TesterSourceAddress)[SWS_Dcm_01341]。

应用程序通过类型为 Std_ReturnType 的返回值控制 DSD 子模块的响应 [SWS_Dcm_01341]:

  • E_OK:请求成功,并将按常规继续处理 [SWS_Dcm_01341]。
  • E_REQUEST_NOT_ACCEPTED:请求不被接受。如果至少有一个被调用的指示函数返回 E_REQUEST_NOT_ACCEPTED,则 DSD 子模块抑制向测试仪发送任何响应 [SWS_Dcm_00462]、[SWS_Dcm_00517]。
  • E_NOT_OK:请求未成功。在这种情况下,应用程序向输出参数 ErrorCode 写入否定响应码 [SWS_Dcm_01341]。只要没有调用返回 E_REQUEST_NOT_ACCEPTED,DSD 子模块便发送带有该 NRC 的否定响应 [SWS_Dcm_00463]、[SWS_Dcm_00518]。

如果配置了多个通知且有多个函数返回 E_NOT_OK 且没有任何函数返回 E_REQUEST_NOT_ACCEPTED,则 DSD 子模块针对否定响应强制使用首个回复 E_NOT_OK 的函数的 ErrorCode [SWS_Dcm_01321]、[SWS_Dcm_01322]。

此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_Confirmation [SWS_Dcm_01342] 📄 PDF

Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function confirms to the application the successful transmission or a transmission error of a diagnostic service.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 16843610ecad 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Xxx_Confirmation 用于向应用程序同步通知诊断传输的完成——无论是成功发送还是传输错误([SWS_Dcm_01342])。声明通过头文件 Dcm_Externals.h 提供([SWS_Dcm_01342])。

当由 DCM 子模块 DSD(Diagnostic Service Dispatcher)调用时,会传递诊断任务的重要上下文数据([SWS_Dcm_01342]、[SWS_Dcm_00741]):

  • SID:诊断服务的标识符([SWS_Dcm_01342])。
  • ReqType:寻址类型(物理寻址为 0,功能寻址为 1)([SWS_Dcm_01342])。
  • ConnectionId、ProtocolType 和 TesterSourceAddress:唯一的连接和协议属性以及测试仪源地址([SWS_Dcm_01342])。
  • ConfirmationStatus:关于传输成功或错误的状态信息([SWS_Dcm_01342])。

该操作返回 Std_ReturnType 作为返回值(确认处理成功时为 E_OK,否则为 E_NOT_OK)([SWS_Dcm_01342])。DSD 会在所有使用接口 ServiceRequestNotification 的端口上调用该函数(通过 DcmDsdServiceRequestManufacturerNotification 或 DcmDsdServiceRequestSupplierNotification 配置)([SWS_Dcm_00741])。

关于调用顺序,Xxx_Confirmation 通常紧随 DspInternal_DcmConfirmation() 之后执行([SWS_Dcm_00742])。但如果存在符合 [SWS_Dcm_01172] 的特殊情况,DSD 仅调用 Xxx_Confirmation,而内部调用则被省略。

由于 Xxx_Confirmation 被指定为不可重入(Non Reentrant)且同步([SWS_Dcm_01342]),因此应用端实现不应包含阻塞流程,也不得触发对 DCM 的可重入回调用(解释)。 问题 Q-58ce3e44dc61540b (未决)

本段文本由人工智能生成。所有内容完全基于版本 R20-11 的 AUTOSAR 规范范围。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ClearDTCCheckFnc [SWS_Dcm_01270] 📄 PDF

Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 65665431c065 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步 callout 函数 Xxx_ClearDTCCheckFnc 通过头文件 Dcm_Externals.h 提供给应用程序 [SWS_Dcm_01270]。它用于在清除请求的诊断故障码组(Group of DTC)之前进行制造商和供应商特定的条件检查。作为输入参数,向其传递类型为 uint32 的标识符 GoDTC,该标识符指定要清除的故障码组 [SWS_Dcm_01270]。

错误处理与返回值

通过类型为 Std_ReturnType 的返回值与输出参数 ErrorCode 协同释放清除请求 [SWS_Dcm_01270]:

  • E_OK:应用程序允许清除请求的故障码组 GoDTC [SWS_Dcm_01270]。
  • E_NOT_OK:应用程序禁止清除该组。在此错误情况下,必须通过类型为 Dcm_NegativeResponseCodeType* 的输出参数 ErrorCode 设置否定响应码。DCM 模块随后发送带有在 ErrorCode 中指定的 NRC 值的否定响应 [SWS_Dcm_01270]。

并发性与限制

该函数带有服务 ID 0x5f,同步工作,并定义为不可重入(Non Reentrant)[SWS_Dcm_01270]。因此,调用上下文必须确保调用按顺序执行且没有并发重叠。

本使用说明由 AI 基于 AUTOSAR R20-11 的规范 SWS_Dcm_01270 生成。

函数 Xxx_ProcessRequestDownload [SWS_Dcm_00754] 📄 PDF

Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 786a986ad65c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

标注函数 Xxx_ProcessRequestDownload([SWS_Dcm_00754])由模块 Dcm 调用,以便在处理 UDS 服务 RequestDownload 时启动下载过程。该函数定义为异步且不可重入,并通过头文件 Dcm_Externals.h 提供([SWS_Dcm_00754])。

用法与参数

调用通过参数 OpStatus 逐步进行,其取值为 DCM_INITIAL、DCM_PENDING 或 DCM_CANCEL([SWS_Dcm_00754])。传入的输入参数包括压缩和加密方法(DataFormatIdentifier)、内存块(MemoryIdentifier)、起始地址(MemoryAddress)以及以字节为单位的未压缩内存大小(MemorySize)([SWS_Dcm_00754])。在调用之前,Dcm 将最大可能缓冲区大小写入输入输出参数 BlockLength([SWS_Dcm_01417])。该函数将此值调整为后续写入操作所允许的最大块长度([SWS_Dcm_00754])。

返回值与相互协作

该函数在执行成功时返回 E_OK,如果处理仍在继续则返回 DCM_E_PENDING,或者在出错时返回 E_NOT_OK([SWS_Dcm_00754]):

  • 如果调用返回 E_OK,且协商的值 BlockLength 小于或等于当前协议连接支持的缓冲区长度,则 Dcm 发送肯定响应,并将该值作为 maxNumberOfBlockLength([SWS_Dcm_01419])。
  • 如果返回的缓冲区长度超过协议连接支持的缓冲区大小,则 Dcm 报告 DET 错误 DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418])。
  • 当返回 E_NOT_OK 时,Dcm 发送带有输出参数 ErrorCode 中设定值的 UDS 否定响应(NRC)([SWS_Dcm_00754]、[SWS_Dcm_00757])。

本使用说明由系统自动生成,旨在为 AUTOSAR 规范提供参考支持。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ProcessRequestTransferExit [SWS_Dcm_00755] 📄 PDF

Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: bb284e10287c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

标注函数(Callout-Funktion)Xxx_ProcessRequestTransferExit由 DCM 模块调用,用于在 UDS 服务 RequestTransferExit 的上下文中终止正在进行的下载或上传过程[SWS_Dcm_00755]。该接口的声明通过头文件Dcm_Externals.h提供[SWS_Dcm_00755]。

用法与语义

该函数异步运行,并定义为不可重入[SWS_Dcm_00755]。调用时需传递当前执行状态OpStatus(可能的值:DCM_INITIAL、DCM_PENDING或DCM_CANCEL)[SWS_Dcm_00755]。指定的类型为Std_ReturnType的返回值包括:

错误处理与交互

如果操作Xxx_ProcessRequestTransferExit返回错误值E_NOT_OK,则必须通过输出参数ErrorCode传递否定响应码。随后,DCM 模块会向诊断测试仪发送带有该确切错误码的否定 UDS 响应(NRC)[SWS_Dcm_00759]。在中止调用时,DCM 模块会将状态DCM_CANCEL传递给函数[SWS_Dcm_00755]。

此文本为自动生成。所有陈述均完全基于 AUTOSAR 规范。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ProcessRequestUpload [SWS_Dcm_00756] 📄 PDF

Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 592221ab777a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

标注函数Xxx_ProcessRequestUpload由 DCM 模块调用,以启动 UDS 服务 RequestUpload([SWS_Dcm_00756])。它通过Dcm_Externals.h提供,并被指定为不可重入且异步([SWS_Dcm_00756])。DCM 通过参数OpStatus(具有状态DCM_INITIAL、DCM_PENDING、DCM_CANCEL或DCM_FORCE_RCRRP_OK)控制操作流程([SWS_Dcm_00756])。

调用时,DCM 会传递压缩和加密方法(DataFormatIdentifier)、内存块(MemoryIdentifier)、起始地址(MemoryAddress)以及未压缩的内存大小(字节)(MemorySize)等([SWS_Dcm_00756])。输入/输出参数BlockLength定义后续Dcm_ReadMemory调用的最大字节数;在调用之前,DCM 会将最大可能的缓冲区大小写入此参数([SWS_Dcm_00756],[SWS_Dcm_01420])。

作为Xxx_ProcessRequestUpload的返回值,定义了请求成功时的E_OK、出错时的E_NOT_OK以及处理尚未完成时的DCM_E_PENDING([SWS_Dcm_00756]):

  • 如果函数返回E_NOT_OK,DCM 模块将发送带有在输出参数ErrorCode中设置的 NRC 值的否定 UDS 响应([SWS_Dcm_00756],[SWS_Dcm_00758])。
  • 如果函数在BlockLength中返回的请求缓冲区值小于或等于当前协议连接支持的缓冲区长度,则 DCM 会在肯定响应中将该值用作maxNumberOfBlockLength([SWS_Dcm_01422])。
  • 反之,如果返回的缓冲区长度大于协议连接支持的缓冲区长度,则 DCM 报告 DET 错误DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421])。

本文由人工智能生成。其完全基于所提供的 AUTOSAR 有效负载规范。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ProcessTransferDataRead [SWS_Dcm_91070] 📄 PDF

Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6b3306b715f6 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

标注函数 Xxx_ProcessTransferDataRead 用于根据起始地址(MemoryAddress)和长度(MemorySize)遵照 [SWS_Dcm_91070] 异步读取 ECU 中的内存数据。它通过头文件 Dcm_Externals.h 提供,并支持 UDS 服务 ReadMemoryByAddress、RequestUpload、TransferData 以及动态通过内存地址定义的 DID 的 ReadDataByIdentifier [SWS_Dcm_91070]。

该调用以不可重入(Non Reentrant)方式进行,并通过参数 OpStatus 控制([SWS_Dcm_91070]):

  • DCM_INITIAL:启动读取操作。
  • DCM_PENDING:继续尚未完成的读取过程。
  • DCM_CANCEL:中止正在进行的操作。
  • DCM_FORCE_RCRRP_OK:确认待处理响应的传输。

为了寻址,可以通过 MemoryIdentifier 选择内存块或内存区域;如果不使用该参数,则必须将其设置为 0 [SWS_Dcm_91070]。读取的数据通过输出参数 MemoryData 返回,该参数直接指向 DCM 的诊断缓冲区 [SWS_Dcm_91070]。

定义的返回值包括成功时的 DCM_READ_OK、读取仍在进行时的 DCM_READ_PENDING,以及当操作挂起且应立即发送响应挂起消息时的 DCM_READ_FORCE_RCRRP [SWS_Dcm_91070]。如果读取失败,该函数返回 DCM_READ_FAILED;在这种情况下,必须通过指针 ErrorCode 传递否定响应码(NRC),DCM 会在否定响应中发送该代码 [SWS_Dcm_91070]。(解释:虽然关于 ErrorCode 的规范说明提到了 Dcm_ReadMemory,但在此处按句意应指此标注失败。) 问题 Q-fe76e2599624baf7 (未决)

本使用说明基于 AUTOSAR CP R20-11 规范并自动生成。

实现者指南即将推出(复杂度 I2)

函数 Xxx_ProcessTransferDataWrite [SWS_Dcm_91071] 📄 PDF

Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f0b899d6fddb 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

异步标注 Xxx_ProcessTransferDataWrite(服务 ID 0x27)可通过 Dcm_Externals.h 获取,并由 DCM 模块调用以写入 UDS 服务 WriteMemoryByAddress、RequestDownload 和 TransferData 的内存数据 [SWS_Dcm_91071]。写入过程的流程通过参数 OpStatus 进行控制,其取值为 DCM_INITIAL、DCM_PENDING、DCM_CANCEL 或 DCM_FORCE_RCRRP_OK [SWS_Dcm_91071]。

参数与返回值

该函数处理以下参数 [SWS_Dcm_91071]:

  • MemoryIdentifier:内存块的标识符;如果不使用该参数,则应将其设置为 0 [SWS_Dcm_91071]。
  • MemoryAddress:数据复制到的服务器内存的起始地址;在不使用时(例如针对压缩数据),应传递值 0 [SWS_Dcm_91071]。
  • MemorySize:要在 MemoryData 中写入的字节数 [SWS_Dcm_91071]。
  • MemoryData:指向 DCM 诊断缓冲区中待写入数据的指针 [SWS_Dcm_91071]。
  • ErrorCode:出错时用于否定响应码(NRC)的输出参数 [SWS_Dcm_91071]。

Dcm_ReturnWriteMemoryType 类型的返回值指示操作的结果 [SWS_Dcm_91071]:

  • DCM_WRITE_OK:写入操作成功完成 [SWS_Dcm_91071]。
  • DCM_WRITE_PENDING:写入过程尚未完成 [SWS_Dcm_91071]。
  • DCM_WRITE_FORCE_RCRRP:写入过程仍处于挂起状态;待处理响应(Response Pending)的传输立即启动 [SWS_Dcm_91071]。
  • DCM_WRITE_FAILED:写入操作失败 [SWS_Dcm_91071]。

错误处理与并发

如果标注返回值 DCM_WRITE_FAILED,则 DCM 模块发送带有参数 ErrorCode 中传递的 NRC 值的否定响应 [SWS_Dcm_91071]。该标注被指定为不可重入(Non Reentrant),因此不得并发执行 [SWS_Dcm_91071]。

本使用说明基于 AUTOSAR 规范自动创建。

实现者指南即将推出(复杂度 I2)

类型 Dcm_StatusType [SWS_Dcm_00976] 📄 PDF

Base item type to transport status information.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 87dab698e982 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类型Dcm_StatusType用作在模块Dcm内传输状态信息的基本状态和返回类型,并通过头文件Dcm.h提供[SWS_Dcm_00976]。它基于标准类型uint8,并为特定 DCM 接口的反馈定义了标准化的状态值[SWS_Dcm_00976]。

定义的状态值和错误处理

规范为Dcm_StatusType定义了以下状态和错误代码[SWS_Dcm_00976]:

  • DCM_E_OK(0x00):指示所请求的操作已成功执行或接受[SWS_Dcm_00976]。
  • DCM_E_ROE_NOT_ACCEPTED(0x06):表示 ResponseOnOneEvent 请求被 DCM 拒绝,例如因为先前的 ResponseOnOneEvent 过程尚未完成;该值在接口Dcm_ResponseOnOneEvent()处使用[SWS_Dcm_00976]。
  • DCM_E_PERIODICID_NOT_ACCEPTED(0x07):表示周期性传输请求未被 DCM 接受,例如因为正在进行的周期性传输尚未结束;此状态在接口Dcm_ResponseOnOneDataByPeriodicId()处使用[SWS_Dcm_00976]。

限制与调用条件

上述接口的调用方必须评估类型为Dcm_StatusType的返回值,以确定新请求是可以立即被接受还是由于传输仍在进行中而被丢弃[SWS_Dcm_00976]。仅当前面的事件或发送过程完全完成后,重复请求才可能有成功的希望[SWS_Dcm_00976]。 问题 Q-901ec7e3aac8901c (未决)

此文本由 AI 创建,并基于 AUTOSAR 规范。

实现者指南即将推出(复杂度 I1)

类型 Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF

– Manager

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: aae16d4e9953 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据类型 Dcm_CommunicationModeType 是在 Dcm.h 中声明的基于 uint8([SWS_Dcm_00981])的枚举类型。它定义了用于选择性控制发送(Tx)和接收路径(Rx)的通信模式。取值范围包括用于正常应用数据(NORM)、网络管理(NM)以及两个通信分支组合(NORM_NM)的取值 0x00 至 0x0B([SWS_Dcm_00981])。

该类型在调用 BSW 接口 BswM_Dcm_CommunicationMode_CurrentState 时用作参数。在确认(Sent Confirmation)UDS 服务请求 CommunicationControl(Service 0x28)之后,DCM 通过该接口将当前模式转发给 BSW Mode Manager([SWS_Dcm_00512],[SWS_Dcm_00785])。具体的模式值在此对应于接收到的诊断请求的参数 communicationType 和 controlType([SWS_Dcm_00512])。

相互作用以及受影响的网络取决于 UDS 请求的子网参数:

  • 对于子网 0x00,对 DcmDspComControlAllChannel 中配置的所有网络通道执行更新([SWS_Dcm_00512])。
  • 对于子网 0x0F,报告当前诊断接收通道的通信模式([SWS_Dcm_00785])。
  • 对于 0x01 至 0x0E 的子网,将检查其支持情况;不支持的子网将被拒绝并返回否定响应码 0x31([SWS_Dcm_00786])。
  • 对于带有扩展寻址的子功能(如 enableRxAndDisableTxWithEnhancedAddressInformation 或 enableRxAndTxWithEnhancedAddressInformation),针对通过子节点 ID 引用的通道执行调用([SWS_Dcm_01077],[SWS_Dcm_01079])。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I2)

类型 Dcm_ConfigType [SWS_Dcm_00982] 📄 PDF

This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.

类型 Dcm_EcuStartModeType [SWS_Dcm_00987] 📄 PDF

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d520a70420dc 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据类型 Dcm_EcuStartModeType 派生自 uint8,并通过头文件 Dcm.h 提供 [SWS_Dcm_00987]。它用于 Diagnostic Communication Manager(DCM)确定启动模式,并指示在从 Bootloader 切换后是否应传输诊断响应 [SWS_Dcm_00987]。

取值范围包括两个定义的状态 [SWS_Dcm_00987]:

  • DCM_COLD_START(0x00):ECU 在正常运行模式下常规启动 [SWS_Dcm_00987]。
  • DCM_WARM_START(0x01):ECU 因从 Bootloader 跳转而启动 [SWS_Dcm_00987]。

在接口交互中,Dcm_EcuStartModeType 用作 Callout Dcm_GetProgConditions 的同步返回值,该 Callout 通过 Dcm_Externals.h 可用 [SWS_Dcm_00544]。该函数在 DCM 初始化期间被调用,以确定是否必须发送肯定响应($50 或 $51)[SWS_Dcm_00544]。此时,Bootloader 跳转的详细约束条件通过输出参数 ProgConditions 传递给 DCM [SWS_Dcm_00544]。

关于执行和错误处理,调用 Callout 被定义为同步且不可重入 [SWS_Dcm_00544]。未针对此数据类型指定特定错误代码或向 DET 或 DEM 发送的直接通知。

本使用说明基于 AUTOSAR Classic R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

类型 Dcm_ProgConditionsType [SWS_Dcm_00988] 📄 PDF

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 23558f0992c8 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

结构体 Dcm_ProgConditionsType 用于在编程流程或 ECU 复位时在应用程序与引导加载程序之间交换状态和上下文数据 [SWS_Dcm_00988]。它集中了诸如 ConnectionId 和 TesterAddress 等连接信息、诸如 Sid 和 SubFncId 等诊断标识符以及诸如 ReprogramingRequest、ApplUpdated 和 ResponseRequired 等控制标志 [SWS_Dcm_00988]。

通过两个核心接口进行使用:

  • 在跳转至引导加载程序之前或复位时,DCM 将该结构体传递给异步、不可重入函数 Dcm_SetProgConditions() [SWS_Dcm_00543]。可能的返回值包括 E_OK、E_NOT_OK、DCM_E_PENDING,以及在请求响应挂起消息(NRC 0x78)时的 DCM_E_FORCE_RCRRP [SWS_Dcm_00543]。
  • 重启后,DCM 在其初始化期间调用同步、不可重入的标注 Dcm_GetProgConditions(),以读取保存的条件并确定 Dcm_EcuStartModeType [SWS_Dcm_00544]。集成商对这些数据的存储通常可能通过防复位 RAM 或非易失性存储器实现(解释)。 问题 Q-026bc7bc93f5502c (未决)

在进一步的系统交互中,DCM 对该结构体进行评估:一旦 ComM 报告具备完全通信能力,DCM 便会为 Sid 中存储的服务标识符发送待处理的诊断响应 [SWS_Dcm_00767]。如果 ApplUpdated == True 在跳转到引导加载程序后指示已通过 Flash 下载完成更新,则 DCM 通过 BswM_Dcm_ApplicationUpdated() 通知 BswM [SWS_Dcm_00768]。

本使用说明由系统自动生成,且完全基于 AUTOSAR 版本 R20-11 的规范。

实现者指南即将推出(复杂度 I1)

类型 Dcm_MsgType [SWS_Dcm_00990] 📄 PDF

Base type for diagnostic message (request, positive or negative response)

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6001ef038188 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与类型定义

数据类型 Dcm_MsgType 是 Diagnostic Communication Manager 中诊断消息的核心指针类型,并通过头文件 Dcm.h 提供 [SWS_Dcm_00990]。它被声明为指向 Dcm_MsgItemType* 的指针,并用作引用请求以及肯定和否定响应消息的通用基础 [SWS_Dcm_00990]。解读:由于基类型 Dcm_MsgItemType 在规范中未作详细说明,它推测通常表示单个数据字节(如 uint8),通过该字节按顺序访问线性消息缓冲区。 问题 Q-2b6f46b51d3cb8e0 (未决)

交互与结构上下文

Dcm_MsgType 的主要用途是在上下文结构 Dcm_MsgContextType [SWS_Dcm_00994] 内部。在该结构中,该类型引用了两个独立的数据区域:

  • reqData:指向诊断请求的有效负载数据,起始于服务标识符(SID)紧随其后的位置,而该服务标识符本身不属于此数据 [SWS_Dcm_00994]。
  • resData:指向肯定响应的数据,并且同样起始于服务标识符紧随其后的位置 [SWS_Dcm_00994]。

缓冲区边界与限制

在处理和填充通过 Dcm_MsgType 寻址的响应缓冲区时,用户必须严格遵守关联的缓冲区限制 [SWS_Dcm_00994]。实际响应长度 resDataLen 绝不允许超过由 resMaxDataLen 定义的缓冲区容量,因为最大响应大小受到所分配缓冲区分配情况的严格限制 [SWS_Dcm_00994]。

本段文本由 AI 基于 AUTOSAR Classic Release R20-11 规范生成。

类型 Dcm_MsgLenType [SWS_Dcm_00991] 📄 PDF

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d28165df74e2 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据类型 Dcm_MsgLenType 可通过头文件 Dcm.h 获取,并派生自基本类型 uint32 [SWS_Dcm_00991]。它在 Diagnostic Communication Manager(DCM)中用于描述诊断报文的长度。这既包括诊断请求(Requests),也包括肯定和否定响应报文(Responses)[SWS_Dcm_00991]。

关于取值范围限制,规范规定诊断报文的最大可传输长度取决于各自底层的传输协议或传输介质 [SWS_Dcm_00991]。解释:尽管底层数据类型 uint32 在软件端能够表示高达 4 GiB 的报文长度,但在实践中实际最大长度可能始终受到通信介质以及缓冲区大小的限制。 问题 Q-ac43639ecb32605d (未决)

Dcm_MsgLenType 在封装诊断任务上下文的结构体 Dcm_MsgContextType 中起着核心作用 [SWS_Dcm_00994]。在该结构体内,它对若干基本的长度说明进行类型化:

  • reqDataLen:表示请求数据(Request Data)的长度。计数紧随服务标识符之后开始,因此该长度说明中不包含服务标识符 [SWS_Dcm_00994]。
  • resDataLen:指定肯定响应数据的长度,同样不包含服务标识符 [SWS_Dcm_00994]。
  • resMaxDataLen:指定响应的最大可能长度,该长度受分配的缓冲区大小限制 [SWS_Dcm_00994]。

因此在实现服务处理程序时,必须严格注意对 reqDataLen 和 resDataLen 的长度计算始终不包含服务标识符,且响应数据不得超过由 resMaxDataLen 指定的缓冲区限制 [SWS_Dcm_00994]。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

类型 Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF

Additional information on message request. Datastructure: Bitfield

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7c8af2ec6aed 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据 [SWS_Dcm_00992],数据类型 Dcm_MsgAddInfoType 被定义为位域结构体,用于为诊断报文提供补充的状态和控制信息。该类型在 Classic AUTOSAR 中通过头文件 Dcm.h 提供,并在上级上下文结构体 Dcm_MsgContextType([SWS_Dcm_00994])中作为元素 msgAddInfo 使用,以便一致地绑定服务请求及相关响应的附加信息。

根据 [SWS_Dcm_00992],该位域结构体指定了具有精确定位位位置的单个控制标志:

  • reqType(位置 LSB+0):标识诊断请求的寻址方式。值 0 表示物理请求(physical request),而值 1 表示功能请求(functional request)。
  • suppressPosResponse(位置 LSB+1):决定关于肯定响应的行为。为 0 时不抑制肯定响应(do not suppress),而值 1 则规定不得发送肯定响应(no positive response will be sent)。

由于 Dcm_MsgAddInfoType 是仅用于参数和上下文传递的纯数据结构,因此该类型本身不存在同步或异步调用语义、返回值、重入规则或针对 DET 或 DEM 的独立错误消息。在后续流程中对所设置位的具体评估和考虑,推测在访问来自 [SWS_Dcm_00994] 的报文上下文时由 Diagnostic Communication Manager 的内部处理例程负责。 问题 Q-b27248cc452ba1b1 (未决)

本文本由 AI 生成,旨在为 AUTOSAR 环境提供参考指引。

类型 Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF

This message context identifier can be used to determine the relation between request and response confirmation.

类型 Dcm_MsgContextType [SWS_Dcm_00994] 📄 PDF

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: efeed9fbd2ce 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据结构 Dcm_MsgContextType 提供所有必要信息,以控制从处理到响应直至确认的诊断请求 [SWS_Dcm_00994]。它作为输入/输出参数 pMsgContext 传递给异步且可重入的服务例程 [SWS_Dcm_00763],[SWS_Dcm_00764]。在此过程中,有效载荷指针 reqData 和 resData 始终紧跟在服务标识符(SID)之后,并且长度规格 reqDataLen 以及 resDataLen 不包含 SID [SWS_Dcm_00994]。DSD 子模块在复制到发送缓冲区时,在第一位置重新插入响应 SID [SWS_Dcm_00223],[SWS_Dcm_00224]。

使用时应注意以下几个方面:

  • 响应长度与错误情况:如果生成的响应长度超过通过与协议相关的字段 resMaxDataLen 定义的缓冲区限制且为 DcmPagedBufferEnabled == FALSE,则 DCM 以否定响应码 0x14(DCM_E_RESPONSETOOLONG)进行响应 [SWS_Dcm_01059]。如果服务处理程序中的处理失败,应用程序将返回带有错误代码的 E_NOT_OK [SWS_Dcm_00763]。
  • 附加信息与响应抑制:通过 msgAddInfo 传输等 suppressPosRspMsgIndicationBit;若其被置位,则 DSD 会抑制肯定响应 [SWS_Dcm_00202],[SWS_Dcm_00231]。
  • 生命周期与上下文关联:一旦达到确认,结构即失效,所有消息数据均会丢失 [SWS_Dcm_00994]。应用程序必须在请求开始时就保存标识符 idContext,以便将后续的确认与原始请求相关联 [SWS_Dcm_00994]。
  • 协议关联:字段 dcmRxPduId 标识接收 PDU,并允许根据诊断协议进行区分处理,例如在 OBD 与扩展诊断之间 [SWS_Dcm_00994]。

解释:由于上下文在确认时失效,底层存储缓冲区在发送响应后可能立即被 DSL 释放或覆盖以用于后续通信。 问题 Q-88e3cf2f3d8f6076 (未决)

本说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

类型 Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF

–

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: c9fa76367e8a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类型 Dcm_ExtendedOpStatusType 基于 uint8,并通过头文件 Dcm.h 提供 [SWS_Dcm_91015]。作为输入参数 OpStatus,它控制诸如 <Module>_<DiagnosticService> [SWS_Dcm_00763] 以及 <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764] 等异步诊断和子服务函数的执行阶段及确认。

定义的状态值表示操作进度以及来自 DCM 的反馈 [SWS_Dcm_91015]:

  • DCM_INITIAL (0x00):首次调用该操作。
  • DCM_PENDING (0x01):在先前调用报告了中间状态(Pending)后的后续调用。
  • DCM_CANCEL (0x02):DCM 请求中止正在运行的操作。
  • DCM_FORCE_RCRRP_OK (0x03):确认待处理响应(Response Pending)的传输。
  • DCM_POS_RESPONSE_SENT (0x04) 和 DCM_POS_RESPONSE_FAILED (0x05):确认正响应传输成功或失败。
  • DCM_NEG_RESPONSE_SENT (0x06) 和 DCM_NEG_RESPONSE_FAILED (0x07):确认负响应传输成功或失败。

关于并发性,所调用的诊断接口被指定为可重入和异步的 [SWS_Dcm_00763] [SWS_Dcm_00764]。发生错误时,服务函数提供返回值 E_NOT_OK,并向输出参数 ErrorCode 分配一个否定响应码(NRC),随后 DCM 模块发送带有该代码的否定响应 [SWS_Dcm_00763] [SWS_Dcm_00764]。

本文本由 AI 基于规范生成。

实现者指南即将推出(复杂度 I2)

类型 Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF

–

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f40dbedff87d 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类型 Dcm_OpStatusType 基于 uint8,并通过头文件 Rte_Dcm_Type.h 提供 [SWS_Dcm_00984]。它控制 Diagnostic Communication Manager(DCM)异步诊断操作的执行和生命周期状态,例如 Dcm_ReadMemory [SWS_Dcm_00539]、Dcm_WriteMemory [SWS_Dcm_00540] 或 Dcm_SetProgConditions [SWS_Dcm_00543]。

为控制操作流程定义了四个状态值 [SWS_Dcm_00984]:

  • DCM_INITIAL(0x00):标识 DCM 对某项操作的首次调用 [SWS_Dcm_00527]。
  • DCM_PENDING(0x01):指示先前返回挂起状态后的后续调用 [SWS_Dcm_00984]。如果某项操作返回错误值 DCM_E_PENDING,则 DCM 会在 Dcm_MainFunction 的每个后续周期中使用 OpStatus = DCM_PENDING 再次调用该操作,直到处理完成 [SWS_Dcm_00530]。
  • DCM_CANCEL(0x02):显式请求被调用方中止仍处于待决状态的异步操作 [SWS_Dcm_00984]。
  • DCM_FORCE_RCRRP_OK(0x03):确认响应挂起消息(NRC 0x78)已成功传输 [SWS_Dcm_00984]。如果操作以 DCM_E_FORCE_RCRRP 响应,则 DCM 会启动 RCR-RP 的发送,并暂停对该操作的进一步调用,直到发送完成 [SWS_Dcm_00528]。

关于并发性和约束条件,接收 Dcm_OpStatusType 作为传入参数的操作均设计为异步,并被指定为不可重入 [SWS_Dcm_00539] [SWS_Dcm_00754]。

此文本由 AI 生成,用作规范的参考指引。

实现者指南即将推出(复杂度 I2)

类型 Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF

–

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 63d2c6367edd 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与取值范围

数据类型 Dcm_ConfirmationStatusType 是派生自 uint8 的枚举类型,通过头文件 Rte_Dcm_Type.h 提供 [SWS_Dcm_00983]。它用于向应用程序或内部服务处理程序报告已发送诊断响应的状态——无论是成功发送还是出现传输错误 [SWS_Dcm_01342]。取值范围包含四个离散状态 [SWS_Dcm_00983]:

  • DCM_RES_POS_OK (0x00):解释:肯定诊断响应已成功传输。 问题 (未决)
  • DCM_RES_POS_NOT_OK (0x01):解释:传输肯定诊断响应时发生错误。 问题 (未决)
  • DCM_RES_NEG_OK (0x02):解释:否定诊断响应(NRC)已成功传输。 问题 (未决)
  • DCM_RES_NEG_NOT_OK (0x03):解释:传输否定诊断响应时发生错误。 问题 (未决)

交互与接口

确认状态在同步回调函数中作为输入参数(IN)传递。在通用确认接口 Xxx_Confirmation 中,该参数与服务标识符(SID)、寻址方式(ReqType)、连接 ID(ConnectionId)、协议类型以及测试仪源地址一起传递 [SWS_Dcm_01342]。同样,接口 ServiceRequestNotification 也通过操作 Confirmation 集成了该状态 [SWS_Dcm_00694]。

在执行例程服务时,该类型被专门用于在单个例程操作完成后反馈传输状态。为此使用在 Dcm_Externals.h 中声明的回调 Xxx_StartConfirmation [SWS_Dcm_91016]、Xxx_StopConfirmation [SWS_Dcm_91017] 和 Xxx_RequestResultsConfirmation [SWS_Dcm_91018]。

并发性与执行

用于确认的函数返回 Std_ReturnType(例如 E_OK 或 E_NOT_OK)[SWS_Dcm_01342],[SWS_Dcm_91016]。所有上述接口调用均同步执行,并被声明为不可重入(Non Reentrant)[SWS_Dcm_01342],[SWS_Dcm_91016],[SWS_Dcm_91017],[SWS_Dcm_91018]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

类型 Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

类型 Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF

–

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 45efe05a1895 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据类型 Dcm_AuthenticationRoleType 被指定为字节数组(uint8),其大小由配置参数 DcmDspAuthenticationRoleSize 决定 [SWS_Dcm_91068]。它通过头文件 Rte_Dcm_Type.h 提供,并在 DCM 模块中用于形式化表示认证角色 [SWS_Dcm_91068]。

在实际应用中,该类型用作输入参数,以指定未认证诊断连接的角色:

  • 使用与语义:该类型作为输入参数 deauthenticatedRole 在 C 函数 Dcm_SetDeauthenticatedRole(可通过 Dcm.h 获取)[SWS_Dcm_91069] 以及服务接口 Authentication 的操作 SetDeauthenticatedRole [SWS_Dcm_91072] 中传递。由此为通过 connectionId 标识的连接同步分配已去认证角色 [SWS_Dcm_91069]。
  • 并发与有效性:C-API Dcm_SetDeauthenticatedRole 被指定为可重入 [SWS_Dcm_91069]。分配的角色对相应连接保持有效,直至该连接转换到已认证状态或 ECU 复位 [SWS_Dcm_91069]、[SWS_Dcm_91072]。
  • 错误处理:对于该类型及相关操作不存在特定错误代码;该函数按默认方式始终返回 E_OK [SWS_Dcm_91069]、[SWS_Dcm_91072]。

本文本由 AI 基于规范生成。

实现者指南即将推出(复杂度 I1)

类型 DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7abebbf3ff04 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

根据 [SWS_Dcm_91033],接口元素 DiagnosticSessionControlModeSwitchInterface 被声明为模块 DCM 的提供端口(PPortPrototype 或 ProvidedPort),并使用接口 Dcm_DiagnosticSessionControlModeSwitchInterface。根据 [SWS_Dcm_91033] 中的规范,此端口用于将活动诊断会话(Diagnostic Session)的切换和当前状态通知软件组件(SW-C)。

Interpretation:在此过程中,DCM 模块可能承担发送方的角色,通过 RTE 将诊断会话的状态变更转发给感兴趣的软件组件。 问题 Q-6af0e97b6910087d (未决)连接的 SW-C 应当会通过配置好的模式切换事件接收并处理这些模式切换,以使内部流程、使能或其功能行为与当前活动的诊断会话相适应。

错误处理与边界条件

在 [SWS_Dcm_91033] 中未为此端口定义特定的错误码、返回值或向 DET 或 DEM 发送的通知。Interpretation:因此,传输过程中的任何错误状态都应当完全由 AUTOSAR RTE 和基础模块 DCM 的常规机制进行监控和处理。 问题 Q-a8055458432174f6 (未决)规范数据中未包含关于重入性或调用上下文的特殊限制,因此不再作进一步探讨。

本文由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

类型 EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b2ef4373fbcc 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据 [SWS_Dcm_91034],端口元素 EcuResetModeSwitchInterface 被指定为模块 DCM 的提供端口(ProvidedPort 或 PPortPrototype)。它使用接口 Dcm_EcuResetModeSwitchInterface,用于通知软件组件(SW-C)即将发生的 ECU 复位以及具体的复位类型 [SWS_Dcm_91034]。

对于在系统中的使用和交互,以下方面适用:

  • 通信角色:DCM 充当模式切换的发送方。感兴趣的 SW-C 通过相应的接收端口(R-Port)进行连接,以对通知做出响应 [SWS_Dcm_91034]。
  • 模式切换语义:作为 ModeSwitchInterface,此处不传输客户端-服务器返回值或数据参数,而是通过 RTE 指示状态变化 [SWS_Dcm_91034]。因此,通知通过接口的模式声明进行。
  • 组件的反应:通过获知所通报的复位类型,SW-C 得知即将发生的重启的类型 [SWS_Dcm_91034]。这应当使应用程序能够有序地将易失性运行时数据存入非易失性存储器中,或在重启前将外设硬件置于安全状态(Interpretation)。 问题 Q-4dcf9314d84b53a0 (未决)
  • 错误处理:接口定义本身不包含针对 SW-C 错误状态的错误消息或返回通道 [SWS_Dcm_91034]。

本段文本由 AI 生成,基于 AUTOSAR Release R20-11。

实现者指南即将推出(复杂度 I1)

类型 ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e5557daff70f 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据 [SWS_Dcm_91035],接口 ModeRapidPowerShutDownModeSwitchInterface 被指定为模块 Dcm 中用于接口 Dcm_ModeRapidPowerShutDownModeSwitchInterface 的 PPortPrototype(ProvidedPort)。它用于通知软件组件(SW-C)快速关机模式(Rapid Power Shut Down Mode)。

关于使用、行为和交互,以下方面是相关的:

  • 使用与语义:DCM 通过 ModeSwitchInterface 向连接的 SW-C 指示模式切换。调用上下文位于发起模式变更的 DCM 模块内部;向接收方的传输通过 RTE 异步进行 [SWS_Dcm_91035]。
  • 错误处理:端口定义不包含特定的错误码、返回值或 DET/DEM 事件。因此,模式传输中的错误应当完全由 AUTOSAR RTE 针对模式切换端口的标准机制进行拦截。 问题 Q-16537a6a4e19e40b (未决)
  • 并发与限制:通知在 DCM 的执行上下文中进行。接收方的 SW-C 大概会通过模式触发的可运行实体(runnable)被激活,并且必须设计为能够无阻塞延迟地执行快速关机操作。 问题 Q-20f196c7af208288 (未决)

此文本由 AI 基于 AUTOSAR 规范生成。

实现者指南即将推出(复杂度 I1)

类型 ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 0b1a5bf3d04f 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与目的

根据 [SWS_Dcm_91037],元素 ControlDTCSettingModeSwitchInterface 是诊断通信管理器(DCM)作为提供端口(PPortPrototype)提供的 ModeSwitchInterface。其主要任务是将 DTC 设置模式(DTC Setting mode)的当前状态通知连接的软件组件(SW-C)。

此处使用 Dcm_ControlDTCSettingModeSwitchInterface 作为端口接口 [SWS_Dcm_91037]。由于 DCM 将此端口声明为提供端口,因此诊断模块承担模式管理器或发送方的角色。应用组件可以通过相应的请求端口进行连接,以接收状态切换并调整其内部行为。

交互与系统集成

在系统组合中的交互侧重于诊断命令与应用逻辑的解耦:

  • 模式传播:通过提供的端口,DCM 告知 SW-C 诊断故障码的存储和更新处于激活还是被禁止状态 [SWS_Dcm_91037]。在 AUTOSAR 运行时环境中,对 SW-C 的通知应当通过 RTE 的标准模式切换事件进行。 问题 Q-8c0918099f2aa797 (未决)
  • 诊断来源:DTC 设置模式的切换大概与 UDS 诊断服务(如 ControlDTCSetting,Service 0x85)有直接联系,外部诊断仪可通过该服务暂时阻止故障记录。 问题 Q-f2555e0641476955 (未决)

错误处理与边界条件

由于 [SWS_Dcm_91037] 中的规范既未定义特定错误码,也未定义 DET 消息或返回值,因此模式传输纯粹通过 RTE 的机制声明式地进行。端口声明本身未指明特殊的调用上下文或重入性要求。

本段文本由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

类型 SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 11f23c0e37d5 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

端口元素 SecurityAccessModeSwitchInterface 在模块 DCM 中基于接口 Dcm_SecurityAccessModeSwitchInterface 提供一个提供端口(PPortPrototype)[SWS_Dcm_91039]。该接口的目的是将当前活动的安全级别(Security Level)通知软件组件(SW-C)[SWS_Dcm_91039]。

使用与交互

通知通过 DCM 的端口发送给连接的组件 [SWS_Dcm_91039]。其提供形式应当是作为通过 AUTOSAR RTE 的模式切换通信实现的,以便连接的 SW-C 可以通过模式切换事件对 Security Level 的状态改变做出响应(Interpretation)。 问题 Q-d86dacdb91979b87 (未决)端口描述中未定义参数、返回值或特定的同步函数调用 [SWS_Dcm_91039];因此,该传输应当符合模式管理器的异步广播语义(Interpretation)。 问题 Q-9d750df4f73b1634 (未决)

错误处理与限制

由于这纯粹是模式切换,规范中没有提及特定的错误码、参数检查或向 DET 或 DEM 发送的消息 [SWS_Dcm_91039]。通知时的直接错误处理应当未在接口本身中规定(Interpretation)。 问题 (未决)未针对该端口元素指定关于重入性或不同变体的限制 [SWS_Dcm_91039]。

本使用说明为自动生成,基于 AUTOSAR Release R20-11 的规范。

实现者指南即将推出(复杂度 I1)

类型 DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF

ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}

类型 DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d451f77bd84c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

ModeDeclarationGroup DcmModeRapidPowerShutDown 用于表示 ECU 中快速关机(Rapid Power Shutdown)的激活状态 [SWS_Dcm_91023]。该元素归属于类别 EXPLICIT_ORDER,并定义了两种具体模式:数值为 0 的初始模式 DCM_ENABLE_RAPIDPOWERSHUTDOWN 以及数值为 1 的 DCM_DISABLE_RAPIDPOWERSHUTDOWN [SWS_Dcm_91023]。对于模式切换,指定了过渡值 255(On transition value)[SWS_Dcm_91023]。

相互协作与模式管理

在整个系统中,DCM 模块充当一系列诊断模式的 Mode Manager,这也包括在诊断服务 0x11(ECU Reset)上下文中的 DcmModeRapidPowerShutDown [SWS_Dcm_00775]。在基础软件内部,DCM 基于此 ModeDeclarationGroup 在其 BSW 模块实例中为此将 ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown 定义为 provided-ModeGroup [SWS_Dcm_00807]。

需要获知当前快速关机激活状态的应用程序组件(SW-C)连接到标准化服务接口 Dcm_ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91024]。它们通过其模式组 modeRapidPowerShutDown 在运行时接收 DCM 的相应模式切换 [SWS_Dcm_91024]。

该使用说明基于 AUTOSAR R20-11 的规范需求自动生成。

实现者指南即将推出(复杂度 I1)

类型 DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF

ModeDeclarationGroup representing the different communication control states

类型 DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF

ModeDeclarationGroup representing the enable/disable state for DTC storage

类型 DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF

ModeDeclarationGroup representing the state of a Response On Event

类型 DcmSecurityAccess [SWS_Dcm_91031] 📄 PDF

ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 776ea5647fe7 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类别 EXPLICIT_ORDER 的 ModeDeclarationGroup DcmSecurityAccess 表示 ECU 针对 UDS 服务 0x27(SecurityAccess)的不同诊断安全级别 [SWS_Dcm_91031],[SWS_Dcm_00775]。作为初始模式,默认预设为固定值为 0 的 DCM_SEC_LEV_LOCKED [SWS_Dcm_91031],[SWS_Dcm_01327]。额外的安全级别从 DCM_SEC_LEV_1 到 DCM_SEC_LEV_63,通过在 DcmDspSecurityRow 下对安全行的项目和应用特定配置进行补充 [SWS_Dcm_91031],[SWS_Dcm_01327]。

DCM 模块担任此诊断模式的 Mode Manager 核心角色 [SWS_Dcm_00775]。每次安全级别发生变化时,DCM 都会用新进入的安全状态更新模式组 DcmSecurityAccess [SWS_Dcm_01329]。在各个模式之间进行状态切换期间,系统会指示定义的过渡值 255(On transition value)[SWS_Dcm_91031]。

当前安全状态通过服务接口 Dcm_SecurityAccessModeSwitchInterface 传递给软件组件 [SWS_Dcm_91032]:

  • DCM 对此通过该接口将 ModeDeclarationGroupPrototype DcmSecurityAccess 作为提供的模式组(provided-ModeGroup)提供 [SWS_Dcm_01327],[SWS_Dcm_91032]。
  • 每个需要获知当前 Security Level 的软件组件(SW-C)都会声明对 ModeSwitch 接口 Dcm_SecurityAccessModeSwitchInterface 的依赖,并将其作为 Required 端口引入 [SWS_Dcm_91032]。
  • 接口中各个模式的可用性遵循与底层安全行相同的配置变体 [SWS_Dcm_91032]。

该文本由 AI 生成。

实现者指南即将推出(复杂度 I2)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Dcm
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Dcm@rel:R20-11#d326a423
Content hash
d326a423
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticCommunicationManager.pdf#nameddest=SWS_Dcm_00037

主题图

初始化与状态

2

详细视图

请在大纲中选择一个条目。

初始化与状态

Returns the version information of this module

void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Dcm_Init 函数

Service for basic initialization of DCM module.

void Dcm_Init (const Dcm_ConfigType* ConfigPtr);

服务 · Get…

This function returns the active UDS protocol details

Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);

The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.

Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);

This function provides the active security level value.

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);

This function provides the active session control type value.

Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
Dcm_GetVin 函数

Function to get the VIN (as defined in SAE J1979-DA)

Std_ReturnType Dcm_GetVin (uint8* Data);

The function provides the data related to the requested Infotype.

Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);

This function requests to the application for the scaling information of a Data.

Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application for the scaling information of a Data.

Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);

Read the attempt counter for a specific security level from the application

Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

服务 · Process…

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).

Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager

Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).

Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).

Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).

Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.

Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.

Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.

Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

服务 · Read…

Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).

Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData

Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);

This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.

Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to return the data length in byte of a Data.

Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);

This function requests the application to return the data length in byte of a Data.

Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);

This function requests to the application a data value of a DID

Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests the application to return the data length of a DID Range.

Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);

服务 · Write…

Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).

Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData

Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests the application to write a data value of a DID.

Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

服务 · Set…

Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.

Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);

Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);

The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.

Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);

Set the attempt counter for a specific security level in the application

Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);

服务 · Com…

This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.

void Dcm_ComM_FullComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.

void Dcm_ComM_NoComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);

服务 · Request…

Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08

Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);

This function requests to the application the result of a routine execution

Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates the transmission of a response to a RequestRoutineResults request

Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

服务 · Reset…

The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.

Std_ReturnType Dcm_ResetToDefaultSession (void);

This function requests to the application to reset an IOControl to default value.

Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to reset an IOControl to default value.

Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

服务 · Start…

Xxx_Start 函数

This function requests to the application to start the execution of a routine.

Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️

This function indicates the transmission of a response to a StartRoutine request

Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.

Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

服务 · Stop…

Xxx_Stop 函数

This function requests to the application to stop the execution of a routine

Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates the transmission of a response to a StopRoutine request

Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function informs the application of the protocol stop.

Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

服务 · 其他

Called by BndM to indicate that a block write operation has finished.

void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);

Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);

Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);

The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.

Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)

Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function confirms to the application the successful transmission or a transmission error of a diagnostic service.

Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function requests to the application to freeze the current state of an IOControl.

Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to freeze the current state of an IOControl.

Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request

Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function requests if a specific DID is available within the range or not.

Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);

This function requests to the application to return control to ECU of an IOControl.

Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application to adjust the IO signal.

Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

回调

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.

BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.

BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.

BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.

void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

周期性

This service is used for processing the tasks of the main loop.

void Dcm_MainFunction (void);

类型

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode

– Manager

This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader

This message context identifier can be used to determine the relation between request and response confirmation.

–

Additional information on message request. Datastructure: Bitfield

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

Base type for diagnostic message item

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

Base type for diagnostic message (request, positive or negative response)

Type Dcm_NegativeResponseCodeType.

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.

Type Dcm_ProtocolType.

Return values of Callout Dcm_ReadMemory

Return type of callout Dcm_WriteMemory

Security Level type definition

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

Base item type to transport status information.

ModeDeclarationGroup representing the different communication control states

ModeDeclarationGroup representing the enable/disable state for DTC storage

ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}

ModeDeclarationGroup representing the different ECU reset types

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

ModeDeclarationGroup representing the state of a Response On Event

ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level