DEENESPTFRRUARHIKOZHNL

LIN State Manager (LinSM)

ModulLinSM (LIN State Manager)
BSW-Modul-ID141
Standard-Header#include "LinSM.h"
SWS-SpezifikationAUTOSAR_SWS_LINStateManager.pdf
ClusterLIN

Modul-GuideKI-GENERIERT

Steuert je LIN-Netzwerk Kommunikationsmodus, Aufwecken, Einschlafen und Wechsel der Schedule-Tabellen.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 4c8293bd0eb8 Herkunft Offene Fragen (2)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert je LIN-Netzwerk Kommunikationsmodus, Aufwecken, Einschlafen und Wechsel der Schedule-Tabellen.

Der LIN State Manager setzt die Kommunikationswünsche des ComM je LIN-Netzwerk in Aufrufe des LIN Interface um. Die resultierenden Zustände LINSM_FULL_COM und LINSM_NO_COM meldet er an ComM und BswM [SWS_LinSM_00126]. Aufwecken, Einschlafen und, nur beim Master, den Wechsel der Schedule-Tabelle startet er direkt und überwacht die Bestätigungen mit Timern in LinSM_MainFunction. Beim Slave bestimmt der Master das Einschlafen: Erst LinSM_GotoSleepIndication löst LinIf_GotoSleep aus [SWS_LinSM_00231]. Scheitert ein Übergang, meldet der LinSM den bisherigen Zustand erneut, damit die oberen Schichten konsistent bleiben.

Der LIN State Manager ist der Bus-State-Manager für LIN. Über ihn fordert der ComM die Kommunikationsfähigkeit eines Netzwerks an (SWS ComM S. 19). Moduswünsche nimmt er über LinSM_RequestComMode entgegen [SWS_LinSM_00126]. Er steuert das LinIf und meldet Zustände an ComM und BswM [SWS_LinSM_00229]. Welcher LIN-Treiber ein Netzwerk bedient, bleibt hinter dem LinIf verborgen (SWS LinSM S. 28).

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det DET LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin LIN-Treiber (ein oder mehrere) LinIf->Lin Zuordnung Netzwerk zu Treiber

Kontextdiagramm: ComM und BswM steuern den LinSM, der LinSM steuert das LinIf, und das LinIf meldet über Callbacks zurück. Quellen: [SWS_LinSM_00229], [SWS_LinSM_00138], SWS LinSM S. 28

Nach LinSM_Init ist jedes Netzwerk in LINSM_NO_COM [SWS_LinSM_00155]. ComM und BswM werden dabei nicht benachrichtigt (SWS LinSM S. 23). Kommuniziert werden darf nur in LINSM_FULL_COM. Beim Eintritt erhalten ComM und BswM eine Meldung, und der Unterzustand LINSM_RUN_COMMUNICATION wird betreten [SWS_LinSM_00301]. Für den BswM sind nur LINSM_FULL_COM und LINSM_NO_COM sichtbar [SWS_LinSM_00220].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (keine Meldung an ComM/BswM) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) Meldung FULL_COM an ComM und BswM GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep liefert E_OK Master: ComM fordert NO_COM an Slave: LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (unabhängig von success) Meldung NO_COM an ComM und BswM

Zustandsdiagramm: Je Netzwerk wechselt der LinSM durch Wakeup- und Schlafbestätigung zwischen LINSM_NO_COM und LINSM_FULL_COM. Quellen: [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM S. 20

Aufwecken und Einschlafen startet der LinSM direkt im Aufruf. Die Bestätigungen des LinIf überwacht er mit Timern in LinSM_MainFunction [SWS_LinSM_00156] (SWS LinSM S. 28). Beim Master führt eine Anforderung auf COMM_NO_COMMUNICATION sofort zu LinIf_GotoSleep [SWS_LinSM_00036]. Beim Slave wird sie nur gespeichert [SWS_LinSM_00230]; erst LinSM_GotoSleepIndication löst das Einschlafen aus [SWS_LinSM_00231]. Ein Silence-after-Wakeup-Timer verzögert erneute Weckversuche [SWS_LinSM_00237].

Schedule-Wechsel gibt es nur beim Master [SWS_LinSM_00241]. Der LinSM reicht LinSM_ScheduleRequest direkt an das LinIf weiter und meldet das Ergebnis über BswM_LinSM_CurrentSchedule (SWS LinSM S. 26). Für Fehler gilt:

  • Entwicklungsfehler meldet der LinSM an den DET, mit den Codes aus [SWS_LinSM_00053].
  • Ein ausbleibender Callback des LinIf gilt als LINSM_E_CONFIRMATION_TIMEOUT [SWS_LinSM_00224].
  • Nach einem misslungenen Übergang setzt der LinSM den bisherigen Zustand erneut, damit ComM und BswM konsistent informiert sind [SWS_LinSM_00177].

Rolle zwischen ComM, BswM und LIN Interface

Der LIN State Manager (LinSM) ist der Bus-State-Manager für LIN. Wie bei den anderen Bus-State-Managern fordert der ComM über ihn die Kommunikationsfähigkeit eines Netzwerks an (SWS ComM S. 19). Die zentrale Eingangsschnittstelle dafür ist LinSM_RequestComMode [SWS_LinSM_00126]. Den aktuellen Modus liefert LinSM_GetCurrentComMode [SWS_LinSM_00122]. Der LinSM arbeitet ausschließlich auf Netzwerken. Welcher LIN-Treiber ein Netzwerk bedient, verdeckt das LinIf. Deshalb betreffen Steuergeräte mit mehreren unterschiedlichen LIN-Treibern den LinSM nicht (SWS LinSM S. 28).

Zu den Pflichtschnittstellen gehören LinIf_GotoSleep und LinIf_ScheduleRequest nach unten sowie die Meldungen ComM_BusSM_ModeIndication, ComM_BusSM_BusSleepMode, BswM_LinSM_CurrentState und BswM_LinSM_CurrentSchedule nach oben [SWS_LinSM_00229] (SWS LinSM S. 41). LinIf_Wakeup ruft der LinSM im Aufweckablauf (SWS LinSM S. 27). Optional nutzt er Det_ReportError und LinIf_SetTrcvMode [SWS_LinSM_00138]. Das LinIf meldet über die folgenden Callbacks zurück:

Die importierten Typen wie ComM_ModeType, NetworkHandleType und LinIf_SchHandleType legt [SWS_LinSM_00219] fest.

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det DET LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin LIN-Treiber (ein oder mehrere) LinIf->Lin Zuordnung Netzwerk zu Treiber

Kontextdiagramm: Der LinSM vermittelt zwischen ComM und BswM oben und dem LinIf unten; die LIN-Treiber bleiben hinter dem LinIf verborgen. Quellen: [SWS_LinSM_00126], [SWS_LinSM_00229], [SWS_LinSM_00138], [SWS_LinSM_00156], SWS LinSM S. 28, Mode-Management-Guide S. 54

Zustandsmodell je LIN-Netzwerk, Initialisierung und zyklischer Anteil

Beim Start ist vor jedem API-Aufruf der modulweite Zustand LINSM_UNINIT aktiv (SWS LinSM S. 22). LinSM_Init ist synchron und nicht reentrant [SWS_LinSM_00155]. Die Funktion erhält einen Zeiger auf die Post-Build-Konfiguration vom implementierungsspezifischen Typ LinSM_ConfigType [SWS_LinSM_00221]. Danach ist jedes Netzwerk im Unterzustand LINSM_NO_COM des Oberzustands LINSM_INIT. Diesen ersten Übergang meldet LinSM_Init weder an ComM noch an BswM, weil der ComM zu diesem Zeitpunkt noch nicht initialisiert sein muss (SWS LinSM S. 23). Im Beispiel des Mode-Management-Guides ruft eine BswM-Regel LinSM_Init(null) nach Lin_Init und LinIf_Init auf (Mode-Management-Guide S. 54).

In LINSM_NO_COM bleibt der Bus still (SWS LinSM S. 23). Nur in LINSM_FULL_COM darf auf dem Bus kommuniziert werden, und jedes Netzwerk erreicht diesen Zustand unabhängig von den anderen. Beim Eintritt geschieht Folgendes (SWS LinSM S. 23):

  • ComM erhält eine Meldung mit COMM_FULL_COMMUNICATION, BswM eine Meldung mit LINSM_FULL_COM.
  • Ist LinSMTransceiverPassiveMode konfiguriert, schaltet der LinSM den Transceiver per LinIf_SetTrcvMode aktiv.
  • Der Unterzustand LINSM_RUN_COMMUNICATION wird betreten [SWS_LinSM_00301].

Der vorübergehende Unterzustand LINSM_GOTO_SLEEP überbrückt das Warten auf die Schlafbestätigung (SWS LinSM S. 20, SWS LinSM S. 21). Für den BswM sind nur zwei Werte von LinSM_ModeType sichtbar: LINSM_FULL_COM (0x01) und LINSM_NO_COM (0x02) [SWS_LinSM_00220].

Die Zeitüberwachung läuft in LinSM_MainFunction. Diese periodische Funktion führt die Timer der Anforderungs-Timeouts [SWS_LinSM_00156]. Dort laufen auch die Wakeup-Bestätigungstimer ab, mit einem eigenen Timer je Netzwerk (SWS LinSM S. 28). Die eigentlichen Busaktionen startet der LinSM dagegen direkt im Aufruf und wartet nicht auf den nächsten Main-Function-Zyklus [SWS_LinSM_00036] [SWS_LinSM_00231].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (keine Meldung an ComM/BswM) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) Meldung FULL_COM an ComM und BswM GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep liefert E_OK Master: ComM fordert NO_COM an Slave: LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (unabhängig von success) Meldung NO_COM an ComM und BswM

Zustandsdiagramm: Je Netzwerk wechselt der LinSM durch Wakeup- und Schlafbestätigung zwischen LINSM_NO_COM und LINSM_FULL_COM; LINSM_GOTO_SLEEP ist nur ein Wartezustand. Quellen: [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM S. 20, SWS LinSM S. 21, SWS LinSM S. 24

Aufwecken: von LINSM_NO_COM nach LINSM_FULL_COM

Ein LIN-Netzwerk wird geweckt, wenn ComM über LinSM_RequestComMode volle Kommunikation anfordert. Weckt ein anderer Knoten den Bus, behandelt das nicht der LinSM, sondern der EcuM; auch dieser Fall führt zu einer Anforderung durch ComM (SWS LinSM S. 27). Der LinSM ruft dann direkt LinIf_Wakeup und setzt den Zähler für die maximale Anzahl an Wiederholungen zurück. Ist das LinIf bereits wach, ignoriert es den Aufruf. Vor dem Aufruf startet der LinSM für den Kanal den Wakeup-Bestätigungstimer mit LinSMConfirmationTimeout. Dieser Wert muss 0 oder ein ganzzahliges Vielfaches der Main-Function-Periode sein (SWS LinSM S. 28).

Meldet LinSM_WakeupConfirmation success = TRUE, wechselt das Netzwerk nach LINSM_FULL_COM [SWS_LinSM_00132]. In allen anderen Fällen setzt der LinSM den Zustand vor der Anforderung erneut, damit ComM und BswM trotzdem eine Modusindikation erhalten (SWS LinSM S. 27). Beim Slave bestätigt das LinIf erst, wenn es den ersten LIN-Header des Masters empfängt. Beginnt der Master nicht mit dem Scheduling, bleibt die Bestätigung aus, und der Timeout des LinSM greift (SWS LinIf S. 52).

Aufwecken eines LIN-Netzwerks (internes Wakeup)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_FULL_COMMUNICATION)Wakeup-Bestätigungstimer starten(LinSMConfirmationTimeout)LinIf_Wakeup(Channel)direkt, nicht in LinSM_MainFunctionE_OKE_OKMaster: Bestätigung nach Senden des Wakeup-SignalsSlave: Bestätigung mit erstem empfangenen LIN-Headeraltsuccess = TRUELinSM_WakeupConfirmation(network, TRUE)Timer stoppenLINSM_FULL_COM / LINSM_RUN_COMMUNICATIONComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)success = FALSELinSM_WakeupConfirmation(network, FALSE)Zustand vor der Anforderung erneut setzenComM_BusSM_ModeIndication(network, bisheriger Modus)BswM_LinSM_CurrentState(network, bisheriger Zustand)keine BestätigungLinSM_MainFunction: Timer abgelaufenLINSM_E_CONFIRMATION_TIMEOUT

Sequenzdiagramm: Der LinSM weckt das Netzwerk sofort im Aufruf, die Zustandsänderung folgt aber erst mit der asynchronen Bestätigung des LinIf. Quellen: [SWS_LinSM_00126], [SWS_LinSM_00132], [SWS_LinSM_00224], SWS LinSM S. 42, SWS LinSM S. 27

Eine zweite Zeitgrenze ist der Silence-after-Wakeup-Timer mit LinSMSilenceAfterWakeupTimeout [SWS_LinSM_00235]. Solange er läuft, verzögert der LinSM einen neuen Aufruf von LinIf_Wakeup, auch wenn ComM volle Kommunikation anfordert [SWS_LinSM_00237]. Nach seinem Ablauf startet der LinSM den Wakeup-Prozess neu, sofern ComM weiterhin COMM_FULL_COMMUNICATION anfordert [SWS_LinSM_00236]. Die Bedingung, die den Timer startet, steht in einer Anforderung, die hier nicht vorliegt. Sie wird deshalb nicht beschrieben.

wakeup_entscheidung A ComM: LinSM_RequestComMode (COMM_FULL_COMMUNICATION) B Silence-after-Wakeup-Timer läuft? A->B C LinIf_Wakeup verzögern bis Timerablauf B->C ja D Wiederholungszähler zurücksetzen Wakeup-Bestätigungstimer starten B->D nein C->D Timer abgelaufen E LinIf_Wakeup(Channel) direkt aufrufen D->E F Rückmeldung des LinIf? E->F G LINSM_FULL_COM Meldung an ComM und BswM F->G WakeupConfirmation TRUE H Zustand vor der Anforderung erneut setzen und melden F->H WakeupConfirmation FALSE I LinSM_MainFunction: Timer abgelaufen LINSM_E_CONFIRMATION_TIMEOUT F->I keine Bestätigung J Silence-after-Wakeup-Timeout und COMM_FULL_COMMUNICATION weiter angefordert J->D Wakeup-Prozess neu starten

Aktivitätsdiagramm: Eine Anforderung auf volle Kommunikation endet je nach Timerlage und Rückmeldung in LINSM_FULL_COM, im alten Zustand oder in einem Bestätigungs-Timeout. Quellen: [SWS_LinSM_00237], [SWS_LinSM_00236], [SWS_LinSM_00224], SWS LinSM S. 27, SWS LinSM S. 28

Einschlafen: Der Master fordert an, der Slave folgt dem Bus

Der Goto-Sleep-Ablauf unterscheidet sich zwischen Master und Slave. In beiden Fällen meldet der LinSM den Eintritt in den No-Communication-Modus an BswM und ComM, auch wenn ein Problem auftrat (SWS LinSM S. 24).

Beim Master gilt:

  • Fordert ComM in LINSM_FULL_COM COMM_NO_COMMUNICATION an, ruft der LinSM LinIf_GotoSleep auf, der das Goto-Sleep-Kommando sendet [SWS_LinSM_10208].
  • Der Aufruf erfolgt direkt [SWS_LinSM_00036]. In allen anderen Fällen unterbleibt er [SWS_LinSM_10209].
  • Zulässig ist der Aufruf nur im Unterzustand LINSM_RUN_COMMUNICATION (SWS LinSM S. 24).
  • Liefert LinIf_GotoSleep E_NOT_OK, gibt auch LinSM_RequestComMode E_NOT_OK zurück. Der bisherige Zustand wird erneut gesetzt, damit ComM und BswM eine Indikation erhalten [SWS_LinSM_00177].

Danach ruft das LinIf LinSM_GotoSleepConfirmation auf [SWS_LinSM_00135]. Steht der LinSM dann in LINSM_FULL_COM/LINSM_GOTO_SLEEP, wechselt er nach LINSM_NO_COM, unabhängig vom Parameter success. In jedem anderen Zustand ignoriert er die Bestätigung (SWS LinSM S. 24). Das Schaubild der Spezifikation startet einen Timer vor LinIf_GotoSleep und stoppt ihn nach der Bestätigung (SWS LinSM S. 47).

Einschlafen eines LIN-Netzwerks (Master)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_NO_COMMUNICATION)nur in LINSM_FULL_COM / LINSM_RUN_COMMUNICATIONdirekter Aufruf, nicht in LinSM_MainFunctionstart_timer()LinIf_GotoSleep(Channel)altLinIf_GotoSleep = E_OKE_OKUnterzustand LINSM_GOTO_SLEEPE_OKLinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COM (unabhängig von success)ComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)LinIf_GotoSleep = E_NOT_OKE_NOT_OKbisherigen Zustand erneut setzenE_NOT_OKComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)

Sequenzdiagramm: Beim Master löst ComM das Einschlafen aus; LINSM_NO_COM wird erst mit der Schlafbestätigung erreicht, ein E_NOT_OK von LinIf_GotoSleep führt zur erneuten Meldung des alten Zustands. Quellen: [SWS_LinSM_00036], [SWS_LinSM_00177], [SWS_LinSM_00135], SWS LinSM S. 47, SWS LinSM S. 24

Beim Slave entscheidet der Master über das Einschlafen. Fordert ComM in LINSM_FULL_COM COMM_NO_COMMUNICATION an, speichert der LinSM den Wunsch nur und gibt E_OK zurück [SWS_LinSM_00230]. Das LinIf meldet LinSM_GotoSleepIndication, wenn ein Goto-Sleep-Kommando empfangen wurde oder ein Bus-Idle-Timeout eintrat [SWS_LinSM_91000]. Erst dann ruft der LinSM direkt LinIf_GotoSleep [SWS_LinSM_00231]. Wie es weitergeht, hängt vom gespeicherten Wunsch ab:

  • Ist COMM_NO_COMMUNICATION angefordert und liefert LinIf_GotoSleep E_OK, erfährt ComM das Bus-Sleep-Ereignis über ComM_BusSM_BusSleepMode [SWS_LinSM_00233].
  • Ist volle Kommunikation angefordert, startet der LinSM nach der Schlafbestätigung den Wakeup-Prozess neu [SWS_LinSM_00234].

Im LinIf versetzt der Slave-Ablauf den Controller und, falls unterstützt, den Transceiver in den Schlafmodus (SWS LinIf S. 137).

Einschlafen eines LIN-Netzwerks (Slave)ComMLinSMLinIfBswMUse Case: Schlafwunsch des ComMLinSM_RequestComMode(network,COMM_NO_COMMUNICATION)angeforderten Modus speichern,keine weitere AktionE_OKUse Case: BusereignisLinSM_GotoSleepIndication(Channel)Goto-Sleep-Kommando empfangenoder Bus-Idle-Timeoutstart_timer()LinIf_GotoSleep(Channel)direkt, nicht in LinSM_MainFunctionE_OKaltangefordert: COMM_NO_COMMUNICATIONComM_BusSM_BusSleepMode(Channel)LinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COMComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)angefordert: COMM_FULL_COMMUNICATIONLinSM_GotoSleepConfirmation(network, success)LINSM_NO_COM, Meldung an ComM und BswMkein Bus-Sleep-Ereignis an ComMWakeup-Prozess neu starten (LinIf_Wakeup)

Sequenzdiagramm: Beim Slave wird der Schlafwunsch des ComM nur gespeichert, ausgelöst wird das Einschlafen durch die Indikation des LinIf. Quellen: [SWS_LinSM_00230], [SWS_LinSM_00231], [SWS_LinSM_00233], [SWS_LinSM_00234], SWS LinSM S. 48, SWS LinSM S. 24

Schedule-Tabellen wechseln (nur Master)

LinSM_ScheduleRequest [SWS_LinSM_00113] existiert nur, wenn mindestens ein Kanal als Master konfiguriert ist [SWS_LinSM_00241]. Dasselbe gilt für den Callback LinSM_ScheduleRequestConfirmation [SWS_LinSM_00242]. Die asynchrone Funktion reicht die Anforderung direkt an LinIf_ScheduleRequest weiter, ohne Umweg über die Main Function. Deren Rückgabewert gibt sie an den Aufrufer zurück (SWS LinSM S. 26). Aufrufer ist der BswM. Er verwendet LinSMScheduleIndex als symbolische Referenz, deren Wert dem Wert im LinIf entsprechen muss (SWS LinSM S. 52). Auch die Diagnose-Schedule-Wechsel des LIN-Transportprotokolls laufen über den BswM und LinSM_ScheduleRequest (SWS LinIf S. 142).

Das Ergebnis meldet der LinSM über BswM_LinSM_CurrentSchedule (SWS BswM S. 80). Welcher Schedule gemeldet wird, hängt vom Verlauf ab (SWS LinSM S. 26):

  • Bestätigt LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] vor Ablauf des Timers, meldet der LinSM den neuen Schedule.
  • Ist der Timer abgelaufen, meldet er den unveränderten Schedule.
  • Liefert LinIf_ScheduleRequest E_NOT_OK, meldet er im nächsten Main-Function-Aufruf den alten Schedule.
  • Auch einen Wechsel ohne vorherige Anforderung meldet er, etwa den Wechsel auf den NULL-Schedule, den das LinIf beim Einschlafen vornimmt.
Wechsel der Schedule-Tabelle (nur Master)BswMLinSMLinIfLinSM_ScheduleRequest(network, schedule)start_timer()LinIf_ScheduleRequest(Channel, schedule)direkt, nicht in LinSM_MainFunctionaltE_OK, Bestätigung vor TimerablaufE_OKE_OK (weitergereicht)LinSM_ScheduleRequestConfirmation(network, schedule)stop_timer()BswM_LinSM_CurrentSchedule(network, neuer Schedule)E_OK, Timer abgelaufenE_OKE_OK (weitergereicht)LinSM_MainFunction: Timer abgelaufenBswM_LinSM_CurrentSchedule(network, unveränderter Schedule)LinIf_ScheduleRequest = E_NOT_OKE_NOT_OKE_NOT_OK (weitergereicht)nächster Aufruf von LinSM_MainFunctionBswM_LinSM_CurrentSchedule(network, alter Schedule)

Sequenzdiagramm: Der Schedule-Wechsel wird direkt weitergereicht und zeitüberwacht; der BswM erfährt in jedem Ausgang den tatsächlich gültigen Schedule. Quellen: [SWS_LinSM_00113], [SWS_LinSM_00129], [SWS_LinSM_00156], SWS LinSM S. 26, SWS LinSM S. 48

Knotentyp, Konfiguration und Unterschiede zu späteren Releases

Der Parameter LinSMNodeType legt fest, ob für einen Kanal Master- oder Slave-Verhalten gilt. Davon hängt ab, ob LinSM_ScheduleRequest, LinSM_ScheduleRequestConfirmation und LinSM_GotoSleepIndication verfügbar sind [SWS_LinSM_00241] [SWS_LinSM_00242] [SWS_LinSM_00243]. Die wichtigsten Zeitparameter sind LinSMConfirmationTimeout (SWS LinSM S. 28) und LinSMSilenceAfterWakeupTimeout [SWS_LinSM_00235]. Die LinSMSchedule-Container referenzieren Schedules aus der LinIf-Konfiguration (SWS LinSM S. 52). Die DET-Prüfungen hängen an LinSMDevErrorDetect [SWS_LinSM_00239].

Viele Dokumentstellen stammen aus späteren Releases. Für R20-11 sind die Requirements maßgeblich, und an einigen Stellen weichen sie ab:

Verhalten im Fehlerfall

Die Entwicklungsfehler legt [SWS_LinSM_00053] fest:

  • LINSM_E_UNINIT (0x00)
  • LINSM_E_NONEXISTENT_NETWORK (0x20)
  • LINSM_E_PARAMETER (0x30)
  • LINSM_E_PARAM_POINTER (0x40)
  • LINSM_E_INIT_FAILED (0x50)

Bei aktivem LinSMDevErrorDetect prüfen die Callbacks Netzwerk und Initialisierung, so etwa LinSM_GotoSleepIndication [SWS_LinSM_00239] [SWS_LinSM_00240]. Callbacks haben keinen Rückgabewert, daher bleibt es dort bei der DET-Meldung (SWS LinSM S. 40, SWS LinSM S. 39). APIs mit Std_ReturnType liefern zusätzlich E_NOT_OK, zum Beispiel bei ungültigem Netzwerk, Modus oder Schedule oder im Zustand LINSM_UNINIT (SWS LinSM S. 36, SWS LinSM S. 34). Interpretation: Diese Prüfungen stammen aus Fassungen ab R24-11 und dürften für R20-11 inhaltlich gleich gelten. Frage Q-6b2d75dd286bdcb4 (offen) Auffällig ist, dass die spätere Fassung auch für das void-API LinSM_GetVersionInfo [SWS_LinSM_00117] bei NULL-Zeiger E_NOT_OK verlangt (SWS LinSM S. 34).

Als Laufzeitfehler ist LINSM_E_CONFIRMATION_TIMEOUT (0x00) für ausbleibende Callbacks des LinIf vorgesehen [SWS_LinSM_00224]. Vermutlich wird er über Det_ReportRuntimeError gemeldet, das spätere Fassungen als Pflichtschnittstelle führen (SWS LinSM S. 41). Frage Q-06b13a07d0d60152 (offen) Funktional sorgt der LinSM dafür, dass ComM und BswM immer einen konsistenten Zustand sehen:

  • Nach einem fehlgeschlagenen Wakeup setzt und meldet er den alten Zustand erneut (SWS LinSM S. 27).
  • Bei E_NOT_OK von LinIf_GotoSleep gilt dasselbe [SWS_LinSM_00177].
  • Eine Schlafbestätigung führt auch bei success = FALSE nach LINSM_NO_COM (SWS LinSM S. 24).
  • Bei einem misslungenen Schedule-Wechsel erhält der BswM den alten oder den unveränderten Schedule (SWS LinSM S. 26).

Weiterführende Detailbelege

KI-generierter Modul-Leitfaden auf Basis der normativen Requirements für R20-11 und der zugeordneten Dokumentstellen und Schaubilder, die teilweise aus anderen Releases stammen. Als Interpretation gekennzeichnete Aussagen sind nicht normativ belegt. Verbindlich ist allein die AUTOSAR-Spezifikation.

LIN State Manager (LinSM)

Manages state transitions of LIN networks.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function LinSM_Init [SWS_LinSM_00155] 📄 PDF

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

This function initializes the Lin SM.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 18f94187e199 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion LinSM_Init dient der Initialisierung des Software-Moduls LIN State Manager (LinSM) in der AUTOSAR-Classic-Plattform [SWS_LinSM_00155].

Verwendung und Schnittstellenparameter:

  • Aufrufsynchronisation: Die Ausführung der Initialisierungsfunktion ist als synchron (Synchronous) spezifiziert [SWS_LinSM_00155].
  • Eingangsparameter: Als einziger Parameter wird ConfigPtr vom Typ const LinSM_ConfigType* übergeben [SWS_LinSM_00155]. Dieser fungiert als Zeiger auf die Post-Build-Konfigurationsdaten des LinSM [SWS_LinSM_00155].
  • Weitere Parameter und Rückgabewert: Die Schnittstelle liefert keinen Rückgabewert (void) zurück [SWS_LinSM_00155]. Zusätzliche Ein-/Ausgabeparameter oder reine Ausgabeparameter existieren nicht [SWS_LinSM_00155].
  • Header-Datei und Service-Kennung: Die Deklaration wird über die Header-Datei LinSM.h bereitgestellt und führt die Service-ID 0x01 [SWS_LinSM_00155].

Nebenläufigkeit und Einschränkungen:

Für die Ausführung von LinSM_Init ist festgelegt, dass die Funktion nicht reentrant (Non reentrant) ist [SWS_LinSM_00155]. Folglich darf der Aufruf weder parallel über mehrere Threads noch unterbrechend durch höher priorisierte Kontexte erfolgen [SWS_LinSM_00155].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function LinSM_ScheduleRequest [SWS_LinSM_00113] 📄 PDF

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The upper layer requests a schedule table to be changed on one LIN network.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f2deb9e24090 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion LinSM_ScheduleRequest wird von der oberen Schicht aufgerufen, um den Wechsel einer Schedule-Tabelle auf einem angegebenen LIN-Kanal anzufordern [SWS_LinSM_00113]. Die Schnittstelle ist in der Header-Datei LinSM.h definiert, besitzt die Service-ID 0x10 und arbeitet asynchron sowie reentrant [SWS_LinSM_00113]. Beim Aufruf werden der betroffene Kanal über den Parameter network (NetworkHandleType) und die gewünschte neue Tabelle über schedule (LinIf_SchHandleType) übergeben [SWS_LinSM_00113].

Fehlerbehandlung und Rückgabewerte

Wurde die Anforderung zur Tabellenumschaltung vom Modul angenommen, gibt die Funktion E_OK zurück [SWS_LinSM_00113]. Kann der Aufruf hingegen nicht ausgeführt werden – beispielsweise weil das Modul noch nicht initialisiert ist –, liefert die Funktion den Rückgabewert E_NOT_OK [SWS_LinSM_00113]. Spezifische Fehlercodes für DET oder DEM sind für diesen Service nicht aufgeführt.

Randbedingungen und Zusammenspiel

Die Bereitstellung der Funktion hängt maßgeblich vom Konfigurationsparameter LinSMNodeType ab: LinSM_ScheduleRequest steht ausschließlich dann zur Verfügung, wenn das Modul auf mindestens einem Kanal als LIN-Master-Knoten konfiguriert ist, und entfällt in reinen LIN-Slave-Konfigurationen [SWS_LinSM_00241]. In identischer Weise erfordert auch die zugehörige Bestätigungsfunktion LinSM_ScheduleRequestConfirmation eine Master-Knoten-Konfiguration [SWS_LinSM_00242]. Die Rückmeldung über den erfolgreich vollzogenen asynchronen Tabellenwechsel an die obere Schicht dürfte vermutlich über diese Bestätigungsfunktion erfolgen. Frage Q-34c3ec02381c72ca (offen)

Dieser Text wurde von einer KI erstellt; maßgeblich ist die AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function LinSM_GetCurrentComMode [SWS_LinSM_00122] 📄 PDF

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

Function to query the current communication mode.

function LinSM_RequestComMode [SWS_LinSM_00126] 📄 PDF

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 64785219821f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die in der Header-Datei LinSM.h deklarierte Funktion LinSM_RequestComMode (Service-ID 0x12) dient dem asynchronen Anfordern eines Kommunikationsmodus für ein übergebenes LIN-Netzwerk [SWS_LinSM_00126]. Über den Parameter network vom Typ NetworkHandleType wird der betreffende LIN-Kanal identifiziert, während mode vom Typ ComM_ModeType den gewünschten Kommunikationsmodus spezifiziert [SWS_LinSM_00126]. Der eigentliche Moduswechsel erfolgt nicht instantan; das LinSM benachrichtigt den Aufrufer erst, sobald die Modustransition erfolgreich abgeschlossen ist [SWS_LinSM_00126]. Interpretation: Als primärer Aufrufer dürfte der ComM fungieren, da die Modusumschaltung auf Kanalebene angefordert und quittiert wird. Frage Q-0fcce16df8a29149 (offen)

Rückgabewerte und Nebenläufigkeit

Die Schnittstelle ist als reentrant spezifiziert und liefert einen Statuswert vom Typ Std_ReturnType zurück [SWS_LinSM_00126]:

  • E_OK: Die Anforderung wurde erfolgreich vom LinSM akzeptiert [SWS_LinSM_00126].
  • E_NOT_OK: Die Ausführung der Anforderung ist nicht möglich, beispielsweise wenn das LinSM-Modul noch nicht initialisiert ist [SWS_LinSM_00126].

Fehlerbehandlung und Zusammenspiel

Im Rahmen der Fehlerbehandlung ist ein Zusammenspiel mit dem LIN-Interface definiert: Falls der unterlagerte Aufruf von LinIf_GotoSleep den Rückgabewert E_NOT_OK liefert, muss LinSM_RequestComMode zwingend ebenfalls E_NOT_OK zurückgeben [SWS_LinSM_00177]. Wenn die Funktion mit E_NOT_OK zurückkehrt, muss im LinSM derselbe Zustand gesetzt bleiben bzw. werden, sodass die entsprechenden Rückmeldungen an ComM_BusSM_ModeIndication und BswM_LinSM_CurrentState erfolgen [SWS_LinSM_00177].

Dieser Text wurde automatisch generiert. Alle fachlichen Aussagen basieren ausschließlich auf den Spezifikationsdaten von AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I2)

function LinSM_MainFunction [SWS_LinSM_00156] 📄 PDF

void LinSM_MainFunction (void);

Periodic function that runs the timers of different request timeouts

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ca2058e9ab04 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion LinSM_MainFunction fungiert als zentrale periodische Hauptfunktion des Moduls LIN State Manager (LinSM) innerhalb der AUTOSAR-Classic-Architektur [SWS_LinSM_00156]. Gemäß Spezifikation besitzt sie die Syntax void LinSM_MainFunction (void) und die hexadezimale Service-ID 0x30 [SWS_LinSM_00156]. Da sie weder Parameter übernimmt noch einen Rückgabewert liefert, arbeitet sie rein zustandsbasiert im Modul [SWS_LinSM_00156]. Ihre primäre funktionale Aufgabe ist das kontinuierliche Betreiben und Aktualisieren der internen Timer, welche für die Überwachung diverser Anforderungs-Timeouts (Request Timeouts) zuständig sind [SWS_LinSM_00156].

Aufrufkontext und Scheduling

Die Deklaration der Schnittstelle erfolgt über die Header-Datei SchM_LinSm.h [SWS_LinSM_00156]. Interpretation: Aufgrund dieser Einbindung in den Schedule Manager dürfte die Funktion zyklisch durch den BSW-Scheduler im Kontext einer Betriebssystem-Task aufgerufen werden. Frage Q-d83f7b3f0b251f4f (offen) Dieser regelmäßige Zyklus ist essenziell, damit anstehende Timeout-Bedingungen bei LIN-Kanal- und Zustandsanforderungen deterministisch erkannt und verarbeitet werden können. Spezifische Fehlerbehandlungen wie DET-Fehlercodes oder DEM-Ereignisse sowie formale Reentranz-Kriterien sind für diesen Service im vorliegenden Spezifikationsumfang nicht spezifiziert und entfallen daher.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] 📄 PDF

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 966015905644 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion LinSM_ScheduleRequestConfirmation dient als Callback-Schnittstelle des Moduls LinSM und besitzt die Service-ID 0x20 [SWS_LinSM_00129]. Sie ist über die Header-Datei LinSM.h verfügbar und wird vom LIN-Interface (LinIf) aufgerufen, sobald eine zuvor angeforderte neue Schedule-Tabelle auf dem LIN-Bus aktiv geworden ist [SWS_LinSM_00129].

Die Schnittstelle besitzt keinen Rückgabewert (void) und übergibt zwei Eingangsparameter an das LinSM [SWS_LinSM_00129]:

  • network (NetworkHandleType): Dient der eindeutigen Identifikation des betroffenen LIN-Kommunikationskanals [SWS_LinSM_00129].
  • schedule (LinIf_SchHandleType): Übergibt den Bezeichner bzw. Zeiger auf die neu aktivierte Schedule-Tabelle [SWS_LinSM_00129].

Nebenläufigkeit und Zusammenspiel

Die Ausführung von LinSM_ScheduleRequestConfirmation ist als synchron und reentrant spezifiziert [SWS_LinSM_00129]. Ein- und Ausgabeparameter (inout oder out) sind nicht vorhanden [SWS_LinSM_00129]. Das Zusammenspiel erfolgt eng gekoppelt mit dem Modul LinIf, welches diese Callback-Funktion aufruft, um den Zustandswechsel der Schedule-Tabelle an den LinSM zu bestätigen [SWS_LinSM_00129]. Interpretation: Da LinIf als Aufrufer agiert, dürfte der Aufrufkontext an die Ablaufverarbeitung des LinIf-Treibers bzw. Interfaces gekoppelt sein. Frage Q-500d6a653bfbaac0 (offen)

Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

function LinSM_GotoSleepIndication [SWS_LinSM_91000] 📄 PDF

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f0a8b1578ff8 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion LinSM_GotoSleepIndication ([SWS_LinSM_91000]) dient der Benachrichtigung des LIN State Managers über das Versetzen eines Kanals in den Ruhezustand. Der Aufruf erfolgt durch das LIN Interface (LinIf), sobald auf dem Netzwerk ein Go-to-Sleep-Befehl empfangen wird oder ein Bus-Idle-Timeout eintritt.

Verwendung und Aufrufkontext

Die Funktion wird synchron ausgeführt und besitzt keinen Rückgabewert ([SWS_LinSM_91000]). Sie wird über den Header LinSM.h bereitgestellt und führt die Service-ID 0x03. Ihr einziger Parameter dient der Kanalidentifikation:

  • Channel (In): Identifiziert den betroffenen LIN-Kanal über den Typ NetworkHandleType ([SWS_LinSM_91000]).

Es sind weder Ein-/Ausgangsparameter (inout) noch Ausgabeparameter (out) spezifiziert ([SWS_LinSM_91000]).

Nebenläufigkeit und Einschränkungen

Hinsichtlich der Nebenläufigkeit ist die Schnittstelle als reentrant definiert ([SWS_LinSM_91000]). Eine maßgebliche funktionale Einschränkung betrifft die Knoteneigenschaft: Der Callback ist ausschließlich für LIN-Slave-Knoten vorgesehen und anwendbar ([SWS_LinSM_91000]).

Dieser Nutzungshinweis basiert ausschließlich auf den Spezifikationsdaten aus AUTOSAR Release R20-11.

Implementer's Guide folgt (Komplexität I1)

function LinSM_GotoSleepConfirmation [SWS_LinSM_00135] 📄 PDF

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cf9e1845fe84 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion LinSM_GotoSleepConfirmation wird gemäß [SWS_LinSM_00135] vom LIN Interface (LinIf) aufgerufen, sobald ein Go-to-Sleep-Befehl auf dem LIN-Netzwerk übertragen wurde oder die Übertragung fehlgeschlagen ist.

Verwendung und Parameter

Der Callback besitzt die Service-ID 0x22, wird über den Header LinSM.h deklariert und besitzt keinen Rückgabewert [SWS_LinSM_00135]. Zur Identifikation und Statusübermittlung werden zwei Übergabeparameter genutzt:

  • network: Identifiziert den betroffenen LIN-Kanal über den Typ NetworkHandleType [SWS_LinSM_00135].
  • success: Gibt als boolescher Wert an, ob das Go-to-Sleep-Kommando erfolgreich auf dem Bus gesendet werden konnte (true) oder nicht (false) [SWS_LinSM_00135].

Ausführungskontext und Nebenläufigkeit

Die Spezifikation definiert den Aufruf als synchron und reentrant [SWS_LinSM_00135]. Interpretation: Das Modul LinSM dürfte anhand des Parameters success seinen internen Zustand für das jeweilige Netzwerk aktualisieren und feststellen, ob der Übergang in den Ruhezustand auf dem Bus bestätigt wurde. Frage Q-b5dfd51188b9ff0b (offen) Fehlerbehandlungen, Rückgabewerte oder spezifische DET- bzw. DEM-Meldungen sind für diese Schnittstelle im Payload nicht spezifiziert [SWS_LinSM_00135].

Dieser Text wurde von einer KI generiert; verbindlich ist ausschließlich die AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function LinSM_WakeupConfirmation [SWS_LinSM_00132] 📄 PDF

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3915bb7b7db1 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion LinSM_WakeupConfirmation dient im LIN-State-Manager der Bestätigung für das Senden eines Aufwachsignals auf einem LIN-Netzwerk [SWS_LinSM_00132]. Sie wird vom LIN-Interface (LinIf) aufgerufen, sobald der Befehl zum Aussenden des Wakeup-Signals auf dem Netzwerk entweder erfolgreich oder nicht erfolgreich übertragen wurde [SWS_LinSM_00132].

Für den Aufrufkontext, die Nebenläufigkeit und die Parameterübergabe gelten die folgenden Spezifikationsmerkmale [SWS_LinSM_00132]:

  • Synchronisationsverhalten und Reentranz: Die Ausführung der Funktion erfolgt synchron (Synchronous) und ist als reentrant (Reentrant) klassifiziert [SWS_LinSM_00132].
  • Kanalidentifikation (network): Der übergebene Eingangsparameter vom Typ NetworkHandleType bezeichnet den jeweiligen LIN-Kanal, auf dem der Sendevorgang stattfand [SWS_LinSM_00132].
  • Erfolgsstatus (success): Der boolesche Parameter gibt an, ob das Wakeup-Signal erfolgreich gesendet werden konnte (true) oder die Übertragung fehlgeschlagen ist (false) [SWS_LinSM_00132].
  • Rückgabewert und Ein-/Ausgabeparameter: Die Funktion besitzt keinen Rückgabewert (void) und definiert weder Ausgangs- noch Ein-/Ausgangsparameter [SWS_LinSM_00132].

Die Schnittstelle besitzt die Service-ID 0x21 und wird über die Header-Datei LinSM.h bereitgestellt [SWS_LinSM_00132]. Spezifische Fehlercodes sowie Anforderungen an eine Fehlerbehandlung über das Default Error Tracer (DET) oder das Diagnostic Event Manager (DEM) Modul werden im Spezifikationselement nicht vorgegeben [SWS_LinSM_00132].

Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Classic Release R20-11.

type LinSM_ModeType [SWS_LinSM_00220] 📄 PDF

Type used to report the current mode to the Bsw M

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 939c0e58134f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp LinSM_ModeType ist ein Standardtyp des LIN State Managers, der auf dem Basistyp uint8 aufbaut und über den Header LinSM.h zur Verfügung gestellt wird [SWS_LinSM_00220]. Die primäre Aufgabe dieses Typs besteht darin, den aktuellen Kommunikationsmodus eines LIN-Netzwerks an das BSW Mode Management (BswM) zu melden [SWS_LinSM_00220].

Für LinSM_ModeType sind zwei Zustände im Wertebereich spezifiziert [SWS_LinSM_00220]:

  • LINSM_FULL_COM (numerischer Wert 0x01): Signalisiert den Zustand der uneingeschränkten Vollkommunikation (Full communication) [SWS_LinSM_00220].
  • LINSM_NO_COM (numerischer Wert 0x02): Kennzeichnet den Zustand ohne laufende Kommunikation (No communication) [SWS_LinSM_00220].

Hinsichtlich Fehlerbehandlung und Nebenläufigkeit enthält die Typdefinition keine eigenen Fehlercodes, DET-Meldungen oder DEM-Ereignisse, da es sich um eine elementare Typdeklaration handelt [SWS_LinSM_00220]. Interpretation: Die Übergabe von Werten dieses Typs an den BswM dürfte im Rahmen übergeordneter Zustandswechsel des LinSM erfolgen, wobei Aufrufer sicherstellen müssen, dass keine unzulässigen Werte außerhalb der definierten Zustände übermittelt werden. Frage Q-fe193732b8be2388 (offen)

Dieser Nutzungshinweis wurde durch eine KI erstellt.

Implementer's Guide folgt (Komplexität I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_LinSM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinSM@rel:R20-11#d2671c47
Content hash
d2671c47
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINStateManager.pdf#nameddest=SWS_LinSM_00155

Initialisierung und Status

-

void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinSM_Init function

This function initializes the Lin SM.

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

Dienste

Function to query the current communication mode.

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

The upper layer requests a schedule table to be changed on one LIN network.

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

Zyklisch

Periodic function that runs the timers of different request timeouts

void LinSM_MainFunction (void);

Typen

Data structure type for the post - build configuration parameters.

Type used to report the current mode to the Bsw M