AUTOSAR_SWS_ECU_StateManager
FIG-49b6c3d4a23ec0b6
928 × 948 px
1 Release(s)
Figure 38: LIN controller wake up by interrupt
SHA-256 Inhalts-Fingerabdruck:
49b6c3d4a23ec0b62dc17bea8065c30f1d238240501158b6ae34bba6a80907e7
✦
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 (sd EcuM_LinWakeupByControllerInterrupt) mit eingebetteten Zustandsmarkern (GOSLEEP, SLEEP, HALT, WAKEUP I) aus der Spezifikation des ECU State Managers (AUTOSAR_SWS_ECU_StateManager, Release R3.2.3, Figure 38). Das Diagramm modelliert den Übergang in den Sleep-Zustand, das Versetzen der MCU in den Halt-Modus, die asynchrone Erkennung eines LIN-Bus-Wakeups direkt über den peripheren LIN-Controller/UART-Interrupt sowie die schrittweise Wiederherstellung der Ausführungsumgebung in der Phase WAKEUP I.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Entitäten und Komponenten:
«module» Os: AUTOSAR Operating System, stellt Scheduler-Ressourcenverwaltung bereit (GetResource,ReleaseResource).«module» EcuM: ECU State Manager, steuert die Gesamtabläufe für Sleep-Vorbereitung, Event-Erfassung und Wakeup-Phasen.ECU Firmware: Integrations- und Callout-Schicht für plattformspezifische Initialisierungen, PLL-Taktaktivierung und hardwarenahe Wakeup-Konfiguration.«module» Mcu: Microcontroller Driver, schaltet Betriebsmodi der MCU (Mcu_SetMode).«module» Icu: Input Capture Unit (als passive Architektur-Lifeline ohne Kantenbeteiligung abgebildet).«module» LinIf: LIN Interface, nimmt Callbacks zur Wakeup-Prüfung entgegen und stößt Treiber-Validierungen an.«module» Lin: LIN Driver (MCAL), kapselt den Interrupt-Handler des Controllers und validiert Wakeup-Zustände.«Peripheral» LinController/UART: On-Chip-Hardwareperipherie, detektiert Busaktivität und erzeugt den Hardware-Interrupt.«Peripheral» Lin Transceiver Hardware: Externe LIN-Transceiver-Hardware (als passive Kontext-Lifeline ohne direkte Interaktionskanten aufgeführt).
Schnittstellen und Nachrichten:
EcuM_EnableWakeupSources(EcuM_WakeupSourceType): EcuM an ECU Firmware.GetResource(RES_SCHEDULER)/ReleaseResource(RES_SCHEDULER): EcuM an Os.Mcu_SetMode(Mcu_ModeType): EcuM an Mcu.Wakeup interrupt()/Return from interrupt(): LinController/UART an/von Lin.EcuM_CheckWakeup(EcuM_WakeupSourceType): Lin an ECU Firmware.Activate PLL(): Interner Aufruf / Aktion der ECU Firmware.LinIf_Cbk_CheckWakeup(NetworkHandleType): ECU Firmware an LinIf.Lin_WakeupValidation(): LinIf an Lin.EcuM_SetWakeupEvent(EcuM_WakeupSourceType): Lin an EcuM.EcuM_DisableWakeupSources(EcuM_WakeupSourceType): EcuM an ECU Firmware.
3. Dynamisches Verhalten & Sequenzablauf
Sequenzablauf in vier Hauptphasen:
- Phase GOSLEEP: EcuM ruft den Callout
EcuM_EnableWakeupSourcesauf (LinSM hat zuvor bereitsLinIf_GotoSleepbeim Wechsel nachNO_COMausgeführt; im Callout ist für LIN kein zusätzlicher Code erforderlich). Danach reserviert EcuMGetResource(RES_SCHEDULER)beim OS, um ein Verdrängen/Re-Scheduling nach einem Cat-2-ISR zu unterbinden. - Phase SLEEP / HALT: EcuM ruft
Mcu_SetModeauf; Mcu geht in den ZustandHALT, wodurch die CPU-Befehlsausführung stoppt. - Interrupt- und Wakeup-Verarbeitung: Der
LinController/UARTempfängt Busaktivität und löstWakeup interrupt()imLin-Treiber aus. Die ISR ruftEcuM_CheckWakeupin der ECU Firmware auf, welche internActivate PLL()zur Taktrekonfiguration ausführt. Anschließend benachrichtigt die ECU Firmware das LIN-Interface viaLinIf_Cbk_CheckWakeup, woraufhinLinIfmittelsLin_WakeupValidationdie Validierung beimLin-Treiber anfordert. Nach erfolgreicher Validierung setzt der Treiber das Ereignis perEcuM_SetWakeupEventim EcuM. Die Kaskade kehrt zurück und der Treiber beendet die ISR mitReturn from interrupt(). - Phase WAKEUP I: Die CPU-Ausführung setzt hinter dem HALT-Befehl fort (
Mcu_SetMode-Rückkehr). EcuM wechselt per erneutemMcu_SetModein den Normalbetrieb, ruftEcuM_DisableWakeupSourcesauf und gibtReleaseResource(RES_SCHEDULER)frei. Abschließend wird vermerkt, dass EcuM später ComM über das Wakeup unterrichtet, woraufhin LinSM angewiesen wird,LinIf_Wakeupaufzurufen.
4. Normative Relevanz & Entwickler-Hinweise
Entwicklungs- und Integrationshinweise:
- ISR-Kapselung im MCAL-Treiber: Der Interrupt wird direkt vom LIN-Treiber als ISR bedient. Dies unterscheidet den Controller-basierten Wakeup vom Transceiver-basierten Wakeup, bei dem typischerweise ICU oder externe Interrupts genutzt werden.
- Scheduler-Sperre (
RES_SCHEDULER): Das Anfordern der Scheduler-Ressource vorHALTist zwingend normativ erforderlich, da nach dem Auftreten einer ISR der Kategorie 2 sonst unmittelbar ein OS-Re-Scheduling ausgelöst würde und die sequentielle Rückkehr in den EcuM nach dem HALT-Befehl nicht garantiert wäre. - Taktwiederherstellung (
Activate PLL()): Bevor Callbacks in höherliegende Schichten (LinIf) und Treiber-Validierungen aufgerufen werden, muss innerhalb vonEcuM_CheckWakeupder Systemtakt stabilisiert werden. - Entkopplung der Kommunikationsaufnahme: Die Aktivierung des Kommunikationsstapels (
LinIf_Wakeup) erfolgt nicht synchron in der ISR, sondern zeitlich entkoppelt über den PfadEcuM->ComM->LinSM->LinIf. - Passive Komponenten:
IcuundLin Transceiver Hardwaresind zur Vollständigkeit der Systemarchitektur im Diagramm enthalten, verbleiben bei controllerinternem Wakeup jedoch ungenutzt.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.