DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

ModulLin (LIN Driver)
BSW-Modul-ID82
Standard-Header#include "Lin.h"
SWS-SpezifikationAUTOSAR_SWS_LINDriver.pdf
ClusterLIN

Modul-GuideKI-GENERIERT

Steuert die LIN-Hardware und bietet dem LIN Interface Dienste für Frames, Schlafzustand und Wake-up je Kanal.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: ea366bb8619c Herkunft Offene Fragen (1)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert die LIN-Hardware und bietet dem LIN Interface Dienste für Frames, Schlafzustand und Wake-up je Kanal.

Der LIN-Treiber kapselt die LIN-Hardware des Mikrocontrollers und stellt dem LIN Interface kanalbezogene Dienste für Frames, Schlafzustand und Wake-up bereit. Master-Kanäle stoßen Frames asynchron mit Lin_SendFrame an und werten sie über Lin_GetStatus aus. Slave-Kanäle reagieren auf jeden empfangenen Header mit einer Indikation an das LIN Interface und senden, empfangen oder ignorieren dann die Response ([SWS_Lin_00280]). Welche Dienste verfügbar sind, hängt vom konfigurierten Knotentyp ab; die Master-Dienste gibt es nur bei mindestens einem Master-Kanal ([SWS_Lin_00287]).

Der LIN-Treiber Lin ist der Hardware-Treiber des LIN-Stacks. Er kapselt LIN-Controller oder SCI/UARTs (SWS LIN Driver S. 9) und bietet dem LIN Interface kanalbezogene Dienste für Frames, Schlafzustand und Wake-up. Fest benötigt er Dem_SetEventStatus, EcuM_SetWakeupEvent und LinIf_WakeupConfirmation ([SWS_Lin_00234]). Optional nutzt er DET, Icu und die Slave-Callbacks des LinIf ([SWS_Lin_00235]).

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Kontextdiagramm: Lin steht zwischen LinIf und der LIN-Hardware und meldet Wake-ups und Fehler an EcuM, LinIf, DEM und DET. Quellen: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init überführt das Modul von LIN_UNINIT nach LIN_INIT ([SWS_Lin_00006], SWS LIN Driver S. 24). Danach wechselt jeder Kanal zwischen LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (nur Master) und LIN_CH_SLEEP. Dafür stehen Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup und Lin_WakeupInternal bereit ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal Kanalzustände je Kanal (nur in LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (nicht nutzbar) Reset->LIN_UNINIT nach Reset LIN_INIT LIN_INIT (Kanäle dienstbereit) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (nimmt am Cluster teil) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (nur Master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (mit Wake-up-Puls) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (ohne Wake-up-Puls)

Zustandsdiagramm: Modulzustände und Kanalzustände mit ihren Übergängen. Dass Lin_GetStatus den Schritt nach LIN_CH_SLEEP abschließt, ist eine Interpretation des Schaubilds. Quellen: SWS LIN Driver S. 24, [SWS_Lin_00166]

Master- und Slave-Kanäle arbeiten grundverschieden. Ein Master stößt Frames asynchron mit Lin_SendFrame an und fragt das Ergebnis später mit Lin_GetStatus ab ([SWS_Lin_00191], [SWS_Lin_00168]). Diese Dienste gibt es nur, wenn mindestens ein Kanal als Master konfiguriert ist ([SWS_Lin_00287]). Ein Slave meldet jeden Header per LinIf_HeaderIndication ([SWS_Lin_00280]). Abhängig von Drc sendet, empfängt oder ignoriert er dann die Response und schließt sie mit LinIf_TxConfirmation oder LinIf_RxIndication ab ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Wake-ups vom Bus prüft Lin_CheckWakeup und meldet sie an EcuM und LinIf ([SWS_Lin_00160]). Im Fehlerfall gehen Fehlbenutzungen an die DET, etwa LIN_E_UNINIT ([SWS_Lin_00258]). Ein Hardware-Timeout wird als LIN_E_TIMEOUT an den DEM gemeldet ([SWS_Lin_00290]). Busfehler liefert ein Master-Kanal als Status zurück, ein Slave-Kanal meldet sie über LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Rolle, Systemgrenze und Instanzbezug des LIN-Treibers

Der LIN-Treiber Lin kapselt die LIN-Hardware des Mikrocontrollers. Dem LIN Interface (LinIf) stellt er kanalbezogene Dienste bereit: Frames senden und empfangen, Kanäle schlafen legen und aufwecken sowie Wake-ups prüfen. Alle Dienste sind über Lin.h verfügbar ([SWS_Lin_00191], [SWS_Lin_00160]). Als Hardware nennt die Spezifikation drei Arten von LIN-Hardware-Units: vollwertige LIN-Controller, einfache SCI/UARTs und erweiterte SCI/UARTs. Sie sind jeweils über Transceiver-ICs an einen LIN-Cluster angeschlossen (SWS LIN Driver S. 9). Der Treiber stellt selbst keine Callback-Funktionen bereit (SWS LIN Driver S. 49). Er ruft stattdessen Funktionen seiner Umgebung auf.

Pflichtschnittstellen nach außen sind Dem_SetEventStatus, EcuM_SetWakeupEvent und LinIf_WakeupConfirmation ([SWS_Lin_00234]). Optional nutzt der Treiber unter anderem:

  • Det_ReportError und EcuM_CheckWakeup,
  • Icu_EnableNotification und Icu_DisableNotification,
  • für Slave-Kanäle die Callbacks LinIf_HeaderIndication, LinIf_RxIndication und LinIf_LinErrorIndication ([SWS_Lin_00235]).

Die importierten Typen wie NetworkHandleType, EcuM_WakeupSourceType oder Std_ReturnType führt [SWS_Lin_00226] auf.

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Kontextdiagramm: Lin liegt zwischen LinIf und der LIN-Hardware-Unit. Wake-ups meldet der Treiber an EcuM und LinIf, Fehler an DEM und DET. Quellen: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver S. 9

Der Treiber ist partitionierbar. Er arbeitet in jeder Partition als unabhängige Instanz, und ein API-Aufruf wirkt nur auf die Partition, in der er erfolgt ([SWS_Lin_CONSTR_00270]). Referenziert LinEcucPartitionRef Partitionen, muss LinChannelEcucPartitionRef genau eine davon referenzieren ([SWS_Lin_CONSTR_00291]). LinChannel und LinTrcvChannel eines Kommunikationskanals müssen dieselbe Partition referenzieren ([SWS_Lin_CONSTR_00279]). Partitionszuordnungen, die die Implementierung nicht unterstützt, weist das Modul zurück ([SWS_Lin_00269]). Je Kanal werden unter anderem Baudrate, Kanal-ID, LinChannelWakeupSupport und der Knotentyp LinNodeType konfiguriert. Diese Containerbeschreibung stammt aus einem späteren Release (SWS LIN Driver S. 60).

Modul- und Kanalzustände von Lin_Init bis zum Schlafzustand

Nach dem Reset ist das Modul im Zustand LIN_UNINIT und nicht nutzbar. Lin_Init führt es nach LIN_INIT; dort ist jeder verfügbare Kanal dienstbereit (SWS LIN Driver S. 24). Lin_Init erhält einen Zeiger auf eine Lin_ConfigType-Struktur. Ihr Inhalt ist hardwarespezifisch; sie enthält die Initialisierungsdaten für Treiber, Hardware-Unit und Kanäle ([SWS_Lin_00006], [SWS_Lin_00227]). Die Umgebung soll Lin_Init zur Laufzeit nur einmal aufrufen (SWS LIN Driver S. 24).

Innerhalb von LIN_INIT hat jeder Kanal einen eigenen Zustand:

  • LIN_CH_OPERATIONAL: Der Kanal nimmt am Cluster teil.
  • LIN_CH_SLEEP: Die Wake-up-Erkennung ist aktiv, die Hardware ist gegebenenfalls im Low-Power-Modus.
  • LIN_CH_SLEEP_PENDING: nur bei Master-Kanälen, nach Lin_GoToSleep.

Belege: SWS LIN Driver S. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal setzt den Kanal direkt auf LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup führt mit Wake-up-Puls zurück nach LIN_CH_OPERATIONAL, Lin_WakeupInternal ohne Puls ([SWS_Lin_00169], [SWS_Lin_00256]).

Interpretation: Den Übergang von LIN_CH_SLEEP_PENDING nach LIN_CH_SLEEP dürfte Lin_GetStatus abschließen. Frage Q-bb592e1d2ab668f0 (offen) Das Schaubild führt Lin_GetStatus als Übergang im Master-Teil, und das LIN Interface erwartet bei der Prüfung des Go-to-sleep-Kommandos den Rückgabewert LIN_CH_SLEEP (SWS LIN Interface S. 56).

LinZustaende cluster_kanal Kanalzustände je Kanal (nur in LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (nicht nutzbar) Reset->LIN_UNINIT nach Reset LIN_INIT LIN_INIT (Kanäle dienstbereit) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (nimmt am Cluster teil) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (nur Master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (mit Wake-up-Puls) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (ohne Wake-up-Puls)

Zustandsdiagramm: Lin_Init hebt das Modul von LIN_UNINIT nach LIN_INIT. Darin wechselt jeder Kanal per Sleep- und Wake-up-Diensten zwischen Betrieb und Schlaf; der Übergang per Lin_GetStatus ist Interpretation. Quellen: SWS LIN Driver S. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Frame-Beschreibung über Lin_PduType und Datenabbildung

Zwischen LinIf und Treiber beschreibt Lin_PduType einen Frame. Die Struktur enthält Pid, das Prüfsummenmodell Cs, die Response-Richtung Drc, die Datenlänge Dl und den Datenzeiger SduPtr ([SWS_Lin_00232]). Die Elementtypen:

  • Lin_FramePidType: Identifier 0…0x3F mit zwei Paritätsbits, Wertebereich 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: 1…8 Datenbytes ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS oder LIN_CLASSIC_CS ([SWS_Lin_00229]). Der Treiber muss beide Prüfsummen berechnen können ([SWS_Lin_00019]).

Lin_FrameResponseType legt fest, wie der Knoten mit der Response umgeht ([SWS_Lin_00230]): Er sendet sie selbst (LIN_FRAMERESPONSE_TX), empfängt eine relevante fremde Response (LIN_FRAMERESPONSE_RX) oder ignoriert sie (LIN_FRAMERESPONSE_IGNORE). Im Speicher steht das zuerst übertragene Byte in Element 0, das zuletzt übertragene in Element n-1 (SWS LIN Driver S. 30). Kann die Hardware Bytes nicht puffern, etwa bei einer einfachen UART, stellt der Treiber einen temporären Puffer bereit. Senden mit Rücklese-Prüfung und Empfangen laufen nicht blockierend (SWS LIN Driver S. 28).

Master-Kanäle: Lin_SendFrame und Statusabfrage

Auf Master-Kanälen stößt LinIf jeden Frame mit dem asynchronen Lin_SendFrame an. Der Dienst sendet den LIN-Header und gegebenenfalls die Response ([SWS_Lin_00191]). Das gilt für Empfangs-, Sende- und Slave-to-Slave-Einträge des Schedules (SWS LIN Interface S. 34, SWS LIN Interface S. 37, SWS LIN Interface S. 40).

Das Ergebnis fragt LinIf mit dem synchronen Lin_GetStatus ab: frühestens nach der maximalen Frame-Länge, spätestens beim nächsten fälligen Schedule-Eintrag (SWS LIN Interface S. 35, [SWS_Lin_00168]). Der Dienst liefert einen Lin_StatusType, etwa LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY oder LIN_RX_NO_RESPONSE. Über Lin_SduPtr gibt er zusätzlich einen Zeiger auf den Schatten- oder Hardware-Empfangspuffer zurück ([SWS_Lin_00233]).

Empfangene Daten bleiben konsistent, bis der nächste Frame erfolgreich empfangen wurde oder der Kanalzustand wechselt. Die komplette Empfangsverarbeitung darf in Lin_GetStatus liegen (SWS LIN Driver S. 30). Bei Event-triggered Frames gilt (SWS LIN Interface S. 127, SWS LIN Interface S. 129):

  • LIN_RX_NO_RESPONSE wertet LinIf nicht als Fehler.
  • LIN_RX_ERROR gilt als Kollision und führt zum Wechsel auf die Kollisionsauflösungs-Schedule.

Lin_SendFrame, Lin_GoToSleep und Lin_GetStatus gibt es nur, wenn mindestens ein Kanal per LinNodeType als Master konfiguriert ist ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). In R20-11 sind diese Dienste als nicht reentrant spezifiziert ([SWS_Lin_00168]). Spätere Fassungen erlauben Reentranz für verschiedene Kanäle (SWS LIN Driver S. 48); für R20-11 gilt das Requirement.

Frame-Abwicklung auf einem Master-KanalBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: Schedule-Eintrag fälligLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKasynchron: Header und Responselaufen nicht blockierendUse Case: Statusprüfung ab maximaler Frame-Längeloopje MainFunction-Aufruf, solange der Frame noch läuftLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKDaten über Lin_SduPtr übernehmen (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,keine AktionLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Sequenzdiagramm: Der Master stößt einen Frame asynchron mit Lin_SendFrame an und wertet das Ergebnis in späteren MainFunction-Aufrufen über Lin_GetStatus aus. Quellen: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface S. 128, SWS LIN Interface S. 129, SWS LIN Interface S. 40

Slave-Kanäle: header-getriebene Response-Verarbeitung

Ein Slave-Kanal muss in LIN_CH_OPERATIONAL jederzeit einen Header empfangen können ([SWS_Lin_00272]). Für jeden Header ruft der Treiber LinIf_HeaderIndication auf. Dabei enthält PduPtr->Pid den empfangenen PID, und PduPtr->SduPtr zeigt auf seinen Hardware- oder Schattenpuffer ([SWS_Lin_00280]). Erkennt die Hardware ungültige PIDs nicht, reicht der Treiber den PID ungeprüft weiter ([SWS_Lin_00271]). Nach der Rückgabe E_OK wertet er PduPtr->Drc aus ([SWS_Lin_00282]):

  • Bei LIN_FRAMERESPONSE_TX verwendet er Cs, Dl und SduPtr, um die Response zu senden ([SWS_Lin_00283]).
  • Bei LIN_FRAMERESPONSE_RX konfiguriert er mit Cs und Dl den Empfang ([SWS_Lin_00284]).

Liefert LinIf_HeaderIndication E_NOT_OK oder ist Drc gleich LIN_FRAMERESPONSE_IGNORE, ignoriert der Treiber die Response ([SWS_Lin_00286]). Bis zum nächsten Header meldet er dann nichts ([SWS_Lin_00276]). Eine erfolgreich empfangene Response reicht er direkt per LinIf_RxIndication weiter, eine gesendete bestätigt er per LinIf_TxConfirmation ([SWS_Lin_00274], [SWS_Lin_00275]). Jede relevante Response muss mit einem dieser Callbacks oder mit LinIf_LinErrorIndication abgeschlossen sein, bevor der nächste Header gemeldet wird ([SWS_Lin_00285]). Das Empfangsschaubild unterscheidet zwei Hardwarevarianten: Hardware-LIN-Controller und einfache UART, bei der der Treiber jedes Byte per Interrupt in einen Puffer kopiert (SWS LIN Driver S. 57).

Header- und Response-Verarbeitung auf einem Slave-KanalLinController/UARTLinLinIfObere SchichtUse Case: Header-Empfang in LIN_CH_OPERATIONALInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)PduPtr->Pid, PduPtr->SduPtr gesetztEvaluatePID()optSende-FrameTriggerTransmit (Daten in SduPtr-Puffer)SetPduPtrValues() (Drc, Cs, Dl)E_OK / E_NOT_OKPduPtr->Drc auswertenaltE_OK und Drc = LIN_FRAMERESPONSE_TXResponse mit Cs, Dl, SduPtr sendenInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK und Drc = LIN_FRAMERESPONSE_RXEmpfang mit Cs, Dl konfigurierenInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK oder Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;keine Meldung bis zum nächsten HeaderBusfehler bei Senden/Empfang: Abbruch undLinIf_LinErrorIndication(Channel, ErrorStatus)

Sequenzdiagramm: Auf einem Slave-Kanal löst jeder Header eine Indikation an LinIf aus. Abhängig von Drc sendet, empfängt oder ignoriert der Treiber die Response. Quellen: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface S. 121, SWS LIN Interface S. 132

Schlafen, Aufwecken und Wake-up-Erkennung

Nur ein Master kann das Go-to-sleep-Kommando senden. Lin_GoToSleep verschickt es asynchron nach LIN 2.1 und setzt den Kanal auch bei fehlerhafter Übertragung auf LIN_CH_SLEEP_PENDING. Ist LinChannelWakeupSupport konfiguriert, aktiviert der Dienst zudem die Bus-Überwachung ([SWS_Lin_00166], SWS LIN Driver S. 43). Für Slaves ist Lin_GoToSleep nicht anwendbar; sie verwenden Lin_GoToSleepInternal (SWS LIN Driver S. 31). Dieser Dienst setzt synchron LIN_CH_SLEEP, aktiviert die Wake-up-Erkennung und versetzt die Hardware optional in einen Stromsparmodus ([SWS_Lin_00167], SWS LIN Driver S. 44). Jeder Kanal nimmt Sleep-Anforderungen unabhängig von den übrigen an (SWS LIN Driver S. 31).

Zum Aufwecken stehen zwei Dienste bereit. Lin_Wakeup sendet einen Wake-up-Puls auf den Bus, Lin_WakeupInternal setzt den Kanal ohne Puls in Betrieb ([SWS_Lin_00169], [SWS_Lin_00262]). Ein Wake-up vom Bus prüft Lin_CheckWakeup. Erkennt der Dienst ein Ereignis, etwa einen dauerhaft niedrigen RxD-Pegel, meldet er es sofort per EcuM_SetWakeupEvent an den EcuM und per LinIf_WakeupConfirmation an LinIf ([SWS_Lin_00160], SWS LIN Driver S. 42). LinIf_CheckWakeup entscheidet anhand der Wake-up-Quelle, ob Lin_CheckWakeup oder LinTrcv_CheckWakeup aufgerufen wird (SWS LIN Interface S. 112). Eine Wake-up-Validierung benötigt LIN nicht (SWS EcuM S. 173).

Prüfung eines Wake-ups vom LIN-BusLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,Bus-Überwachung aktiv (LinChannelWakeupSupport)Wake-up-Ereignis (Interrupt oder Polling)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(Quelle LIN-Controller; sonst LinTrcv_CheckWakeup)Wake-up auswerten(z. B. RxD dauerhaft low)optWake-up erkanntEcuM_SetWakeupEvent()LinIf_WakeupConfirmation()E_OK / E_NOT_OKE_OK / E_NOT_OKLIN benötigt keine Wake-up-Validierung

Sequenzdiagramm: Ein Wake-up vom Bus wird über EcuM und LinIf_CheckWakeup an Lin_CheckWakeup weitergereicht. Der Treiber meldet ein erkanntes Ereignis an EcuM und LinIf. Quellen: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver S. 42, SWS LIN Interface S. 112, SWS EcuM S. 147

Verhalten im Fehlerfall

Bei aktivierter Entwicklungsfehlererkennung melden die Dienste Fehlbenutzung an die DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; für Lin_Wakeup analog SWS LIN Driver S. 45):

  • LIN_E_UNINIT bei Aufruf vor der Initialisierung,
  • LIN_E_INVALID_CHANNEL bei ungültigem oder inaktivem Kanal,
  • LIN_E_STATE_TRANSITION bei einem Wake-up außerhalb von LIN_CH_SLEEP.

Lin_GetVersionInfo meldet einen NULL-Zeiger mit LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver S. 41). Bei abgeschalteter DET liefert Lin_CheckWakeup für einen ungültigen Kanal E_NOT_OK (SWS LIN Driver S. 42). Allgemein zeigen E_NOT_OK und LIN_NOT_OK an, dass ein Entwicklungs- oder Produktionsfehler aufgetreten ist ([SWS_Lin_00191], [SWS_Lin_00233]).

Als Produktionsfehler ist LIN_E_TIMEOUT spezifiziert. Muss nach einer Änderung an Hardware-Steuerregistern auf einen Statuswechsel gewartet werden, sichert ein konfigurierbarer Timeout dieses Warten ab. Läuft er ab, wird der Fehler gemeldet ([SWS_Lin_00290]). Die Meldung geht über Dem_SetEventStatus ([SWS_Lin_00234]) an das in LinDemEventParameterRefs referenzierte Ereignis (SWS LIN Driver S. 65).

Kommunikationsfehler meldet der Treiber je nach Knotentyp unterschiedlich. Master-Kanäle liefern sie als Status von Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR bei Rücklese-, Paritäts- oder Busfehlern im Header,
  • LIN_TX_ERROR bei fehlerhafter Response-Übertragung,
  • LIN_RX_ERROR bei Framing-, Overrun- oder Prüfsummenfehlern sowie zu kurzer Response.

Slave-Kanäle brechen die Frame-Bearbeitung ab und rufen LinIf_LinErrorIndication mit einem Lin_SlaveErrorType auf ([SWS_Lin_00277], [SWS_Lin_91140]). Ungültige Busereignisse während des Wartens auf einen Header melden sie als LIN_ERR_HEADER ([SWS_Lin_00281]).

LinFehlerpfade start Fehlerereignis im LIN-Treiber art Art des Fehlers? start->art dev Entwicklungsfehler (nur bei aktivierter DET-Erkennung) art->dev Fehlbenutzung der API hw Timeout beim Warten nach Änderung von Hardware-Steuerregistern art->hw Hardwarefehler com Kommunikationsfehler auf dem Bus art->com Busfehler det Det_ReportError: LIN_E_UNINIT / LIN_E_INVALID_CHANNEL / LIN_E_STATE_TRANSITION / LIN_E_PARAM_POINTER dev->det ret Rückgabe E_NOT_OK bzw. LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ Knotentyp des Kanals? com->typ master Master: Fehlerstatus bei Lin_GetStatus (LIN_TX_HEADER_ERROR, LIN_TX_ERROR, LIN_RX_ERROR) typ->master Master slave Slave: aktuelle Frame-Bearbeitung abbrechen typ->slave Slave sind LinIf_LinErrorIndication(Channel, Lin_SlaveErrorType) z. B. LIN_ERR_HEADER, LIN_ERR_RESP_CHKSUM, LIN_ERR_NO_RESP slave->sind

Aktivitätsdiagramm: Entwicklungsfehler gehen an die DET, der Hardware-Timeout an den DEM. Buskommunikationsfehler meldet ein Master-Kanal als Status, ein Slave-Kanal als Fehlerindikation. Quellen: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

Weiterführende Detailbelege

KI-generierter Leitfaden. Er stützt sich ausschließlich auf die mitgelieferten Belege; einzelne Dokumentstellen stammen aus späteren Releases. Normativ sind die Requirements von R20-11. Als Interpretation gekennzeichnete Aussagen sind nicht direkt belegt.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

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

Die synchrone Funktion Lin_Init dient der Initialisierung des LIN-Treibermoduls der AUTOSAR-Classic-Plattform gemäß Spezifikation [SWS_Lin_00006]. Die Schnittstelle wird über den Header Lin.h bereitgestellt und intern über die Service-ID 0x00 adressiert [SWS_Lin_00006].

Für die Verwendung und den Aufruf der Funktion gelten die folgenden Parameter- und Schnittstellenbedingungen:

  • Eingabeparameter: Als einziger Übergabeparameter wird Config erwartet [SWS_Lin_00006]. Hierbei handelt es sich um einen Zeiger auf den Konfigurationsdatensatz des LIN-Treibers vom Typ const Lin_ConfigType* [SWS_Lin_00006]. Weder Ein-/Ausgabeparameter noch reine Ausgabeparameter sind für diese Schnittstelle vorgesehen [SWS_Lin_00006].
  • Rückgabewert: Die Funktion liefert keinen Rückgabewert zurück (void) [SWS_Lin_00006].
  • Ausführungssemantik: Die Verarbeitung erfolgt vollständig synchron (Synchronous), sodass die Initialisierungsschritte des Treibers direkt während des Funktionsaufrufs abgearbeitet werden [SWS_Lin_00006].

Hinsichtlich des Aufrufkontexts und der Nebenläufigkeit ist festgelegt, dass Lin_Init nicht reentrant (Non Reentrant) ist [SWS_Lin_00006]. Interpretation: Da die Funktion das LIN-Treibermodul grundlegend initialisiert und nicht reentrant ausgelegt ist, dürfte sie typischerweise während der Startphase des Gesamtsystems aufgerufen werden, bevor andere Dienste des LIN-Treibers genutzt werden. Frage Q-d535602a0d4708ce (offen) Ein gleichzeitiger oder mehrfacher Aufruf aus unterschiedlichen Ausführungskontexten ist dabei vermutlich unzulässig.

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

Implementer's Guide folgt (Komplexität I1)

function Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

This function checks if a wakeup has occurred on the addressed LIN channel.

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

Die synchrone Funktion Lin_CheckWakeup dient der Prüfung, ob auf einem adressierten LIN-Kanal ein Wakeup-Ereignis aufgetreten ist [SWS_Lin_00160]. Die Schnittstelle ist über die Header-Datei Lin.h verfügbar und besitzt die Service-ID 0x0a [SWS_Lin_00160]. Zur Identifikation des Kanals nimmt die Funktion den Parameter Channel vom Datentyp uint8 entgegen [SWS_Lin_00160]. Weitere Ein- oder Ausgabeparameter sind für diese Schnittstelle nicht vorgesehen [SWS_Lin_00160].

Das Ergebnis der Ausführung wird synchron über den Rückgabetyp Std_ReturnType zurückgemeldet [SWS_Lin_00160]. Der Statuswert E_OK besagt, dass während der Ausführung des API-Aufrufs kein Fehler aufgetreten ist [SWS_Lin_00160]. Tritt hingegen während der Ausführung ein Fehler auf, liefert der Dienst den Rückgabewert E_NOT_OK [SWS_Lin_00160]. Spezifische Fehlercodes sowie Benachrichtigungen an DET oder DEM sind für dieses Element in den Quellen nicht spezifiziert.

Hinsichtlich des Nebenläufigkeitsverhaltens ist Lin_CheckWakeup als nicht reentrant (Non Reentrant) definiert [SWS_Lin_00160]. Aufrufer müssen daher sicherstellen, dass Aufrufe sequenziell erfolgen und keine gleichzeitige Ausführung stattfindet. Da der exakte Aufrufkontext in der Spezifikation nicht näher definiert ist, dürfte der Aufruf vermutlich durch übergeordnete Schichten wie das Wakeup-Management oder den ECU State Manager initiiert werden. Frage Q-40221056a2e2c042 (offen)

Dieser Text wurde von einer KI erstellt; alle Aussagen stammen aus den Vorgaben des AUTOSAR-Standards.

function Lin_SendFrame [SWS_Lin_00191] 📄 PDF

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

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

Die Funktion Lin_SendFrame dient dem Senden eines LIN-Headers sowie bei Bedarf der dazugehörigen LIN-Response und ist ausschließlich für LIN-Master-Knoten vorgesehen [SWS_Lin_00191]. Über den Zeiger PduInfoPtr wird die Übertragungsrichtung der Frame-Response festgelegt, welche eine Master-Response, eine Slave-Response oder eine Slave-zu-Slave-Kommunikation abbilden kann [SWS_Lin_00191].

Aufruf und Parameter: Die Ausführung der Funktion erfolgt asynchron [SWS_Lin_00191]. Beim Aufruf werden folgende Eingangsparameter übergeben:

  • Channel: Bestimmt den anzusprechenden LIN-Kanal als uint8 [SWS_Lin_00191].
  • PduInfoPtr: Zeiger auf eine Struktur vom Typ Lin_PduType, welche den geschützten Identifier (PID), das Prüfsummenmodell (Checksum Model), den Response-Typ, die Datenlänge (Dl) sowie den Datenzeiger auf die SDU enthält [SWS_Lin_00191].

Rückgabewerte und Fehlerverhalten: Die Funktion liefert den Rückgabetyp Std_ReturnType [SWS_Lin_00191]:

  • E_OK: Der Sendeauftrag wurde erfolgreich entgegengenommen und zur asynchronen Ausführung akzeptiert [SWS_Lin_00191].
  • E_NOT_OK: Der Sendeauftrag wurde abgewiesen, da ein Entwicklungsfehler (Development Error) oder ein Produktionsfehler (Production Error) vorliegt [SWS_Lin_00191].

Nebenläufigkeit und Integration: Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert, weshalb parallele Aufrufe auf demselben Kanal vermieden werden müssen [SWS_Lin_00191]. Die Funktion besitzt die Service-ID 0x04 und wird über die Header-Datei Lin.h eingebunden [SWS_Lin_00191].

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

function Lin_GoToSleep [SWS_Lin_00166] 📄 PDF

Std_ReturnType Lin_GoToSleep (uint8 Channel);

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

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

Funktion und Aufrufkontext

Die Funktion Lin_GoToSleep weist den LIN-Treiber an, ein Go-to-Sleep-Kommando auf dem adressierten LIN-Kanal zu senden [SWS_Lin_00166]. Dieser Treiber-Dienst besitzt die Service-ID 0x06 und wird über die Header-Datei Lin.h zur Verfügung gestellt [SWS_Lin_00166]. Die Ausführung des Dienstes erfolgt für den Aufrufer asynchron [SWS_Lin_00166]. Die Funktionsdeklaration lautet Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Parameter und Rückgabewerte

Als einziger Übergabeparameter wird Channel vom Typ uint8 übergeben, welcher den anzusprechenden LIN-Kanal identifiziert [SWS_Lin_00166]. Zusätzliche Ein- oder Ausgabeparameter existieren nicht [SWS_Lin_00166].

Der Rückgabewert vom Typ Std_ReturnType gibt Auskunft über die Annahme der Anforderung [SWS_Lin_00166]:

  • E_OK: Das Go-to-Sleep-Kommando wurde durch den Treiber erfolgreich akzeptiert [SWS_Lin_00166].
  • E_NOT_OK: Das Kommando wurde nicht akzeptiert, da ein Entwicklungsfehler oder ein Produktionsfehler aufgetreten ist [SWS_Lin_00166].

Einschränkungen und Nebenläufigkeit

Hinsichtlich der Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) deklariert [SWS_Lin_00166]. Als wesentliche funktionale Einschränkung ist Lin_GoToSleep ausschließlich für LIN-Master-Knoten vorgesehen [SWS_Lin_00166].

Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation R20-11 generiert.

function Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

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

Die synchrone Funktion Lin_GoToSleepInternal setzt den Zustand des adressierten LIN-Kanals auf LIN_CH_SLEEP, aktiviert die Wake-up-Erkennung und versetzt die LIN-Hardware-Einheit optional in einen reduzierten Energiesparmodus, sofern dies von der Hardware unterstützt wird [SWS_Lin_00167]. Die Adressierung des gewünschten LIN-Kanals erfolgt über den Eingangsparameter Channel vom Typ uint8, während keine weiteren Ein- oder Ausgangsparameter vorhanden sind [SWS_Lin_00167].

Das Ergebnis der Ausführung wird synchron über den Rückgabewert vom Typ Std_ReturnType signalisiert [SWS_Lin_00167]:

  • E_OK: Das Kommando zum Versetzen in den Schlafmodus wurde erfolgreich akzeptiert [SWS_Lin_00167].
  • E_NOT_OK: Das Kommando wurde abgewiesen, da ein Entwicklungs- oder ein Produktionsfehler aufgetreten ist [SWS_Lin_00167].

Bezüglich Nebenläufigkeit und Aufrufkontext ist Lin_GoToSleepInternal als nicht reentrant (Non Reentrant) spezifiziert [SWS_Lin_00167]. Aufrufende Softwareeinheiten müssen daher gewährleisten, dass Aufrufe sequentiell erfolgen und nicht nebenläufig überlagert werden. Die Funktion ist unter der Service-ID 0x09 definiert und über die Header-Datei Lin.h verfügbar [SWS_Lin_00167].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function Lin_Wakeup [SWS_Lin_00169] 📄 PDF

Std_ReturnType Lin_Wakeup (uint8 Channel);

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

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

Verwendung und Aufrufkontext

Die Funktion Lin_Wakeup gehört zum Treiber-Modul Lin der AUTOSAR-Classic-Plattform [SWS_Lin_00169]. Ihr Zweck besteht darin, einen Aufweckimpuls (Wake-up Pulse) auf dem adressierten Buskanal zu erzeugen und den Kanalzustand unmittelbar in LIN_CH_OPERATIONAL zu überführen [SWS_Lin_00169]. Bereitgestellt wird die Schnittstelle über die Header-Datei Lin.h mit der Service-ID 0x07 und der Signatur Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

Als Eingabeparameter nimmt die Funktion Channel vom Typ uint8 entgegen, womit der anzusteuernde LIN-Kanal spezifiziert wird [SWS_Lin_00169]. Ein-/Ausgabeparameter oder reine Ausgabeparameter sind nicht vorhanden [SWS_Lin_00169]. Das Ausführungsverhalten ist asynchron (Asynchronous); die Rückkehr aus der Funktion bestätigt somit lediglich die Annahme des Auftrags, während der physikalische Aufweckpuls nachgelagert auf dem Bus erzeugt wird [SWS_Lin_00169].

Rückgabewerte und Fehlerbehandlung

Über den Rückgabetyp Std_ReturnType wird das Ergebnis der Auftragsannahme gemeldet [SWS_Lin_00169]:

  • E_OK: Die Aufweckanforderung wurde vom LIN-Treiber akzeptiert und wird verarbeitet [SWS_Lin_00169].
  • E_NOT_OK: Die Anforderung wurde abgewiesen, da ein Entwicklungs- oder ein Produktionsfehler aufgetreten ist [SWS_Lin_00169].

Nebenläufigkeit und Einschränkungen

Die Funktion ist laut Spezifikation als nicht reentrant (Non Reentrant) eingestuft [SWS_Lin_00169]. Aufrufe dürfen daher nicht unterbrechend oder nebenläufig aus verschiedenen Ausführungskontexten für dieselbe Treiberinstanz erfolgen. Aufrufende Komponenten müssen für eine entsprechende Synchronisation sorgen.

Dieser Verwendungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

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

Die über den Header Lin.h bereitgestellte Funktion Lin_WakeupInternal versetzt einen LIN-Kanal asynchron in den Betriebszustand LIN_CH_OPERATIONAL, ohne dabei einen Weckimpuls auf den physischen LIN-Bus auszugeben [SWS_Lin_00256]. Sie verarbeitet interne Weckanforderungen der übergeordneten LIN-Schnittstelle, bei denen kein Bus-Wake-up-Signal gesendet werden darf [SWS_Lin_00262]. Der Aufruf erfolgt über den Parameter Channel vom Typ uint8. Die Funktion liefert E_OK zurück, wenn die Weckanforderung akzeptiert wurde, oder E_NOT_OK, wenn die Anforderung abgewiesen wurde bzw. ein Entwicklungs- oder Produktionsfehler vorliegt [SWS_Lin_00256].

Für den Aufrufkontext und die Nebenläufigkeit gilt, dass Lin_WakeupInternal nicht reentrant (Non Reentrant) ist [SWS_Lin_00256]. Als strikte Reihenfolgebedingung muss sich die Zustandsmaschine des adressierten Kanals zum Aufrufzeitpunkt im Ruhezustand LIN_CH_SLEEP befinden [SWS_Lin_00260].

Bei aktivierter Erkennung von Entwicklungsfehlern überwacht das Modul die folgenden Fehlerbedingungen und meldet entsprechende Entwicklungsfehler:

  • LIN_E_UNINIT: Aufruf der Funktion vor der Initialisierung des LIN-Treibermoduls [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: Der übergebene Kanalparameter ist ungültig oder der adressierte Kanal ist inaktiv [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: Ein unzulässiger Zustandsübergang liegt vor, da sich der LIN-Kanal nicht im Zustand LIN_CH_SLEEP befindet [SWS_Lin_00260].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikationsanforderungen generiert.

Implementer's Guide folgt (Komplexität I1)

type Lin_ConfigType [SWS_Lin_00227] 📄 PDF

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

type Lin_FramePidType [SWS_Lin_00228] 📄 PDF

Represents all valid protected identifier used by Lin_ Send Frame().

type Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

This type is used to specify the Checksum model to be used for the LIN Frame.

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

Der Enumerationstyp Lin_FrameCsModelType dient gemäß [SWS_Lin_00229] der Festlegung des Prüfsummenmodells, das für einen einzelnen LIN-Frame verwendet wird. Die Typdefinition ist standardmäßig über den Header Lin_GeneralTypes.h verfügbar [SWS_Lin_00229].

Für die Konfiguration stehen gemäß [SWS_Lin_00229] zwei Werte zur Verfügung:

  • LIN_ENHANCED_CS: Selektiert das erweiterte Prüfsummenmodell (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS: Selektiert das klassische Prüfsummenmodell (Classic checksum model) [SWS_Lin_00229].

Als reiner Datentyp definiert Lin_FrameCsModelType selbst keine Funktionsschnittstellen, Rückgabewerte oder DET-/DEM-Fehlermeldungen [SWS_Lin_00229]. Die Verwendung dürfte primär als Parameter oder Element innerhalb von Konfigurations- und Frame-Deskriptoren im Modul Lin stattfinden (Interpretation), um dem Treiber mitzuteilen, nach welchem Algorithmus die Frame-Prüfsumme bei Übertragung oder Empfang verifiziert wird. Frage Q-6d3354059d0641df (offen) Eine Fehlerbehandlung für ungültige Werte muss daher vermutlich auf Ebene der verarbeitenden Treiber-APIs bzw. der Modulkonfiguration abgefangen werden (Interpretation). Frage Q-06e26f4bcff1e520 (offen)

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

Implementer's Guide folgt (Komplexität I1)

type Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

type Lin_PduType [SWS_Lin_00232] 📄 PDF

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

type Lin_StatusType [SWS_Lin_00233] 📄 PDF

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().

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

Der Enumerationstyp Lin_StatusType wird über Lin_GeneralTypes.h bereitgestellt und definiert die Betriebs- sowie Übertragungszustände für LIN-Kanäle und LIN-Frames, die als Rückgabewert des API-Dienstes Lin_GetStatus() gemeldet werden [SWS_Lin_00233].

Die Zustandswerte gliedern sich in Kanalzustände und Frame-Operationswerte [SWS_Lin_00233]:

  • Kanalstatus: LIN_OPERATIONAL repräsentiert den Normalbetrieb, in dem der LIN-Kanal bereit zur Übertragung des nächsten Headers ist und keine Daten eines vorherigen Frames vorliegen (z. B. nach der Initialisierung). Demgegenüber steht LIN_CH_SLEEP für den Ruhezustand des Kanals, in dem die Wake-up-Erkennung für Slave-Knoten aktiviert ist [SWS_Lin_00233].
  • Laufende Übertragungen: LIN_TX_BUSY kennzeichnet eine laufende Sendung von Header oder Response. LIN_RX_BUSY signalisiert einen laufenden Empfangsvorgang, bei dem bereits mindestens ein Response-Byte, jedoch noch nicht das abschließende Prüfsummenbyte eingetroffen ist [SWS_Lin_00233].
  • Erfolgreicher Abschluss: LIN_TX_OK bestätigt die erfolgreiche Übertragung, während LIN_RX_OK den fehlerfreien Empfang einer vollständigen Response ausweist [SWS_Lin_00233].
  • Fehlerzustände und Timeouts: LIN_NOT_OK zeigt Entwicklungs- oder Produktionsfehler an. Bei Sendeoperationen unterscheidet der Typ zwischen LIN_TX_HEADER_ERROR (Fehler beim Header-Senden durch Daten-Mismatch, Identifier-Paritätsfehler oder physische Busfehler) und LIN_TX_ERROR (Fehler bei der Response-Übertragung durch Daten-Mismatch oder Busfehler). Auf Empfangsseite kennzeichnet LIN_RX_ERROR Rezeptionsfehler wie Framing-, Overrun-, Prüfsummenfehler oder unvollständige Responses; LIN_RX_NO_RESPONSE meldet das vollständige Ausbleiben von Response-Bytes [SWS_Lin_00233].

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

Implementer's Guide folgt (Komplexität I1)

type Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

This type represents the slave error types that are detected during header reception and response transmission / reception.

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

Der Aufzählungstyp Lin_SlaveErrorType repräsentiert die spezifischen Fehlertypen eines LIN-Slaves, die während des Empfangs des Headers sowie während der Übertragung oder des Empfangs der Response erkannt werden [SWS_Lin_91140]. Die Typdefinition wird über die Header-Datei Lin_GeneralTypes.h zur Verfügung gestellt [SWS_Lin_91140].

Fehlerzustände und Wertebereich

Die Enumeration deckt Fehler während der verschiedenen Phasen der LIN-Kommunikation ab [SWS_Lin_91140]:

  • LIN_ERR_HEADER: Signalisiert einen Fehler beim Empfang des LIN-Headers [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: Zeigt einen Framing-Fehler beziehungsweise Stopbit-Fehler in der Response an [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: Kennzeichnet einen Prüfsummenfehler der empfangenen Response [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: Meldet einen Bit-Monitoring-Fehler eines gesendeten Datenbits in der Response [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: Weist darauf hin, dass keine Antwort auf den Header empfangen wurde [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: Tritt auf, wenn eine unvollständige Response empfangen oder übertragen wurde [SWS_Lin_91140].

Verwendung und Einschränkungen

Interpretation: Da im vorliegenden Spezifikationsauszug keine konkreten Funktionssignaturen enthalten sind, dürfte der Typ als Rückgabewert oder Statusparameter in Benachrichtigungen an übergeordnete Module wie das LIN-Interface dienen. Frage Q-6a9c54976345ca2b (offen) Weitere Details zu Reentranz, Aufrufkontexten oder synchroner beziehungsweise asynchroner Ausführung sind im Auszug nicht enthalten.

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

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

Record
AUTOSAR/AP/record/CP_MOD_Lin
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#e8ea5339
Content hash
e8ea5339
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

Initialisierung und Status

Lin_GetStatus function

Service Lin_GetStatus.

Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);

Returns the version information of this module.

void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Lin_Init function

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Dienste

This function checks if a wakeup has occurred on the addressed LIN channel.

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GoToSleep function

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

Std_ReturnType Lin_GoToSleep (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);
Lin_SendFrame function

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Lin_Wakeup function

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

Std_ReturnType Lin_Wakeup (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Typen

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

This type is used to specify the Checksum model to be used for the LIN Frame.

This type is used to specify the number of SDU data bytes to copy.

Represents all valid protected identifier used by Lin_ Send Frame().

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

This type represents the slave error types that are detected during header reception and response transmission / reception.

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().