DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

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

Guía del móduloGENERADO POR IA

Controla el hardware LIN y ofrece al LIN Interface servicios para tramas, estado de reposo y wake-up por canal.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: ea366bb8619c Procedencia Preguntas abiertas (1)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Controla el hardware LIN y ofrece al LIN Interface servicios para tramas, estado de reposo y wake-up por canal.

El controlador LIN encapsula el hardware LIN del microcontrolador y proporciona al LIN Interface servicios relativos al canal para tramas, estado de reposo y wake-up. Los canales maestros inician tramas de forma asíncrona con Lin_SendFrame y las evalúan mediante Lin_GetStatus. Los canales esclavos reaccionan a cada cabecera recibida con una indicación al LIN Interface y, a continuación, transmiten, reciben o ignoran la respuesta ([SWS_Lin_00280]). Qué servicios están disponibles depende del tipo de nodo configurado; los servicios maestros solo existen si hay al menos un canal maestro ([SWS_Lin_00287]).

El controlador LIN Lin es el controlador de hardware de la pila LIN. Encapsula controladores LIN o SCI/UART (SWS LIN Driver p. 9) y ofrece al LIN Interface servicios relativos al canal para tramas, estado de reposo y wake-up. Requiere de forma fija Dem_SetEventStatus, EcuM_SetWakeupEvent y LinIf_WakeupConfirmation ([SWS_Lin_00234]). Opcionalmente utiliza DET, Icu y los callbacks de esclavo del 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

Diagrama de contexto: Lin se sitúa entre LinIf y el hardware LIN, y notifica wake-ups y errores a EcuM, LinIf, DEM y DET. Fuentes: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init pasa el módulo de LIN_UNINIT a LIN_INIT ([SWS_Lin_00006], SWS LIN Driver p. 24). A continuación, cada canal conmuta entre LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (solo maestro) y LIN_CH_SLEEP. Para ello están disponibles Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup y Lin_WakeupInternal ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal estados de canal por canal (solo en LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (no utilizable) Reset->LIN_UNINIT tras reinicio LIN_INIT LIN_INIT (canales listos para el servicio) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participa en el clúster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (solo maestro) 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 (con pulso de wake-up) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sin pulso de wake-up)

Diagrama de estados: estados del módulo y estados del canal con sus transiciones. Que Lin_GetStatus concluya el paso hacia LIN_CH_SLEEP es una interpretación del diagrama. Fuentes: SWS LIN Driver p. 24, [SWS_Lin_00166]

Los canales maestros y esclavos funcionan de manera fundamentalmente distinta. Un maestro inicia tramas de forma asíncrona con Lin_SendFrame y consulta el resultado más tarde con Lin_GetStatus ([SWS_Lin_00191], [SWS_Lin_00168]). Estos servicios solo existen si al menos un canal está configurado como maestro ([SWS_Lin_00287]). Un esclavo notifica cada cabecera mediante LinIf_HeaderIndication ([SWS_Lin_00280]). En función de Drc, transmite, recibe o ignora a continuación la respuesta y la concluye con LinIf_TxConfirmation o LinIf_RxIndication ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Lin_CheckWakeup comprueba los wake-ups procedentes del bus y los notifica a EcuM y LinIf ([SWS_Lin_00160]). En caso de error, los usos indebidos se envían a la DET, como por ejemplo LIN_E_UNINIT ([SWS_Lin_00258]). Un timeout de hardware se notifica como LIN_E_TIMEOUT al DEM ([SWS_Lin_00290]). Un canal maestro devuelve los errores de bus como estado, mientras que un canal esclavo los notifica a través de LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Rol, límite del sistema y referencia de instancia del controlador LIN

El controlador LIN Lin encapsula el hardware LIN del microcontrolador. Proporciona al LIN Interface (LinIf) servicios relativos al canal: transmitir y recibir tramas, poner canales en reposo y despertarlos, así como comprobar wake-ups. Todos los servicios están disponibles a través de Lin.h ([SWS_Lin_00191], [SWS_Lin_00160]). Como hardware, la especificación menciona tres tipos de LIN-Hardware-Units: controladores LIN completos, SCI/UART simples y SCI/UART avanzados. Cada uno de ellos está conectado a un cluster LIN a través de circuitos integrados transceptores (SWS LIN Driver p. 9). El propio controlador no proporciona funciones de callback (SWS LIN Driver p. 49). En su lugar, llama a funciones de su entorno.

Las interfaces externas obligatorias son Dem_SetEventStatus, EcuM_SetWakeupEvent y LinIf_WakeupConfirmation ([SWS_Lin_00234]). Opcionalmente, el controlador utiliza, entre otras:

  • Det_ReportError y EcuM_CheckWakeup,
  • Icu_EnableNotification y Icu_DisableNotification,
  • para canales esclavos, los callbacks LinIf_HeaderIndication, LinIf_RxIndication y LinIf_LinErrorIndication ([SWS_Lin_00235]).

[SWS_Lin_00226] enumera los tipos importados como NetworkHandleType, EcuM_WakeupSourceType o 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

Diagrama de contexto: Lin se sitúa entre LinIf y la LIN-Hardware-Unit. El controlador notifica wake-ups a EcuM y LinIf, y errores a DEM y DET. Fuentes: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver p. 9

El controlador es particionable. Funciona en cada partición como una instancia independiente, y una llamada a la API solo afecta a la partición en la que se realiza ([SWS_Lin_CONSTR_00270]). Si LinEcucPartitionRef hace referencia a particiones, LinChannelEcucPartitionRef debe hacer referencia exactamente a una de ellas ([SWS_Lin_CONSTR_00291]). LinChannel y LinTrcvChannel de un canal de comunicación deben hacer referencia a la misma partición ([SWS_Lin_CONSTR_00279]). El módulo rechaza asignaciones de partición no compatibles con la implementación ([SWS_Lin_00269]). Para cada canal se configuran, entre otros, la velocidad en baudios, el ID de canal, LinChannelWakeupSupport y el tipo de nodo LinNodeType. Esta descripción del contenedor procede de una release posterior (SWS LIN Driver p. 60).

Estados de módulo y de canal desde Lin_Init hasta el estado de reposo

Tras el reset, el módulo se encuentra en el estado LIN_UNINIT y no está operativo. Lin_Init lo conduce a LIN_INIT; allí, cada canal disponible está listo para el servicio (SWS LIN Driver p. 24). Lin_Init recibe un puntero a una estructura Lin_ConfigType. Su contenido es específico del hardware; contiene los datos de inicialización para el controlador, la Hardware-Unit y los canales ([SWS_Lin_00006], [SWS_Lin_00227]). El entorno debe llamar a Lin_Init solo una vez en tiempo de ejecución (SWS LIN Driver p. 24).

Dentro de LIN_INIT, cada canal tiene su propio estado:

  • LIN_CH_OPERATIONAL: el canal participa en el cluster.
  • LIN_CH_SLEEP: la detección de wake-up está activa; en su caso, el hardware se encuentra en modo de bajo consumo.
  • LIN_CH_SLEEP_PENDING: solo para canales maestros, tras Lin_GoToSleep.

Referencias: SWS LIN Driver p. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal sitúa el canal directamente en LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup conduce de nuevo a LIN_CH_OPERATIONAL con pulso de wake-up, y Lin_WakeupInternal sin pulso ([SWS_Lin_00169], [SWS_Lin_00256]).

Interpretación: es de esperar que Lin_GetStatus concluya la transición de LIN_CH_SLEEP_PENDING a LIN_CH_SLEEP. Pregunta Q-bb592e1d2ab668f0 (abierta) El diagrama muestra Lin_GetStatus como transición en la parte del maestro, y el LIN Interface espera el valor de retorno LIN_CH_SLEEP al comprobar el comando go-to-sleep (SWS LIN Interface p. 56).

LinZustaende cluster_kanal estados de canal por canal (solo en LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (no utilizable) Reset->LIN_UNINIT tras reinicio LIN_INIT LIN_INIT (canales listos para el servicio) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participa en el clúster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (solo maestro) 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 (con pulso de wake-up) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sin pulso de wake-up)

Diagrama de estados: Lin_Init pasa el módulo de LIN_UNINIT a LIN_INIT. En él, cada canal conmuta entre funcionamiento y reposo mediante servicios de sleep y wake-up; la transición mediante Lin_GetStatus es una interpretación. Fuentes: SWS LIN Driver p. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Descripción de trama mediante Lin_PduType y mapeo de datos

Entre LinIf y el controlador, Lin_PduType describe una trama. La estructura contiene Pid, el modelo de suma de comprobación Cs, la dirección de la respuesta Drc, la longitud de datos Dl y el puntero a datos SduPtr ([SWS_Lin_00232]). Los tipos de elementos:

  • Lin_FramePidType: identificador de 0 a 0x3F con dos bits de paridad, rango de valores de 0 a 0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: de 1 a 8 bytes de datos ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS o LIN_CLASSIC_CS ([SWS_Lin_00229]). El controlador debe ser capaz de calcular ambas sumas de comprobación ([SWS_Lin_00019]).

Lin_FrameResponseType determina cómo gestiona el nodo la respuesta ([SWS_Lin_00230]): la transmite él mismo (LIN_FRAMERESPONSE_TX), recibe una respuesta externa relevante (LIN_FRAMERESPONSE_RX) o la ignora (LIN_FRAMERESPONSE_IGNORE). En memoria, el byte transmitido en primer lugar se encuentra en el elemento 0, y el transmitido en último lugar, en el elemento n-1 (SWS LIN Driver p. 30). Si el hardware no puede almacenar bytes en búfer, como en una UART simple, el controlador proporciona un búfer temporal. La transmisión con comprobación de relectura y la recepción se ejecutan de forma no bloqueante (SWS LIN Driver p. 28).

Canales maestros: Lin_SendFrame y consulta de estado

En canales maestros, LinIf inicia cada frame con el Lin_SendFrame asíncrono. El servicio envía la cabecera LIN y, dado el caso, la respuesta ([SWS_Lin_00191]). Esto se aplica a entradas de recepción, transmisión y slave-to-slave del schedule (SWS LIN Interface p. 34, SWS LIN Interface p. 37, SWS LIN Interface p. 40).

LinIf consulta el resultado con el Lin_GetStatus síncrono: como muy pronto tras la longitud máxima de frame y como muy tarde con la siguiente entrada vencida del schedule (SWS LIN Interface p. 35, [SWS_Lin_00168]). El servicio devuelve un Lin_StatusType, por ejemplo LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY o LIN_RX_NO_RESPONSE. Mediante Lin_SduPtr devuelve adicionalmente un puntero al búfer de recepción sombra o de hardware ([SWS_Lin_00233]).

Los datos recibidos permanecen consistentes hasta que el siguiente frame se haya recibido con éxito o cambie el estado del canal. El procesamiento completo de recepción puede situarse en Lin_GetStatus (SWS LIN Driver p. 30). En frames desencadenados por eventos (event-triggered frames) se aplica (SWS LIN Interface p. 127, SWS LIN Interface p. 129):

  • LIN_RX_NO_RESPONSE no evalúa LinIf como error.
  • LIN_RX_ERROR se considera colisión y conduce al cambio al schedule de resolución de colisiones.

Lin_SendFrame, Lin_GoToSleep y Lin_GetStatus solo existen si al menos un canal está configurado como maestro mediante LinNodeType ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). En R20-11, estos servicios están especificados como no reentrantes ([SWS_Lin_00168]). Versiones posteriores permiten la reentrancia para diferentes canales (SWS LIN Driver p. 48); para R20-11 se aplica el requisito.

tramitación de frames en un canal maestroBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: entrada de schedule vencidaLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKasíncrono: header y responsese ejecutan de forma no bloqueanteUse Case: comprobación de estado a partir de la longitud máxima de framelooppor cada llamada a MainFunction, mientras el frame siga ejecutándoseLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKaceptar datos a través de Lin_SduPtr (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,ninguna acciónLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Diagrama de secuencia: El maestro inicia un frame de forma asíncrona con Lin_SendFrame y evalúa el resultado en llamadas posteriores a MainFunction a través de Lin_GetStatus. Fuentes: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface p. 128, SWS LIN Interface p. 129, SWS LIN Interface p. 40

Canales esclavos: procesamiento de respuesta guiado por cabecera

Un canal esclavo debe poder recibir una cabecera en cualquier momento en LIN_CH_OPERATIONAL ([SWS_Lin_00272]). Para cada cabecera, el driver llama a LinIf_HeaderIndication. En ello, PduPtr->Pid contiene el PID recibido y PduPtr->SduPtr apunta a su búfer de hardware o sombra ([SWS_Lin_00280]). Si el hardware no detecta PIDs no válidos, el driver reenvía el PID sin verificar ([SWS_Lin_00271]). Tras el retorno E_OK, evalúa PduPtr->Drc ([SWS_Lin_00282]):

  • Con LIN_FRAMERESPONSE_TX, utiliza Cs, Dl y SduPtr para enviar la respuesta ([SWS_Lin_00283]).
  • Con LIN_FRAMERESPONSE_RX, configura la recepción con Cs y Dl ([SWS_Lin_00284]).

Si LinIf_HeaderIndication devuelve E_NOT_OK o si Drc es igual a LIN_FRAMERESPONSE_IGNORE, el driver ignora la respuesta ([SWS_Lin_00286]). En tal caso no notifica nada hasta la siguiente cabecera ([SWS_Lin_00276]). Reenvía directamente mediante LinIf_RxIndication una respuesta recibida con éxito y confirma mediante LinIf_TxConfirmation una enviada ([SWS_Lin_00274], [SWS_Lin_00275]). Cada respuesta relevante debe haberse completado con uno de estos callbacks o con LinIf_LinErrorIndication antes de que se notifique la siguiente cabecera ([SWS_Lin_00285]). El esquema de recepción distingue dos variantes de hardware: controlador LIN por hardware y UART simple, en la que el driver copia cada byte a un búfer mediante interrupción (SWS LIN Driver p. 57).

procesamiento de header y response en un canal esclavoLinController/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 y Drc = LIN_FRAMERESPONSE_TXenviar response con Cs, Dl, SduPtrInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK y Drc = LIN_FRAMERESPONSE_RXconfigurar recepción con Cs, DlInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK o Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;sin notificación hasta la siguiente cabeceraerror de bus al transmitir/recibir: cancelación yLinIf_LinErrorIndication(Channel, ErrorStatus)

Diagrama de secuencia: En un canal esclavo, cada cabecera desencadena una indicación a LinIf. En función de Drc, el driver envía, recibe o ignora la respuesta. Fuentes: [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

Reposo, despertar y detección de wake-up

Solo un maestro puede enviar el comando Go-to-sleep. Lin_GoToSleep lo envía de forma asíncrona según LIN 2.1 y establece el canal en LIN_CH_SLEEP_PENDING incluso en caso de transmisión errónea. Si LinChannelWakeupSupport está configurado, el servicio activa además la monitorización del bus ([SWS_Lin_00166], SWS LIN Driver p. 43). Para esclavos, Lin_GoToSleep no es aplicable; estos utilizan Lin_GoToSleepInternal (SWS LIN Driver p. 31). Este servicio establece síncronamente LIN_CH_SLEEP, activa la detección de wake-up y pone opcionalmente el hardware en un modo de bajo consumo ([SWS_Lin_00167], SWS LIN Driver p. 44). Cada canal acepta solicitudes de reposo de forma independiente de los demás (SWS LIN Driver p. 31).

Para despertar hay dos servicios disponibles. Lin_Wakeup envía un pulso de wake-up al bus, Lin_WakeupInternal pone en servicio el canal sin pulso ([SWS_Lin_00169], [SWS_Lin_00262]). Lin_CheckWakeup comprueba un wake-up procedente del bus. Si el servicio detecta un evento, por ejemplo un nivel de RxD bajo permanente, lo notifica de inmediato mediante EcuM_SetWakeupEvent al EcuM y mediante LinIf_WakeupConfirmation a LinIf ([SWS_Lin_00160], SWS LIN Driver p. 42). LinIf_CheckWakeup decide en función de la fuente de wake-up si se llama a Lin_CheckWakeup o a LinTrcv_CheckWakeup (SWS LIN Interface p. 112). LIN no necesita una validación de wake-up (SWS EcuM p. 173).

comprobación de un wake-up desde el bus LINLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,supervisión de bus activa (LinChannelWakeupSupport)evento de wake-up (interrupción o sondeo)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(fuente controlador LIN; de lo contrario 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 no requiere validación de wake-up

Diagrama de secuencia: Un wake-up del bus se reenvía a Lin_CheckWakeup a través de EcuM y LinIf_CheckWakeup. El driver notifica un evento detectado a EcuM y LinIf. Fuentes: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver p. 42, SWS LIN Interface p. 112, SWS EcuM p. 147

Comportamiento en caso de error

Con la detección de errores de desarrollo activada, los servicios notifican el uso incorrecto a la DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; para Lin_Wakeup de forma análoga SWS LIN Driver p. 45):

  • LIN_E_UNINIT en caso de llamada antes de la inicialización,
  • LIN_E_INVALID_CHANNEL en caso de canal no válido o inactivo,
  • LIN_E_STATE_TRANSITION en caso de un wake-up fuera de LIN_CH_SLEEP.

Lin_GetVersionInfo notifica un puntero NULL con LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver p. 41). Con la DET desactivada, Lin_CheckWakeup devuelve E_NOT_OK para un canal no válido (SWS LIN Driver p. 42). De forma general, E_NOT_OK y LIN_NOT_OK indican que se ha producido un error de desarrollo o de producción ([SWS_Lin_00191], [SWS_Lin_00233]).

LIN_E_TIMEOUT está especificado como error de producción. Si tras una modificación en registros de control de hardware debe esperarse a un cambio de estado, un timeout configurable protege esta espera. Si este expira, se notifica el error ([SWS_Lin_00290]). La notificación se envía mediante Dem_SetEventStatus ([SWS_Lin_00234]) al evento referenciado en LinDemEventParameterRefs (SWS LIN Driver p. 65).

El driver notifica los errores de comunicación de manera diferente según el tipo de nodo. Los canales maestros los entregan como estado de Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR en caso de errores de relectura, paridad o bus en la cabecera,
  • LIN_TX_ERROR en caso de transmisión errónea de respuesta,
  • LIN_RX_ERROR en caso de errores de framing, overrun o checksum, así como respuesta demasiado corta.

Los canales esclavos cancelan el procesamiento del frame y llaman a LinIf_LinErrorIndication con un Lin_SlaveErrorType ([SWS_Lin_00277], [SWS_Lin_91140]). Notifican como LIN_ERR_HEADER los eventos de bus no válidos mientras esperan una cabecera ([SWS_Lin_00281]).

LinFehlerpfade start evento de error en el controlador LIN art ¿tipo de error? start->art dev error de desarrollo (solo con la detección DET activada) art->dev uso incorrecto de la API hw tiempo de espera agotado al esperar tras la modificación de registros de control de hardware art->hw Hardwarefehler com error de comunicación en el 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 devolución de E_NOT_OK o LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ ¿tipo de nodo del canal? com->typ master maestro: estado de error en 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

Diagrama de actividades: Los errores de desarrollo van a la DET, el timeout de hardware al DEM. Un canal maestro notifica errores de comunicación de bus como estado, un canal esclavo como indicación de error. Fuentes: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

Más evidencia detallada

Guía generada por IA. Se apoya exclusivamente en las referencias suministradas; algunos pasajes de documentos proceden de versiones posteriores. Son normativos los requisitos de R20-11. Las afirmaciones marcadas como interpretación no están directamente justificadas.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2e00d30976de Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona Lin_Init sirve para inicializar el módulo del controlador LIN de la plataforma AUTOSAR Classic conforme a la especificación [SWS_Lin_00006]. La interfaz se proporciona a través de la cabecera Lin.h y se direcciona internamente mediante el Service ID 0x00 [SWS_Lin_00006].

Para el uso y la llamada a la función se aplican las siguientes condiciones de parámetros y de interfaz:

  • Parámetros de entrada: Como único parámetro de entrada se espera Config [SWS_Lin_00006]. Se trata de un puntero al conjunto de datos de configuración del controlador LIN del tipo const Lin_ConfigType* [SWS_Lin_00006]. Para esta interfaz no se prevén ni parámetros de entrada/salida ni parámetros exclusivos de salida [SWS_Lin_00006].
  • Valor de retorno: La función no devuelve ningún valor de retorno (void) [SWS_Lin_00006].
  • Semántica de ejecución: El procesamiento se realiza de forma completamente síncrona (Synchronous), de modo que los pasos de inicialización del controlador se procesan directamente durante la llamada a la función [SWS_Lin_00006].

En lo que respecta al contexto de llamada y a la concurrencia, se establece que Lin_Init no es reentrante (Non Reentrant) [SWS_Lin_00006]. Interpretación: Dado que la función realiza la inicialización fundamental del módulo del controlador LIN y no está diseñada para ser reentrante, es probable que se llame típicamente durante la fase de arranque del sistema global, antes de utilizar otros servicios del controlador LIN. Pregunta Q-d535602a0d4708ce (abierta) Probablemente no está permitida una llamada simultánea o múltiple desde diferentes contextos de ejecución.

Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 706d1bc705a9 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona Lin_CheckWakeup sirve para comprobar si se ha producido un evento de wakeup en un canal LIN direccionado [SWS_Lin_00160]. La interfaz está disponible a través del archivo de cabecera Lin.h y posee el Service ID 0x0a [SWS_Lin_00160]. Para identificar el canal, la función recibe el parámetro Channel del tipo de datos uint8 [SWS_Lin_00160]. No se prevén más parámetros de entrada o de salida para esta interfaz [SWS_Lin_00160].

El resultado de la ejecución se notifica de forma síncrona a través del tipo de retorno Std_ReturnType [SWS_Lin_00160]. El valor de estado E_OK indica que no se ha producido ningún error durante la ejecución de la llamada a la API [SWS_Lin_00160]. Si, por el contrario, se produce un error durante la ejecución, el servicio devuelve el valor de retorno E_NOT_OK [SWS_Lin_00160]. En las fuentes no se especifican códigos de error específicos ni notificaciones a DET o DEM para este elemento.

En cuanto al comportamiento de concurrencia, Lin_CheckWakeup se define como no reentrante (Non Reentrant) [SWS_Lin_00160]. Por tanto, los llamadores deben asegurarse de que las llamadas se realicen de forma secuencial y de que no tenga lugar una ejecución simultánea. Dado que el contexto de llamada exacto no está definido con mayor detalle en la especificación, es de suponer que la llamada probablemente sea iniciada por capas superiores, como la gestión de wakeup o el ECU State Manager. Pregunta Q-40221056a2e2c042 (abierta)

Este texto ha sido generado por una IA; todas las afirmaciones proceden de las especificaciones del estándar AUTOSAR.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fb92456f64e2 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función Lin_SendFrame sirve para enviar una cabecera LIN y, en caso necesario, la respuesta LIN correspondiente, y está prevista exclusivamente para nodos maestro LIN [SWS_Lin_00191]. Mediante el puntero PduInfoPtr se define la dirección de transmisión de la respuesta de la trama, la cual puede representar una respuesta de maestro, una respuesta de esclavo o una comunicación de esclavo a esclavo [SWS_Lin_00191].

Llamada y parámetros: La ejecución de la función se realiza de forma asíncrona [SWS_Lin_00191]. En la llamada se pasan los siguientes parámetros de entrada:

  • Channel: Determina el canal LIN al que dirigirse como uint8 [SWS_Lin_00191].
  • PduInfoPtr: Puntero a una estructura del tipo Lin_PduType que contiene el identificador protegido (PID), el modelo de suma de comprobación (Checksum Model), el tipo de respuesta, la longitud de datos (Dl) y el puntero de datos a la SDU [SWS_Lin_00191].

Valores de retorno y comportamiento ante errores: La función devuelve el tipo de retorno Std_ReturnType [SWS_Lin_00191]:

  • E_OK: La orden de transmisión se ha recibido correctamente y se ha aceptado para su ejecución asíncrona [SWS_Lin_00191].
  • E_NOT_OK: La orden de transmisión ha sido rechazada porque existe un error de desarrollo (Development Error) o un error de producción (Production Error) [SWS_Lin_00191].

Concurrencia e integración: La interfaz está especificada como no reentrante (Non Reentrant), motivo por el cual deben evitarse llamadas paralelas en el mismo canal [SWS_Lin_00191]. La función posee el Service ID 0x04 y se incluye a través del archivo de cabecera Lin.h [SWS_Lin_00191].

Esta nota de uso se creó de manera automatizada a partir de la especificación AUTOSAR R20-11.

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e15a8b1ff51c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Función y contexto de llamada

La función Lin_GoToSleep instruye al controlador LIN a enviar un comando de go-to-sleep en el canal LIN direccionado [SWS_Lin_00166]. Este servicio de controlador tiene el Service-ID 0x06 y se pone a disposición a través del archivo de cabecera Lin.h [SWS_Lin_00166]. La ejecución del servicio se realiza de forma asíncrona para quien llama [SWS_Lin_00166]. La declaración de la función es Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Parámetros y valores de retorno

Como único parámetro de paso se transmite Channel de tipo uint8, el cual identifica el canal LIN al que se debe acceder [SWS_Lin_00166]. No existen parámetros de entrada o salida adicionales [SWS_Lin_00166].

El valor de retorno de tipo Std_ReturnType proporciona información sobre la aceptación de la solicitud [SWS_Lin_00166]:

  • E_OK: el comando de go-to-sleep ha sido aceptado con éxito por el controlador [SWS_Lin_00166].
  • E_NOT_OK: el comando no ha sido aceptado porque se ha producido un error de desarrollo o un error de producción [SWS_Lin_00166].

Restricciones y concurrencia

En cuanto a la concurrencia, la función está declarada como no reentrante (Non Reentrant) [SWS_Lin_00166]. Como restricción funcional fundamental, Lin_GoToSleep está previsto exclusivamente para nodos LIN master [SWS_Lin_00166].

Esta nota de uso se generó de forma automatizada a partir de la especificación AUTOSAR R20-11.

función 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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: dd333dd75b58 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona Lin_GoToSleepInternal establece el estado del canal LIN direccionado en LIN_CH_SLEEP, activa la detección de wake-up y pone opcionalmente la unidad de hardware LIN en un modo de bajo consumo de energía reducido, siempre que el hardware lo admita [SWS_Lin_00167]. El direccionamiento del canal LIN deseado se realiza mediante el parámetro de entrada Channel de tipo uint8, mientras que no existen otros parámetros de entrada o salida [SWS_Lin_00167].

El resultado de la ejecución se señaliza de forma síncrona mediante el valor de retorno de tipo Std_ReturnType [SWS_Lin_00167]:

  • E_OK: el comando para pasar al modo de reposo fue aceptado con éxito [SWS_Lin_00167].
  • E_NOT_OK: el comando fue rechazado porque se ha producido un error de desarrollo o de producción [SWS_Lin_00167].

En cuanto a la concurrencia y el contexto de llamada, Lin_GoToSleepInternal está especificada como no reentrante (Non Reentrant) [SWS_Lin_00167]. Las unidades de software llamadoras deben garantizar por tanto que las llamadas se realicen de forma secuencial y no se superpongan de forma concurrente. La función está definida bajo el Service-ID 0x09 y disponible a través del archivo de cabecera Lin.h [SWS_Lin_00167].

Esta nota de uso se generó de forma automatizada sobre la base de la especificación.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6a03f55b81c5 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función Lin_Wakeup pertenece al módulo de controlador Lin de la plataforma AUTOSAR Classic [SWS_Lin_00169]. Su propósito consiste en generar un pulso de activación (Wake-up Pulse) en el canal de bus direccionado y pasar el estado del canal inmediatamente a LIN_CH_OPERATIONAL [SWS_Lin_00169]. La interfaz se proporciona a través del archivo de cabecera Lin.h con el Service-ID 0x07 y la signatura Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

Como parámetro de entrada, la función recibe Channel de tipo uint8, con lo cual se especifica el canal LIN que se va a controlar [SWS_Lin_00169]. No hay parámetros de entrada/salida ni parámetros de salida puros [SWS_Lin_00169]. El comportamiento de ejecución es asíncrono (Asynchronous); el retorno de la función, por lo tanto, únicamente confirma la aceptación de la orden, mientras que el pulso de wake-up físico se genera posteriormente en el bus [SWS_Lin_00169].

Valores de retorno y tratamiento de errores

A través del tipo de retorno Std_ReturnType se notifica el resultado de la aceptación de la orden [SWS_Lin_00169]:

  • E_OK: la solicitud de wake-up fue aceptada por el controlador LIN y se procesará [SWS_Lin_00169].
  • E_NOT_OK: la solicitud fue rechazada porque se ha producido un error de desarrollo o de producción [SWS_Lin_00169].

Concurrencia y restricciones

Según la especificación, la función está clasificada como no reentrante (Non Reentrant) [SWS_Lin_00169]. Por lo tanto, las llamadas no deben realizarse de forma interruptiva ni concurrente desde diferentes contextos de ejecución para la misma instancia del controlador. Los componentes llamadores deben asegurar una sincronización adecuada.

Esta nota de uso se ha generado automáticamente sobre la base de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5812acd7bb93 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función Lin_WakeupInternal, proporcionada a través de la cabecera Lin.h, pone un canal LIN de forma asíncrona en el estado operativo LIN_CH_OPERATIONAL sin emitir por ello un impulso de activación hacia el bus LIN físico [SWS_Lin_00256]. Procesa solicitudes internas de activación de la interfaz LIN superior en las que no se permite enviar una señal de wakeup de bus [SWS_Lin_00262]. La llamada se realiza a través del parámetro Channel de tipo uint8. La función devuelve E_OK si la solicitud de activación ha sido aceptada, o E_NOT_OK si la solicitud ha sido rechazada o si existe un error de desarrollo o de producción [SWS_Lin_00256].

Para el contexto de llamada y la concurrencia se aplica que Lin_WakeupInternal no es reentrante (Non Reentrant) [SWS_Lin_00256]. Como condición estricta de secuencia, la máquina de estados del canal direccionado debe encontrarse en el estado de reposo LIN_CH_SLEEP en el momento de la llamada [SWS_Lin_00260].

Con la detección de errores de desarrollo activada, el módulo supervisa las siguientes condiciones de error y notifica los errores de desarrollo correspondientes:

  • LIN_E_UNINIT: Llamada a la función antes de la inicialización del módulo del controlador LIN [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: El parámetro de canal transferido no es válido o el canal direccionado está inactivo [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: Existe una transición de estado no permitida, ya que el canal LIN no se encuentra en el estado LIN_CH_SLEEP [SWS_Lin_00260].

Esta nota de uso se generó automáticamente a partir de los requisitos de la especificación.

Guía del implementador pendiente (complejidad I1)

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

tipo Lin_FramePidType [SWS_Lin_00228] 📄 PDF

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

tipo Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e48ff51e4fe8 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración Lin_FrameCsModelType sirve, conforme a [SWS_Lin_00229], para determinar el modelo de suma de comprobación que se utiliza para una trama LIN individual. La definición del tipo está disponible de forma estándar a través de la cabecera Lin_GeneralTypes.h [SWS_Lin_00229].

Para la configuración se dispone de dos valores conforme a [SWS_Lin_00229]:

  • LIN_ENHANCED_CS: Selecciona el modelo de suma de comprobación mejorado (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS: Selecciona el modelo de suma de comprobación clásico (Classic checksum model) [SWS_Lin_00229].

Como tipo de datos puro, Lin_FrameCsModelType no define por sí mismo interfaces de funciones, valores de retorno ni mensajes de error DET/DEM [SWS_Lin_00229]. Es probable que su uso tenga lugar principalmente como parámetro o elemento dentro de descriptores de configuración y de trama en el módulo Lin (interpretación), para indicar al controlador según qué algoritmo se verifica la suma de comprobación de la trama durante la transmisión o recepción. Pregunta Q-6d3354059d0641df (abierta) Por lo tanto, un tratamiento de errores para valores no válidos probablemente deba interceptarse a nivel de las API del controlador de procesamiento o de la configuración del módulo (interpretación). Pregunta Q-06e26f4bcff1e520 (abierta)

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

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

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

tipo Lin_StatusType [SWS_Lin_00233] 📄 PDF

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7c3f3f6172fb Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo enumerado Lin_StatusType se proporciona a través de Lin_GeneralTypes.h y define los estados operativos y de transmisión para canales LIN y tramas LIN que se notifican como valor de retorno del servicio de API Lin_GetStatus() [SWS_Lin_00233].

Los valores de estado se dividen en estados de canal y valores de operación de trama [SWS_Lin_00233]:

  • Estado del canal: LIN_OPERATIONAL representa el funcionamiento normal en el que el canal LIN está listo para transmitir la siguiente cabecera y no existen datos de una trama anterior (p. ej., tras la inicialización). Por el contrario, LIN_CH_SLEEP representa el estado de reposo del canal, en el que la detección de wake-up está activada para nodos slave [SWS_Lin_00233].
  • Transmisiones en curso: LIN_TX_BUSY identifica una transmisión en curso de cabecera o respuesta. LIN_RX_BUSY señaliza un proceso de recepción en curso en el que ya ha llegado al menos un byte de respuesta, pero aún no el byte de checksum final [SWS_Lin_00233].
  • Finalización exitosa: LIN_TX_OK confirma la transmisión exitosa, mientras que LIN_RX_OK acredita la recepción sin errores de una respuesta completa [SWS_Lin_00233].
  • Estados de error y timeouts: LIN_NOT_OK indica errores de desarrollo o de producción. En operaciones de transmisión, el tipo distingue entre LIN_TX_HEADER_ERROR (error al transmitir la cabecera debido a discrepancia de datos, error de paridad de identificador o errores físicos de bus) y LIN_TX_ERROR (error en la transmisión de la respuesta debido a discrepancia de datos o errores de bus). En el lado de recepción, LIN_RX_ERROR identifica errores de recepción como errores de framing, overrun, checksum o respuestas incompletas; LIN_RX_NO_RESPONSE notifica la ausencia total de bytes de respuesta [SWS_Lin_00233].

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

tipo Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 34669dffb4d6 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración Lin_SlaveErrorType representa los tipos de error específicos de un esclavo LIN que se detectan durante la recepción de la cabecera, así como durante la transmisión o la recepción de la respuesta [SWS_Lin_91140]. La definición del tipo se pone a disposición a través del archivo de cabecera Lin_GeneralTypes.h [SWS_Lin_91140].

Estados de error y rango de valores

La enumeración cubre errores durante las diferentes fases de la comunicación LIN [SWS_Lin_91140]:

  • LIN_ERR_HEADER: Señaliza un error al recibir la cabecera LIN [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: Indica un error de trama (framing) o un error de bit de parada en la respuesta [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: Identifica un error de suma de comprobación (checksum) en la respuesta recibida [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: Notifica un error de monitorización de bits de un bit de datos transmitido en la respuesta [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: Señala que no se ha recibido ninguna respuesta a la cabecera [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: Se produce cuando se ha recibido o transmitido una respuesta incompleta [SWS_Lin_91140].

Uso y restricciones

Interpretación: Dado que el presente extracto de la especificación no contiene firmas de funciones concretas, es de suponer que el tipo sirva como valor de retorno o parámetro de estado en notificaciones a módulos de nivel superior, como la interfaz LIN. Pregunta Q-6a9c54976345ca2b (abierta) El extracto no contiene más detalles sobre reentrancia, contextos de llamada o ejecución síncrona o asíncrona.

Esta nota de uso se ha generado automáticamente a partir de la especificación de 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#33551c79
Content hash
33551c79
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

Inicialización y estado

Lin_GetStatus función

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 función

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Servicios

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

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GoToSleep función

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 función

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 función

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

Tipos

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