DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_COMManager FIG-ac0a3c5cabe10d78 903 × 1266 px 1 Release(s)

Figure 13: Network shutdown (CAN)

SHA-256 Inhalts-Fingerabdruck: ac0a3c5cabe10d78add52efda7cbb6b8d8187dcb4e6523aab0a6c4f88f4f7b5a
✦ 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

  • Klassifikation: UML 2.x Sequenzdiagramm (Interaktionsdiagramm) mit kombinierten Fragmenten (alt).
  • Technischer Zweck: Spezifikation des geregelten Netzwerk-Shutdowns eines CAN-Kanals im AUTOSAR Classic Platform Communication Stack (AUTOSAR_SWS_COMManager, R4.0.3, Figure 11).
  • Funktionale Einordnung: Dargestellt wird die koordinierte Deaktivierung der Kommunikation von COMM_FULL_COMMUNICATION über den Zwischenzustand COMM_SILENT_COMMUNICATION bis zur vollständigen Busruhe (COMM_NO_COMMUNICATION). Der ComM fungiert als Bindeglied zwischen Applikationsanforderungen (RTE/SW-C), Diagnose (Dcm), generischem Netzwerkmanagement (Nm), busspezifischem State Manager (CanSM) sowie dem ECU- und Mode-Management (EcuM/BswM).

2. Komponenten, Entitäten & Schnittstellen

Akteure & Module (Lifelines)
  • «module» ComM: Zentraler Koordinator der Kommunikationsmodi (Kanal- und User-Zustände).
  • «module» EcuM: ECU State Manager (Überwachung der Steuergeräte-Betriebsphase).
  • «module» Dcm: Diagnostic Communication Manager (Überwachung/Freigabe aktiver Diagnosesitzungen).
  • «module» BswM: Basic Software Mode Manager (Zentrale Regelauswertung und Moduskoordination).
  • «module» Rte: Runtime Environment (Propagierung von Modusänderungen an Applikations-SW-Cs).
  • VehicleModeManager: Applikative SW-C / Flotten-Zustandsmanager (stellt Kommunikationsanfragen).
  • «module» Nm: Network Management Interface (Abstraktion der Zustände Network Mode, Prepare Bus-Sleep, Bus-Sleep).
  • «module» CanSM: CAN State Manager (Steuerung des CAN-spezifischen Controllers/Transceivers via CanIf).
Schnittstellen & Interaktionsmuster
  • Mode-Request-APIs (Client → ComM):
    • ComM_RequestComMode(User, COMM_NO_COMMUNICATION)
    • ComM_LimitChannelToNoComMode(Channel, Status:=TRUE)
  • NM-Steuerung & Callbacks (ComM ↔ Nm):
    • Nm_NetworkRelease(NetworkHandle): Synchrone Freigabe des Netzwerks durch den ComM.
    • ComM_Nm_PrepareBusSleepMode(Channel): Asynchroner NM-Callback bei Eintritt in Prepare Bus-Sleep.
    • ComM_Nm_BusSleepMode(Channel): Asynchroner NM-Callback bei Eintritt in Bus-Sleep.
  • Bus-SM-Steuerung & Bestätigung (ComM ↔ CanSM):
    • CanSM_RequestComMode(NetworkHandle, ComM_Mode): Modusanforderung an den CAN-Zustandsautomaten.
    • ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode): Asynchrone Vollzugsmeldung des CanSM an den ComM.
  • Modus-Notifikationen (ComM → BSW / Applikation):
    • Rte_Ports_UserMode_P()[n].Switch_currentMode(...): RTE Mode Switch Notification.
    • BswM_ComM_CurrentMode(Network, ComM_Mode): Modus-Indikation an die BswM-Zustandsmaschine.
    • Dcm_ComM_SilentComModeEntered(uint8) / Dcm_ComM_NoComModeEntered(uint8): Statussynchronisation mit dem Diagnose-Stack.

3. Dynamisches Verhalten & Sequenzablauf

Phase 1: Initiierung des Shutdowns (alt Shutdown initiation)
  • Pfad A (Regulärer Release): Letzter ComM-User entzieht Kommunikationsanforderung (ComM_RequestComMode(..., COMM_NO_COMMUNICATION)). Vorbedingung: Keine weiteren User fordern COMM_FULL_COMMUNICATION an und Dcm meldet keine aktive Diagnose (no DCM ActiveDiagnostics).
  • Pfad B (Forciertes Herunterfahren): Aufruf von ComM_LimitChannelToNoComMode(Channel, TRUE) (z. B. bei Unterspannung oder durch den VehicleModeManager).
Phase 2: Freigabe des Bus-Netzwerkmanagements
  1. ComM vollzieht internen Zustandswechsel: Switch to SUBS_COMM_READY_SLEEP state().
  2. ComM ruft synchron Nm_NetworkRelease(NetworkHandle) auf; Nm quittiert mit E_OK.
Phase 3: Übergang nach COMM_SILENT_COMMUNICATION
  1. Trigger: Nm-Timer läuft ab; Nm ruft ComM_Nm_PrepareBusSleepMode(Channel) auf.
  2. ComM schaltet intern auf COMM_SILENT_COMMUNICATION.
  3. ComM weist CanSM an: CanSM_RequestComMode(NetworkHandle, COMM_SILENT_COMMUNICATION).
  4. ComM benachrichtigt parallel:
    • RTE: Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_SILENT_COMMUNICATION).
    • BswM: BswM_ComM_CurrentMode(Network, COMM_SILENT_COMMUNICATION).
    • Dcm: Dcm_ComM_SilentComModeEntered(uint8).
Phase 4: Übergang nach COMM_NO_COMMUNICATION
  1. Trigger: Nm meldet Busruhe via Callback ComM_Nm_BusSleepMode(Channel).
  2. ComM wechselt intern auf COMM_NO_COMMUNICATION.
  3. ComM fordert beim CanSM Modus COMM_NO_COMMUNICATION an (CanSM_RequestComMode).
  4. Asynchrone Quittierung: CanSM signalisiert den vollzogenen Zustand über den Callback ComM_BusSM_ModeIndication(NetworkHandle, COMM_NO_COMMUNICATION).
  5. ComM aktualisiert die Systemumgebung:
    • RTE: Switch_currentMode(RTE_MODE_ComModes_NO_COMMUNICATION).
    • BswM: BswM_ComM_CurrentMode(Network, COMM_NO_COMMUNICATION).
    • Dcm: Dcm_ComM_NoComModeEntered(uint8).
Phase 5: ECU-Shutdown-Entscheidung (Architektur-Hinweis laut Diagramm-Notiz)
  • EcuM-Flex: BswM wertet die BswM_ComM_RequestMode()-Indikationen aus, um den zulässigen Zeitpunkt für das Herunterfahren des Steuergeräts zu bestimmen.

4. Normative Relevanz & Entwickler-Hinweise

  • Entkopplung Applikation / Hardware: SW-Cs dürfen den CanSM niemals direkt ansprechen. Alle Netzanforderungen müssen über User-Mappings im ComM laufen; die tatsächliche Busabschaltung hängt zwingend von den Timern des CAN-NM ab.
  • Bedeutung von COMM_SILENT_COMMUNICATION: In diesem Zwischenzustand (während Prepare Bus-Sleep) ist das Senden von Botschaften im CAN-Treiber/CanIf gesperrt, der Empfang bleibt aktiv (Vermeidung von Busfehlern durch noch sendende Knoten).
  • Asynchronitäts-Falle: CanSM_RequestComMode quittiert den Aufruf synchron lediglich mit E_OK (Anforderung akzeptiert). Der ComM darf den Wechsel nach COMM_NO_COMMUNICATION erst nach Eintreffen von ComM_BusSM_ModeIndication() als abgeschlossen werten und an RTE/BswM melden.
  • Diagnose-Blockade: Eine aktive Diagnosesitzung (Dcm ActiveDiagnostics) sperrt den Übergang in SUBS_COMM_READY_SLEEP. Der Netzwerk-Shutdown bleibt blockiert, bis der Dcm die Diagnoseverbindung freigibt.
  • Protokollneutralität: Die gezeigte Sequenz ist prototypisch für CAN, gilt laut AUTOSAR-Spezifikation aber strukturell identisch für LIN, FlexRay und Ethernet (unter Verwendung des jeweiligen Bus State Managers LinSM, FrSM, EthSM).

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R19-11 → R20-11 keine inhaltliche Änderung Vorgänger: FIG-5034546ea342a8d3

Keine inhaltlichen Änderungen erkennbar.

R20-11 → R21-11 keine inhaltliche Änderung Nachfolger: FIG-31b20cc02c56fffd

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | EcuM | «module» | Dcm | «module» | ComM | «module» | Rte | VehicleModeManager «module» | Nm | «module» | CanSM | «module» | BswM | alt Shutdown initiation | [No user requests COMM_FULL_COMMUNICATION and no DCM ActiveDiagnostics] | [Forcing to COMM_NO_COMMUNICATION state] | Release last COMM_FULL_COMMUNICATION request | Status: Proposed. | Description: Release of network for CAN. Similar sequence for LIN, FlexRay and Ethernet | Comments: - none - | COMM_SILENT_COMMUNICATION | If EcuM - Flex is used: BswM should use BswM_ComM_RequestMode() indications to know when ECU can be shutdown | BswM_ComM_CurrentMode() | ComM_Nm_BusSleepMode(Channel) | Std_ReturnType:=Nm_NetworkRelease (NetworkHandle) | Dcm_ComM_NoComModeEntered(uint8) | Dcm_ComM_SilentComModeEntered(uint8) | ComM_LimitChannelToNoComMode(...)=E_OK | Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_NO_COMMUNICATION) | Switch to COMM_SILENT_COMMUNICATION() | Std_ReturnType:=ComM_RequestComMode(User, ComMode: =COMM_NO_COMMUNICATION) | Rte_Ports_UserMode_P()[n].Switch_currentMode | CanSM_RequestComMode(...)=E_OK | ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode: =COMM_NO_COMMUNICATION) | Rte_Ports_UserMode_P()[n].Switch_currentMode | ComM_Nm_PrepareBusSleepMode(...) | CanSM_RequestComMode(...)=E_OK | ComM_Nm_BusSleepMode() | Std_ReturnType:=ComM_LimitChannelToNoComMode(Channel, Status: =TRUE) | Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode: =COMM_SILENT_COMMUNICATION) | ComM_Nm_PrepareBusSleepMode(Channel) | Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode: =COMM_NO_COMMUNICATION) | BswM_ComM_CurrentMode() | Switch to SUBS_COMM_READY_SLEEP state() | Dcm_ComM_NoComModeEntered() | BswM_ComM_CurrentMode(Network, COMM_NO_COMMUNICATION) | Switch to COMM_NO_COMMUNICATION() | BswM_ComM_CurrentMode(Network, COMM_SILENT_COMMUNICATION) | Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_SILENT_COMMUNICATION) | ComM_GetRequestedComMode(...)=E_OK | Dcm_ComM_SilentComModeEntered() | Nm_NetworkRelease(...)=E_OK

Begleitender Spezifikationstext:

Figure 13 shows the possibilities to shutdown the CAN network. It can be either initiated if the last user releases his COMM_FULL_COMMUNICATION request or ComM_LimitChannelToNoComMode(…) (see SWS_ComM_00163) is called. The behaviour is equal for LIN, FlexRay and Ethernet just with different API names. «module» EcuM «module» Dcm «module» ComM «module» Rte VehicleModeManager «module» Nm «module» CanSM «module» BswM alt Shutdown initiation [No user requests COMM_FULL_COMMUNICATION and no DCM ActiveDiagnostics] [Forcing to COMM_NO_COMMUNICATION state] Release last COMM_FULL_COMMUNICATION request Status: Proposed. Description: Release of network for CAN. Similar sequence for LIN, FlexRay and Ethernet Comments: - none - COMM_SILENT_COMMUNICATION If EcuM - Flex is used: BswM should use BswM_ComM_RequestMode() indications to know when ECU can be shutdown BswM_ComM_CurrentMode() ComM_Nm_BusSleepMode(Channel) Std_ReturnType:=Nm_NetworkRelease (NetworkHandle) Dcm_ComM_NoComModeEntered(uint8) Dcm_ComM_SilentComModeEntered(uint8) ComM_LimitChannelToNoComMode(...)=E_OK Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_NO_COMMUNICATION) Switch to COMM_SILENT_COMMUNICATION() Std_ReturnType:=ComM_RequestComMode(User, ComMode: =COMM_NO_COMMUNICATION) Rte_Ports_UserMode_P()[n].Switch_currentMode CanSM_RequestComMode(...)=E_OK ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode: =COMM_NO_COMMUNICATION) Rte_Ports_UserMode_P()[n].Switch_currentMode ComM_Nm_PrepareBusSleepMode(...) CanS

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R20-11 AUTOSAR_SWS_COMManager S. 138 13 Figure 13: Network shutdown (CAN)