AUTOSAR_CP_SWS_IOHardwareAbstraction
FIG-de04a290a1df0fb9
932 × 1076 px
4 Release(s)
Figure 9: 2.1: asynchronous power state setting.
SHA-256 Inhalts-Fingerabdruck:
de04a290a1df0fb98e2385a778e7d5e6e60db7e62e1c9b056fec411ce7d6ec16
✦
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-Sequenzdiagramm (Interaktionsdiagramm).
- Technischer Zweck: Spezifikation des zweiphasigen asynchronen Power-State-Übergangs (Power State Transition) von MCAL-Peripherietreibern über die I/O Hardware Abstraction (
IoHwAb). - Architektur-Einordnung:
- Eingebettet in das AUTOSAR Classic Platform (CP) Mode- und Power-Management (ab Release 4.1).
- Die
IoHwAbfungiert als Aggregator und Zustandsvermittler zwischen dem systemweiten Modus-Management (BswMviaRte/SchM) und den hardwarenahen MCAL-Treibern (z. B.Adc,Pwm), um komplexe Energiesparmodi ohne Blockierung des Steuergeräts deterministisch zu koordinieren.
2. Komponenten, Entitäten & Schnittstellen
- Beteiligte Module (
«module»Lifelines):BswM(Basic Software Mode Manager): Übergeordneter Master für Zustandsübergänge, initiiert Mode-Switches und konsumiert Abschlussquittierungen.Rte(Runtime Environment / SchM): Signal- und Ausführungsvermittler für Mode-Switch-Events und Task-Trigger.IoHwAb(I/O Hardware Abstraction): Zentraler Orchestrator; kapselt Peripherie-spezifische Power-States in ECU-spezifische Modi (LowPowerModeA,LP1).Adc/Pwm(Microcontroller Abstraction Layer Modules): Untergeordnete Hardwaretreiber mit standardisierten Power-State-APIs (<MSN>_...).
- Schnittstellen & Callbacks:
RTE/SchMSwitch(char)/RTE/SchMSwitch(LowPowerModeA_Transition_End): Modus-Umschaltanforderung bzw. -Rückmeldung via Mode Declaration Group Ports.OnEntryRunnable_LowPowerModeA(): Entry-Runnable derIoHwAb, ausgelöst bei Eintritt in den Übergangsmodus.IoHwAb_PollForResults(): Periodisches Runnable derIoHwAbzur Synchronisationsüberwachung.- MCAL Synchronous Query APIs:
Adc_GetCurrentPowerState(),Pwm_GetCurrentPowerState(). - MCAL Async Preparation APIs:
Adc_PreparePowerState(PwrSts_1),Pwm_PreparePowerState(PwrSts_3). - MCAL Completion Callbacks:
IoHwAb_Pwm_NotifyReadyForPowerStateLowPowerModeA(),IoHwAb_Adc_NotifyReadyForPowerStateLowPowerModeA(). - MCAL Target State Setting APIs:
Adc_SetPowerState(),Pwm_SetPowerState().
3. Dynamisches Verhalten & Sequenzablauf
- Triggerung & Phase 1 (Preparation Request):
BswMtriggert überRTE/SchMSwitchden Moduswechsel.- Die
Rteaktiviert die Entry-FunktionOnEntryRunnable_LowPowerModeA()derIoHwAb. IoHwAbführt internIoHwAb_PreparePowerState_LowPowerModeA()aus.IoHwAbliest den Ist-Zustand über<MSN>_GetCurrentPowerState()vonAdcundPwmaus.IoHwAbruft<MSN>_PreparePowerState(<TargetState>)synchron auf beiden Treibern auf. Die APIs kehren sofort zurück; die eigentliche Hardware-Vorbereitung startet asynchron im Hintergrund.
- Hintergrundausführung & Synchronisation:
- Die MCAL-Treiber wickeln die Vorbereitung (z. B. Beenden laufender ADC-Sequenzen, Auslaufen/Ramp-Down von PWM-Perioden) getrieben durch
<MSN>_Main_PowerStateTransitionManager()im Hintergrund ab. PeriodicTask()ruft wiederkehrendIoHwAb_PollForResults()auf; solange Quittierungen fehlen, verbleibt das System im Wartezustand.- Nach erfolgreicher Vorbereitung signalisieren die Treiber ihre Bereitschaft über konfiguierte Callbacks an die Abstraktionsschicht:
IoHwAb_Pwm_NotifyReadyForPowerStateLowPowerModeA()IoHwAb_Adc_NotifyReadyForPowerStateLowPowerModeA()
- Die MCAL-Treiber wickeln die Vorbereitung (z. B. Beenden laufender ADC-Sequenzen, Auslaufen/Ramp-Down von PWM-Perioden) getrieben durch
- Phase 2 (Set Power State & Quittierung):
- Beim nächsten Zyklus von
IoHwAb_PollForResults()erkennt dieIoHwAbdie Vollständigkeit aller Benachrichtigungen (Barriere-Synchronisation) und ruftIoHwAb_EnterPowerStateLP1()auf. - Ausführung der harten Umschaltung über die synchronen APIs
Adc_SetPowerState()undPwm_SetPowerState(). IoHwAbquittiert den Abschluss überRTE/SchMSwitch(LowPowerModeA_Transition_End)an dieRte.Rteaktualisiert die BswM-Modusports viaUpdateModePorts().
- Beim nächsten Zyklus von
4. Normative Relevanz & Entwickler-Hinweise
- 2-Phasen-Commit-Pattern: MCAL-Treiber dürfen in Phase 1 (
Prepare) keine harten Takt-/Registerabschaltungen vornehmen, sondern müssen flüchtige Operationen geordnet terminieren und neue Requests sperren. Erst in Phase 2 (Set) erfolgt die physikalische Modusumschaltung. - BSW-Scheduling & Background-Tasks:
- Das asynchrone Verhalten setzt zwingend voraus, dass
<MSN>_Main_PowerStateTransitionManager()im OS-Taskplan für die betroffenen MCAL-Module konfiguriert ist. IoHwAb_PollForResultsmuss auf einem periodischen Basic-Task gemappt sein, um Race Conditions zwischen Callbacks und State-Setting zu vermeiden.
- Das asynchrone Verhalten setzt zwingend voraus, dass
- Konfigurationsabhängigkeiten (BSW Management & IoHwAb):
- Zuordnung der generischen ECU-Power-Modes zu den modulspezifischen
PowerState-Enums (z. B.PwrSts_1,PwrSts_3) erfolgt statisch in derIoHwAb-Konfiguration. - Die Callbacks (
IoHwAb_<MSN>_NotifyReadyFor...) müssen im MCAL-Treiber als Benachrichtigungsschnittstellen für Power-State-Transitions projektiert werden.
- Zuordnung der generischen ECU-Power-Modes zu den modulspezifischen
- Fehlerbehandlung & Timeouts: Im realen Serieneinsatz muss die
IoHwAboder derBswMeinen Timeout-Mechanismus vorhalten, falls ein MCAL-Treiber aufgrund von Hardwarefehlern den Vorbereitungszustand nicht erreicht und den Callback blockiert.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.