DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

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

ModulegidsAI-GEGENEREERD

Bestuurt de LIN-hardware en biedt het LIN Interface diensten voor frames, slaaptoestand en wake-up per kanaal.
DOOR AI GEGENEREERD ongecontroleerd Model: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: ea366bb8619c Herkomst Open vragen (1)
Causaal anker: R20-11 Geldig vanaf R20-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Bestuurt de LIN-hardware en biedt het LIN Interface diensten voor frames, slaaptoestand en wake-up per kanaal.

De LIN-driver kapselt de LIN-hardware van de microcontroller in en stelt kanaalgebonden diensten voor frames, slaaptoestand en wake-up beschikbaar aan het LIN Interface. Master-kanalen initiëren frames asynchroon met Lin_SendFrame en evalueren deze via Lin_GetStatus. Slave-kanalen reageren op elke ontvangen header met een indicatie aan het LIN Interface en verzenden, ontvangen of negeren vervolgens de response ([SWS_Lin_00280]). Welke diensten beschikbaar zijn, hangt af van het geconfigureerde knooppunttype; de master-diensten zijn er alleen bij minimaal één master-kanaal ([SWS_Lin_00287]).

De LIN-driver Lin is de hardwaredriver van de LIN-stack. Hij kapselt LIN-controllers of SCI/UART's in (SWS LIN Driver p. 9) en biedt het LIN Interface kanaalgebonden diensten voor frames, slaaptoestand en wake-up. Vast vereist hij Dem_SetEventStatus, EcuM_SetWakeupEvent en LinIf_WakeupConfirmation ([SWS_Lin_00234]). Optioneel gebruikt hij DET, Icu en de slave-callbacks van de 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

Contextdiagram: Lin staat tussen LinIf en de LIN-hardware en meldt wake-ups en fouten aan EcuM, LinIf, DEM en DET. Bronnen: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init brengt de module over van LIN_UNINIT naar LIN_INIT ([SWS_Lin_00006], SWS LIN Driver p. 24). Daarna wisselt elk kanaal tussen LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (alleen master) en LIN_CH_SLEEP. Hiervoor staan Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup en Lin_WakeupInternal ter beschikking ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal Kanaaltoestanden per kanaal (alleen in LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (niet bruikbaar) Reset->LIN_UNINIT na reset LIN_INIT LIN_INIT (kanalen gereed voor gebruik) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (neemt deel aan het cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (alleen 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 (met wake-up-puls) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (zonder wake-up-puls)

Toestandsdiagram: Moduletoestanden en kanaaltoestanden met hun overgangen. Dat Lin_GetStatus de stap naar LIN_CH_SLEEP voltooit, is een interpretatie van het diagram. Bronnen: SWS LIN Driver p. 24, [SWS_Lin_00166]

Master- en slave-kanalen werken fundamenteel verschillend. Een master initieert frames asynchroon met Lin_SendFrame en vraagt het resultaat later met Lin_GetStatus op ([SWS_Lin_00191], [SWS_Lin_00168]). Deze diensten zijn er alleen wanneer ten minste één kanaal als master is geconfigureerd ([SWS_Lin_00287]). Een slave meldt elke header via LinIf_HeaderIndication ([SWS_Lin_00280]). Afhankelijk van Drc verzendt, ontvangt of negeert hij vervolgens de response en sluit deze af met LinIf_TxConfirmation of LinIf_RxIndication ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Wake-ups vanaf de bus controleert Lin_CheckWakeup en meldt deze aan EcuM en LinIf ([SWS_Lin_00160]). In geval van fouten gaan onjuiste aanroepen naar de DET, zoals LIN_E_UNINIT ([SWS_Lin_00258]). Een hardware-timeout wordt als LIN_E_TIMEOUT aan de DEM gemeld ([SWS_Lin_00290]). Busfouten levert een master-kanaal als status terug; een slave-kanaal meldt deze via LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Rol, systeemgrens en instantierelatie van de LIN-driver

De LIN-driver Lin kapselt de LIN-hardware van de microcontroller in. Aan het LIN Interface (LinIf) stelt hij kanaalgebonden diensten beschikbaar: frames verzenden en ontvangen, kanalen in slaapstand brengen en wekken, evenals wake-ups controleren. Alle diensten zijn via Lin.h beschikbaar ([SWS_Lin_00191], [SWS_Lin_00160]). Als hardware noemt de specificatie drie soorten LIN-hardware-units: volwaardige LIN-controllers, eenvoudige SCI/UART's en uitgebreide SCI/UART's. Ze zijn telkens via transceiver-IC's op een LIN-cluster aangesloten (SWS LIN Driver p. 9). De driver stelt zelf geen callback-functies beschikbaar (SWS LIN Driver p. 49). Hij roept in plaats daarvan functies van zijn omgeving aan.

Verplichte interfaces naar buiten zijn Dem_SetEventStatus, EcuM_SetWakeupEvent en LinIf_WakeupConfirmation ([SWS_Lin_00234]). Optioneel gebruikt de driver onder meer:

  • Det_ReportError en EcuM_CheckWakeup,
  • Icu_EnableNotification en Icu_DisableNotification,
  • voor slave-kanalen de callbacks LinIf_HeaderIndication, LinIf_RxIndication en LinIf_LinErrorIndication ([SWS_Lin_00235]).

De geïmporteerde typen zoals NetworkHandleType, EcuM_WakeupSourceType of Std_ReturnType worden vermeld door [SWS_Lin_00226].

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

Contextdiagram: Lin bevindt zich tussen LinIf en de LIN-hardware-unit. Wake-ups meldt de driver aan EcuM en LinIf, fouten aan DEM en DET. Bronnen: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver p. 9

De driver is partitioneerbaar. Hij werkt in elke partitie als onafhankelijke instantie, en een API-aanroep heeft alleen effect op de partitie waarin deze plaatsvindt ([SWS_Lin_CONSTR_00270]). Verwijst LinEcucPartitionRef naar partities, dan moet LinChannelEcucPartitionRef naar precies één daarvan verwijzen ([SWS_Lin_CONSTR_00291]). LinChannel en LinTrcvChannel van een communicatiekanaal moeten naar dezelfde partitie verwijzen ([SWS_Lin_CONSTR_00279]). Partitietoewijzingen die de implementatie niet ondersteunt, wijst de module af ([SWS_Lin_00269]). Per kanaal worden onder meer baudrate, kanaal-ID, LinChannelWakeupSupport en het knooppunttype LinNodeType geconfigureerd. Deze containerbeschrijving is afkomstig uit een latere release (SWS LIN Driver p. 60).

Module- en kanaaltoestanden van Lin_Init tot aan de slaaptoestand

Na de reset bevindt de module zich in de toestand LIN_UNINIT en is hij niet bruikbaar. Lin_Init brengt hem naar LIN_INIT; daar is elk beschikbaar kanaal operationeel (SWS LIN Driver p. 24). Lin_Init ontvangt een pointer naar een Lin_ConfigType-structuur. De inhoud ervan is hardwarespecifiek; deze bevat de initialisatiedata voor driver, hardware-unit en kanalen ([SWS_Lin_00006], [SWS_Lin_00227]). De omgeving dient Lin_Init tijdens runtime slechts eenmaal aan te roepen (SWS LIN Driver p. 24).

Binnen LIN_INIT heeft elk kanaal een eigen toestand:

  • LIN_CH_OPERATIONAL: Het kanaal neemt deel aan het cluster.
  • LIN_CH_SLEEP: De wake-up-detectie is actief, de hardware bevindt zich eventueel in de low-power-modus.
  • LIN_CH_SLEEP_PENDING: alleen bij master-kanalen, na Lin_GoToSleep.

Bewijzen: SWS LIN Driver p. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal zet het kanaal direct op LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup leidt met een wake-up-puls terug naar LIN_CH_OPERATIONAL, Lin_WakeupInternal zonder puls ([SWS_Lin_00169], [SWS_Lin_00256]).

Interpretatie: De overgang van LIN_CH_SLEEP_PENDING naar LIN_CH_SLEEP wordt vermoedelijk door Lin_GetStatus voltooid. Vraag Q-bb592e1d2ab668f0 (open) Het diagram toont Lin_GetStatus als overgang in het master-gedeelte, en het LIN Interface verwacht bij controle van het go-to-sleep-commando de retourwaarde LIN_CH_SLEEP (SWS LIN Interface p. 56).

LinZustaende cluster_kanal Kanaaltoestanden per kanaal (alleen in LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (niet bruikbaar) Reset->LIN_UNINIT na reset LIN_INIT LIN_INIT (kanalen gereed voor gebruik) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (neemt deel aan het cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (alleen 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 (met wake-up-puls) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (zonder wake-up-puls)

Toestandsdiagram: Lin_Init verheft de module van LIN_UNINIT naar LIN_INIT. Daarin wisselt elk kanaal via sleep- en wake-up-diensten tussen bedrijf en slaapstand; de overgang via Lin_GetStatus is interpretatie. Bronnen: SWS LIN Driver p. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Frame-beschrijving via Lin_PduType en datamapping

Tussen LinIf en driver beschrijft Lin_PduType een frame. De structuur bevat Pid, het controlesommenmodel Cs, de response-richting Drc, de datalengte Dl en de datapointer SduPtr ([SWS_Lin_00232]). De elementtypen:

  • Lin_FramePidType: Identifier 0…0x3F met twee pariteitsbits, waardebereik 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: 1…8 databytes ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS of LIN_CLASSIC_CS ([SWS_Lin_00229]). De driver moet beide controlesommen kunnen berekenen ([SWS_Lin_00019]).

Lin_FrameResponseType bepaalt hoe het knooppunt omgaat met de response ([SWS_Lin_00230]): hij verzendt deze zelf (LIN_FRAMERESPONSE_TX), ontvangt een relevante externe response (LIN_FRAMERESPONSE_RX) of negeert deze (LIN_FRAMERESPONSE_IGNORE). In het geheugen staat de eerst overgedragen byte in element 0, de laatst overgedragen in element n-1 (SWS LIN Driver p. 30). Indien de hardware bytes niet kan bufferen, zoals bij een eenvoudige UART, stelt de driver een tijdelijke buffer ter beschikking. Verzenden met terugleescontrole en ontvangen verlopen niet-blokkerend (SWS LIN Driver p. 28).

Master-kanalen: Lin_SendFrame en statusopvraging

Op masterkanalen initieert LinIf elk frame met het asynchrone Lin_SendFrame. De service verzendt de LIN-header en eventueel de response ([SWS_Lin_00191]). Dit geldt voor ontvangst-, zend- en slave-to-slave-items van het schedule (SWS LIN Interface p. 34, SWS LIN Interface p. 37, SWS LIN Interface p. 40).

Het resultaat vraagt LinIf op met het synchrone Lin_GetStatus: op zijn vroegst na de maximale framelengte, op zijn laatst bij het volgende vervallen schedule-item (SWS LIN Interface p. 35, [SWS_Lin_00168]). De service levert een Lin_StatusType op, zoals LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY of LIN_RX_NO_RESPONSE. Via Lin_SduPtr geeft deze daarnaast een pointer naar de schaduw- of hardware-ontvangstbuffer terug ([SWS_Lin_00233]).

Ontvangen gegevens blijven consistent totdat het volgende frame succesvol is ontvangen of de kanaalstatus verandert. De volledige ontvangstverwerking mag in Lin_GetStatus plaatsvinden (SWS LIN Driver p. 30). Bij event-triggered frames geldt (SWS LIN Interface p. 127, SWS LIN Interface p. 129):

  • LIN_RX_NO_RESPONSE beschouwt LinIf niet als een fout.
  • LIN_RX_ERROR geldt als een botsing en leidt tot een overschakeling naar het botsingsoplossings-schedule.

Lin_SendFrame, Lin_GoToSleep en Lin_GetStatus zijn alleen beschikbaar als minimaal één kanaal via LinNodeType als master is geconfigureerd ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). In R20-11 zijn deze services gespecificeerd als niet-re-entrant ([SWS_Lin_00168]). Latere versies staan re-entrantie toe voor verschillende kanalen (SWS LIN Driver p. 48); voor R20-11 geldt het requirement.

Frame-afhandeling op een master-kanaalBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: Schedule-entry vervallenLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKasynchroon: header en responselopen niet-blokkerendUse Case: Statuscontrole vanaf maximale frame-lengteloopper MainFunction-aanroep, zolang het frame nog looptLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKGegevens via Lin_SduPtr overnemen (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,geen actieLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Sequentiediagram: De master initieert een frame asynchroon met Lin_SendFrame en evalueert het resultaat in latere MainFunction-aanroepen via Lin_GetStatus. Bronnen: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface p. 128, SWS LIN Interface p. 129, SWS LIN Interface p. 40

Slave-kanalen: header-gestuurde responseverwerking

Een slave-kanaal moet in LIN_CH_OPERATIONAL te allen tijde een header kunnen ontvangen ([SWS_Lin_00272]). Voor elke header roept de driver LinIf_HeaderIndication aan. Hierbij bevat PduPtr->Pid de ontvangen PID, en PduPtr->SduPtr wijst naar zijn hardware- of schaduwbuffer ([SWS_Lin_00280]). Als de hardware ongeldige PID's niet herkent, geeft de driver de PID ongecontroleerd door ([SWS_Lin_00271]). Na de returnwaarde E_OK evalueert deze PduPtr->Drc ([SWS_Lin_00282]):

  • Bij LIN_FRAMERESPONSE_TX gebruikt hij Cs, Dl en SduPtr om de response te verzenden ([SWS_Lin_00283]).
  • Bij LIN_FRAMERESPONSE_RX configureert hij met Cs en Dl de ontvangst ([SWS_Lin_00284]).

Als LinIf_HeaderIndication E_NOT_OK oplevert of Drc gelijk is aan LIN_FRAMERESPONSE_IGNORE, negeert de driver de response ([SWS_Lin_00286]). Tot aan de volgende header meldt deze dan niets ([SWS_Lin_00276]). Een succesvol ontvangen response geeft hij direct door via LinIf_RxIndication, een verzonden response bevestigt hij via LinIf_TxConfirmation ([SWS_Lin_00274], [SWS_Lin_00275]). Elke relevante response moet met een van deze callbacks of met LinIf_LinErrorIndication zijn afgerond voordat de volgende header wordt gemeld ([SWS_Lin_00285]). Het ontvangstschema onderscheidt twee hardwarevarianten: hardware-LIN-controllers en eenvoudige UART, waarbij de driver elke byte via interrupt naar een buffer kopieert (SWS LIN Driver p. 57).

Header- en response-verwerking op een slave-kanaalLinController/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 en Drc = LIN_FRAMERESPONSE_TXResponse met Cs, Dl, SduPtr verzendenInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK en Drc = LIN_FRAMERESPONSE_RXOntvangst met Cs, Dl configurerenInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK of Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;geen melding tot de volgende headerBusfout bij verzenden/ontvangst: afbreken enLinIf_LinErrorIndication(Channel, ErrorStatus)

Sequentiediagram: Op een slave-kanaal triggert elke header een indicatie aan LinIf. Afhankelijk van Drc verzendt, ontvangt of negeert de driver de response. Bronnen: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface p. 121, SWS LIN Interface p. 132

Slapen, ontwaken en wake-up-detectie

Alleen een master kan het go-to-sleep-commando verzenden. Lin_GoToSleep verstuurt dit asynchroon conform LIN 2.1 en zet het kanaal ook bij een foutieve overdracht op LIN_CH_SLEEP_PENDING. Als LinChannelWakeupSupport is geconfigureerd, activeert de service bovendien de busbewaking ([SWS_Lin_00166], SWS LIN Driver p. 43). Voor slaves is Lin_GoToSleep niet van toepassing; zij gebruiken Lin_GoToSleepInternal (SWS LIN Driver p. 31). Deze service stelt synchroon LIN_CH_SLEEP in, activeert de wake-up-detectie en brengt de hardware optioneel in een energiebesparende modus ([SWS_Lin_00167], SWS LIN Driver p. 44). Elk kanaal accepteert sleep-verzoeken onafhankelijk van de overige kanalen (SWS LIN Driver p. 31).

Voor het ontwaken staan twee services ter beschikking. Lin_Wakeup verzendt een wake-up-puls op de bus, Lin_WakeupInternal stelt het kanaal zonder puls in bedrijf ([SWS_Lin_00169], [SWS_Lin_00262]). Een wake-up vanaf de bus controleert Lin_CheckWakeup. Detecteert de service een gebeurtenis, zoals een permanent laag RxD-niveau, dan meldt hij dit direct via EcuM_SetWakeupEvent aan de EcuM en via LinIf_WakeupConfirmation aan LinIf ([SWS_Lin_00160], SWS LIN Driver p. 42). LinIf_CheckWakeup beslist aan de hand van de wake-up-bron of Lin_CheckWakeup dan wel LinTrcv_CheckWakeup wordt aangeroepen (SWS LIN Interface p. 112). LIN heeft geen wake-up-validatie nodig (SWS EcuM p. 173).

Controle van een wake-up vanaf de LIN-busLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,Busbewaking actief (LinChannelWakeupSupport)Wake-up-gebeurtenis (interrupt of polling)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(bron LIN-controller; anders 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 vereist geen wake-up-validatie

Sequentiediagram: Een wake-up vanaf de bus wordt via EcuM en LinIf_CheckWakeup doorgegeven aan Lin_CheckWakeup. De driver meldt een gedetecteerde gebeurtenis aan EcuM en LinIf. Bronnen: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver p. 42, SWS LIN Interface p. 112, SWS EcuM p. 147

Gedrag in het foutgeval

Bij geactiveerde detectie van ontwikkelingsfouten melden de services onjuist gebruik aan de DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; voor Lin_Wakeup analoog SWS LIN Driver p. 45):

  • LIN_E_UNINIT bij aanroep vóór de initialisatie,
  • LIN_E_INVALID_CHANNEL bij een ongeldig of inactief kanaal,
  • LIN_E_STATE_TRANSITION bij een wake-up buiten LIN_CH_SLEEP.

Lin_GetVersionInfo meldt een NULL-pointer met LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver p. 41). Bij uitgeschakelde DET levert Lin_CheckWakeup voor een ongeldig kanaal E_NOT_OK op (SWS LIN Driver p. 42). In het algemeen geven E_NOT_OK en LIN_NOT_OK aan dat er een ontwikkelings- of productiefout is opgetreden ([SWS_Lin_00191], [SWS_Lin_00233]).

Als productiefout is LIN_E_TIMEOUT gespecificeerd. Wanneer na een wijziging in hardware-stuurregisters op een statusovergang moet worden gewacht, beveiligt een configureerbare time-out dit wachten. Loopt deze af, dan wordt de fout gemeld ([SWS_Lin_00290]). De melding gaat via Dem_SetEventStatus ([SWS_Lin_00234]) naar het in LinDemEventParameterRefs gerefereerde event (SWS LIN Driver p. 65).

Communicatiefouten meldt de driver afhankelijk van het knooppunttype verschillend. Masterkanalen leveren deze op als status van Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR bij teruglees-, pariteits- of busfouten in de header,
  • LIN_TX_ERROR bij foutieve response-overdracht,
  • LIN_RX_ERROR bij framing-, overrun- of controlesomfouten en bij een te korte response.

Slave-kanalen breken de frameverwerking af en roepen LinIf_LinErrorIndication aan met een Lin_SlaveErrorType ([SWS_Lin_00277], [SWS_Lin_91140]). Ongeldige busgebeurtenissen tijdens het wachten op een header melden zij als LIN_ERR_HEADER ([SWS_Lin_00281]).

LinFehlerpfade start Foutgebeurtenis in het LIN-stuurprogramma art Type fout? start->art dev Ontwikkelfout (alleen bij geactiveerde DET-detectie) art->dev Verkeerd gebruik van de API hw Time-out bij het wachten na wijziging van hardware-stuurregisters art->hw Hardwarefehler com Communicatiefout op de 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 Teruggave van E_NOT_OK resp. LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ Knooppunttype van het kanaal? com->typ master Master: foutstatus bij 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

Activiteitendiagram: Ontwikkelingsfouten gaan naar de DET, de hardware-time-out naar de DEM. Buscommunicatiefouten meldt een masterkanaal als status, een slave-kanaal als foutindicatie. Bronnen: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

Verdere gedetailleerde bewijzen

AI-gegenereerde handleiding. Deze baseert zich uitsluitend op de meegeleverde bewijsplaatsen; afzonderlijke documentpassages zijn afkomstig uit latere releases. Normatief zijn de requirements van R20-11. Uitspraken die als interpretatie zijn aangeduid, worden niet direct onderbouwd.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

functie Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 2e00d30976de Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Lin_Init dient voor de initialisatie van de LIN-drivermodule van het AUTOSAR Classic Platform conform specificatie [SWS_Lin_00006]. De interface wordt beschikbaar gesteld via de header Lin.h en intern geadresseerd via het service-ID 0x00 [SWS_Lin_00006].

Voor het gebruik en de aanroep van de functie gelden de volgende parameter- en interfacevoorwaarden:

  • Invoerparameter: Als enige overdrachtsparameter wordt Config verwacht [SWS_Lin_00006]. Dit betreft een pointer naar de configuratiedataset van de LIN-driver van het type const Lin_ConfigType* [SWS_Lin_00006]. Er zijn voor deze interface noch invoer-/uitvoerparameters noch zuivere uitvoerparameters voorzien [SWS_Lin_00006].
  • Retourwaarde: De functie levert geen retourwaarde op (void) [SWS_Lin_00006].
  • Uitvoeringssemantiek: De verwerking verloopt volledig synchroon (Synchronous), zodat de initialisatiestappen van de driver direct tijdens de functie-aanroep worden afgehandeld [SWS_Lin_00006].

Met betrekking tot de aanroepcontext en de gelijktijdigheid is vastgelegd dat Lin_Init niet-reentrant (Non Reentrant) is [SWS_Lin_00006]. Interpretatie: Aangezien de functie de LIN-drivermodule fundamenteel initialiseert en niet-reentrant is ontworpen, zal deze doorgaans tijdens de opstartfase van het totale systeem worden aangeroepen, voordat andere diensten van de LIN-driver worden gebruikt. Vraag Q-d535602a0d4708ce (open) Een gelijktijdige of meervoudige aanroep vanuit verschillende uitvoeringscontexten is daarbij vermoedelijk niet toegestaan.

Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I1)

functie 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 706d1bc705a9 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Lin_CheckWakeup dient ter controle of op een geadresseerd LIN-kanaal een wakeup-gebeurtenis is opgetreden [SWS_Lin_00160]. De interface is beschikbaar via het headerbestand Lin.h en heeft het service-ID 0x0a [SWS_Lin_00160]. Ter identificatie van het kanaal accepteert de functie de parameter Channel van het gegevenstype uint8 [SWS_Lin_00160]. Verdere invoer- of uitvoerparameters zijn niet voorzien voor deze interface [SWS_Lin_00160].

Het resultaat van de uitvoering wordt synchroon teruggemeld via het retourtype Std_ReturnType [SWS_Lin_00160]. De statuswaarde E_OK geeft aan dat er tijdens de uitvoering van de API-aanroep geen fout is opgetreden [SWS_Lin_00160]. Treedt er daarentegen tijdens de uitvoering een fout op, dan levert de service de retourwaarde E_NOT_OK op [SWS_Lin_00160]. Specifieke foutcodes en meldingen aan DET of DEM zijn in de bronnen niet gespecificeerd voor dit element.

Met betrekking tot het concurrencygedrag is Lin_CheckWakeup gedefinieerd als niet-reentrant (Non Reentrant) [SWS_Lin_00160]. Oproepers moeten er daarom voor zorgen dat aanroepen sequentieel plaatsvinden en dat er geen gelijktijdige uitvoering plaatsvindt. Aangezien de exacte aanroepcontext in de specificatie niet nader is gedefinieerd, zal de aanroep vermoedelijk worden geïnitieerd door bovenliggende lagen zoals het wakeup-management of de ECU State Manager. Vraag Q-40221056a2e2c042 (open)

Deze tekst is opgesteld door een AI; alle verklaringen zijn afkomstig uit de richtlijnen van de AUTOSAR-standaard.

functie 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: fb92456f64e2 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie Lin_SendFrame dient voor het verzenden van een LIN-header en, indien nodig, de bijbehorende LIN-response, en is uitsluitend bedoeld voor LIN-master-nodes [SWS_Lin_00191]. Via de pointer PduInfoPtr wordt de transmissierichting van de frame-response vastgelegd, die een master-response, een slave-response of een slave-to-slave-communicatie kan weergeven [SWS_Lin_00191].

Aanroep en parameters: De uitvoering van de functie vindt asynchroon plaats [SWS_Lin_00191]. Bij de aanroep worden de volgende ingangsparameters overgedragen:

  • Channel: Bepaalt het aan te spreken LIN-kanaal als uint8 [SWS_Lin_00191].
  • PduInfoPtr: Pointer naar een structuur van het type Lin_PduType, die de beschermde identifier (PID), het checksum-model (Checksum Model), het response-type, de datalengte (Dl) en de datapointer naar de SDU bevat [SWS_Lin_00191].

Retourwaarden en foutgedrag: De functie levert het retourtype Std_ReturnType op [SWS_Lin_00191]:

  • E_OK: De verzendopdracht is succesvol aangenomen en geaccepteerd voor asynchrone uitvoering [SWS_Lin_00191].
  • E_NOT_OK: De verzendopdracht is afgewezen omdat er sprake is van een ontwikkelingsfout (Development Error) of een productiefout (Production Error) [SWS_Lin_00191].

Gelijktijdigheid en integratie: De interface is gespecificeerd als niet-reentrant (Non Reentrant), waardoor parallelle aanroepen op hetzelfde kanaal moeten worden vermeden [SWS_Lin_00191]. De functie heeft het service-ID 0x04 en wordt via het headerbestand Lin.h opgenomen [SWS_Lin_00191].

Deze gebruiksinstructie is geautomatiseerd opgesteld op basis van de AUTOSAR-specificatie R20-11.

functie 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e15a8b1ff51c Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Functie en aanroepcontext

De functie Lin_GoToSleep draagt de LIN-driver op om een Go-to-Sleep-commando op het geadresseerde LIN-kanaal te verzenden [SWS_Lin_00166]. Deze driverdienst heeft service-ID 0x06 en wordt via het headerbestand Lin.h beschikbaar gesteld [SWS_Lin_00166]. De uitvoering van de dienst vindt voor de aanroeper asynchroon plaats [SWS_Lin_00166]. De functiedeclaratie luidt Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Parameters en retourwaarden

Als enige overdrachtsparameter wordt Channel van het type uint8 meegegeven, die het aan te spreken LIN-kanaal identificeert [SWS_Lin_00166]. Er bestaan geen aanvullende in- of uitgangsparameters [SWS_Lin_00166].

De retourwaarde van het type Std_ReturnType geeft uitsluitsel over de acceptatie van de aanvraag [SWS_Lin_00166]:

  • E_OK: Het Go-to-Sleep-commando is succesvol geaccepteerd door de driver [SWS_Lin_00166].
  • E_NOT_OK: Het commando is niet geaccepteerd doordat een ontwikkelingsfout of een productiefout is opgetreden [SWS_Lin_00166].

Beperkingen en concurrency

Wat betreft de concurrency is de functie gedeclareerd als niet re-entrant (Non Reentrant) [SWS_Lin_00166]. Als essentiële functionele beperking is Lin_GoToSleep uitsluitend bedoeld voor LIN-master-nodes [SWS_Lin_00166].

Deze gebruiksinstructie is automatisch gegenereerd aan de hand van de AUTOSAR-specificatie R20-11.

functie 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).

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: dd333dd75b58 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Lin_GoToSleepInternal stelt de toestand van het geadresseerde LIN-kanaal in op LIN_CH_SLEEP, activeert de wake-updetectie en brengt de LIN-hardware-eenheid optioneel in een gereduceerde energiebesparingsmodus, voor zover dit door de hardware wordt ondersteund [SWS_Lin_00167]. De adressering van het gewenste LIN-kanaal vindt plaats via de ingangsparameter Channel van het type uint8, terwijl er geen verdere in- of uitgangsparameters aanwezig zijn [SWS_Lin_00167].

Het resultaat van de uitvoering wordt synchroon gesignaleerd via de retourwaarde van het type Std_ReturnType [SWS_Lin_00167]:

  • E_OK: Het commando voor het overgaan naar de slaapmodus is succesvol geaccepteerd [SWS_Lin_00167].
  • E_NOT_OK: Het commando is afgewezen doordat een ontwikkelings- of een productiefout is opgetreden [SWS_Lin_00167].

Wat betreft concurrency en aanroepcontext is Lin_GoToSleepInternal gespecificeerd als niet re-entrant (Non Reentrant) [SWS_Lin_00167]. Aanroepende software-eenheden moeten er daarom voor zorgen dat aanroepen sequentieel plaatsvinden en niet gelijktijdig overlappen. De functie is gedefinieerd onder service-ID 0x09 en beschikbaar via het headerbestand Lin.h [SWS_Lin_00167].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie.

Implementer's Guide volgt (complexiteit I1)

functie 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 6a03f55b81c5 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik en aanroepcontext

De functie Lin_Wakeup behoort tot de drivermodule Lin van het AUTOSAR-Classic-platform [SWS_Lin_00169]. Het doel ervan is om een wekimpuls (wake-up pulse) op het geadresseerde buskanaal te genereren en de kanaaltoestand direct over te brengen naar LIN_CH_OPERATIONAL [SWS_Lin_00169]. De interface wordt beschikbaar gesteld via het headerbestand Lin.h met het service-ID 0x07 en de signatuur Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

Als invoerparameter accepteert de functie Channel van het type uint8, waarmee het aan te sturen LIN-kanaal wordt gespecificeerd [SWS_Lin_00169]. In-/uitvoerparameters of zuivere uitvoerparameters zijn niet aanwezig [SWS_Lin_00169]. Het uitvoeringsgedrag is asynchroon (asynchronous); terugkeer uit de functie bevestigt derhalve uitsluitend de acceptatie van de opdracht, terwijl de fysieke wekpuls achteraf op de bus wordt gegenereerd [SWS_Lin_00169].

Retourwaarden en foutafhandeling

Via het retourtype Std_ReturnType wordt het resultaat van de opdrachtacceptatie gemeld [SWS_Lin_00169]:

  • E_OK: Het wekverzoek is geaccepteerd door de LIN-driver en wordt verwerkt [SWS_Lin_00169].
  • E_NOT_OK: Het verzoek is afgewezen omdat er een ontwikkelings- of productiefout is opgetreden [SWS_Lin_00169].

Gelijktijdigheid en beperkingen

Volgens de specificatie is de functie geclassificeerd als niet-re-entrant (non-reentrant) [SWS_Lin_00169]. Oproepen mogen daarom niet onderbrekend of gelijktijdig vanuit verschillende uitvoeringscontexten voor dezelfde driverinstantie plaatsvinden. Oproepende componenten moeten zorgen voor passende synchronisatie.

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

functie 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 5812acd7bb93 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De via de header Lin.h beschikbaar gestelde functie Lin_WakeupInternal brengt een LIN-kanaal asynchroon in de bedrijfstoestand LIN_CH_OPERATIONAL, zonder daarbij een wekimpuls op de fysieke LIN-bus uit te sturen [SWS_Lin_00256]. Deze verwerkt interne wekverzoeken van de bovenliggende LIN-interface waarbij geen bus-wake-up-signaal mag worden verzonden [SWS_Lin_00262]. De aanroep geschiedt via de parameter Channel van het type uint8. De functie retourneert E_OK wanneer het wekverzoek is geaccepteerd, of E_NOT_OK wanneer het verzoek is afgewezen dan wel er een ontwikkelings- of productiefout optreedt [SWS_Lin_00256].

Voor de aanroepcontext en de gelijktijdigheid geldt dat Lin_WakeupInternal niet-reentrant (Non Reentrant) is [SWS_Lin_00256]. Als strikte volgordevoorwaarde moet de toestandsmachine van het geadresseerde kanaal zich op het moment van aanroepen in de rusttoestand LIN_CH_SLEEP bevinden [SWS_Lin_00260].

Bij geactiveerde detectie van ontwikkelingsfouten bewaakt de module de volgende foutvoorwaarden en meldt deze de overeenkomstige ontwikkelingsfouten:

  • LIN_E_UNINIT: Aanroep van de functie vóór de initialisatie van de LIN-drivermodule [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: De doorgegeven kanaalparameter is ongeldig of het geadresseerde kanaal is inactief [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: Er is sprake van een ontoelaatbare toestandsovergang, aangezien het LIN-kanaal zich niet in de toestand LIN_CH_SLEEP bevindt [SWS_Lin_00260].

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie-eisen.

Implementer's Guide volgt (complexiteit 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e48ff51e4fe8 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het enumeratietype Lin_FrameCsModelType dient conform [SWS_Lin_00229] voor het vastleggen van het checksum-model dat voor een individueel LIN-frame wordt gebruikt. De typedefinitie is standaard beschikbaar via de header Lin_GeneralTypes.h [SWS_Lin_00229].

Voor de configuratie staan conform [SWS_Lin_00229] twee waarden ter beschikking:

  • LIN_ENHANCED_CS: Selecteert het uitgebreide checksum-model (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS: Selecteert het klassieke checksum-model (Classic checksum model) [SWS_Lin_00229].

Als zuiver gegevenstype definieert Lin_FrameCsModelType zelf geen functie-interfaces, retourwaarden of DET-/DEM-foutmeldingen [SWS_Lin_00229]. Het gebruik zal primair als parameter of element binnen configuratie- en frame-descriptors in de module Lin plaatsvinden (interpretatie), om de driver te laten weten volgens welk algoritme de frame-checksum bij verzending of ontvangst wordt geverifieerd. Vraag Q-6d3354059d0641df (open) Een foutafhandeling voor ongeldige waarden moet daarom vermoedelijk op het niveau van de verwerkende driver-API's dan wel de moduleconfiguratie worden opgevangen (interpretatie). Vraag Q-06e26f4bcff1e520 (open)

Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie R20-11.

Implementer's Guide volgt (complexiteit 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().

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7c3f3f6172fb Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het enumeratietype Lin_StatusType wordt via Lin_GeneralTypes.h beschikbaar gesteld en definieert de bedrijfs- en overdrachtstoestanden voor LIN-kanalen en LIN-frames, die als retourwaarde van de API-dienst Lin_GetStatus() worden gemeld [SWS_Lin_00233].

De toestandswaarden zijn onderverdeeld in kanaaltoestanden en frame-operatiewaarden [SWS_Lin_00233]:

  • Kanaalstatus: LIN_OPERATIONAL representeert het normale bedrijf waarin het LIN-kanaal gereed is voor overdracht van de volgende header en er geen gegevens van een voorafgaand frame aanwezig zijn (bijv. na initialisatie). Daartegenover staat LIN_CH_SLEEP voor de rusttoestand van het kanaal, waarin de wake-up-detectie voor slave-nodes is geactiveerd [SWS_Lin_00233].
  • Lopende overdrachten: LIN_TX_BUSY duidt op een lopende verzending van header of response. LIN_RX_BUSY signaleert een lopend ontvangstproces waarbij al ten minste één response-byte, maar nog niet de afsluitende controlesom-byte is binnengekomen [SWS_Lin_00233].
  • Succesvolle voltooiing: LIN_TX_OK bevestigt de succesvolle overdracht, terwijl LIN_RX_OK de foutloze ontvangst van een volledige response aangeeft [SWS_Lin_00233].
  • Fouttoestanden en time-outs: LIN_NOT_OK geeft ontwikkelings- of productiefouten aan. Bij zendoperaties maakt het type onderscheid tussen LIN_TX_HEADER_ERROR (fout bij het verzenden van de header door datamismatch, identifier-pariteitsfouten of fysieke busfouten) en LIN_TX_ERROR (fout bij de responsieoverdracht door datamismatch of busfouten). Aan de ontvangstzijde duidt LIN_RX_ERROR op receptiefouten zoals framing-, overrun-, controlesomfouten of onvolledige responses; LIN_RX_NO_RESPONSE meldt het volledig uitblijven van response-bytes [SWS_Lin_00233].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR CP R20-11.

Implementer's Guide volgt (complexiteit 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 34669dffb4d6 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het opsommingstype Lin_SlaveErrorType representeert de specifieke fouttypen van een LIN-slave die worden gedetecteerd tijdens de ontvangst van de header en tijdens de overdracht of ontvangst van de response [SWS_Lin_91140]. De typedefinitie wordt via het headerbestand Lin_GeneralTypes.h ter beschikking gesteld [SWS_Lin_91140].

Fouttoestanden en waardebereik

De enumeratie dekt fouten tijdens de verschillende fasen van de LIN-communicatie af [SWS_Lin_91140]:

  • LIN_ERR_HEADER: Signaleert een fout bij de ontvangst van de LIN-header [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: Geeft een framing-fout respectievelijk stopbit-fout in de response aan [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: Duidt op een controlesomfout van de ontvangen response [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: Meldt een bit-monitoringfout van een verzonden databit in de response [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: Wijst erop dat er geen antwoord op de header is ontvangen [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: Treedt op wanneer een onvolledige response is ontvangen of verzonden [SWS_Lin_91140].

Gebruik en beperkingen

Interpretatie: Aangezien het onderhavige specificatie-uittreksel geen concrete functiesignaturen bevat, dient het type vermoedelijk als retourwaarde of statusparameter in meldingen aan bovenliggende modules zoals het LIN-interface. Vraag Q-6a9c54976345ca2b (open) Verdere details over re-entrantie, aanroepcontexten of synchrone respectievelijk asynchrone uitvoering zijn niet in het uittreksel opgenomen.

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR R20-11.

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#2c54747d
Content hash
2c54747d
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

Initialisatie en status

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 functie

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Diensten

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

Std_ReturnType Lin_CheckWakeup (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.

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);

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 functie

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().