DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

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

Guía del móduloGENERADO POR IA

Controla circuitos transceptores de LIN: configurar y consultar modos de funcionamiento, detectar wakeups y notificarlos a la interfaz LIN.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 4cf0c894f837 Procedencia Preguntas abiertas (4)
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 circuitos transceptores de LIN: configurar y consultar modos de funcionamiento, detectar wakeups y notificarlos a la interfaz LIN.

El LIN Transceiver Driver controla el transceptor LIN físico de un canal y desacopla LinIf del hardware. Según LinTrcv_Init, el modo inicial es SLEEP. LinTrcv_SetOpMode cambia entre NORMAL, STANDBY y SLEEP y, en caso de cambio fallido, devuelve E_NOT_OK [SWS_LinTrcv_00002]. Los wakeups externos se detectan a través de la ICU y se notifican cuando LinIf invoca LinTrcv_CheckWakeup. En R20-11, E_OK significa en este contexto «wakeup detectado» [SWS_LinTrcv_00012]. Los tiempos de espera para cambios de estado deben implementarse con Tm_BusyWait1us16bit.

El LIN Transceiver Driver controla el transceptor LIN físico de un canal y desacopla la interfaz LIN del hardware. LinIf invoca sus servicios directamente: LinIf_SetTrcvMode, por ejemplo, invoca LinTrcv_SetOpMode y devuelve su resultado sin modificaciones [SWS_LinTrcv_00002] LinIf-SWS p. 90. Los estados de software y de hardware están separados. Qué estados de hardware cubre un modo de software lo decide la implementación LinTrcv-SWS p. 16.

El controlador reconoce los modos LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY y LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. Tras el encendido se encuentra inactivo. LinTrcv_Init lo activa con un conjunto de configuración [SWS_LinTrcv_00001]; el modo inicial es SLEEP LinTrcv-SWS p. 1. STANDBY es opcional y puede ser un estado puramente interno LinTrcv-SWS Fig. 7.1 p. 15.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (opcional, dado el caso solo interno) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Diagrama de estados: ciclo de vida desde Power-On pasando por LinTrcv_Init hasta los cambios de modo con LinTrcv_SetOpMode. Las transiciones opcionales están reconstruidas (interpretación). Fuentes: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168]

El controlador no detecta los wakeups externos mediante una ISR propia, sino a través de la ICU LinTrcv-SWS p. 17. LinIf los consulta con LinTrcv_CheckWakeup. En R20-11, E_OK significa en este contexto «wakeup detectado» [SWS_LinTrcv_00012]. Versiones posteriores lo definen de forma diferente. Un wakeup detectado se notifica a través de LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinTrcv_SetWakeupMode habilita la notificación, la bloquea o borra los eventos almacenados [SWS_LinTrcv_00169].

wakeup externo (valores de retorno según R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(al cambiar a STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegelo flanco en el pin de wakeup)La trayectoria desde la notificación de ICU hasta la llamadapor parte de LinIf queda fuera de LinTrcv(no descrito en el payload)LinTrcv_CheckWakeup(LinNetwork)wakeup en eladressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)establecer flag de wakeup del canalE_OKkein Wakeup erkanntE_NOT_OKUse Case: consultar causa de wakeup (mediante LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Diagrama de secuencia: wakeup externo desde la detección por ICU a través de LinTrcv_CheckWakeup y LinIf_WakeupConfirmation hasta la consulta del motivo. Fuentes: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS p. 17

Para el funcionamiento rigen estas condiciones de contorno:

  • Los tiempos de espera en cambios de estado deben implementarse con Tm_BusyWait1us16bit [SWS_LinTrcv_00171].
  • En sistemas multinúcleo, LinTrcvChannel y LinChannel de un canal deben referenciar a la misma partición [SWS_LinTrcv_00177].
  • En caso de comunicación perturbada hacia el transceptor, las consultas devuelven E_NOT_OK LinTrcv-SWS p. 26.

Los códigos de error de DET solo están documentados a partir de versiones posteriores. Dado que R21-11 depuró los códigos de error, sus nombres pueden diferir en R20-11 LinTrcv-SWS p. 1.

Rol entre la interfaz LIN y el circuito transceptor

El LIN Transceiver Driver (LinTrcv) encapsula el control del transceptor LIN físico. Su interfaz consta de siete servicios:

Todos los servicios son síncronos. Los estados de software del controlador están separados de los estados de hardware del circuito integrado. El componente puede admitir más transiciones que el controlador. Qué estados de hardware cubre un estado de software lo decide la implementación. No obstante, debe proporcionar completamente la funcionalidad descrita LinTrcv-SWS p. 16.

Hacia arriba, la interfaz LIN (LinIf) es el usuario documentado en el payload. Los servicios de LinIf invocan respectivamente un servicio de LinTrcv:

  • LinIf_SetTrcvMode invoca LinTrcv_SetOpMode y devuelve su valor de retorno sin modificaciones LinIf-SWS p. 90.
  • LinIf_GetTrcvMode invoca LinTrcv_GetOpMode LinIf-SWS p. 91.
  • LinIf_GetTrcvWakeupReason invoca LinTrcv_GetBusWuReason LinIf-SWS p. 92.
  • LinIf_SetTrcvWakeupMode invoca LinTrcv_SetWakeupMode LinIf-SWS p. 93.

Los tipos LinTrcv_TrcvModeType y LinTrcv_TrcvWakeupModeType están disponibles a través de Lin_GeneralTypes.h [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]. LinIf los utiliza directamente en sus firmas. El antiguo tipo propio LinIf_TrcvModeType fue sustituido en la versión 3.1.5 por LinTrcv_TrcvModeType LinIf-SWS p. 4.

Hacia abajo, el controlador utiliza los siguientes servicios:

El controlador notifica los wakeups detectados a LinIf a través de LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinIf establece a continuación el flag de wakeup del canal afectado LinIf-SWS p. 98.

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

Diagrama de contexto: LinTrcv se ubica entre LinIf y los servicios de bajo nivel de hardware Dio/Spi, Icu y Tm, y devuelve notificaciones de wakeups a LinIf. Fuentes: [SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS p. 17 LinTrcv-SWS Fig. 10.3 p. 45

Ciclo de vida de los modos de funcionamiento de Power-On a Sleep

El controlador reconoce tres modos de funcionamiento de software: LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY y LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. La figura 7.1 de la especificación los clasifica dentro de un ciclo de vida LinTrcv-SWS Fig. 7.1 p. 15:

  • Tras el encendido, el controlador se encuentra en el estado NOT_ACTIVE.
  • LinTrcv_Init lo transfiere al estado ACTIVE. Los tres modos se encuentran dentro de ACTIVE.
  • Una pérdida de tensión finaliza el ciclo de vida.

LinTrcv_Init recibe un puntero al conjunto de configuración seleccionado [SWS_LinTrcv_00001]. La estructura LinTrcv_ConfigType es específica de la implementación [SWS_LinTrcv_00172]. Desde la versión 4.3.1, el modo inicial tras la inicialización está limitado a LINTRCV_TRCV_MODE_SLEEP LinTrcv-SWS p. 1.

En el estado ACTIVE, LinTrcv_SetOpMode conmuta el estado interno del canal direccionado al modo transmitido [SWS_LinTrcv_00002] LinTrcv-SWS p. 25. El modo LINTRCV_TRCV_MODE_STANDBY es opcional. Puede ser un estado puramente interno que el hardware utiliza para las transiciones. Es posible que un hardware concreto no necesite todas las interfaces LinTrcv-SWS Fig. 7.1 p. 15. La especificación menciona además condiciones bajo las cuales LinTrcv_SetOpMode conmuta el canal a STANDBY. Estas condiciones están cortadas en el presente extracto y no se detallan aquí LinTrcv-SWS p. 25.

LinTrcv_GetOpMode proporciona en el parámetro de salida OpMode el estado de software actual del controlador [SWS_LinTrcv_00005] LinTrcv-SWS p. 26. Este no es necesariamente el estado del componente. Un llamador puede utilizarlo antes de un cambio de modo para comprobar en qué modo se encuentra el canal. A través de LinIf, esta consulta está disponible como LinIf_GetTrcvMode LinIf-SWS p. 91.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (opcional, dado el caso solo interno) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Diagrama de estados: tras el encendido (Power-On), el controlador está inactivo. LinTrcv_Init conduce a la zona activa con el modo inicial SLEEP; LinTrcv_SetOpMode cambia entre los modos. Las transiciones opcionales se han reconstruido a partir de los textos de la Fig. 7.1 (interpretación). Los cambios condicionados a STANDBY no se representan. Fuentes: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS p. 1

Cambios de modo y consultas a través de la interfaz LIN

Cada servicio direcciona un canal mediante el parámetro LinNetwork de tipo uint8 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]. En LinIf, el parámetro correspondiente se denomina Channel y tiene el tipo NetworkHandleType LinIf-SWS p. 90.

LinTrcv_SetOpMode es síncrono y no reentrante; el ID de servicio es 0x01. Los valores de retorno significan [SWS_LinTrcv_00002]:

  • E_OK: el estado del transceptor ha cambiado al modo solicitado.
  • E_NOT_OK: el cambio no se aceptó, ha fallado o el parámetro se encuentra fuera del rango admisible.

LinIf debe permitir la llamada para todos los transceptores y todos los modos, incluso si el hardware no admite un modo LinIf-SWS p. 90. El mapeo al hardware sigue siendo, por tanto, tarea de LinTrcv.

El controlador implementa los tiempos de espera en los cambios de estado con Tm_BusyWait1us16bit [SWS_LinTrcv_00171]. Dado que LinTrcv_SetOpMode opera de forma síncrona [SWS_LinTrcv_00002], es probable que este tiempo de espera activo se produzca dentro de la llamada y prolongue su tiempo de ejecución (interpretación). Pregunta Q-54fe21bbe7c737d9 (abierta) Al cambiar al modo de espera (standby), el controlador activa además los canales ICU para la detección de wakeup LinTrcv-SWS p. 17.

Los servicios de consulta son reentrantes. LinTrcv_GetBusWuReason proporciona el motivo de wakeup detectado en el tipo LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00007]. Entre sus valores se encuentran LINTRCV_WU_ERROR, LINTRCV_WU_NOT_SUPPORTED, LINTRCV_WU_BY_BUS y LINTRCV_WU_BY_PIN [SWS_LinTrcv_00170]. La precisión con la que se pueden diferenciar los motivos de wakeup depende en gran medida del hardware del transceptor LinTrcv-SWS p. 28. LinTrcv_GetVersionInfo devuelve la información de versión como Std_VersionInfoType [SWS_LinTrcv_00008] LinTrcv-SWS p. 29.

cambio de modo mediante LinIf_SetTrcvModeAufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)comprobar Channel(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:pines DIO o secuencia SPI)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)El tiempo de espera expiróoptOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(activar canales ICU para wakeup)E_OK / E_NOT_OKvalor de retorno deLinTrcv_SetOpMode

Diagrama de secuencias: un cambio de modo transcurre de LinIf a LinTrcv. LinTrcv espera mediante Tm, activa la notificación ICU al cambiar a STANDBY y devuelve su resultado a través de LinIf sin modificaciones. El control a través de Dio/Spi y la ubicación del tiempo de espera dentro de la llamada son una interpretación. Fuentes: [SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS p. 90 LinTrcv-SWS p. 17

Detectar, notificar y controlar el wakeup

El controlador distingue dos tipos de wakeup LinTrcv-SWS p. 17:

  • Wakeup interno: lo desencadena una capa superior, por ejemplo mediante LinTrcv_Init o LinTrcv_SetOpMode.
  • Wakeup externo: el controlador lo detecta en el canal LIN. LinIf debe llamar a LinTrcv_CheckWakeup para que el wakeup se notifique hacia arriba.

El controlador no prevé una ISR propia para el wakeup. La detección se realiza mediante la ICU con Icu_EnableNotification y Icu_DisableNotification. El tipo de wakeup se selecciona a través del parámetro de configuración LinTrcvWakeUpSupport. Con LinTrcvWakeupByBusUsed se puede habilitar y deshabilitar el soporte de wakeup por canal LinTrcv-SWS p. 17.

LinTrcv_CheckWakeup evalúa el wakeup en la red direccionada, como un nivel de bus dominante o un flanco negativo en el pin de wakeup LinTrcv-SWS p. 30. En R20-11, los valores de retorno significan [SWS_LinTrcv_00012]:

  • E_OK: se ha detectado un wakeup.
  • E_NOT_OK: no se ha detectado ningún wakeup.

El pasaje del documento de versiones posteriores define los valores de forma diferente, como «llamada aceptada/no aceptada». Este cambio se introdujo con R22-11 y no es aplicable a R20-11 LinTrcv-SWS p. 1 LinTrcv-SWS p. 30. Tras una detección correcta, el controlador notifica la fuente de wakeup a través de LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinTrcv no ofrece notificaciones de callback propias LinTrcv-SWS p. 32. Por esta razón, se debe llamar activamente a LinTrcv_CheckWakeup.

LinTrcv_SetWakeupMode es síncrono y no reentrante. Controla la notificación de wakeup por red a través de LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE habilita la notificación.
  • LINTRCV_WUMODE_DISABLE la deshabilita.
  • LINTRCV_WUMODE_CLEAR borra un evento de wakeup almacenado.

Si al habilitar ya existe un evento almacenado, el controlador ejecuta la notificación durante la llamada o inmediatamente después LinTrcv-SWS p. 31. LinIf ofrece este control como LinIf_SetTrcvWakeupMode LinIf-SWS p. 93.

wakeup externo (valores de retorno según R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(al cambiar a STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegelo flanco en el pin de wakeup)La trayectoria desde la notificación de ICU hasta la llamadapor parte de LinIf queda fuera de LinTrcv(no descrito en el payload)LinTrcv_CheckWakeup(LinNetwork)wakeup en eladressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)establecer flag de wakeup del canalE_OKkein Wakeup erkanntE_NOT_OKUse Case: consultar causa de wakeup (mediante LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Diagrama de secuencias: se detecta un wakeup externo a través de la ICU. LinIf lo comprueba con LinTrcv_CheckWakeup, LinTrcv lo confirma mediante LinIf_WakeupConfirmation y el motivo se puede consultar a continuación (valores de retorno según R20-11). Fuentes: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS p. 17 LinIf-SWS p. 98

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt notificación deshabilitada para eventos de wakeup Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht evento de wakeup almacenado borrado Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort notificación durante la llamada o inmediatamente después Gespeichert->Sofort Sí Frei notificación habilitada para eventos de wakeup Gespeichert->Frei No Ende retorno E_OK (E_NOT_OK si no se ha establecido el modo) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

Diagrama de actividades: LinTrcv_SetWakeupMode se ramifica según el modo solicitado. Solo en caso de ENABLE con un evento almacenado se produce inmediatamente una notificación. Fuentes: [SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS p. 31

Acceso al hardware, configuración de canales y particionamiento

El contenedor de selección LinTrcvAccess determina cómo accede el controlador al componente LinTrcv-SWS Fig. 10.3 p. 45. Debe seleccionarse exactamente una de las dos variantes:

  • LinTrcvDioAccess: los pines del transceptor se asignan a canales DIO.
  • LinTrcvSpiSequence: se accede a un componente compatible con SPI mediante una secuencia SPI.

El diagrama procede de R23-11 y versiones posteriores. No obstante, los servicios de lectura y escritura de DIO, así como los tipos de SPI, ya figuran en R20-11 como interfaces utilizadas o tipos importados [SWS_LinTrcv_91003] [SWS_LinTrcv_91001].

Para sistemas multinúcleo se aplican en R20-11 las siguientes reglas:

  • El controlador debe rechazar configuraciones con asignaciones de partición no admitidas [SWS_LinTrcv_00174].
  • Las particiones referenciadas mediante LinTrcvChannelEcucPartitionRef deben ser un subconjunto de las referenciadas mediante LinTrcvEcucPartitionRef. Si el módulo referencia particiones, cada canal debe referenciar exactamente una de ellas [SWS_LinTrcv_00176].
  • LinTrcvChannel y LinChannel del mismo canal de comunicación deben referenciar la misma partición [SWS_LinTrcv_00177].

La distribución multinúcleo se incorporó con R19-11 y se especificó con mayor detalle en R24-11 LinTrcv-SWS p. 1.

Comportamiento en caso de error

Los errores de tiempo de ejecución se reflejan en el valor de retorno:

  • En caso de comunicación inexistente o perturbada con el transceptor, LinTrcv_GetOpMode LinTrcv-SWS p. 26 y LinTrcv_GetBusWuReason devuelven LinTrcv-SWS p. 28 E_NOT_OK.
  • LinTrcv_SetOpMode devuelve E_NOT_OK si un cambio no fue aceptado o falló [SWS_LinTrcv_00002].
  • LinTrcv_SetWakeupMode devuelve E_NOT_OK si no se pudo establecer el modo de wakeup LinTrcv-SWS p. 31.
  • Si un motivo de wakeup no se puede determinar debido a un error, se encuentra disponible para ello el valor LINTRCV_WU_ERROR [SWS_LinTrcv_00170].

El controlador notifica los errores de desarrollo mediante Det_ReportError [SWS_LinTrcv_91003]. En R20-11, provocan en LinTrcv_GetOpMode y LinTrcv_GetBusWuReason el retorno de E_NOT_OK [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]. Los pasajes del documento de versiones posteriores indican comprobaciones concretas LinTrcv-SWS p. 26 LinTrcv-SWS p. 30 LinTrcv-SWS p. 29:

  • Llamada antes de la inicialización: LINTRCV_E_UNINIT
  • Número de red no válido: LINTRCV_E_INVALID_LIN_NETWORK
  • Puntero nulo en LinTrcv_GetVersionInfo: LINTRCV_E_PARAM_POINTER

Es probable que estas comprobaciones también apliquen en cuanto a contenido para R20-11 (interpretación). Pregunta Q-58e3d310b525b810 (abierta) No obstante, R20-11 reestructuró la clasificación de errores y R21-11 los códigos de error. Por tanto, los identificadores pueden diferir en R20-11 LinTrcv-SWS p. 1.

LinIf intercepta ya una parte de los errores de manejo. Con un Channel no válido, LinIf_SetTrcvMode y LinIf_GetTrcvMode notifican el error LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS p. 90. Además, LinIf_GetTrcvMode devuelve E_NOT_OK en caso de canal no válido o puntero nulo LinIf-SWS p. 91. Si LinIf_WakeupConfirmation recibe una fuente de wakeup no válida, desencadena LINIF_E_PARAM_WAKEUPSOURCE si la detección de errores está activada LinIf-SWS p. 98.

Más evidencia detallada

Guía generada por IA. La base son los requisitos normativos para R20-11 y pasajes de documentos asociados, en parte de R23-11 a R25-11. Las discrepancias entre las versiones se indican en el texto. Solo la especificación es vinculante.

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

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

La función LinTrcv_Init sirve para la inicialización fundamental del módulo del controlador del transceptor LIN conforme a la especificación en [SWS_LinTrcv_00001]. La interfaz se declara a través del archivo de encabezado LinTrcv.h y posee el Service ID numérico 0x00 [SWS_LinTrcv_00001].

Uso y parámetros

La llamada de LinTrcv_Init se ejecuta de forma síncrona y no tiene valor de retorno (void) [SWS_LinTrcv_00001]. Como único parámetro de transferencia se pasa el puntero de entrada ConfigPtr de tipo const LinTrcv_ConfigType*, el cual apunta al conjunto de datos de configuración seleccionado del transceptor LIN [SWS_LinTrcv_00001]. Para esta rutina no existen otros parámetros, tales como parámetros de entrada/salida o puramente de salida [SWS_LinTrcv_00001].

Concurrencia y restricciones

En relación con el comportamiento de concurrencia, LinTrcv_Init está catalogada de forma vinculante como no reentrante (Non Reentrant) [SWS_LinTrcv_00001]. Por lo tanto, se deben excluir en el sistema las llamadas paralelas o interruptivas a esta función. Además, no deben tener lugar accesos concurrentes durante la inicialización. Interpretación: la ejecución de la función de inicialización suele realizarse típicamente de forma centralizada en el marco de la fase de arranque del sistema, antes de que se invoquen otros servicios del controlador del transceptor LIN. Pregunta Q-9845a0c76e3146fa (abierta)

Este texto ha sido generado por una IA; todas las indicaciones se basan en los requisitos del estándar AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función LinTrcv_SetOpMode [SWS_LinTrcv_00002] 📄 PDF

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

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

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

La función LinTrcv_SetOpMode sirve para conmutar el estado interno del controlador del transceptor LIN al modo de funcionamiento pasado según [SWS_LinTrcv_00002].

Uso y semántica

  • Contexto de llamada y parámetros: la llamada direcciona a través del parámetro LinNetwork la respectiva red LIN, mientras que OpMode (tipo LinTrcv_TrcvModeType) especifica el modo de funcionamiento de destino ([SWS_LinTrcv_00002]). La interfaz está disponible a través de LinTrcv.h.
  • Valores de retorno: la función devuelve E_OK en cuanto el estado del transceptor ha cambiado con éxito al modo solicitado. Si el cambio de estado falla, no se acepta o un parámetro está fuera del rango permitido, se devuelve E_NOT_OK ([SWS_LinTrcv_00002]).
  • Ejecución síncrona: el servicio opera de forma síncrona (Sync/Async: Synchronous) bajo el Service-ID 0x01 ([SWS_LinTrcv_00002]).

Concurrencia y restricciones

La interfaz está especificada como no reentrante (Non Reentrant) ([SWS_LinTrcv_00002]). Por lo tanto, los llamadores deben asegurarse de evitar llamadas paralelas para el mismo módulo o red.

Este texto ha sido generado por una IA. No sustituye el estudio de las especificaciones AUTOSAR correspondientes.

Guía del implementador pendiente (complejidad I1)

función LinTrcv_GetBusWuReason [SWS_LinTrcv_00007] 📄 PDF

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

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

función LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

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

La función síncrona LinTrcv_CheckWakeup sirve para comprobar si se ha detectado un evento de wakeup en una red LIN direccionada [SWS_LinTrcv_00012]. Informa directamente a la entidad que realiza la llamada sobre la presencia de la condición de wakeup correspondiente [SWS_LinTrcv_00012].

Invocación y parámetros

La función posee el Service ID 0x07 y se pone a disposición mediante el archivo de encabezado LinTrcv.h [SWS_LinTrcv_00012]:

  • LinNetwork (parámetro de entrada, uint8): designa la red LIN a la que se debe aplicar la llamada a la API [SWS_LinTrcv_00012].

Valores de retorno

El valor de retorno de tipo Std_ReturnType señala el resultado de la comprobación de wakeup [SWS_LinTrcv_00012]:

  • E_OK: se ha detectado con éxito un evento de wakeup en la red LIN especificada [SWS_LinTrcv_00012].
  • E_NOT_OK: no se ha detectado ningún evento de wakeup en la red LIN especificada [SWS_LinTrcv_00012].

concurrencia

La ejecución de LinTrcv_CheckWakeup se realiza de forma completamente síncrona y está especificada como reentrante [SWS_LinTrcv_00012]. El flujo síncrono garantiza que el resultado esté disponible inmediatamente al retornar de la función.

Esta nota de uso ha sido generada por una IA a partir de la especificación para el LIN Transceiver Driver en AUTOSAR CP R20-11.

función LinTrcv_SetWakeupMode [SWS_LinTrcv_00009] 📄 PDF

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

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

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

La función síncrona LinTrcv_SetWakeupMode sirve para habilitar, deshabilitar y borrar notificaciones de eventos de wakeup en la red LIN direccionada [SWS_LinTrcv_00009]. Está declarada a través del archivo de encabezado LinTrcv.h y posee el Service ID 0x05 [SWS_LinTrcv_00009].

Parámetros y valores de retorno

La función espera dos parámetros de entrada [SWS_LinTrcv_00009]:

  • LINNetwork (uint8): designa la red LIN concreta a la que se debe aplicar la API [SWS_LinTrcv_00009].
  • TrcvWakupMode (LinTrcv_TrcvWakeupModeType): transfiere el modo de wakeup solicitado o motivo para el transceptor [SWS_LinTrcv_00009].

Como valor de retorno se proporciona un estado de tipo Std_ReturnType [SWS_LinTrcv_00009]:

  • E_OK: indica que el estado del transceptor se transfirió correctamente al modo solicitado [SWS_LinTrcv_00009].
  • E_NOT_OK: señala que la llamada ha fallado debido a errores de desarrollo o que no se pudo establecer el modo de wakeup deseado [SWS_LinTrcv_00009].

Concurrencia y restricciones

La interfaz está especificada como no reentrante (non Reentrant) y lleva a cabo el cambio de estado de forma síncrona [SWS_LinTrcv_00009]. Por tanto, los componentes llamadores deben asegurarse de que no se produzcan llamadas paralelas para la misma interfaz.

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

tipo LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

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

tipo LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

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

El tipo enumerado LinTrcv_TrcvModeType define los modos de funcionamiento para el controlador del transceptor LIN de acuerdo con [SWS_LinTrcv_00168]. La definición de tipo se encuentra en el archivo de encabezado Lin_GeneralTypes.h y, por tanto, está disponible para las capas de software de nivel superior [SWS_LinTrcv_00168].

El rango de valores abarca tres estados estandarizados para el transceptor [SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL: identifica el modo de funcionamiento habitual (Transceiver mode NORMAL) del transceptor LIN [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_STANDBY: representa el modo de espera (Transceiver mode STANDBY) del transceptor [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_SLEEP: describe el modo de bajo consumo (Transceiver mode SLEEP) para el transceptor LIN [SWS_LinTrcv_00168].

En lo relativo al uso y a la interacción funcional, este tipo de enumeración sirve para el modelado homogéneo de los estados del transceptor [SWS_LinTrcv_00168]. Presumiblemente, el tipo se utiliza como parámetro o valor de retorno en funciones del controlador para solicitar o consultar cambios de estado específicos entre el funcionamiento normal, la disponibilidad y el estado de bajo consumo. Pregunta Q-8966f1299f224eff (abierta) Los contextos de llamada específicos, los códigos de error, así como las propiedades de concurrencia y reentrancia no están fijados en este tipo de datos en sí, sino que dependen de las respectivas API del controlador del transceptor [SWS_LinTrcv_00168].

Este texto ha sido generado por una IA y sirve para la orientación técnica.

Guía del implementador pendiente (complejidad I1)

tipo LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

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

Uso y rango de valores

El tipo LinTrcv_TrcvWakeupModeType es una enumeración que define los modos de funcionamiento para eventos de wakeup del controlador del transceptor LIN [SWS_LinTrcv_00169]. Se proporciona a través del archivo de encabezado Lin_GeneralTypes.h [SWS_LinTrcv_00169].

La enumeración comprende los siguientes valores para controlar la red direccionada [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE: habilita la notificación de eventos de wakeup en la red direccionada [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_DISABLE: Desactiva la notificación para eventos de wakeup en la red direccionada [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_CLEAR: Borra un evento de wakeup previamente almacenado en la red direccionada [SWS_LinTrcv_00169].

Tratamiento de errores y condiciones límite

Para el tipo en sí, en la especificación no se definen códigos de error específicos, valores de retorno ni mensajes de error DET/DEM [SWS_LinTrcv_00169]. Como tipo de datos, no está sujeto a restricciones directas de reentrancia o de ejecución.

Interacción

Interpretación: Es probable que el tipo sirva como parámetro de entrada en funciones API del controlador del transceptor LIN para activar o desactivar la detección de wakeup de forma específica de la red o para restablecer el estado de wakeup [SWS_LinTrcv_00169]. Pregunta Q-cfb3e28d7baefc72 (abierta)

Este texto ha sido generado por una IA. Se basa exclusivamente en los datos de especificación de SWS_LinTrcv_00169.

Guía del implementador pendiente (complejidad I1)

tipo LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00170] 📄 PDF

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

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

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

Inicialización y estado

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

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTrcv_Init función

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Servicios

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

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

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

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

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);

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

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

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

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

Tipos

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

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

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