AUTOSAR_SWS_ECU_StateManager
FIG-c010128b3b3633d0
921 × 866 px
2 Release(s)
Figure 35: CAN Controller or Transceiver Wakeup by Polling
SHA-256 Inhalts-Fingerabdruck:
c010128b3b3633d09edb970e929495fa0684beee05008de0990e6456a5543ab2
✦
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
UML-Sequenzdiagramm mit kombinierten Fragmenten (loop, alt, opt) und sequenziell durchlaufenen Zustandsphasen des EcuM (GOSLEEP, SLEEP, WAKEUP I, WAKEUP VALIDATION). Es beschreibt die Software-Architektur und Ablauflogik im AUTOSAR-Standard (Releases R3.0.7 / R3.1.5) innerhalb des BSW-Moduls EcuM (ECU State Manager, System Services) zur Behandlung des Aufwachvorgangs eines Steuergeräts über Polling (zyklische Abfrage) von CAN-Controller oder CAN-Transceiver, wenn hardwareseitig keine Interrupt-Aufweckung genutzt wird oder verfügbar ist.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Instanzen und Schichten (von links nach rechts):
OS::Os: AUTOSAR OS zur Steuerung des Schedulers über Ressourcensperren.«module» EcuM::EcuM: ECU State Manager zur Ablaufsteuerung der Schlaf- und Aufwachphasen.Generic Elements::ECU Firmware: Integratorspezifische Callout-Ebene und Plattform-Hooks.«module» Mcu::Mcu: Microcontroller Driver (MCAL) zur Takt- und Power-Mode-Umschaltung.«module» Icu::Icu: Input Capture Unit (MCAL), als Lebenslinie deklariert, im Polling-Pfad ohne Interaktion.«module» CanIf::CanIf: CAN Interface (Communication Abstraction) zur Treiber- und Transceiver-Abstraktion.«module» Can::Can: CAN Driver (MCAL).«module» CanTrcv::CanTrcv: CAN Transceiver Driver (Hardware Abstraction).«Peripheral» Hardware::CanControllerund«Peripheral» Hardware::CAN Transceiver Hardware: Hardware-Peripherieelemente (passiv ohne Nachrichtenflüsse dargestellt).
Schnittstellen und Operationen:
- OS-Dienste:
GetResource(uint8),ReleaseResource(uint8) - Mcu-Dienste:
Mcu_SetMode(Mcu_ModeType) - EcuM Callouts / Hooks:
EcuM_EnableWakeupSources(EcuM_WakeupSourceType),EcuM_SleepActivity(),EcuM_CheckWakeup(EcuM_WakeupSourceType),EcuM_DisableWakeupSources(EcuM_WakeupSourceType) - Treiber- und Abstraktionsschnittstellen:
CanIf_CheckWakeup(uint8),Can_Cbk_CheckWakeup(uint8),CanTrcv_CB_WakeupByBus(uint8, Std_ReturnType) - Wakeup-Meldung:
EcuM_SetWakeupEvent(EcuM_WakeupSourceType)
3. Dynamisches Verhalten & Sequenzablauf
Sequenzablauf:
- Phase GOSLEEP: EcuM ruft den Callout
EcuM_EnableWakeupSources(EcuM_WakeupSourceType)auf (Voraussetzung: CanSM hat zuvorCanIf_SetControllerModeundCanIf_SetTransceiverModeausgeführt). EcuM fordert überGetResource(uint8)die Scheduler-Ressource an, um Taskwechsel zu unterbinden. - Phase SLEEP: EcuM schaltet via
Mcu_SetMode(Mcu_ModeType)in einen energiesparenden Modus mit reduzierter Taktfrequenz, in dem Softwarebefehle weiter zyklisch abgearbeitet werden. - Schleifenfragment
loop WHILE no pending wakeup events:- EcuM führt zyklisch
EcuM_SleepActivity()auf der ECU Firmware aus. - EcuM initiiert die Aufwachprüfung über
EcuM_CheckWakeup(EcuM_WakeupSourceType)an die ECU Firmware, welcheCanIf_CheckWakeup(uint8)aufruft. - Verzweigungsfragment
alt Wakeup Device:- Bedingung
[CAN Controller]: CanIf ruftCan_Cbk_CheckWakeup(uint8)am CAN-Treiber auf. - Bedingung
[CAN Transceiver]: CanIf ruftCanTrcv_CB_WakeupByBus(uint8, Std_ReturnType)am CAN-Transceiver-Treiber auf.
- Bedingung
- Optionales Fragment
opt Wakeup Detected: Wurde an Controller oder Transceiver ein Aufwachereignis detektiert, meldet CanIf dieses mitEcuM_SetWakeupEvent(EcuM_WakeupSourceType)an EcuM zurück. Damit ist ein Wakeup-Event anhängig und die Schleife terminiert.
- EcuM führt zyklisch
- Phase WAKEUP I: EcuM stellt über
Mcu_SetMode(Mcu_ModeType)den Normaltakt wieder her, deaktiviert überEcuM_DisableWakeupSources(EcuM_WakeupSourceType)die Wakeup-Quellen und gibt überReleaseResource(uint8)den OS-Scheduler frei. - Das System wechselt in die Phase WAKEUP VALIDATION.
4. Normative Relevanz & Entwickler-Hinweise
Normative Relevanz und Integrationshinweise:
- Betriebsmodus: Dargestellt ist der EcuM-Polling-Modus (Sleep mit CPU-Aktivität bei reduziertem Takt), der zwingend erforderlich ist, wenn Hardware-Peripherien keine autonomen Wakeup-Interrupts erzeugen können oder Sleep-Modi ohne Interrupt-Aufwachpfad gewählt wurden.
- Scheduler-Blockierung: Der Aufruf von
GetResourcestellt sicher, dass während der gesamten Polling-Schleife und des anschließenden Wiederhochfahrens keine normalen BSW- oder Anwendungs-Tasks interferieren; erst in WAKEUP I wird der Scheduler freigegeben. - Release-Spezifika (AUTOSAR R3.x): Die Nomenklatur
Can_Cbk_CheckWakeupundCanTrcv_CB_WakeupByBussowie die Routing-Rolle vonGeneric Elements::ECU Firmwareals Callout-Vermittler sind spezifisch für die R3-Linie und wurden in späteren AUTOSAR-Releases refaktoriert. - Zustandsüberführung: Die Detektion über
EcuM_SetWakeupEventüberführt den EcuM unmittelbar aus der Polling-Schleife in die Re-Initialisierungsphase WAKEUP I und die Validierungsphase WAKEUP VALIDATION.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.