AUTOSAR_CP_SWS_DiagnosticCommunicationManager
FIG-6699351e49aa2380
662 × 768 px
1 Release(s)
Figure 9.21: Process Jump to Bootloader
SHA-256 Inhalts-Fingerabdruck:
6699351e49aa23809ea61d7495ed9de756b28b0d88e12388cdfd1f454dcc379f
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Sequenzdiagramm mit kombiniertem Fragment (
alt). - Funktionale Einordnung: Detaillierung des internen und externen Interaktionsablaufs im AUTOSAR Classic Platform Diagnostic Communication Manager (DCM, SWS BSW-Modul) beim Wechsel in die Programmiersitzung (UDS Service
0x10 DiagnosticSessionControl, Sub-Funktion0x02 programmingSession) mit anschließendem Übergang in den Bootloader („Jump to Bootloader“). - Architektur-Kontext: Koordination zwischen PDU Router (
PduR), den drei DCM-Teilschichten (Dsl,Dsd,Dsp) und den anwenderspezifischen BSW-Callouts (Dcm_Callouts).
2. Komponenten, Entitäten & Schnittstellen
- Module & Teilschichten (
«module»):PduR: PDU Router; Schnittstelle zwischen Transportprotokoll-Stack (CanTp/FrTp/DoIP) und DCM.Dsl(Diagnostic Session Layer): Verwaltet Sitzungszustände, PDU-Empfang/-Sendung, Puffer und Protokolltimings (P2/P2*).Dsd(Diagnostic Service Dispatcher): Prüft Identifier, Sitzungs-/Sicherheitsrechte und delegiert Service-Requests an DSP.Dsp(Diagnostic Service Processing): Implementiert die UDS-Service-Handler (hier: Service-Interpreter für SID0x10).Dcm_Callouts: Integrationsschicht für ECU-spezifische Hardware-/Plattform-Aktionen (z. B. Bootloader-Flags, RAM-Spiegelung).
- Schnittstellen & Datentypen:
Dcm_TpRxIndication(PduIdType id, Std_ReturnType result): TP-Empfangsmeldung von PduR an DSL.Data_Indication_functionality(): Schichtinterne Übergabe DSL → DSD.DiagnosticSessionControl service interpreter(): Schichtinterner Aufruf DSD → DSP zur Service-Verarbeitung.Dcm_TpTxConfirmation(PduIdType id, Std_ReturnType result): Sende-Bestätigung der positiven UDS-Response von PduR an DSL.Data_Confirmation_functionality(): Schichtinterne Weiterleitung der Sende-Bestätigung DSL → DSD.DspInternal_DcmConfirmation(Dcm_IdContextType idContext, PduIdType pduId, Dcm_ConfirmationStatusType status): DSD → DSP zur Bestätigung des abgeschlossenen Response-Versands.Dcm_SetProgConditions(): Callout DSP → Plattform (Dcm_Callouts) zur Persistierung der Übergabeparameter (Dcm_ProgConditionsType).
3. Dynamisches Verhalten & Sequenzablauf
- Request-Empfang & Dekodierung:
PduRsignalisiert das vollständige Eintreffen des Diagnoserequests viaDcm_TpRxIndication(...)synchron anDsl.Dslübergibt die Daten perData_Indication_functionality()anDsd.Dsdidentifiziert SID0x10und triggert denDiagnosticSessionControl service interpreter()inDsp.- Der Service-Interpreter bereitet die positive UDS-Antwort vor (
0x50 02 ...) und signalisiert die Bereitschaft zur Sitzungsänderung. - Der synchrone Aufrufstack kehrt über
DsdundDslbis zur Rückgabe vonDcm_TpRxIndication()anPduRzurück.
- Response-Übertragung (implizit):
- DCM veranlasst das Senden der Response PDU über DSL/PduR an den Bus (nicht explizit als Call dargestellt).
- Bestätigung & Verzweigung (
alt if Reset allowed):- Bedingung
[TRUE](Reset nach Response erlaubt/konfiguriert):- Sobald die positive Antwort vollständig auf dem Bus übertragen wurde, ruft
PduRDcm_TpTxConfirmation(PduIdType, Std_ReturnType)aufDslauf. Dslleitet dies viaData_Confirmation_functionality()anDsdweiter.DsdruftDspInternal_DcmConfirmation(idContext, pduId, status)aufDspauf.Dspsetzt die Programmierbedingungen ab viaDcm_SetProgConditions()anDcm_Callouts. Hier werden Tester-Adresse, Session-ID, Baudrate/Timing-Parameter in non-volatile/shared RAM geschrieben.- Nach Rückkehr des Callouts kehrt die Bestätigungskaskade synchron über
DsdundDslanPduRzurück. Der eigentliche ECU-Reset (über BswM/Mcu) wird typischerweise im Nachgang oder im Kontext des Callouts/BswM initiiert.
- Sobald die positive Antwort vollständig auf dem Bus übertragen wurde, ruft
- Bedingung
[FALSE]:- Kein direkter Reset/Bootloader-Sprung nach Tx-Bestätigung (z. B. falls UDS-Service
0x11 ECUResetseparat erwartet wird oder die ECU im Application-Mode verbleibt). Es erfolgt kein Callout-Aufruf.
- Kein direkter Reset/Bootloader-Sprung nach Tx-Bestätigung (z. B. falls UDS-Service
- Bedingung
4. Normative Relevanz & Entwickler-Hinweise
- Tx-Confirmation-Kopplung: Der Bootloader-Sprung darf erst nach vollständiger Bestätigung der Tx-PDU (
Dcm_TpTxConfirmationmitE_OK) erfolgen, um sicherzustellen, dass der Diagnosetester die positive Antwort vor dem Reset vollständig empfangen hat. - Implementierung von
Dcm_SetProgConditions():- Muss thread-sicher und synchron ausgeführt werden.
- Daten müssen in einem nichtflüchtigen Speicherbereich liegen, der durch den anschließenden Warmstart/Reset nicht überschrieben wird (z. B. uninitialisierter RAM-Bereich mit Checksumme / Retention-RAM).
- Zusammenspiel mit BswM & EcuM: Der DCM führt den Reset in der Regel nicht eigenmächtig per
Mcu_PerformReset()aus, sondern signalisiert demBswMüber definierte Mode-Declaration-Groups (z. B.DcmEcuReset), dass die ECU in den Bootloader neu starten soll. - Fehlerbehandlung: Schlägt die Tx-Confirmation fehl (
result != E_OK), darfDcm_SetProgConditions()nicht aufgerufen werden; die Session verbleibt im definierten Fehlerzustand bzw. fällt auf die Default-Session zurück.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.