DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

ModulLinTrcv (LIN Transceiver Driver)
BSW-Modul-ID64
Standard-Header#include "LinTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_LINTransceiverDriver.pdf
ClusterLIN

Modul-GuideKI-GENERIERT

Steuert LIN-Transceiver-Bausteine: Betriebsmodi setzen und abfragen, Wakeups erkennen und an das LIN-Interface melden.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 4cf0c894f837 Herkunft Offene Fragen (4)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert LIN-Transceiver-Bausteine: Betriebsmodi setzen und abfragen, Wakeups erkennen und an das LIN-Interface melden.

Der LIN Transceiver Driver steuert den physikalischen LIN-Transceiver eines Kanals und entkoppelt LinIf von der Hardware. Nach LinTrcv_Init ist der Ausgangsmodus SLEEP. LinTrcv_SetOpMode wechselt zwischen NORMAL, STANDBY und SLEEP und liefert bei gescheitertem Wechsel E_NOT_OK [SWS_LinTrcv_00002]. Externe Wakeups werden über die ICU erkannt und gemeldet, wenn LinIf LinTrcv_CheckWakeup aufruft. In R20-11 bedeutet E_OK dabei „Wakeup erkannt“ [SWS_LinTrcv_00012]. Wartezeiten für Zustandswechsel sind mit Tm_BusyWait1us16bit umzusetzen.

Der LIN Transceiver Driver steuert den physikalischen LIN-Transceiver eines Kanals und entkoppelt das LIN-Interface von der Hardware. LinIf ruft seine Dienste direkt auf: LinIf_SetTrcvMode ruft zum Beispiel LinTrcv_SetOpMode auf und gibt dessen Ergebnis unverändert zurück [SWS_LinTrcv_00002] LinIf-SWS S. 90. Software- und Hardware-Zustände sind getrennt. Welche Hardware-Zustände ein Software-Modus abdeckt, entscheidet die Implementierung LinTrcv-SWS S. 16.

Der Treiber kennt die Modi LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY und LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. Nach dem Einschalten ist er inaktiv. LinTrcv_Init aktiviert ihn mit einem Konfigurationssatz [SWS_LinTrcv_00001], der Ausgangsmodus ist SLEEP LinTrcv-SWS S. 1. STANDBY ist optional und kann ein rein interner Zustand sein LinTrcv-SWS Abb. 7.1 S. 15.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (optional, ggf. nur intern) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Zustandsdiagramm: Lebenszyklus von Power-On über LinTrcv_Init bis zu den Moduswechseln mit LinTrcv_SetOpMode. Die optionalen Übergänge sind rekonstruiert (Interpretation). Quellen: LinTrcv-SWS Abb. 7.1 S. 15 [SWS_LinTrcv_00168]

Externe Wakeups erkennt der Treiber nicht über eine eigene ISR, sondern über die ICU LinTrcv-SWS S. 17. LinIf fragt sie mit LinTrcv_CheckWakeup ab. In R20-11 bedeutet E_OK dabei „Wakeup erkannt“ [SWS_LinTrcv_00012]. Spätere Releases definieren das anders. Ein erkannter Wakeup wird über LinIf_WakeupConfirmation gemeldet [SWS_LinTrcv_91002]. LinTrcv_SetWakeupMode gibt die Benachrichtigung frei, sperrt sie oder löscht gespeicherte Ereignisse [SWS_LinTrcv_00169].

Externer Wakeup (Rückgabewerte nach R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(beim Wechsel nach STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegeloder Flanke am Wakeup-Pin)Der Weg von der ICU-Notifikation bis zum Aufrufdurch LinIf liegt außerhalb von LinTrcv(im Payload nicht beschrieben)LinTrcv_CheckWakeup(LinNetwork)Wakeup auf demadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Wakeup-Flag des Kanals setzenE_OKkein Wakeup erkanntE_NOT_OKUse Case: Wakeup-Grund abfragen (über LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Sequenzdiagramm: Externer Wakeup von der ICU-Erkennung über LinTrcv_CheckWakeup und LinIf_WakeupConfirmation bis zur Abfrage des Grunds. Quellen: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS S. 17

Für den Betrieb gelten diese Randbedingungen:

  • Wartezeiten bei Zustandswechseln sind mit Tm_BusyWait1us16bit umzusetzen [SWS_LinTrcv_00171].
  • Auf Mehrkernsystemen müssen LinTrcvChannel und LinChannel eines Kanals dieselbe Partition referenzieren [SWS_LinTrcv_00177].
  • Bei gestörter Kommunikation zum Transceiver liefern die Abfragen E_NOT_OK LinTrcv-SWS S. 26.

Die DET-Fehlercodes sind nur aus späteren Releases belegt. Da R21-11 die Fehlercodes bereinigt hat, können ihre Namen in R20-11 abweichen LinTrcv-SWS S. 1.

Rolle zwischen LIN-Interface und Transceiver-Baustein

Der LIN Transceiver Driver (LinTrcv) kapselt die Ansteuerung des physikalischen LIN-Transceivers. Seine Schnittstelle besteht aus sieben Diensten:

Alle Dienste sind synchron. Die Software-Zustände des Treibers sind von den Hardware-Zuständen des Bausteins getrennt. Der Baustein darf mehr Übergänge kennen als der Treiber. Welche Hardware-Zustände ein Software-Zustand abdeckt, entscheidet die Implementierung. Sie muss aber die beschriebene Funktionalität vollständig erbringen LinTrcv-SWS S. 16.

Nach oben ist das LIN-Interface (LinIf) der im Payload belegte Nutzer. Die LinIf-Dienste rufen jeweils einen LinTrcv-Dienst auf:

  • LinIf_SetTrcvMode ruft LinTrcv_SetOpMode auf und gibt dessen Rückgabewert unverändert zurück LinIf-SWS S. 90.
  • LinIf_GetTrcvMode ruft LinTrcv_GetOpMode auf LinIf-SWS S. 91.
  • LinIf_GetTrcvWakeupReason ruft LinTrcv_GetBusWuReason auf LinIf-SWS S. 92.
  • LinIf_SetTrcvWakeupMode ruft LinTrcv_SetWakeupMode auf LinIf-SWS S. 93.

Die Typen LinTrcv_TrcvModeType und LinTrcv_TrcvWakeupModeType sind über Lin_GeneralTypes.h verfügbar [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]. LinIf verwendet sie direkt in seinen Signaturen. Der frühere eigene Typ LinIf_TrcvModeType wurde in Version 3.1.5 durch LinTrcv_TrcvModeType ersetzt LinIf-SWS S. 4.

Nach unten nutzt der Treiber folgende Dienste:

Erkannte Wakeups meldet der Treiber über LinIf_WakeupConfirmation an LinIf [SWS_LinTrcv_91002]. LinIf setzt daraufhin das Wakeup-Flag des betroffenen Kanals LinIf-SWS S. 98.

LinTrcvKontext LinIf LinIf LinTrcv LinTrcv LinIf->LinTrcv LinTrcv_SetOpMode, LinTrcv_GetOpMode, LinTrcv_GetBusWuReason, LinTrcv_SetWakeupMode, LinTrcv_CheckWakeup LinTrcv->LinIf LinIf_WakeupConfirmation Dio Dio LinTrcv->Dio Dio-Lese-/Schreibdienste (LinTrcvDioAccess) Spi Spi LinTrcv->Spi SPI-Sequenz (LinTrcvSpiSequence) Icu Icu LinTrcv->Icu Icu_EnableNotification / Icu_DisableNotification Tm Tm LinTrcv->Tm Tm_BusyWait1us16bit Det DET LinTrcv->Det Det_ReportError EcuM EcuM LinTrcv->EcuM EcuM_SetWakeupEvent HW LIN-Transceiver-Baustein Dio->HW Pins Spi->HW SPI HW->Icu Wakeup-Signal

Kontextdiagramm: LinTrcv liegt zwischen LinIf und den hardwarenahen Diensten Dio/Spi, Icu und Tm und meldet Wakeups an LinIf zurück. Quellen: [SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS S. 17 LinTrcv-SWS Abb. 10.3 S. 45

Lebenszyklus der Betriebsmodi von Power-On bis Sleep

Der Treiber kennt drei Software-Betriebsmodi: LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY und LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. Abbildung 7.1 der Spezifikation ordnet sie in einen Lebenszyklus ein LinTrcv-SWS Abb. 7.1 S. 15:

  • Nach dem Einschalten ist der Treiber im Zustand NOT_ACTIVE.
  • LinTrcv_Init überführt ihn in den Zustand ACTIVE. Die drei Modi liegen innerhalb von ACTIVE.
  • Ein Spannungsverlust beendet den Lebenszyklus.

LinTrcv_Init erhält einen Zeiger auf den gewählten Konfigurationssatz [SWS_LinTrcv_00001]. Die Struktur LinTrcv_ConfigType ist implementierungsspezifisch [SWS_LinTrcv_00172]. Seit Version 4.3.1 ist der Ausgangsmodus nach der Initialisierung auf LINTRCV_TRCV_MODE_SLEEP beschränkt LinTrcv-SWS S. 1.

Im Zustand ACTIVE schaltet LinTrcv_SetOpMode den internen Zustand des adressierten Kanals auf den übergebenen Modus [SWS_LinTrcv_00002] LinTrcv-SWS S. 25. Der Modus LINTRCV_TRCV_MODE_STANDBY ist optional. Er kann ein rein interner Zustand sein, den die Hardware für Übergänge nutzt. Eine konkrete Hardware braucht womöglich nicht alle Schnittstellen LinTrcv-SWS Abb. 7.1 S. 15. Die Spezifikation nennt außerdem Bedingungen, unter denen LinTrcv_SetOpMode den Kanal nach STANDBY schaltet. Diese Bedingungen sind im vorliegenden Auszug abgeschnitten und werden hier nicht ausgeführt LinTrcv-SWS S. 25.

LinTrcv_GetOpMode liefert im Ausgabeparameter OpMode den aktuellen Software-Zustand des Treibers [SWS_LinTrcv_00005] LinTrcv-SWS S. 26. Das ist nicht zwingend der Zustand des Bausteins. Ein Aufrufer kann damit vor einem Moduswechsel prüfen, in welchem Modus der Kanal ist. Über LinIf ist diese Abfrage als LinIf_GetTrcvMode verfügbar LinIf-SWS S. 91.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (optional, ggf. nur intern) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Zustandsdiagramm: Nach Power-On ist der Treiber inaktiv. LinTrcv_Init führt in den aktiven Bereich mit Ausgangsmodus SLEEP, LinTrcv_SetOpMode wechselt zwischen den Modi. Die optionalen Übergänge sind aus den Bildtexten von Abb. 7.1 rekonstruiert (Interpretation). Bedingte Wechsel nach STANDBY sind nicht dargestellt. Quellen: LinTrcv-SWS Abb. 7.1 S. 15 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS S. 1

Moduswechsel und Abfragen über das LIN-Interface

Jeder Dienst adressiert einen Kanal über den Parameter LinNetwork vom Typ uint8 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]. In LinIf heißt der entsprechende Parameter Channel und hat den Typ NetworkHandleType LinIf-SWS S. 90.

LinTrcv_SetOpMode ist synchron und nicht reentrant, die Service-ID ist 0x01. Die Rückgabewerte bedeuten [SWS_LinTrcv_00002]:

  • E_OK: Der Transceiver-Zustand hat auf den angeforderten Modus gewechselt.
  • E_NOT_OK: Der Wechsel wurde nicht akzeptiert, ist fehlgeschlagen, oder der Parameter liegt außerhalb des zulässigen Bereichs.

LinIf muss den Aufruf für alle Transceiver und alle Modi zulassen, auch wenn die Hardware einen Modus nicht unterstützt LinIf-SWS S. 90. Die Abbildung auf die Hardware bleibt damit Aufgabe von LinTrcv.

Wartezeiten bei Zustandswechseln realisiert der Treiber mit Tm_BusyWait1us16bit [SWS_LinTrcv_00171]. Da LinTrcv_SetOpMode synchron arbeitet [SWS_LinTrcv_00002], dürfte diese aktive Wartezeit innerhalb des Aufrufs anfallen und seine Laufzeit verlängern (Interpretation). Frage Q-54fe21bbe7c737d9 (offen) Beim Wechsel in den Standby-Modus aktiviert der Treiber außerdem die ICU-Kanäle für die Wakeup-Erkennung LinTrcv-SWS S. 17.

Die Abfragedienste sind reentrant. LinTrcv_GetBusWuReason liefert den erkannten Wakeup-Grund im Typ LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00007]. Zu dessen Werten gehören LINTRCV_WU_ERROR, LINTRCV_WU_NOT_SUPPORTED, LINTRCV_WU_BY_BUS und LINTRCV_WU_BY_PIN [SWS_LinTrcv_00170]. Wie genau sich Wakeup-Gründe unterscheiden lassen, hängt stark von der Transceiver-Hardware ab LinTrcv-SWS S. 28. LinTrcv_GetVersionInfo gibt die Versionsinformation als Std_VersionInfoType zurück [SWS_LinTrcv_00008] LinTrcv-SWS S. 29.

Moduswechsel über LinIf_SetTrcvModeAufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)Channel prüfen(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:DIO-Pins oder SPI-Sequenz)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)Wartezeit abgelaufenoptOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(ICU-Kanäle für Wakeup aktivieren)E_OK / E_NOT_OKRückgabewert vonLinTrcv_SetOpMode

Sequenzdiagramm: Ein Moduswechsel läuft von LinIf zu LinTrcv. LinTrcv wartet über Tm, aktiviert beim Wechsel nach STANDBY die ICU-Notifikation und gibt sein Ergebnis über LinIf unverändert zurück. Die Ansteuerung über Dio/Spi und die Lage der Wartezeit im Aufruf sind Interpretation. Quellen: [SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS S. 90 LinTrcv-SWS S. 17

Wakeup erkennen, melden und steuern

Der Treiber unterscheidet zwei Wakeup-Arten LinTrcv-SWS S. 17:

  • Interner Wakeup: Eine obere Schicht löst ihn aus, etwa durch LinTrcv_Init oder LinTrcv_SetOpMode.
  • Externer Wakeup: Der Treiber erkennt ihn am LIN-Kanal. LinIf muss LinTrcv_CheckWakeup aufrufen, damit der Wakeup nach oben gemeldet wird.

Eine eigene ISR für den Wakeup sieht der Treiber nicht vor. Die Erkennung läuft über die ICU mit Icu_EnableNotification und Icu_DisableNotification. Die Wakeup-Art wird über den Konfigurationsparameter LinTrcvWakeUpSupport gewählt. Mit LinTrcvWakeupByBusUsed lässt sich die Wakeup-Unterstützung je Kanal ein- und ausschalten LinTrcv-SWS S. 17.

LinTrcv_CheckWakeup wertet den Wakeup auf dem adressierten Netz aus, etwa einen dominanten Buspegel oder eine negative Flanke am Wakeup-Pin LinTrcv-SWS S. 30. In R20-11 bedeuten die Rückgabewerte [SWS_LinTrcv_00012]:

  • E_OK: Ein Wakeup wurde erkannt.
  • E_NOT_OK: Es wurde kein Wakeup erkannt.

Die Dokumentstelle aus späteren Releases definiert die Werte anders, als „Aufruf akzeptiert/nicht akzeptiert“. Diese Änderung kam mit R22-11 und gilt für R20-11 nicht LinTrcv-SWS S. 1 LinTrcv-SWS S. 30. Nach einer erfolgreichen Erkennung meldet der Treiber die Wakeup-Quelle über LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. Eigene Callback-Benachrichtigungen bietet LinTrcv nicht an LinTrcv-SWS S. 32. Deshalb muss LinTrcv_CheckWakeup aktiv aufgerufen werden.

LinTrcv_SetWakeupMode ist synchron und nicht reentrant. Es steuert die Wakeup-Benachrichtigung je Netz über LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE gibt die Benachrichtigung frei.
  • LINTRCV_WUMODE_DISABLE sperrt sie.
  • LINTRCV_WUMODE_CLEAR löscht ein gespeichertes Wakeup-Ereignis.

Liegt beim Freigeben bereits ein gespeichertes Ereignis vor, führt der Treiber die Benachrichtigung noch im Aufruf oder unmittelbar danach aus LinTrcv-SWS S. 31. LinIf bietet diese Steuerung als LinIf_SetTrcvWakeupMode an LinIf-SWS S. 93.

Externer Wakeup (Rückgabewerte nach R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(beim Wechsel nach STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegeloder Flanke am Wakeup-Pin)Der Weg von der ICU-Notifikation bis zum Aufrufdurch LinIf liegt außerhalb von LinTrcv(im Payload nicht beschrieben)LinTrcv_CheckWakeup(LinNetwork)Wakeup auf demadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Wakeup-Flag des Kanals setzenE_OKkein Wakeup erkanntE_NOT_OKUse Case: Wakeup-Grund abfragen (über LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Sequenzdiagramm: Ein externer Wakeup wird über die ICU erkannt. LinIf prüft ihn mit LinTrcv_CheckWakeup, LinTrcv bestätigt ihn per LinIf_WakeupConfirmation, und der Grund ist danach abfragbar (Rückgabewerte nach R20-11). Quellen: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS S. 17 LinIf-SWS S. 98

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt Benachrichtigung für Wakeup-Ereignisse gesperrt Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht gespeichertes Wakeup-Ereignis gelöscht Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort Benachrichtigung im Aufruf oder unmittelbar danach Gespeichert->Sofort ja Frei Benachrichtigung für Wakeup-Ereignisse freigegeben Gespeichert->Frei nein Ende Rückgabe E_OK (E_NOT_OK, falls Modus nicht gesetzt) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

Aktivitätsdiagramm: LinTrcv_SetWakeupMode verzweigt nach dem angeforderten Modus. Nur bei ENABLE mit gespeichertem Ereignis folgt sofort eine Benachrichtigung. Quellen: [SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS S. 31

Hardwarezugriff, Kanalkonfiguration und Partitionierung

Wie der Treiber den Baustein erreicht, legt der Auswahlcontainer LinTrcvAccess fest LinTrcv-SWS Abb. 10.3 S. 45. Genau eine von zwei Varianten ist zu wählen:

  • LinTrcvDioAccess: Die Transceiver-Pins werden auf DIO-Kanäle abgebildet.
  • LinTrcvSpiSequence: Ein SPI-fähiger Baustein wird über eine SPI-Sequenz angesprochen.

Das Schaubild stammt aus R23-11 und späteren Releases. Die DIO-Lese- und Schreibdienste sowie die SPI-Typen sind aber schon in R20-11 als genutzte Schnittstellen bzw. importierte Typen aufgeführt [SWS_LinTrcv_91003] [SWS_LinTrcv_91001].

Für Mehrkernsysteme gelten in R20-11 folgende Regeln:

  • Der Treiber muss Konfigurationen mit nicht unterstützten Partitionszuordnungen zurückweisen [SWS_LinTrcv_00174].
  • Die über LinTrcvChannelEcucPartitionRef referenzierten Partitionen müssen eine Teilmenge der über LinTrcvEcucPartitionRef referenzierten sein. Referenziert das Modul Partitionen, muss jeder Kanal genau eine davon referenzieren [SWS_LinTrcv_00176].
  • LinTrcvChannel und LinChannel desselben Kommunikationskanals müssen dieselbe Partition referenzieren [SWS_LinTrcv_00177].

Die Mehrkern-Verteilung kam mit R19-11 hinzu und wurde in R24-11 präzisiert LinTrcv-SWS S. 1.

Verhalten im Fehlerfall

Laufzeitfehler zeigen sich im Rückgabewert:

  • Bei fehlender oder gestörter Kommunikation zum Transceiver liefern LinTrcv_GetOpMode LinTrcv-SWS S. 26 und LinTrcv_GetBusWuReason LinTrcv-SWS S. 28 E_NOT_OK.
  • LinTrcv_SetOpMode liefert E_NOT_OK, wenn ein Wechsel nicht akzeptiert wurde oder gescheitert ist [SWS_LinTrcv_00002].
  • LinTrcv_SetWakeupMode liefert E_NOT_OK, wenn der Wakeup-Modus nicht gesetzt werden konnte LinTrcv-SWS S. 31.
  • Lässt sich ein Wakeup-Grund wegen eines Fehlers nicht bestimmen, steht dafür der Wert LINTRCV_WU_ERROR bereit [SWS_LinTrcv_00170].

Entwicklungsfehler meldet der Treiber über Det_ReportError [SWS_LinTrcv_91003]. In R20-11 führen sie bei LinTrcv_GetOpMode und LinTrcv_GetBusWuReason zu E_NOT_OK [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]. Die Dokumentstellen aus späteren Releases nennen konkrete Prüfungen LinTrcv-SWS S. 26 LinTrcv-SWS S. 30 LinTrcv-SWS S. 29:

  • Aufruf vor der Initialisierung: LINTRCV_E_UNINIT
  • ungültige Netznummer: LINTRCV_E_INVALID_LIN_NETWORK
  • Nullzeiger bei LinTrcv_GetVersionInfo: LINTRCV_E_PARAM_POINTER

Diese Prüfungen dürften inhaltlich auch für R20-11 gelten (Interpretation). Frage Q-58e3d310b525b810 (offen) R20-11 hat jedoch die Fehlerklassifikation bereinigt und R21-11 die Fehlercodes. Die Bezeichner können in R20-11 deshalb abweichen LinTrcv-SWS S. 1.

Einen Teil der Fehlbedienungen fängt schon LinIf ab. Bei ungültigem Channel melden LinIf_SetTrcvMode und LinIf_GetTrcvMode den Fehler LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS S. 90. LinIf_GetTrcvMode liefert bei ungültigem Kanal oder Nullzeiger außerdem E_NOT_OK LinIf-SWS S. 91. Erhält LinIf_WakeupConfirmation eine ungültige Wakeup-Quelle, löst es bei aktivierter Fehlererkennung LINIF_E_PARAM_WAKEUPSOURCE aus LinIf-SWS S. 98.

Weiterführende Detailbelege

KI-generierter Leitfaden. Grundlage sind die normativen Requirements für R20-11 und zugeordnete Dokumentstellen, teils aus R23-11 bis R25-11. Abweichungen zwischen den Releases sind im Text benannt. Verbindlich ist allein die Spezifikation.

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

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

Die Funktion LinTrcv_Init dient der grundlegenden Initialisierung des LIN-Transceiver-Treibermoduls gemäß der Spezifikation in [SWS_LinTrcv_00001]. Die Schnittstelle wird über die Header-Datei LinTrcv.h deklariert und besitzt die numerische Service-ID 0x00 [SWS_LinTrcv_00001].

Verwendung und Parameter

Der Aufruf von LinTrcv_Init wird synchron ausgeführt und besitzt keinen Rückgabewert (void) [SWS_LinTrcv_00001]. Als einziger Übergabeparameter wird der Eingangszeiger ConfigPtr vom Typ const LinTrcv_ConfigType* übergeben, der auf den ausgewählten Konfigurationsdatensatz des LIN-Transceivers verweist [SWS_LinTrcv_00001]. Weitere Parameter wie Ein-/Ausgangs- oder reine Ausgangsparameter sind für diese Routine nicht vorhanden [SWS_LinTrcv_00001].

Nebenläufigkeit und Einschränkungen

In Bezug auf das Nebenläufigkeitsverhalten ist LinTrcv_Init verbindlich als nicht reentrant (Non Reentrant) eingestuft [SWS_LinTrcv_00001]. Daher müssen parallele oder unterbrechende Aufrufe dieser Funktion im System ausgeschlossen werden. Zudem dürfen keine konkurrierenden Zugriffe während der Initialisierung stattfinden. Interpretation: Die Ausführung der Initialisierungsfunktion dürfte typischerweise zentral im Rahmen der Systemstartphase erfolgen, noch bevor andere Dienste des LIN-Transceiver-Treibers aufgerufen werden. Frage Q-9845a0c76e3146fa (offen)

Dieser Text wurde von einer KI erstellt; alle Angaben basieren auf den Anforderungen des AUTOSAR-Standards.

Implementer's Guide folgt (Komplexität I1)

function LinTrcv_SetOpMode [SWS_LinTrcv_00002] 📄 PDF

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

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

Die Funktion LinTrcv_SetOpMode dient dem Umschalten des internen Zustands des LIN-Transceiver-Treibers in den übergebenen Betriebsmodus gemäß [SWS_LinTrcv_00002].

Verwendung und Semantik

  • Aufrufkontext und Parameter: Der Aufruf adressiert über den Parameter LinNetwork das jeweilige LIN-Netzwerk, während OpMode (Typ LinTrcv_TrcvModeType) den Zielbetriebsmodus vorgibt ([SWS_LinTrcv_00002]). Die Schnittstelle ist über LinTrcv.h verfügbar.
  • Rückgabewerte: Die Funktion liefert E_OK zurück, sobald der Zustand des Transceivers erfolgreich in den angeforderten Modus gewechselt wurde. Schlägt der Zustandswechsel fehl, wird er nicht akzeptiert oder liegt ein Parameter außerhalb des zulässigen Bereichs, wird E_NOT_OK zurückgegeben ([SWS_LinTrcv_00002]).
  • Synchrone Ausführung: Der Service arbeitet synchron (Sync/Async: Synchronous) unter Service-ID 0x01 ([SWS_LinTrcv_00002]).

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_LinTrcv_00002]). Aufrufer müssen daher sicherstellen, dass parallele Aufrufe für dasselbe Modul bzw. Netzwerk vermieden werden.

Dieser Text wurde von einer KI erstellt. Er ersetzt nicht das Studium der entsprechenden AUTOSAR-Spezifikationen.

Implementer's Guide folgt (Komplexität I1)

function LinTrcv_GetBusWuReason [SWS_LinTrcv_00007] 📄 PDF

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

function LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

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

Die synchrone Funktion LinTrcv_CheckWakeup dient der Prüfung, ob an einem adressierten LIN-Netzwerk ein Weckereignis erkannt wurde [SWS_LinTrcv_00012]. Sie informiert die aufrufende Stelle direkt über das Vorliegen einer entsprechenden Weckbedingung [SWS_LinTrcv_00012].

Aufruf und Parameter

Die Funktion besitzt die Service-ID 0x07 und wird über die Header-Datei LinTrcv.h zur Verfügung gestellt [SWS_LinTrcv_00012]:

  • LinNetwork (Eingangsparameter, uint8): Bezeichnet das LIN-Netzwerk, auf welches der API-Aufruf angewendet werden soll [SWS_LinTrcv_00012].

Rückgabewerte

Der Rückgabewert vom Typ Std_ReturnType signalisiert das Resultat der Weckprüfung [SWS_LinTrcv_00012]:

  • E_OK: Ein Weckereignis wurde auf dem spezifizierten LIN-Netzwerk erfolgreich detektiert [SWS_LinTrcv_00012].
  • E_NOT_OK: Es wurde kein Weckereignis auf dem spezifizierten LIN-Netzwerk festgestellt [SWS_LinTrcv_00012].

Nebenläufigkeit

Die Ausführung von LinTrcv_CheckWakeup erfolgt vollständig synchron und ist als reentrant spezifiziert [SWS_LinTrcv_00012]. Der synchrone Ablauf stellt sicher, dass das Ergebnis unmittelbar beim Funktionsrücksprung vorliegt.

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation für den LIN Transceiver Driver in AUTOSAR CP R20-11 generiert.

function LinTrcv_SetWakeupMode [SWS_LinTrcv_00009] 📄 PDF

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

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

Die synchrone Funktion LinTrcv_SetWakeupMode dient dem Aktivieren, Deaktivieren und Löschen von Benachrichtigungen für Wakeup-Ereignisse auf dem adressierten LIN-Netzwerk [SWS_LinTrcv_00009]. Sie ist über die Header-Datei LinTrcv.h deklariert und besitzt die Service-ID 0x05 [SWS_LinTrcv_00009].

Parameter und Rückgabewerte

Die Funktion erwartet zwei Eingangsparameter [SWS_LinTrcv_00009]:

  • LINNetwork (uint8): Bezeichnet das konkrete LIN-Netzwerk, auf das die API angewendet werden soll [SWS_LinTrcv_00009].
  • TrcvWakupMode (LinTrcv_TrcvWakeupModeType): Übergibt den angeforderten Wakeup-Modus bzw. Grund für den Transceiver [SWS_LinTrcv_00009].

Als Rückgabewert wird ein Status vom Typ Std_ReturnType geliefert [SWS_LinTrcv_00009]:

  • E_OK: Zeigt an, dass der Zustand des Transceivers erfolgreich in den angeforderten Modus überführt wurde [SWS_LinTrcv_00009].
  • E_NOT_OK: Signalisiert, dass der Aufruf aufgrund von Entwicklungsfehlern fehlgeschlagen ist oder der gewünschte Wakeup-Modus nicht gesetzt werden konnte [SWS_LinTrcv_00009].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (non Reentrant) spezifiziert und führt die Zustandsänderung synchron durch [SWS_LinTrcv_00009]. Aufrufende Komponenten müssen daher sicherstellen, dass keine parallelen Aufrufe für dieselbe Schnittstelle stattfinden.

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

type LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

type LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

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

Der Aufzählungstyp LinTrcv_TrcvModeType definiert die Betriebsmodi für den LIN-Transceiver-Treiber gemäß [SWS_LinTrcv_00168]. Die Typdefinition ist in der Header-Datei Lin_GeneralTypes.h hinterlegt und steht damit übergeordneten Software-Schichten zur Verfügung [SWS_LinTrcv_00168].

Der Wertebereich umfasst drei standardisierte Zustände für den Transceiver [SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL: Kennzeichnet den regulären Betriebsmodus (Transceiver mode NORMAL) des LIN-Transceivers [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_STANDBY: Repräsentiert den Standby-Modus (Transceiver mode STANDBY) des Transceivers [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_SLEEP: Beschreibt den Schlafmodus (Transceiver mode SLEEP) für den LIN-Transceiver [SWS_LinTrcv_00168].

In Bezug auf die Verwendung und das funktionale Zusammenspiel dient dieser Enumerationstyp der einheitlichen Modellierung von Transceiver-Zuständen [SWS_LinTrcv_00168]. Vermutlich wird der Typ als Parameter oder Rückgabewert in Treiberfunktionen verwendet, um gezielte Zustandswechsel zwischen Normalbetrieb, Bereitschaft und stromsparendem Schlafzustand anzufordern oder abzufragen. Frage Q-8966f1299f224eff (offen) Spezifische Aufrufkontexte, Fehlercodes sowie Nebenläufigkeits- und Reentranzeigenschaften sind nicht an diesem Datentyp selbst verankert, sondern hängen von den jeweiligen APIs des Transceiver-Treibers ab [SWS_LinTrcv_00168].

Dieser Text wurde von einer KI generiert und dient der technischen Orientierung.

Implementer's Guide folgt (Komplexität I1)

type LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

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

Verwendung und Wertebereich

Der Typ LinTrcv_TrcvWakeupModeType ist eine Enumeration, die die Betriebsmodi für Wakeup-Ereignisse des LIN-Transceiver-Treibers definiert [SWS_LinTrcv_00169]. Er wird über die Header-Datei Lin_GeneralTypes.h bereitgestellt [SWS_LinTrcv_00169].

Die Enumeration umfasst folgende Werte zur Steuerung des adressierten Netzwerks [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE: Aktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Netzwerk [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_DISABLE: Deaktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Netzwerk [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_CLEAR: Löscht ein zuvor gespeichertes Wakeup-Ereignis auf dem adressierten Netzwerk [SWS_LinTrcv_00169].

Fehlerbehandlung und Randbedingungen

Für den Typ selbst sind in der Spezifikation keine spezifischen Fehlercodes, Rückgabewerte oder DET-/DEM-Fehlermeldungen definiert [SWS_LinTrcv_00169]. Als Datentyp unterliegt er keinen direkten Reentranz- oder Ausführungsbeschränkungen.

Zusammenspiel

Interpretation: Der Typ dürfte in API-Funktionen des LIN-Transceiver-Treibers als Übergabeparameter dienen, um die Wakeup-Erkennung netzwerkspezifisch ein- bzw. auszuschalten oder den Wakeup-Status zurückzusetzen [SWS_LinTrcv_00169]. Frage Q-cfb3e28d7baefc72 (offen)

Dieser Text wurde von einer KI erstellt. Er basiert ausschließlich auf den Spezifikationsdaten aus SWS_LinTrcv_00169.

Implementer's Guide folgt (Komplexität I1)

type LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00170] 📄 PDF

This type denotes the wake up reason detected by the LIN transceiver in detail.

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

Record
AUTOSAR/AP/record/CP_MOD_LinTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinTrcv@rel:R20-11#26326fe6
Content hash
26326fe6
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINTransceiverDriver.pdf#nameddest=SWS_LinTrcv_00001

Initialisierung und Status

This service provides the version information of this module through the parameter "versioninfo".

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTrcv_Init function

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Dienste

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

API detects the actual software state of LIN transceiver driv er.

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

Typen

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

This type denotes the wake up reason detected by the LIN transceiver in detail.