AUTOSAR_SWS_LINStateManager
FIG-3122009a476d6a0c
888 × 1010 px
2 Release(s)
Figure 5: LinSM State Machine (slave node)
SHA-256 Inhalts-Fingerabdruck:
3122009a476d6a0c08c9085200f7a71c9cebe277a973dd7b61d8d396510f0107
✦
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: Hierarchischer UML-Zustandsautomat (Hierarchical State Machine / Statechart Diagram).
- Architektur-Einordnung:
- Teil des AUTOSAR Classic Platform Communication Stacks (Com-Stack), spezifiziert in
AUTOSAR_SWS_LINStateManager. - Das Diagramm definiert den Lebenszyklus und die Betriebsmodi des LIN State Managers (LinSM) exklusiv für LIN-Slave-Knoten (Slave Node).
- Funktionale Abgrenzung zum Master-Knoten: Ein LIN-Slave besitzt kein Schedule-Table-Management. Seine Zustandsmaschine beschränkt sich auf das Hochfahren des Stacks, die Freigabe des Kommunikationskanals und das Abhandeln des Sleep-Modus auf Veranlassung des LIN-Masters bzw. des Busses.
- Teil des AUTOSAR Classic Platform Communication Stacks (Com-Stack), spezifiziert in
2. Komponenten, Entitäten & Schnittstellen
- Hierarchische Zustände (States):
LINSM_UNINIT: Modulweiter Zustand vor Ausführung der Basisinitialisierung.LINSM_INIT: Modulweiter übergeordneter Verbundzustand (Composite State), aktiv nach erfolgreicher Initialisierung.LINSM_NO_COM: Subzustand je LIN-Netzwerkkanal. Keine Buskommunikation; Transceiver und Controller befinden sich im Standby/Sleep.LINSM_FULL_COM: Verbundzustand für aktive Kommunikation (Sub-States:LINSM_RUN_COMMUNICATION,LINSM_GOTO_SLEEP).LINSM_RUN_COMMUNICATION: Regulärer Betriebsmodus; Senden/Empfangen von LIN-Frames aktiv.LINSM_GOTO_SLEEP: Transitorischer Subzustand; Warten auf Bestätigung des Einschlafvorgangs durch die untergelagerten Treiber.
- Schnittstellen & Interaktionspartner (APIs & Callbacks):
- Obere Schicht (ComM / BswM):
- Modus-Anforderungen über
LinSM_RequestComMode(network, mode)(repräsentiert durch BedingungreqComMode == FULL_COM). - Zustandsrückmeldungen an BswM/ComM (
BswM_LinSM_CurrentState,ComM_BusSM_ModeIndication).
- Modus-Anforderungen über
- Untere Schicht (LinIf):
LinIf_GotoSleep(network): Synchrone Service-Anforderung zur Einleitung des Sleep-Modus auf dem LIN-Treiber/Transceiver.LinSM_GotoSleepIndication(network): Asynchroner Callback des LinIf bei Empfang eines Sleep-Command-Frames (Master-Request-Frame0x3Cmit Sleep-Payload).LinSM_GotoSleepConfirmation(network, success): Bestätigungs-Callback des LinIf nach erfolgtem Bus-Sleep/Transceiver-Standby.LinSM_WakeupConfirmation(network, success): Callback des LinIf nach erfolgreichem Bus-Wakeup bzw. Transceiver-Aktivierung.
- System Control (EcuM):
LinSM_Init(ConfigPtr): Synchrone Initialisierungsfunktion.
- Obere Schicht (ComM / BswM):
- Kardinalitäten & Instanziierung:
- Modul-Ebene: Singleton (
LINSM_UNINIT→LINSM_INIT). - Netzwerk-Ebene: 1..n Instanzen für
[For each LIN network]parallel innerhalb vonLINSM_INIT. Jeder konfigurierte LIN-Kanal besitzt eine eigene Instanz des Kanal-Zustandsautomaten (LINSM_NO_COM,LINSM_FULL_COM).
- Modul-Ebene: Singleton (
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase (
SWS_LinSM_00022):- Trigger:
LinSM_Init(). - Transition:
LINSM_UNINIT→LINSM_INIT. - Für jeden konfigurierten LIN-Kanal erfolgt initial der Übergang in
LINSM_NO_COM.
- Trigger:
- Aktivierung der Kommunikation (
NO_COM→FULL_COM):- Voraussetzung: Der Kommunikationsmodus
FULL_COMwurde angefordert (reqComMode == FULL_COM). - Trigger: Asynchroner Empfang des Callbacks
LinSM_WakeupConfirmation()durch denLinIf(ausgelöst durch Wakeup-Frame auf dem Bus oder lokalen Wakeup). - Transition:
LINSM_NO_COM→LINSM_FULL_COM→ Initial-Transition direkt nachLINSM_RUN_COMMUNICATION.
- Voraussetzung: Der Kommunikationsmodus
- Einschlafen auf Master-Anforderung (
RUN_COMMUNICATION→GOTO_SLEEP,SWS_LinSM_00161):- Trigger: LinIf detektiert einen Sleep-Mode-Frame auf dem Bus und ruft
LinSM_GotoSleepIndication(network)auf. - Guard-Bedingung: Aufruf von
LinIf_GotoSleep(network) == E_OK. - Transition: Bei erfolgreichem Aufruf wechselt der Kanal in
LINSM_GOTO_SLEEP. - Fehlerfall: Liefert
LinIf_GotoSleep()nichtE_OK, verbleibt der Automat inLINSM_RUN_COMMUNICATION.
- Trigger: LinIf detektiert einen Sleep-Mode-Frame auf dem Bus und ruft
- Abschluss des Sleep-Vorgangs (
GOTO_SLEEP→NO_COM):- Trigger: Asynchroner Callback
LinSM_GotoSleepConfirmation(network). - Transition:
LINSM_GOTO_SLEEPverlässtLINSM_FULL_COMzurück nachLINSM_NO_COM. - Folgeaktion: Meldung des Zustandswechsels an
ComMviaComM_BusSM_ModeIndication(network, COMM_NO_COMMUNICATION).
- Trigger: Asynchroner Callback
4. Normative Relevanz & Entwickler-Hinweise
- Kanalunabhängigkeit: Der LinSM muss reentrant ausgelegt sein. Mehrere LIN-Cluster laufen zustandsmäßig vollständig entkoppelt voneinander.
- Keine Schedule-Tabellen-Verwaltung: Im Gegensatz zum LIN-Master (
LinSM_ScheduleRequest, Sub-States wieLINSM_GOTO_SLEEPmit internen Retry-Timern für Master-Sleep-Commands) reagiert der Slave rein reaktiv auf Bus-Events (LinSM_GotoSleepIndication). Es dürfen in Slave-Konfigurationen keine Schedule-Tabellen konfiguriert oder referenziert werden (LinSMNodeType == LINSM_SLAVE_NODE). - Asynchrone Bestätigungslogik & Timeouts:
- Der Zustand
LINSM_GOTO_SLEEPdarf nicht blockierend sein. - Entwickler müssen das konfigurierbare Timeout
LinSMConfirmationTimeoutbeachten: BleibtLinSM_GotoSleepConfirmation()nachLinIf_GotoSleep()aus, muss das Modul den Fehler an das DEM (LINSM_E_CONFIRMATION_TIMEOUT) melden und eine Fehlerbehandlung einleiten.
- Der Zustand
- Schnittstellenintegrität (DET-Prüfung):
- Eingehende Callbacks (
LinSM_GotoSleepIndication,LinSM_GotoSleepConfirmation,LinSM_WakeupConfirmation) in ungültigen Zuständen (z. B. Confirmation inLINSM_UNINIToderLINSM_NO_COM) müssen abgewiesen und bei aktivem DET mitLINSM_E_UNINITbzw. Fehlern zur Laufzeit gemeldet werden.
- Eingehende Callbacks (
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.