AUTOSAR_SWS_WatchdogDriver
FIG-0f2b4c091b6471d7
892 × 603 px
1 Release(s)
Figure 2: Sequence of watchdog initialization, setting trigger condition and mode switching.
SHA-256 Inhalts-Fingerabdruck:
0f2b4c091b6471d7967b11f1a260ad89430d1a00e56b01b5568fbd66075c336e
✦
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 Lebenszyklus und Interaktionsmusters des AUTOSAR Watchdog-Stacks (Classic Platform, System- und Abstraktionsschicht bis MCAL).
- Funktionale Einordnung: Zeigt die Entkopplung von Initialisierung (Boot-/Startup-Phase via
EcuM), zyklischer Überwachung/Trigger-Verlängerung (WdgManWdgviaWdgIf) und Betriebsmodi-Umschaltung (WDGIF_OFF_MODE,WDGIF_SLOW_MODE,WDGIF_FAST_MODE).
2. Komponenten, Entitäten & Schnittstellen
- Akteure / BSW-Module (Stereotyp
«module»):EcuM(ECU State Manager, System Services): Übernimmt die hardwarenahe Grundinitialisierung im Boot-Pfad.WdgM(Watchdog Manager, System Services): Führt die logische Überwachung (Alive-, Deadline-, Logical Supervision) durch und steuert das Trigger-Budget.WdgIf(Watchdog Interface, ECU Abstraction Layer): Bietet eine einheitliche Abstraktionsschicht für interne (Microcontroller-interne) und externe (z. B. SPI-basierte SBC-) Watchdogs.Wdg(Watchdog Driver, MCAL): Hardware-spezifischer Treiber zur Ansteuerung des physischen Watchdogs.
- Schnittstellen & Parameter-Signaturen:
Wdg_Init(const Wdg_ConfigType* ConfigPtr): Synchroner Treiber-Initialisierungsaufruf (Post-Build-Konfigurationszeiger).WdgIf_SetTriggerCondition(uint8 DeviceIndex, uint16 Timeout): Übergibt den Ziel-Watchdog (DeviceIndex) und das Timeout-Intervall in Millisekunden.Wdg_SetTriggerCondition(uint16 Timeout): Treiber-spezifischer Hardware-Trigger ohne Geräteindex.WdgIf_SetMode(uint8 DeviceIndex, WdgIf_ModeType WdgMode): Modus-Anforderung an das Interface; Rückgabetyp:Std_ReturnType(im Diagramm als Parameterfeld typisiert).Wdg_SetMode(WdgIf_ModeType WdgMode): Treiber-spezifische Umschaltung des Hardware-Modus; Rückgabetyp:Std_ReturnType.
- Kardinalitäten & Abbildung:
WdgIfmultiplexiert1..nWatchdog-Instanzen (Wdg) über den ParameterDeviceIndex(uint8).WdgMgreift modular auf1..nWatchdogs ausschließlich überWdgIfzu.EcuMinitialisiert den Treiber direkt (typischerweise inDriverInitListOneoderDriverInitListTwo).
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase (Startup):
- Synchroner Aufruf:
EcuMruftWdg_Init(const Wdg_ConfigType*)direkt auf dem MCAL-TreiberWdgauf. - Der Treiber initialisiert die Register, setzt die Hardware in den konfigurierten Default-Modus (in der Regel
WDGIF_SLOW_MODE) und kehrt synchron zuEcuMzurück.
- Synchroner Aufruf:
- Watchdog-Servicing / Trigger-Bedingung setzen (Runtime / Cyclic Task):
- Auslöser:
WdgMevaluiert zyklisch den globalen Überwachungsstatus (Supervision Entities). - Pfad:
WdgMruft synchronWdgIf_SetTriggerCondition(DeviceIndex, Timeout)auf. - Demultiplexing:
WdgIfermittelt anhand desDeviceIndexdie zuständige Treiber-API und ruftWdg_SetTriggerCondition(Timeout)auf. - Wirkung: Hardware-Timer/Trigger-Window wird auf das spezifizierte Intervall aufgefrischt. Synchroner Kontrollfluss kehrt über
WdgIfzuWdgMzurück.
- Auslöser:
- Modusumschaltung (Mode Switching):
- Auslöser: Änderung des Betriebszustands (z. B. Übergang in Shutdown/Sleep oder High-Frequency Task-Monitoring).
- Pfad:
WdgMruftWdgIf_SetMode(DeviceIndex, WdgMode)auf. - Routing:
WdgIfdelegiert anWdg_SetMode(WdgMode). - Rückmeldung:
Wdgquittiert synchron mitStd_ReturnType(E_OKoderE_NOT_OK). Der Status propagiert synchron überWdgIfzurück anWdgM.
4. Normative Relevanz & Entwickler-Hinweise
- Treiber-Implementierung (
Wdg):Wdg_SetTriggerConditionundWdg_SetModemüssen reentrant bezüglich verschiedener Instanzen sein, dürfen aber für dieselbe Instanz nicht überlappend ausgeführt werden.- Wenn die zugrundeliegende Watchdog-Hardware die Deaktivierung (
WDGIF_OFF_MODE) hardwaretechnisch sperrt (z. B. Window-Watchdog im Safety-Lock), mussWdg_SetMode(WDGIF_OFF_MODE)zwingend mitE_NOT_OKfehlschlagen und den aktuellen Modus unverändert beibehalten.
- Interface-Konfiguration (
WdgIf):- Kann als statische Inline-Funktion/Makro generiert werden (Zero-Overhead-Optimierung), wenn im Gesamtsystem genau ein Watchdog (
WdgIfNumWatchdogs == 1) konfiguriert ist (DeviceIndex = 0). Bei Multi-Watchdog-Setups (> 1) erfolgt das Dispatching tabellenbasiert über Funktionszeiger.
- Kann als statische Inline-Funktion/Makro generiert werden (Zero-Overhead-Optimierung), wenn im Gesamtsystem genau ein Watchdog (
- Systemintegration (
EcuM/WdgM):- Reihenfolge-Abhängigkeit:
Wdg_Initerfolgt vor dem Start des OS und vorWdgM_Init. Bis zum Start desWdgMläuft der Watchdog im hardware-definierten Timeout-Fenster;EcuMbzw. der BSW-Boot-Pfad muss sicherstellen, dassWdgM_Initund der erste Aufruf vonWdgIf_SetTriggerConditionvor Ablauf des initialen Hardware-Timeouts erfolgen (Vermeidung von Early-Boot-Resets).
- Reihenfolge-Abhängigkeit:
- Synchrones API-Modell: Alle Schnittstellen sind blockierend/synchron ohne Callbacks; zeitintensive externe Watchdog-Treiber (z. B. via SPI) müssen im Treiber blockierende SPI-Sync-Transfers nutzen oder dürfen das Watchdog-Trigger-Timing nicht überdehnen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.