AUTOSAR_SWS_LINStateManager
FIG-b5e54e9f13448139
888 × 1011 px
2 Release(s)
Figure 4: LinSM State Machine (master node)
SHA-256 Inhalts-Fingerabdruck:
b5e54e9f1344813981b0906007b83c35a5594bbad6a4a40a6044ed1c9b2056ec
✦
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: Hierarchisches UML-Zustandsdiagramm (State Machine Diagram / Statechart) nach AUTOSAR-SWS-Metamodell.
- Architektur-Kontext: Spezifiziert das operative Zustands- und Modusverhalten des BSW-Moduls
LinSM(LIN State Manager, AUTOSAR Communication Services) für Master-Knoten (master node). - Funktionaler Zweck:
- Koordination der Kommunikationsmodi (
NO_COM,FULL_COM) je LIN-Cluster auf Anforderung desComM(Communication Manager) bzw.BswM(Basic Software Mode Manager). - Steuerung des asynchronen Schedule-Table-Wechsels und des Bus-Schlafzustands über die Abstraktionsschicht
LinIf(LIN Interface).
- Koordination der Kommunikationsmodi (
2. Komponenten, Entitäten & Schnittstellen
- Globale Modulzustände:
LINSM_UNINIT: Modul nach Reset uninitialisiert; keine API-Aufrufe zulässig außerLinSM_Init.LINSM_INIT: Modul ist initialisiert. Umfasst als hierarchischer Oberzustand (Composite State) die netzwerkspezifischen Instanzen.
- Kanalbezogene Zustände (Kardinalität 1..n via Pseudo-State
For each LIN network):LINSM_NO_COM: Bus befindet sich im Sleep-Zustand; keine Kommunikation aktiv.LINSM_FULL_COM: Zusammengesetzter Zustand für aktive Kommunikation.- Subzustand
LINSM_RUN_COMMUNICATION: Reguläre Master-Kommunikation; Schedule-Tables werden abgearbeitet. - Subzustand
LINSM_GOTO_SLEEP: Transitorischer Wartezustand während des asynchronen Herunterfahrens/Sleep-Frame-Versands.
- Subzustand
- Schnittstellen & Interaktionspartner:
- Obere Schicht (
ComM/BswM): Modusanforderungen gesteuert über interne ZustandsvariablereqComMode(NO_COM,FULL_COM). - Untere Schicht (
LinIf- synchrone Steuer-APIs):LinIf_GotoSleep(),LinIf_ScheduleRequest(). - Untere Schicht (
LinIf- asynchrone Callbacks / Triggers):LinSM_WakeupConfirmation(),LinSM_ScheduleRequestConfirmation(),LinSM_GotoSleepConfirmation(). - Initialisierungs-API:
LinSM_Init().
- Obere Schicht (
- Guard-Bedingungen & Timer-Ressourcen:
- Guards:
[reqComMode==FULL_COM],[reqComMode==NO_COM && LinIf_GotoSleep()==E_OK]. - Interne Ressourcen: Überwachungstimer (
Start timer, parametriert viaLinSMConfirmationTimeout).
- Guards:
3. Dynamisches Verhalten & Sequenzablauf
- Modul-Initialisierung:
- Transition von
LINSM_UNINITnachLINSM_INITsynchron durch Aufruf vonLinSM_Init. - Für jeden konfigurierten LIN-Kanal wechselt der Subautomat initial in
LINSM_NO_COM.
- Transition von
- Aufwecken / Übergang nach
LINSM_FULL_COM:- Nach Anforderung des Vollkommunikationsmodus (
reqComMode == FULL_COM) und erfolgreichem Wake-up auf dem Bus meldet dasLinIfdas Ereignis überLinSM_WakeupConfirmation. - Bei erfülltem Guard
[reqComMode==FULL_COM]erfolgt der Zustandsübergang in den Composite StateLINSM_FULL_COM, der direkt den Default-SubzustandLINSM_RUN_COMMUNICATIONaktiviert.
- Nach Anforderung des Vollkommunikationsmodus (
- Schedule-Table-Management (
LINSM_RUN_COMMUNICATION):- Trigger
LinSM_ScheduleRequest: Löst den synchronen AufrufLinIf_ScheduleRequest()aus und startet den Bestätigungstimer (Start timer). - Asynchrone Bestätigung:
LinSM_ScheduleRequestConfirmationsignalisiert die erfolgreiche Übernahme der Schedule-Tabelle durch den LIN-Treiber und schließt die Transition per Self-Transition ab (Timer-Stopp/Quittierung anBswM).
- Trigger
- Schlafphasen-Einleitung (
LINSM_RUN_COMMUNICATION→LINSM_GOTO_SLEEP):- Trigger/Guard:
reqComMode == NO_COMliegt vor und der synchrone AufrufLinIf_GotoSleep()liefertE_OK. - Aktion: Starten des Bestätigungstimers (
Start timer), Übergang in den ZwischenzustandLINSM_GOTO_SLEEP.
- Trigger/Guard:
- Abschluss des Sleep-Übergangs (
LINSM_GOTO_SLEEP→LINSM_NO_COM):- Das
LinIfmeldet nach erfolgreichem Versand des Go-To-Sleep-Frames bzw. Ablauf der Bus-RuhezeitLinSM_GotoSleepConfirmation. - Trigger schaltet die Kanalinstanz zurück in
LINSM_NO_COM.
- Das
4. Normative Relevanz & Entwickler-Hinweise
- Asynchrone Entkopplung: Zustandsübergänge zwischen Kommunikationsmodi erfolgen niemals rein synchron. Ein synchroner Aufruf (z. B.
LinIf_GotoSleep() == E_OK) berechtigt nur zum Wechsel in den Wartezustand (LINSM_GOTO_SLEEP); erst der asynchrone Callback vollendet den Moduswechsel. - Kanalunabhängigkeit: Die Zustände
LINSM_NO_COMundLINSM_FULL_COMsind channel-spezifisch (NetworkHandleType). Bei Multi-Channel-Derivaten laufen die Subautomaten vollständig unabhängig voneinander. - Timeout-Handhabung (
LinSMConfirmationTimeout):- Bleibt ein Callback (
LinSM_GotoSleepConfirmationoderLinSM_ScheduleRequestConfirmation) aus, läuft der gestartete Timer ab. - Entwickler müssen das normativ geforderte Timeout-Verhalten (Fehlermeldung via
Det_ReportRuntimeErrorbzw.Dem_SetEventStatussowie Fehler-Rückfallpfad) im Modul konfigurieren und behandeln.
- Bleibt ein Callback (
- Schedule-Request-Serialisierung: Während ein Schedule-Request unbestätigt ist (Timer läuft), dürfen nachfolgende Requests nicht zu undefinierten Zuständen im
LinIfführen; das Modul muss Re-Entranz-Konflikte oder Pufferungen gemäß SWS absichern.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.