AUTOSAR_CP_SWS_DiagnosticCommunicationManager
FIG-5bf7b9b14e518540
849 × 937 px
1 Release(s)
Figure 9.1: Process Busy Behavior
SHA-256 Inhalts-Fingerabdruck:
5bf7b9b14e51854064c26c94a26b5a0267f0d06be8e68601b44c21208d9cee17
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm) mit kombinierten Fragmenten (
alt-Branch für Fallunterscheidung) und Timing-Constraints ({0..P2ServerMax},{0..P2*ServerMax}). - Architektur-Kontext: AUTOSAR Classic Platform, BSW-Modul
Dcm(Diagnostic Communication Manager). - Technischer Zweck: Spezifikation des internen und externen Ablaufverhaltens bei verzögerter Diagnoseverarbeitung („Process Busy Behavior“) gemäß UDS (ISO 14229-1) / AUTOSAR DCM. Veranschaulicht das Zusammenspiel der internen DCM-Submodule (DSL, DSD, DSP) mit dem PDU Router (
PduR) und einem externen Verarbeitungsmodul (External Module, z. B. SW-C via RTE oder BSW) beim Einhalten der P2- und P2\*-Server-Zeitschranken unter Verwendung der negativen Antwort NRC 0x78 (responsePending).
2. Komponenten, Entitäten & Schnittstellen
Akteure & Module (Lifelines)
«module» PduR(PDU Router): Kommunikationsschnittstelle der BSW-Transportschicht zur Entkopplung der Busprotokolle (CanTp, FrTp, LinTp, DoIP) vom DCM.«module» Dsl(Diagnostic Session Layer): DCM-Subkomponente zur Verwaltung von Sitzungszuständen, Sicherheitsebenen, Kommunikationskanälen und Protokoll-Timern (P2_ServerMax, P2^*_ServerMax).«module» Dsd(Diagnostic Service Dispatcher): DCM-Subkomponente zur Anforderungsprüfung (Service-ID, Session-/Security-Validierung) und Verteilung der Serviceausführung an DSP oder externe Module.External Module: Anwendungs-SW-C (über AUTOSAR-Ports/RTE) oder weiteres BSW-Modul, welches die eigentliche Diagnosefunktionalität asynchron implementiert.«module» Dsp(Diagnostic Service Processing): DCM-Subkomponente zur Abwicklung standardisierter Diagnosedienste und interner Zustandsbestätigung.
Schnittstellen & Funktionsaufrufe
Dcm_TpRxIndication(PduIdType, Std_ReturnType): Autorisierter Callback vonPduRanDslzur Signalisierung eines vollständig empfangenen Diagnose-Requests.Data_Indication_functionality(): Modulinterne Schnittstelle zwischenDslundDsdzur Übergabe des dekodierten Anforderungskontexts.<Module>_<DiagnosticService>(Std_ReturnType, Dcm_ExtendedOpStatusType, Dcm_MsgContextType**, Dcm_NegativeResponseCodeType**): Asynchrone Service-Aufrufschnittstelle vonDsdzumExternal Module. Übergibt Betriebsstatus (DCM_INITIAL,DCM_PENDINGetc.), Pufferzeiger und NRC-Referenz.PduR_DcmTransmit(Std_ReturnType, PduIdType, const PduInfoType*): Std_ReturnType: BSW-API-Aufruf vonDslanPduRzur Initiierung der Übertragung einer Diagnose-PDU (insb. NRC 0x78 oder finale Response).Dcm_TpTxConfirmation(PduIdType, NotifResultType): Callback vonPduRanDslzur Quittierung der erfolgten PDU-Aussendung auf dem Bus.Data_Confirmation_functionality(): Modulinterne Benachrichtigung vonDslanDsdüber den erfolgreichen Sendeabschluss.DspInternal_DcmConfirmation(Dcm_IdContextType, PduIdType, Dcm_ConfirmationStatusType): Modulinterne Quittierungsschnittstelle vonDsdanDspzur Finalisierung des Verarbeitungszyklus.
3. Dynamisches Verhalten & Sequenzablauf
Phase 1: Request-Eingang & Service-Triggerung (Request-Frame)
PduRmeldet den vollständigen Empfang der Diagnoseanfrage viaDcm_TpRxIndication(...)synchron an dieDsl.Dslleitet den Request überData_Indication_functionality()an dieDsdweiter.- Innerhalb des Zeitintervalls
{0..P2ServerMax}ruftDsddie Servicefunktion<Module>_<DiagnosticService>(...)desExternal Moduleauf. - Das
External Modulesignalisiert verzögerte Bearbeitung (RückgabewertDCM_E_PENDINGüberStd_ReturnTypemit OpStatusDCM_INITIAL/DCM_PENDING). - Die Funktionsaufrufe kehren synchron zurück über
DsdanDslund schließen mit dem Return vonDcm_TpRxIndication()anPduRab.
Phase 2: Verzweigung alt response?
Pfad A: [negative response: RC=0x78] (Busy / Response Pending)
- Bedingung: Die Bearbeitung im externen Modul dauert länger als P2_ServerMax bzw. der konfigurierte Vorhaltewert (
DcmDspSessionP2ServerAdjust). - Ablauf:
Dsltriggert eigenständig vor Ablauf von P2_ServerMax die Aussendung einer NRC 0x78 (requestCorrectlyReceived-ResponsePending) überPduR_DcmTransmit(...).- Nach Übertragung startet der Timer P2^*_ServerMax.
- Innerhalb des Intervalls
{0..P2*ServerMax}kann dieDslbei fortdauerndem Pending-Status zyklisch weitere NRC-0x78-PDUs überPduR_DcmTransmit(...)anstoßen (beschränkt durchDcmDspMaxNumRespPend).
Pfad B: [positive response] (Abschluss & Confirmation)
- Bedingung: Die Nutzdaten wurden vom
External Modulebereitgestellt, die finale (positive) Antwort wurde viaPduR_DcmTransmit(...)gesendet und der Transportlayer hat den Sendevorgang abgeschlossen. - Ablauf:
PduRruft nach erfolgreicher ÜbertragungDcm_TpTxConfirmation(PduIdType, NotifResultType)aufDslauf.Dslreicht die Bestätigung viaData_Confirmation_functionality()anDsdweiter.DsdruftDspInternal_DcmConfirmation(Dcm_IdContextType, PduIdType, Dcm_ConfirmationStatusType)aufDspauf, um service-spezifische Nacharbeiten (z. B. Aktivieren neuer Sessions, Security-Level-Wechsel, Reset-Ausführung) endgültig scharfzuschalten.- Die Bestätigungskette kehrt kaskadierend zurück bis zum Return von
Dcm_TpTxConfirmation()anPduR.
4. Normative Relevanz & Entwickler-Hinweise
- Asynchrone Service-Abwicklung (
Dcm_ExtendedOpStatusType):- Externe Service-Handler (SW-C / BSW) dürfen bei rechen- oder I/O-intensiven Aufgaben niemals den Kontext blockieren. Sie müssen mit
DCM_E_PENDINGzurückkehren. - Folgende Aufrufe erfolgen mit
OpStatus = DCM_PENDING, der finale Aufruf zur Pufferfreigabe mitDCM_CONFIRMED_OKbzw.DCM_CANCEL.
- Externe Service-Handler (SW-C / BSW) dürfen bei rechen- oder I/O-intensiven Aufgaben niemals den Kontext blockieren. Sie müssen mit
- **P2 / P2\* Timing-Konfiguration:**
- Konfigurationsparameter
DcmDspSessionP2ServerMaxundDcmDspSessionP2StarServerMaxmüssen konsistent mit den UDS-Vorgaben des OEM-Lastenhefts parametriert werden. - Das Delta
DcmDspSessionP2ServerAdjust/DcmDspSessionP2StarServerAdjustmuss die Latenzen des Transportprotokolls (z. B. CanTp FC-Wartezeiten) und des BSW-Schedulings kompensieren, damit die NRC 0x78 vor Tester-Timeout auf dem Bus erscheint.
- Konfigurationsparameter
- Pufferverwaltung (
Dcm_MsgContextType):- Während des Status
DCM_E_PENDINGbleibt der DCM-Nachrichtenpuffer für diesen Diagnosekanal gesperrt. - Erst durch den Aufruf von
DspInternal_DcmConfirmationbzw. nachfolgende Pufferfreigabe durch die DSL wird der Diagnosekanal für nachfolgende Requests freigegeben.
- Während des Status
- Limitierung von Response Pendings:
- Entwickler müssen
DcmDspMaxNumRespPendbeachten. Bei Überschreiten der maximal zulässigen Anzahl bricht der DCM die Ausführung eigenständig ab und sendet NRC 0x22 (conditionsNotCorrect) oder NRC 0x10 (generalReject).
- Entwickler müssen
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.