DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

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

Guide du moduleGÉNÉRÉ PAR IA

Pilote le matériel LIN et offre au LIN Interface des services pour les trames, l’état de veille et le réveil par canal.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : ea366bb8619c Provenance Questions ouvertes (1)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Pilote le matériel LIN et offre au LIN Interface des services pour les trames, l’état de veille et le réveil par canal.

Le pilote LIN encapsule le matériel LIN du microcontrôleur et met à la disposition du LIN Interface des services par canal pour les trames, l’état de veille et le réveil. Les canaux maîtres déclenchent les trames de manière asynchrone avec Lin_SendFrame et les évaluent via Lin_GetStatus. Les canaux esclaves réagissent à chaque en-tête reçu par une indication destinée au LIN Interface, puis transmettent, reçoivent ou ignorent la réponse ([SWS_Lin_00280]). Les services disponibles dépendent du type de nœud configuré ; les services maîtres ne sont présents que s’il existe au moins un canal maître ([SWS_Lin_00287]).

Le pilote LIN Lin est le pilote matériel de la pile LIN. Il encapsule des contrôleurs LIN ou des SCI/UART (SWS LIN Driver p. 9) et propose au LIN Interface des services par canal pour les trames, l’état de veille et le réveil. Il requiert obligatoirement Dem_SetEventStatus, EcuM_SetWakeupEvent et LinIf_WakeupConfirmation ([SWS_Lin_00234]). En option, il utilise DET, Icu et les callbacks esclaves du 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

Diagramme de contexte : Lin s’intercale entre LinIf et le matériel LIN et signale les réveils et les erreurs à EcuM, LinIf, DEM et DET. Sources : [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init fait passer le module de LIN_UNINIT à LIN_INIT ([SWS_Lin_00006], SWS LIN Driver p. 24). Ensuite, chaque canal bascule entre LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (maître uniquement) et LIN_CH_SLEEP. Pour cela, Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup et Lin_WakeupInternal sont disponibles ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal États de canal par canal (uniquement dans LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (non utilisable) Reset->LIN_UNINIT après réinitialisation LIN_INIT LIN_INIT (canaux opérationnels) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participe au cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (Master uniquement) 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 (avec impulsion de réveil) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sans impulsion de réveil)

Diagramme d’états : états du module et états de canal avec leurs transitions. Le fait que Lin_GetStatus termine l’étape vers LIN_CH_SLEEP constitue une interprétation du schéma. Sources : SWS LIN Driver p. 24, [SWS_Lin_00166]

Les canaux maîtres et esclaves fonctionnent de manière fondamentalement différente. Un maître déclenche des trames de manière asynchrone avec Lin_SendFrame et interroge ultérieurement le résultat avec Lin_GetStatus ([SWS_Lin_00191], [SWS_Lin_00168]). Ces services n’existent que si au moins un canal est configuré en tant que maître ([SWS_Lin_00287]). Un esclave signale chaque en-tête par LinIf_HeaderIndication ([SWS_Lin_00280]). Selon Drc, il transmet, reçoit ou ignore ensuite la réponse et la termine par LinIf_TxConfirmation ou LinIf_RxIndication ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Lin_CheckWakeup vérifie les réveils provenant du bus et les signale à EcuM et LinIf ([SWS_Lin_00160]). En cas d’erreur, les utilisations incorrectes sont transmises à la DET, par exemple LIN_E_UNINIT ([SWS_Lin_00258]). Un timeout matériel est signalé au DEM sous forme de LIN_E_TIMEOUT ([SWS_Lin_00290]). Un canal maître renvoie les erreurs de bus en tant qu’état, tandis qu’un canal esclave les signale via LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Rôle, limites du système et liaison aux instances du pilote LIN

Le pilote LIN Lin encapsule le matériel LIN du microcontrôleur. Il fournit au LIN Interface (LinIf) des services par canal : émettre et recevoir des trames, mettre les canaux en veille et les réveiller, ainsi que vérifier les réveils. Tous les services sont disponibles via Lin.h ([SWS_Lin_00191], [SWS_Lin_00160]). En tant que matériel, la spécification mentionne trois types d’unités matérielles LIN : les contrôleurs LIN complets, les SCI/UART simples et les SCI/UART évolués. Ils sont chacun raccordés à un cluster LIN via des CI émetteurs-récepteurs (SWS LIN Driver p. 9). Le pilote ne fournit lui-même aucune fonction de rappel (SWS LIN Driver p. 49). Il appelle à la place des fonctions de son environnement.

Les interfaces obligatoires vers l’extérieur sont Dem_SetEventStatus, EcuM_SetWakeupEvent et LinIf_WakeupConfirmation ([SWS_Lin_00234]). En option, le pilote utilise notamment :

  • Det_ReportError et EcuM_CheckWakeup,
  • Icu_EnableNotification et Icu_DisableNotification,
  • pour les canaux esclaves, les callbacks LinIf_HeaderIndication, LinIf_RxIndication et LinIf_LinErrorIndication ([SWS_Lin_00235]).

[SWS_Lin_00226] répertorie les types importés tels que NetworkHandleType, EcuM_WakeupSourceType ou Std_ReturnType.

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

Diagramme de contexte : Lin se situe entre LinIf et l’unité matérielle LIN. Le pilote signale les réveils à EcuM et LinIf, et les erreurs à DEM et DET. Sources : [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver p. 9

Le pilote peut être partitionné. Il fonctionne dans chaque partition comme une instance indépendante, et un appel d’API n’agit que sur la partition dans laquelle il a lieu ([SWS_Lin_CONSTR_00270]). Si LinEcucPartitionRef référence des partitions, LinChannelEcucPartitionRef doit faire référence à exactement l’une d’entre elles ([SWS_Lin_CONSTR_00291]). LinChannel et LinTrcvChannel d’un canal de communication doivent référencer la même partition ([SWS_Lin_CONSTR_00279]). Le module rejette les affectations de partitions que l’implémentation ne prend pas en charge ([SWS_Lin_00269]). Par canal, on configure entre autres le débit binaire, l’ID de canal, LinChannelWakeupSupport et le type de nœud LinNodeType. Cette description de conteneur est issue d’une release ultérieure (SWS LIN Driver p. 60).

États du module et des canaux, de Lin_Init jusqu’à l’état de veille

Après le reset, le module est dans l’état LIN_UNINIT et n’est pas utilisable. Lin_Init le fait passer à LIN_INIT ; chaque canal disponible y est prêt pour le service (SWS LIN Driver p. 24). Lin_Init reçoit un pointeur vers une structure Lin_ConfigType. Son contenu est spécifique au matériel ; elle contient les données d’initialisation pour le pilote, l’unité matérielle et les canaux ([SWS_Lin_00006], [SWS_Lin_00227]). L’environnement ne doit appeler Lin_Init qu’une seule fois au cours de l’exécution (SWS LIN Driver p. 24).

À l’intérieur de LIN_INIT, chaque canal possède son propre état :

  • LIN_CH_OPERATIONAL : le canal participe au cluster.
  • LIN_CH_SLEEP : la détection de réveil est active, le matériel est le cas échéant en mode basse consommation.
  • LIN_CH_SLEEP_PENDING : uniquement pour les canaux maîtres, après Lin_GoToSleep.

Justificatifs : SWS LIN Driver p. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal place directement le canal sur LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup ramène à LIN_CH_OPERATIONAL avec une impulsion de réveil, Lin_WakeupInternal sans impulsion ([SWS_Lin_00169], [SWS_Lin_00256]).

Interprétation : Lin_GetStatus devrait conclure la transition de LIN_CH_SLEEP_PENDING à LIN_CH_SLEEP. Question Q-bb592e1d2ab668f0 (ouverte) Le schéma présente Lin_GetStatus comme une transition dans la partie maître, et le LIN Interface attend la valeur de retour LIN_CH_SLEEP lors de la vérification de la commande Go-to-sleep (SWS LIN Interface p. 56).

LinZustaende cluster_kanal États de canal par canal (uniquement dans LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (non utilisable) Reset->LIN_UNINIT après réinitialisation LIN_INIT LIN_INIT (canaux opérationnels) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participe au cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (Master uniquement) 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 (avec impulsion de réveil) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sans impulsion de réveil)

Diagramme d’états : Lin_Init fait passer le module de LIN_UNINIT à LIN_INIT. Au sein de celui-ci, chaque canal bascule entre fonctionnement et veille par le biais de services de veille et de réveil ; la transition via Lin_GetStatus est une interprétation. Sources : SWS LIN Driver p. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Description de trame via Lin_PduType et mappage des données

Entre LinIf et le pilote, Lin_PduType décrit une trame. La structure contient Pid, le modèle de somme de contrôle Cs, le sens de réponse Drc, la longueur des données Dl et le pointeur de données SduPtr ([SWS_Lin_00232]). Les types des éléments :

  • Lin_FramePidType : identifiant 0…0x3F avec deux bits de parité, plage de valeurs 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType : 1…8 octets de données ([SWS_Lin_00231]).
  • Lin_FrameCsModelType : LIN_ENHANCED_CS ou LIN_CLASSIC_CS ([SWS_Lin_00229]). Le pilote doit pouvoir calculer les deux sommes de contrôle ([SWS_Lin_00019]).

Lin_FrameResponseType définit la manière dont le nœud traite la réponse ([SWS_Lin_00230]) : il l’émet lui-même (LIN_FRAMERESPONSE_TX), reçoit une réponse externe pertinente (LIN_FRAMERESPONSE_RX) ou l’ignore (LIN_FRAMERESPONSE_IGNORE). En mémoire, le premier octet transmis se trouve dans l’élément 0, le dernier octet transmis dans l’élément n-1 (SWS LIN Driver p. 30). Si le matériel ne peut pas mettre en mémoire tampon les octets, comme dans le cas d’un simple UART, le pilote met à disposition un tampon temporaire. L’émission avec contrôle par relecture et la réception s’exécutent sans blocage (SWS LIN Driver p. 28).

Canaux maîtres : Lin_SendFrame et interrogation de statut

Sur les canaux maîtres, LinIf déclenche chaque trame avec le service asynchrone Lin_SendFrame. Le service émet l’en-tête LIN et, le cas échéant, la réponse ([SWS_Lin_00191]). Cela s’applique aux entrées de réception, d’émission et Slave-to-Slave de la table d’ordonnancement (SWS LIN Interface p. 34, SWS LIN Interface p. 37, SWS LIN Interface p. 40).

LinIf interroge le résultat avec le service synchrone Lin_GetStatus : au plus tôt après la longueur maximale de trame, au plus tard lors de la prochaine entrée échue de la table d’ordonnancement (SWS LIN Interface p. 35, [SWS_Lin_00168]). Le service retourne un Lin_StatusType, tel que LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY ou LIN_RX_NO_RESPONSE. Via Lin_SduPtr, il renvoie en outre un pointeur vers le tampon de réception miroir ou matériel ([SWS_Lin_00233]).

Les données reçues restent cohérentes jusqu’à ce que la trame suivante ait été reçue avec succès ou que l’état du canal change. L’intégralité du traitement de la réception peut se situer dans Lin_GetStatus (SWS LIN Driver p. 30). Pour les trames déclenchées par événement, les règles suivantes s’appliquent (SWS LIN Interface p. 127, SWS LIN Interface p. 129) :

  • LIN_RX_NO_RESPONSE n’interprète pas LinIf comme une erreur.
  • LIN_RX_ERROR est considéré comme une collision et entraîne le basculement vers la table d’ordonnancement de résolution des collisions.

Lin_SendFrame, Lin_GoToSleep et Lin_GetStatus n’existent que si au moins un canal est configuré en tant que maître par LinNodeType ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). Dans R20-11, ces services sont spécifiés comme non réentrants ([SWS_Lin_00168]). Des versions ultérieures autorisent la réentrance pour différents canaux (SWS LIN Driver p. 48) ; pour R20-11, l’exigence s’applique.

Traitement de trame sur un canal maîtreBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: Entrée de table d'ordonnancement échueLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKasynchrone : header et responses'exécutent de manière non bloquanteUse Case: Contrôle d'état à partir de la longueur maximale de trameloopà chaque appel de MainFunction, tant que la trame est encore en coursLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKPrendre en charge les données via Lin_SduPtr (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,aucune actionLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Diagramme de séquence : le maître déclenche une trame de manière asynchrone avec Lin_SendFrame et évalue le résultat lors d’appels ultérieurs de MainFunction via Lin_GetStatus. Sources : [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface p. 128, SWS LIN Interface p. 129, SWS LIN Interface p. 40

Canaux esclaves : traitement de la réponse piloté par l’en-tête

Un canal esclave doit pouvoir recevoir un en-tête à tout moment dans LIN_CH_OPERATIONAL ([SWS_Lin_00272]). Pour chaque en-tête, le pilote appelle LinIf_HeaderIndication. À cette occasion, PduPtr->Pid contient le PID reçu, et PduPtr->SduPtr pointe vers son tampon matériel ou miroir ([SWS_Lin_00280]). Si le matériel ne détecte pas les PID non valides, le pilote transmet le PID sans vérification ([SWS_Lin_00271]). Après le retour E_OK, il évalue PduPtr->Drc ([SWS_Lin_00282]) :

  • En présence de LIN_FRAMERESPONSE_TX, il utilise Cs, Dl et SduPtr pour émettre la réponse ([SWS_Lin_00283]).
  • En présence de LIN_FRAMERESPONSE_RX, il configure la réception avec Cs et Dl ([SWS_Lin_00284]).

Si LinIf_HeaderIndication retourne E_NOT_OK ou si Drc est égal à LIN_FRAMERESPONSE_IGNORE, le pilote ignore la réponse ([SWS_Lin_00286]). Il ne signale alors rien jusqu’à l’en-tête suivant ([SWS_Lin_00276]). Il transmet directement une réponse reçue avec succès par LinIf_RxIndication et confirme une réponse émise par LinIf_TxConfirmation ([SWS_Lin_00274], [SWS_Lin_00275]). Chaque réponse pertinente doit être terminée par l’un de ces callbacks ou par LinIf_LinErrorIndication avant que l’en-tête suivant ne soit signalé ([SWS_Lin_00285]). Le schéma de réception distingue deux variantes matérielles : le contrôleur LIN matériel et le simple UART pour lequel le pilote copie chaque octet dans un tampon par interruption (SWS LIN Driver p. 57).

Traitement d'en-tête et de réponse sur un canal esclaveLinController/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 et Drc = LIN_FRAMERESPONSE_TXEnvoyer la réponse avec Cs, Dl, SduPtrInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK et Drc = LIN_FRAMERESPONSE_RXConfigurer la réception avec Cs, DlInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK ou Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;aucun message jusqu'au prochain en-têteErreur de bus lors de l'émission/réception : interruption etLinIf_LinErrorIndication(Channel, ErrorStatus)

Diagramme de séquence : sur un canal esclave, chaque en-tête déclenche une indication vers LinIf. Selon Drc, le pilote transmet, reçoit ou ignore la réponse. Sources : [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

Veille, réveil et détection de réveil

Seul un maître peut émettre la commande Go-to-sleep. Lin_GoToSleep l’envoie de manière asynchrone selon LIN 2.1 et positionne le canal sur LIN_CH_SLEEP_PENDING, même en cas d’échec de transmission. Si LinChannelWakeupSupport est configuré, le service active en outre la surveillance du bus ([SWS_Lin_00166], SWS LIN Driver p. 43). Pour les esclaves, Lin_GoToSleep n’est pas applicable ; ils utilisent Lin_GoToSleepInternal (SWS LIN Driver p. 31). Ce service définit LIN_CH_SLEEP de manière synchrone, active la détection de réveil et bascule facultativement le matériel dans un mode d’économie d’énergie ([SWS_Lin_00167], SWS LIN Driver p. 44). Chaque canal accepte les demandes de mise en veille indépendamment des autres (SWS LIN Driver p. 31).

Deux services sont disponibles pour le réveil. Lin_Wakeup envoie une impulsion de réveil sur le bus, Lin_WakeupInternal met le canal en service sans impulsion ([SWS_Lin_00169], [SWS_Lin_00262]). Lin_CheckWakeup vérifie un réveil provenant du bus. Si le service détecte un événement, par exemple un niveau RxD bas de manière permanente, il le signale immédiatement à l’EcuM par EcuM_SetWakeupEvent et à LinIf par LinIf_WakeupConfirmation ([SWS_Lin_00160], SWS LIN Driver p. 42). LinIf_CheckWakeup décide en fonction de la source de réveil si Lin_CheckWakeup ou LinTrcv_CheckWakeup est appelé (SWS LIN Interface p. 112). LIN ne requiert aucune validation de réveil (SWS EcuM p. 173).

Vérification d'un réveil provenant du bus LINLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,Surveillance du bus active (LinChannelWakeupSupport)Événement de réveil (interruption ou polling)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(source contrôleur LIN ; sinon 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 ne requiert aucune validation de réveil

Diagramme de séquence : un réveil en provenance du bus est transmis à Lin_CheckWakeup via EcuM et LinIf_CheckWakeup. Le pilote signale un événement détecté à EcuM et LinIf. Sources : [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver p. 42, SWS LIN Interface p. 112, SWS EcuM p. 147

Comportement en cas d'erreur

Lorsque la détection des erreurs de développement est activée, les services signalent les utilisations incorrectes à la DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260] ; de manière analogue pour Lin_Wakeup : SWS LIN Driver p. 45) :

  • LIN_E_UNINIT en cas d’appel avant l’initialisation,
  • LIN_E_INVALID_CHANNEL en cas de canal non valide ou inactif,
  • LIN_E_STATE_TRANSITION en cas de réveil en dehors de LIN_CH_SLEEP.

Lin_GetVersionInfo signale un pointeur NULL avec LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver p. 41). Lorsque la DET est désactivée, Lin_CheckWakeup retourne E_NOT_OK pour un canal non valide (SWS LIN Driver p. 42). De manière générale, E_NOT_OK et LIN_NOT_OK indiquent qu’une erreur de développement ou de production est survenue ([SWS_Lin_00191], [SWS_Lin_00233]).

LIN_E_TIMEOUT est spécifié comme erreur de production. Si, après une modification apportée aux registres de commande matériels, il est nécessaire d'attendre un changement d'état, un délai d'attente configurable sécurise cette attente. S'il expire, l'erreur est signalée ([SWS_Lin_00290]). La notification est transmise via Dem_SetEventStatus ([SWS_Lin_00234]) à l'événement référencé dans LinDemEventParameterRefs (SWS LIN Driver p. 65).

Le pilote signale les erreurs de communication différemment selon le type de nœud. Les canaux maîtres les fournissent sous la forme de l'état de Lin_GetStatus ([SWS_Lin_00233]) :

  • LIN_TX_HEADER_ERROR en cas d'erreurs de relecture, de parité ou de bus dans le header,
  • LIN_TX_ERROR en cas de transmission de réponse erronée,
  • LIN_RX_ERROR en cas d'erreurs de trame (framing), de dépassement de capacité (overrun) ou de somme de contrôle, ainsi que de réponse trop courte.

Les canaux esclaves interrompent le traitement de la trame et appellent LinIf_LinErrorIndication avec un Lin_SlaveErrorType ([SWS_Lin_00277], [SWS_Lin_91140]). Ils signalent les événements de bus non valides pendant l'attente d'un header en tant que LIN_ERR_HEADER ([SWS_Lin_00281]).

LinFehlerpfade start Événement d'erreur dans le pilote LIN art Type d'erreur ? start->art dev Erreur de développement (uniquement si la détection DET est activée) art->dev Utilisation incorrecte de l'API hw Timeout lors de l'attente après modification des registres de commande matériels art->hw Hardwarefehler com Erreur de communication sur le 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 Retour E_NOT_OK ou LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ Type de nœud du canal ? com->typ master Master : état d'erreur lors de 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

Diagramme d'activité : les erreurs de développement sont transmises à la DET, le dépassement de délai matériel au DEM. Un canal maître signale les erreurs de communication de bus sous forme d'état, un canal esclave sous forme d'indication d'erreur. Sources : [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

Preuves détaillées supplémentaires

Guide généré par IA. Il s'appuie exclusivement sur les éléments de preuve fournis ; certains passages de documents proviennent de versions ultérieures. Les exigences de R20-11 font foi. Les déclarations signalées comme interprétations ne sont pas directement étayées.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2e00d30976de Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Lin_Init sert à l’initialisation du module pilote LIN de la plateforme AUTOSAR Classic conformément à la spécification [SWS_Lin_00006]. L’interface est fournie via l’en-tête Lin.h et adressée en interne via l’ID de service 0x00 [SWS_Lin_00006].

Pour l’utilisation et l’appel de la fonction, les conditions de paramètres et d’interface suivantes s’appliquent :

  • Paramètre d’entrée : comme unique paramètre de transmission, Config est attendu [SWS_Lin_00006]. Il s’agit ici d’un pointeur vers le jeu de données de configuration du pilote LIN de type const Lin_ConfigType* [SWS_Lin_00006]. Ni paramètres d’entrée/sortie ni paramètres de sortie pure ne sont prévus pour cette interface [SWS_Lin_00006].
  • Valeur de retour : la fonction ne renvoie aucune valeur de retour (void) [SWS_Lin_00006].
  • Sémantique d’exécution : le traitement s’effectue de manière entièrement synchrone (Synchronous), de sorte que les étapes d’initialisation du pilote sont directement exécutées pendant l’appel de fonction [SWS_Lin_00006].

Concernant le contexte d’appel et la concurrence, il est défini que Lin_Init n’est pas réentrante (Non Reentrant) [SWS_Lin_00006]. Interprétation : étant donné que la fonction initialise fondamentalement le module pilote LIN et qu’elle est conçue pour être non réentrante, elle devrait généralement être appelée pendant la phase de démarrage de l’ensemble du système, avant que d’autres services du pilote LIN ne soient utilisés. Un appel simultané ou multiple depuis différents contextes d’exécution est alors probablement inadmissible. Question Q-d535602a0d4708ce (ouverte)

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 706d1bc705a9 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Lin_CheckWakeup sert à vérifier si un événement de réveil s’est produit sur un canal LIN adressé [SWS_Lin_00160]. L’interface est disponible via le fichier d’en-tête Lin.h et possède l’ID de service 0x0a [SWS_Lin_00160]. Pour l’identification du canal, la fonction reçoit le paramètre Channel du type de données uint8 [SWS_Lin_00160]. Aucun autre paramètre d’entrée ou de sortie n’est prévu pour cette interface [SWS_Lin_00160].

Le résultat de l’exécution est renvoyé de manière synchrone via le type de retour Std_ReturnType [SWS_Lin_00160]. La valeur d’état E_OK indique qu’aucune erreur ne s’est produite pendant l’exécution de l’appel d’API [SWS_Lin_00160]. Si, en revanche, une erreur survient pendant l’exécution, le service fournit la valeur de retour E_NOT_OK [SWS_Lin_00160]. Aucun code d’erreur spécifique ni aucune notification transmise au DET ou au DEM ne sont spécifiés pour cet élément dans les sources.

Concernant le comportement en matière de concurrence, Lin_CheckWakeup est définie comme non réentrante (Non Reentrant) [SWS_Lin_00160]. Les appelants doivent par conséquent s’assurer que les appels s’effectuent de manière séquentielle et qu’aucune exécution simultanée n’a lieu. Comme le contexte d’appel exact n’est pas défini plus en détail dans la spécification, l’appel devrait probablement être initié par des couches supérieures telles que la gestion du réveil ou l’ECU State Manager. Question Q-40221056a2e2c042 (ouverte)

Ce texte a été généré par une IA ; toutes les affirmations proviennent des exigences du standard AUTOSAR.

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : fb92456f64e2 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Lin_SendFrame sert à envoyer un en-tête LIN ainsi que, si nécessaire, la réponse LIN associée, et elle est exclusivement prévue pour les nœuds maîtres LIN [SWS_Lin_00191]. Le sens de transmission de la réponse de trame est défini via le pointeur PduInfoPtr, lequel peut représenter une réponse de maître, une réponse d’esclave ou une communication d’esclave à esclave [SWS_Lin_00191].

Appel et paramètres : l’exécution de la fonction s’effectue de manière asynchrone [SWS_Lin_00191]. Lors de l’appel, les paramètres d’entrée suivants sont transmis :

  • Channel : définit le canal LIN à adresser en tant que uint8 [SWS_Lin_00191].
  • PduInfoPtr : pointeur vers une structure de type Lin_PduType, qui contient l’identifiant protégé (PID), le modèle de somme de contrôle (Checksum Model), le type de réponse, la longueur des données (Dl) ainsi que le pointeur de données vers la SDU [SWS_Lin_00191].

Valeurs de retour et comportement en cas d’erreur : la fonction fournit le type de retour Std_ReturnType [SWS_Lin_00191] :

  • E_OK : la demande d’émission a été reçue avec succès et acceptée pour une exécution asynchrone [SWS_Lin_00191].
  • E_NOT_OK : la demande d’émission a été rejetée, car une erreur de développement (Development Error) ou une erreur de production (Production Error) est présente [SWS_Lin_00191].

Concurrence et intégration : l’interface est spécifiée comme non réentrante (Non Reentrant), raison pour laquelle les appels parallèles sur le même canal doivent être évités [SWS_Lin_00191]. La fonction possède l’ID de service 0x04 et est intégrée via le fichier d’en-tête Lin.h [SWS_Lin_00191].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR R20-11.

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e15a8b1ff51c Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Fonction et contexte d'appel

La fonction Lin_GoToSleep ordonne au pilote LIN d'envoyer une commande Go-to-Sleep sur le canal LIN adressé [SWS_Lin_00166]. Ce service de pilote possède l'ID de service 0x06 et est mis à disposition via le fichier d'en-tête Lin.h [SWS_Lin_00166]. L'exécution du service s'effectue de manière asynchrone pour l'appelant [SWS_Lin_00166]. La déclaration de la fonction est Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Paramètres et valeurs de retour

L'unique paramètre transmis est Channel de type uint8, qui identifie le canal LIN à adresser [SWS_Lin_00166]. Aucun paramètre d'entrée ou de sortie supplémentaire n'existe [SWS_Lin_00166].

La valeur de retour de type Std_ReturnType renseigne sur l'acceptation de la demande [SWS_Lin_00166] :

  • E_OK : la commande Go-to-Sleep a été acceptée avec succès par le pilote [SWS_Lin_00166].
  • E_NOT_OK : la commande n'a pas été acceptée en raison de la survenance d'une erreur de développement ou d'une erreur de production [SWS_Lin_00166].

Restrictions et concurrence

En ce qui concerne la concurrence, la fonction est déclarée non réentrante (Non Reentrant) [SWS_Lin_00166]. Comme restriction fonctionnelle essentielle, Lin_GoToSleep est exclusivement prévue pour les nœuds maîtres LIN [SWS_Lin_00166].

Cette note d'utilisation a été générée automatiquement à partir de la spécification AUTOSAR R20-11.

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : dd333dd75b58 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Lin_GoToSleepInternal définit l'état du canal LIN adressé sur LIN_CH_SLEEP, active la détection du réveil et fait passer de manière optionnelle l'unité matérielle LIN dans un mode d'économie d'énergie réduit, pour autant que le matériel le prenne en charge [SWS_Lin_00167]. L'adressage du canal LIN souhaité s'effectue via le paramètre d'entrée Channel de type uint8, tandis qu'aucun autre paramètre d'entrée ou de sortie n'est présent [SWS_Lin_00167].

Le résultat de l'exécution est signalé de façon synchrone via la valeur de retour de type Std_ReturnType [SWS_Lin_00167] :

  • E_OK : la commande de passage en mode sommeil a été acceptée avec succès [SWS_Lin_00167].
  • E_NOT_OK : la commande a été rejetée en raison de la survenance d'une erreur de développement ou d'une erreur de production [SWS_Lin_00167].

Concernant la concurrence et le contexte d'appel, Lin_GoToSleepInternal est spécifiée comme non réentrante (Non Reentrant) [SWS_Lin_00167]. Les entités logicielles appelantes doivent donc garantir que les appels se font séquentiellement et ne se chevauchent pas de manière concurrente. La fonction est définie sous l'ID de service 0x09 et est disponible via le fichier d'en-tête Lin.h [SWS_Lin_00167].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6a03f55b81c5 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et contexte d'appel

La fonction Lin_Wakeup appartient au module de pilote Lin de la plateforme AUTOSAR Classic [SWS_Lin_00169]. Son but consiste à générer une impulsion de réveil (Wake-up Pulse) sur le canal de bus adressé et à faire passer immédiatement l'état du canal à LIN_CH_OPERATIONAL [SWS_Lin_00169]. L'interface est mise à disposition via le fichier d'en-tête Lin.h avec l'ID de service 0x07 et la signature Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

Comme paramètre d'entrée, la fonction prend Channel de type uint8, ce qui permet de spécifier le canal LIN à piloter [SWS_Lin_00169]. Aucun paramètre d'entrée/sortie ou de sortie pure n'est présent [SWS_Lin_00169]. Le comportement d'exécution est asynchrone (Asynchronous) ; le retour de la fonction confirme donc seulement l'acceptation de la requête, tandis que l'impulsion physique de réveil est générée ultérieurement sur le bus [SWS_Lin_00169].

Valeurs de retour et gestion des erreurs

Le résultat de l'acceptation de la requête est signalé via le type de retour Std_ReturnType [SWS_Lin_00169] :

  • E_OK : la demande de réveil a été acceptée par le pilote LIN et est en cours de traitement [SWS_Lin_00169].
  • E_NOT_OK : la requête a été rejetée, car une erreur de développement ou de production est survenue [SWS_Lin_00169].

Concurrence et restrictions

Selon la spécification, la fonction est classée comme non réentrante (Non Reentrant) [SWS_Lin_00169]. Les appels ne doivent donc pas être effectués avec interruption ou de manière concurrente depuis différents contextes d'exécution pour la même instance de pilote. Les composants appelants doivent veiller à une synchronisation appropriée.

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5812acd7bb93 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Lin_WakeupInternal, mise à disposition via l’en-tête Lin.h, fait passer de manière asynchrone un canal LIN à l’état de fonctionnement LIN_CH_OPERATIONAL, sans émettre d’impulsion de réveil sur le bus LIN physique [SWS_Lin_00256]. Elle traite les demandes de réveil internes de l’interface LIN supérieure, pour lesquelles aucun signal de réveil de bus ne doit être émis [SWS_Lin_00262]. L’appel s’effectue via le paramètre Channel de type uint8. La fonction renvoie E_OK si la demande de réveil a été acceptée, ou E_NOT_OK si la demande a été rejetée ou si une erreur de développement ou de production est présente [SWS_Lin_00256].

Pour le contexte d’appel et la concurrence, Lin_WakeupInternal est non réentrante (Non Reentrant) [SWS_Lin_00256]. Comme condition stricte d’ordonnancement, la machine d’état du canal adressé doit se trouver au moment de l’appel dans l’état de repos LIN_CH_SLEEP [SWS_Lin_00260].

Lorsque la détection des erreurs de développement est activée, le module surveille les conditions d’erreur suivantes et signale les erreurs de développement correspondantes :

  • LIN_E_UNINIT : appel de la fonction avant l’initialisation du module pilote LIN [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL : le paramètre de canal transmis est non valide ou le canal adressé est inactif [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION : une transition d’état non autorisée est présente, car le canal LIN ne se trouve pas dans l’état LIN_CH_SLEEP [SWS_Lin_00260].

Cette note d'utilisation a été générée automatiquement sur la base des exigences de la spécification.

Guide de l'implémenteur à venir (complexité 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e48ff51e4fe8 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type d’énumération Lin_FrameCsModelType sert, conformément à [SWS_Lin_00229], à définir le modèle de somme de contrôle utilisé pour une trame LIN individuelle. La définition de type est disponible par défaut via l’en-tête Lin_GeneralTypes.h [SWS_Lin_00229].

Pour la configuration, deux valeurs sont disponibles conformément à [SWS_Lin_00229] :

  • LIN_ENHANCED_CS : sélectionne le modèle de somme de contrôle étendu (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS : sélectionne le modèle de somme de contrôle classique (Classic checksum model) [SWS_Lin_00229].

En tant que simple type de données, Lin_FrameCsModelType ne définit lui-même aucune interface de fonction, valeur de retour ou message d’erreur DET/DEM [SWS_Lin_00229]. L’utilisation devrait principalement avoir lieu en tant que paramètre ou élément au sein de descripteurs de configuration et de trame dans le module Lin (interprétation), afin d’indiquer au pilote selon quel algorithme la somme de contrôle de trame est vérifiée lors de l’émission ou de la réception. Question Q-6d3354059d0641df (ouverte) Un traitement des erreurs pour les valeurs non valides doit donc probablement être pris en charge au niveau des API de traitement du pilote ou de la configuration du module (interprétation). Question Q-06e26f4bcff1e520 (ouverte)

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité 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().

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7c3f3f6172fb Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type d'énumération Lin_StatusType est fourni via Lin_GeneralTypes.h et définit les états de fonctionnement ainsi que de transmission pour les canaux LIN et les trames LIN, qui sont signalés en tant que valeur de retour du service API Lin_GetStatus() [SWS_Lin_00233].

Les valeurs d'état se divisent en états de canal et en valeurs d'opérations de trame [SWS_Lin_00233] :

  • État du canal : LIN_OPERATIONAL représente le fonctionnement normal, dans lequel le canal LIN est prêt pour la transmission de l'en-tête suivant et aucune donnée d'une trame précédente n'est présente (par exemple après l'initialisation). En revanche, LIN_CH_SLEEP représente l'état de repos du canal, dans lequel la détection de réveil (Wake-up) est activée pour les nœuds esclaves [SWS_Lin_00233].
  • Transmissions en cours : LIN_TX_BUSY caractérise un envoi en cours de l'en-tête ou de la réponse. LIN_RX_BUSY signale une opération de réception en cours, dans laquelle au moins un octet de réponse est déjà arrivé, mais pas encore l'octet final de somme de contrôle [SWS_Lin_00233].
  • Achèvement réussi : LIN_TX_OK confirme la transmission réussie, tandis que LIN_RX_OK indique la réception sans erreur d'une réponse complète [SWS_Lin_00233].
  • États d'erreur et délais d'attente (timeouts) : LIN_NOT_OK indique des erreurs de développement ou de production. Lors d'opérations d'émission, le type fait la distinction entre LIN_TX_HEADER_ERROR (erreur lors de l'envoi de l'en-tête due à une discordance de données, une erreur de parité d'identifiant ou des erreurs physiques de bus) et LIN_TX_ERROR (erreur lors de la transmission de la réponse due à une discordance de données ou des erreurs de bus). Côté réception, LIN_RX_ERROR caractérise des erreurs de réception telles que des erreurs de cadrage (framing), de dépassement de capacité (overrun), de somme de contrôle ou des réponses incomplètes ; LIN_RX_NO_RESPONSE signale l'absence totale d'octets de réponse [SWS_Lin_00233].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 34669dffb4d6 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énuméré Lin_SlaveErrorType représente les types d'erreurs spécifiques d'un esclave LIN qui sont détectés pendant la réception de l'en-tête ainsi que pendant la transmission ou la réception de la réponse [SWS_Lin_91140]. La définition du type est mise à disposition via le fichier d'en-tête Lin_GeneralTypes.h [SWS_Lin_91140].

États d'erreur et plage de valeurs

L'énumération couvre les erreurs pendant les différentes phases de la communication LIN [SWS_Lin_91140] :

  • LIN_ERR_HEADER : signale une erreur lors de la réception de l'en-tête LIN [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT : indique une erreur de cadrage (framing) ou une erreur de bit d'arrêt dans la réponse [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM : caractérise une erreur de somme de contrôle de la réponse reçue [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT : signale une erreur de surveillance de bit (bit monitoring) d'un bit de données émis dans la réponse [SWS_Lin_91140].
  • LIN_ERR_NO_RESP : signale qu'aucune réponse à l'en-tête n'a été reçue [SWS_Lin_91140].
  • LIN_ERR_INC_RESP : survient lorsqu'une réponse incomplète a été reçue ou transmise [SWS_Lin_91140].

Utilisation et restrictions

Interprétation : étant donné que l'extrait de spécification présent ne contient aucune signature de fonction concrète, le type devrait servir de valeur de retour ou de paramètre d'état dans les notifications adressées aux modules de niveau supérieur tels que le LIN Interface. Question Q-6a9c54976345ca2b (ouverte) D'autres détails concernant la réentrance, les contextes d'appel ou l'exécution synchrone ou asynchrone ne figurent pas dans l'extrait.

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification d'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#2bc85c56
Content hash
2bc85c56
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

Initialisation et état

Lin_GetStatus fonction

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 fonction

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Services

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

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GoToSleep fonction

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 fonction

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 fonction

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

Types

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