AUTOSAR_CP_SWS_OS
FIG-fa685f71ffab59d2
928 × 624 px
5 Release(s)
Figure 7.5: States of an explicit synchronized ScheduleTable (not all conditions for transitions are shown in the picture)
SHA-256 Inhalts-Fingerabdruck:
fa685f71ffab59d2813f592b8691a7fcf27d41f8b35595ea0b158697161099d9
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Zustandsdiagramm (Finite State Machine / Statechart).
- Technischer Zweck: Formale Definition des Lebenszyklus und der Zustandsübergänge einer explizit synchronisierten Ablaufverfolgungstabelle (
ScheduleTable) im AUTOSAR Classic OS (SWS_Os_00013, SRS_Os_11002). - Funktionale Einordnung:
- Systemebene: Basissoftware (BSW), System Services – AUTOSAR OS.
- Kernfunktion: Zeitgesteuertes Auslösen von Tasks und Events entlang einer Zeitbasis (Counter/Tick).
- Synchronisationsmodus: Explicit Synchronization – Abgleich der lokalen Schedule-Table-Zeitachse mit einer externen globalen Zeitbasis (z. B. bereitgestellt über FlexRay Sync, TSN oder den
StbM– Synchronized Time-Base Manager) via dedizierter API-Aufrufe (SyncScheduleTable()).
2. Komponenten, Entitäten & Schnittstellen
- Entitäten / Datentypen (AUTOSAR OS):
ScheduleTableType: Bezeichner der Schedule Table (Konfigurationscontainer:OsScheduleTable).ScheduleTableStatusType: Zustandstyp für den Rückgabewert vonGetScheduleTableStatus().
- Zustände (
ScheduleTableStatusType):SCHEDULETABLE_STOPPED: Tabelle ist inaktiv, konsumiert keine Counter-Verarbeitung.SCHEDULETABLE_NEXT: Tabelle ist als Folgetabelle einer aktuell laufenden Schedule Table registriert (Kettung viaNextScheduleTable()).SCHEDULETABLE_WAITING: Tabelle wartet nachStartScheduleTableSync()auf den ersten Synchronisationsimpuls (SyncScheduleTable()), um synchronisiert zu starten.SCHEDULETABLE_RUNNING: Tabelle läuft aktiv ab, ist jedoch asynchron zur globalen Zeit (außerhalb des ToleranzfenstersPRECISIONoder durch API entkoppelt).SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: Tabelle läuft aktiv und befindet sich innerhalb des konfigurierten Synchronisationsfensters (OsScheduleTablePrecision).
- Schnittstellen & Parameter:
- Service-APIs:
StartScheduleTableRel(),StartScheduleTableAbs(),StartScheduleTableSync(),StopScheduleTable(),NextScheduleTable(),SyncScheduleTable(),SetScheduleTableAsync(). - Konfigurationsparameter:
OsScheduleTablePrecision(PRECISION),OsScheduleTableSyncStrategy = EXPLICIT. - Dynamische Werte:
CounterValue(aktueller Stand des zugrundeliegenden OS-Counters),GlobalValue(anSyncScheduleTable()übergebener externer Zeitwert).
- Service-APIs:
3. Dynamisches Verhalten & Sequenzablauf
Start-Pfade
- Asynchroner / Unmittelbarer Start:
SCHEDULETABLE_STOPPED$\xrightarrow{\text{StartScheduleTableRel() / StartScheduleTableAbs()}}$SCHEDULETABLE_RUNNING.- Startet die Ausführung relativ oder absolut zum OS-Counter, ohne initiale Synchronisation.
- Synchroner Start (Verzögert / Phasenkorrekt):
SCHEDULETABLE_STOPPED$\xrightarrow{\text{StartScheduleTableSync()}}$SCHEDULETABLE_WAITING.- Verbleibt in
WAITING, bis externer Zeitbezug hergestellt wird: SCHEDULETABLE_WAITING$\xrightarrow{\text{SyncScheduleTable()}}$SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS.
- Kettung (Chaining):
SCHEDULETABLE_STOPPED$\xrightarrow{\text{NextScheduleTable()}}$SCHEDULETABLE_NEXT.- Aktivierung erfolgt automatisch bei Erreichen des Tabellenendes der Vorgängertabelle:
SCHEDULETABLE_NEXT$\xrightarrow{\text{„previous“ ScheduleTable ends}}$SCHEDULETABLE_RUNNING.
Synchronisationsdynamik & Phasenabgleich
- Einschwingen in Synchronizität:
- In
SCHEDULETABLE_RUNNINGevaluiert das OS bei Aufruf vonSyncScheduleTable()die Phasendifferenz: - Bedingung: |CounterValue - GlobalValue| ≤ PRECISION.
- Transition →
SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. - Hinweis: Liegt der Versatz außerhalb von
PRECISION, bleibt die Tabelle inRUNNING, während das OS Retardierungs-/Advance-Strategien anwendet, um die Phasenlage schrittweise anzunähern.
- In
- Verlust der Synchronizität / Entkopplung:
- In
SCHEDULETABLE_RUNNING_AND_SYNCHRONOUSführt Drift oder Jitter (|CounterValue - GlobalValue| > PRECISION) oder der explizite API-AufrufSetScheduleTableAsync()zum sofortigen Zustandswechsel →SCHEDULETABLE_RUNNING.
- In
Abbruchbedingungen
StopScheduleTable()bricht die Tabelle aus allen aktiven Zuständen (WAITING,RUNNING,RUNNING_AND_SYNCHRONOUS,NEXT) deterministisch ab →SCHEDULETABLE_STOPPED.- Vorhandene Expiry Points werden verworfen; verknüpfte Next-Beziehungen werden aufgelöst.
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsanforderungen (
Os.epd/ BSW-Integrator):OsScheduleTableSyncStrategymuss aufEXPLICITgesetzt sein.OsScheduleTablePrecisiondefiniert das Toleranzband für den Übergang zuSCHEDULETABLE_RUNNING_AND_SYNCHRONOUS. Ein zu enges Band führt zu permanentem Flattern zwischenRUNNINGundSYNCHRONOUS; ein zu weites Band gefährdet globale TDMA-Slots (z. B. FlexRay/TSN).- Maximalwerte für Drift-Korrekturen (
OsScheduleTableMaxAdvance,OsScheduleTableMaxRetard) müssen auf die Task-Laufzeiten abgestimmt werden, um Deadline-Misses während Phasenverschiebungen zu verhindern.
- API-Vertrag & Fehlerbehandlung:
- Der Aufruf von
SyncScheduleTable()oderSetScheduleTableAsync()auf einer Tabelle mit impliziter Synchronisation (IMPLICIT) oder ohne zugewiesenen Sync-Counter liefertE_OS_IDbzw. im Extended StatusE_OS_CORE. - Ein Aufruf von
StartScheduleTableSync()auf einer bereits aktiven Tabelle (RUNNING,WAITING,NEXT) schlägt mitE_OS_STATEfehl.
- Der Aufruf von
- Applikations- & Stack-Design:
- Zyklische Triggerung:
SyncScheduleTable()wird typischerweise aus einem Zeitsynchronisations-Modul (StbM) oder aus einem Bus-Treiber/Interface-Callback (z. B. FlexRay Sync Pulse, PTP/IEEE 802.1AS) periodisch aufgerufen. - Status-Polling: Zur Laufzeit sollte die Applikation/BswM über
GetScheduleTableStatus()verifizieren, ob der StatusSCHEDULETABLE_RUNNING_AND_SYNCHRONOUSvorliegt, bevor zeitkritische Bus-Interaktionen freigegeben werden.
- Zyklische Triggerung:
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.