DEENESPTFRRUARHIKOZHNL

LIN Interface (LinIf)

ModulLinIf (LIN Interface)
BSW-Modul-ID62
Standard-Header#include "LinIf.h"
SWS-SpezifikationAUTOSAR_SWS_LINInterface.pdf
ClusterLIN

Guía del móduloGENERADO POR IA

Intermedia tramas LIN entre las capas superiores y el controlador LIN y controla planificaciones, suspensión, reactivación y LIN-TP.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 2c16f0f64a13 Procedencia Preguntas abiertas (2)
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

Intermedia tramas LIN entre las capas superiores y el controlador LIN y controla planificaciones, suspensión, reactivación y LIN-TP.

La LIN Interface conecta los módulos de comunicación superiores con el controlador LIN y el transceptor, e incluye también el protocolo de transporte LIN. Como Master, un canal procesa tablas de schedule que se seleccionan mediante LinIf_ScheduleRequest [SWS_LinIf_00202]. Como Slave, en cambio, solo reacciona a los mensajes de cabecera del controlador [SWS_LinIf_91004]. Además, controla por cada canal la suspensión y la reactivación, la transmisión de diagnóstico y, en el Slave, la Node Configuration. Los servicios disponibles dependen del tipo de nodo configurado para los canales.

La LIN Interface (LinIf) actúa como intermediaria entre los módulos de comunicación superiores y el controlador LIN, e integra al mismo tiempo el protocolo de transporte LIN [SWS_LinIf_00351]. Hacia arriba, en R20-11 invoca los callouts configurables <User_TriggerTransmit>, <User_TxConfirmation> y <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]; el usuario es el PduR o un CDD. Notifica los cambios de modo al LinSM mediante callouts <User>_…Confirmation [SWS_LinIf_00521]. Hacia abajo utiliza Lin y, opcionalmente, LinTrcv [SWS_LinIf_00359].

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv servicios de modo y de reactivación (LinTrcv_SetOpMode, entre otros) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Diagrama de contexto: LinIf entre usuarios, LinSM, BswM, EcuM, Mirror, así como Lin y LinTrcv. Fuentes: [SWS_LinIf_00360] [SWS_LinIf_00469]

Según LinIf_Init [SWS_LinIf_00198], cada canal se encuentra en LINIF_CHANNEL_SLEEP. LinIf solo procesa tramas en LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. Una MainFunction propia ejecuta el trabajo para cada canal [SWS_LinIf_00384].

linif_zustand cluster_init LINIF_INIT (subestados por cada canal) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (sin comando Go-to-sleep) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (esclavo: tras comando Go-to-sleep o tiempo de espera de bus inactivo)

Diagrama de estados: la inicialización conduce al estado de suspensión; LinIf_Wakeup y LinIf_GotoSleep alternan entre los estados del canal. Fuentes: SWS LinIf p. 45

El Master y el Slave funcionan de manera radicalmente distinta. Un canal Master procesa tablas de schedule seleccionadas mediante LinIf_ScheduleRequest con un índice de 1..255; 0 representa la NULL_SCHEDULE [SWS_LinIf_00197] [SWS_LinIf_00202]. LinIf_Transmit solo marca en este caso tramas esporádicas; LinIf no recoge los datos hasta el slot vencido [SWS_LinIf_00706]. Un Slave, por el contrario, solo reacciona a LinIf_HeaderIndication. Decide en función del PID si transmitir, recibir o ignorar [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] y gestiona la señal response_error de forma autónoma [SWS_LinIf_00763].

Un Slave pasa al estado de suspensión tras un comando Go-to-sleep o tras un timeout de inactividad del bus [SWS_LinIf_00750] [SWS_LinIf_00755]. No confirma la reactivación hasta la primera cabecera recibida [SWS_LinIf_00761]. Para el diagnóstico, LinTp conmuta en el Master los schedules mediante BswM_LinTp_RequestMode [SWS_LinIf_00629]. En el Slave, LinIf atiende la Node Configuration según ISO 17987-3 [SWS_LinIf_00771]. LinIf notifica los errores al DET, por ejemplo LINIF_E_RESPONSE [SWS_LinIf_00729]. Cancela las transmisiones TP en caso de timeout con E_NOT_OK [SWS_LinIf_00801] [SWS_LinIf_00806].

Rol de la LIN Interface entre usuarios, controlador y transceptor

La LIN Interface (LinIf) actúa como intermediaria entre los módulos de comunicación superiores y el controlador LIN. Contiene al mismo tiempo el protocolo de transporte LIN: también sus servicios, como LinTp_Init y LinTp_Transmit, están disponibles a través de LinIf.h [SWS_LinIf_00350] [SWS_LinIf_00351]. Hacia abajo, LinIf utiliza servicios de controlador como Lin_GoToSleepInternal, Lin_Wakeup y Lin_WakeupInternal [SWS_LinIf_00359]. Opcionalmente se añade el LIN Transceiver Driver, cuyos servicios de modo y reactivación asigna LinIf a una interfaz uniforme para todos los transceptores SWS LinIf p. 24. Para ello, LinIf_SetTrcvMode, LinIf_GetTrcvMode, LinIf_GetTrcvWakeupReason y LinIf_SetTrcvWakeupMode reenvían las llamadas al controlador del transceptor [SWS_LinIf_00544] [SWS_LinIf_00545] [SWS_LinIf_00547] [SWS_LinIf_00550].

Hacia arriba, LinIf invoca a sus usuarios mediante callouts configurables: <User_TriggerTransmit>, <User_TxConfirmation> y <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]. El usuario es o bien el PduR, en cuyo caso debe introducirse PduR_LinIfTriggerTransmit [SWS_LinIf_00722], o bien un CDD, cuya cabecera de callback incluye LinIf [SWS_LinIf_00669]. LinIf notifica los cambios de modo mediante <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation y <User>_WakeupConfirmation [SWS_LinIf_00520] [SWS_LinIf_00521] [SWS_LinIf_00522]. El destinatario de estos avisos es el LinSM SWS LinSM p. 24. Además, LinIf requiere los servicios BswM_LinTp_RequestMode, Com_SendSignal y Det_ReportError [SWS_LinIf_00360]. A partir de R24-11, el LSduR sustituye al PduR o al CDD como usuario superior SWS LinIf p. 1. Para R20-11 se aplican los callouts <User_…>.

Cada canal es Master o Slave. Los servicios de Slave, como LinIf_HeaderIndication o LinIf_GetConfiguredNAD, solo existen si se ha configurado al menos un canal Slave [SWS_LinIf_00863] [SWS_LinIf_00861]. LinIf_ScheduleRequest solo existe si hay configurado al menos un canal Master [SWS_LinIf_00858]. El procesamiento cíclico se ejecuta en LinIf_MainFunction_<LinIfChannel.ShortName> [SWS_LinIf_00384]. Esta función existe una vez por canal SWS LinIf p. 119 y se invoca con el periodo LinIfMainFunctionPeriod. En el Master consulta el Schedule Table Manager; en el Slave supervisa las condiciones temporales SWS LinIf p. 45. El Bus Mirroring se activa por canal con LinIf_EnableBusMirroring; a continuación, LinIf notifica las tramas recibidas y enviadas al módulo Mirror [SWS_LinIf_00876] [SWS_LinIf_00838] [SWS_LinIf_00873].

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv servicios de modo y de reactivación (LinTrcv_SetOpMode, entre otros) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Diagrama de contexto: LinIf (con LinTp) se sitúa entre usuarios, gestión de modos y servicios de diagnóstico/Mirror en la parte superior, así como Lin y LinTrcv en la inferior. Fuentes: [SWS_LinIf_00359] [SWS_LinIf_00360] [SWS_LinIf_00469] [SWS_LinIf_00872] SWS LinIf (Abb.) p. 17

Inicialización y máquinas de estados de canal y LinTp

LinIf_Init recibe un puntero a LinIf_ConfigType [SWS_LinIf_00198] [SWS_LinIf_00668] y conduce el módulo de LINIF_UNINIT a LINIF_INIT SWS LinIf p. 47. Cada canal dispone de una sub-máquina de estados propia. Tras la inicialización se encuentra en LINIF_CHANNEL_SLEEP, sin que se haya enviado ningún comando Go-to-sleep. LinIf solo procesa cabeceras y respuestas en LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. Los canales Master se inician con la NULL_SCHEDULE SWS LinIf p. 90. Los canales Slave adoptan el NAD inicial y configurado, así como los PID procedentes de la configuración [SWS_LinIf_00767] [SWS_LinIf_00768], y proporcionan la LIN Product Identification [SWS_LinIf_00769].

linif_zustand cluster_init LINIF_INIT (subestados por cada canal) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (sin comando Go-to-sleep) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (esclavo: tras comando Go-to-sleep o tiempo de espera de bus inactivo)

Diagrama de estados: ciclo de vida de LinIf y subestados de canal; la inicialización conduce al estado de suspensión; la reactivación y la suspensión alternan entre los estados del canal. Fuentes: SWS LinIf p. 45 [SWS_LinIf_00204] [SWS_LinIf_00205] [SWS_LinIf_00755]

El protocolo de transporte tiene una máquina de estados propia para cada canal. LinTp_Init [SWS_LinIf_00350] establece LINTP_INIT con el subestado LINTP_CHANNEL_IDLE [SWS_LinIf_00710] SWS LinIf p. 99. El canal cambia a LINTP_CHANNEL_BUSY en cuanto se detecta una FF o SF como mensaje TP [SWS_LinIf_00322] [SWS_LinIf_00323] o se invoca LinTp_Transmit SWS LinIf p. 108. LinTp_Shutdown [SWS_LinIf_00355] cierra todas las conexiones abiertas y establece todos los canales en LINTP_UNINIT SWS LinIf p. 102. Si LinTp está incluido o no, lo determina LinIfTpSupported en tiempo de compilación SWS LinIf p. 61.

lintp_zustand cluster_init LINTP_INIT (je Kanal) Reset Reset UNINIT LINTP_UNINIT Reset->UNINIT IDLE LINTP_CHANNEL_IDLE UNINIT->IDLE LinTp_Init IDLE->UNINIT LinTp_Shutdown BUSY LINTP_CHANNEL_BUSY IDLE->BUSY comienza el mensaje TP (LinTp_Transmit o FF/SF detectado) BUSY->UNINIT LinTp_Shutdown (cerrar conexiones) BUSY->IDLE TP-Nachricht beendet

Diagrama de estados: canal LinTp entre IDLE y BUSY dentro de LINTP_INIT. Fuentes: SWS LinIf (Abb.) p. 43 [SWS_LinIf_00322] [SWS_LinIf_00710] [SWS_LinIf_00355]

Canal maestro: las tablas de schedule determinan el tráfico del bus

En el Master, la tabla de schedule constituye la base de toda la comunicación. Cada canal posee una NULL_SCHEDULE vacía, y las distancias entre tramas son múltiplos de LinIfMainFunctionPeriod SWS LinIf p. 44. LinIf_SchHandleType codifica la NULL_SCHEDULE como 0x00 y las demás tablas como un índice de 1..255. El índice es unívoco para cada canal, pero no por cada unidad de control [SWS_LinIf_00197]. LinIf_ScheduleRequest opera de forma asíncrona [SWS_LinIf_00202]; el cambio completado se notifica mediante <User>_ScheduleRequestConfirmation [SWS_LinIf_00520]. En la configuración, cada tabla recibe un LinIfRunMode, concretamente RUN_CONTINUOUS o RUN_ONCE ECUC-Parameter p. 265. El parámetro Schedule no se renombró hasta R22-11 SWS LinIf p. 1.

LinIf_Transmit [SWS_LinIf_00201] no desencadena un envío inmediato. Solo marca tramas esporádicas (Master) o tramas activadas por eventos (Slave) como pendientes SWS LinIf p. 79. Para otras tramas devuelve, no obstante, E_OK [SWS_LinIf_00700], mientras que durante un NULL_SCHEDULE devuelve E_NOT_OK [SWS_LinIf_00719]. Cuando vence un slot de transmisión, LinIf recoge los datos mediante <User_TriggerTransmit> y los entrega con Lin_SendFrame al controlador SWS LinIf p. 37. Si el usuario devuelve E_NOT_OK, la trama se omite [SWS_LinIf_00706]. LinIf comprueba el resultado con Lin_GetStatus, como muy pronto tras la longitud máxima de trama y a más tardar en la siguiente entrada de la tabla SWS LinIf p. 35. LIN_TX_ERROR y LIN_TX_BUSY dan lugar a <User_TxConfirmation> con E_NOT_OK [SWS_LinIf_00728]; LIN_TX_OK da lugar a E_OK SWS LinIf p. 40.

transmisión de frames en el canal maestroNutzer (PduR/CDD)LinIfLinBSW-TaskUse Case: registro (solo frame esporádico)LinIf_Transmit(TxPduId, PduInfoPtr)CheckId()SetFlag()E_OK (E_NOT_OK en caso de NULL_SCHEDULE)Use Case: ranura de emisión vencidaLinIf_MainFunction_<LinIfChannel.ShortName>()<User_TriggerTransmit>(TxPduId, PduInfoPtr)E_OK / E_NOT_OKaltE_OKLin_SendFrame(...)E_NOT_OKel frame no se envíaUse Case: comprobación de estado tras la longitud máxima de frameLinIf_MainFunction_<LinIfChannel.ShortName>()Lin_GetStatus(...)LIN_TX_OK / LIN_TX_BUSY / LIN_TX_ERROR<User_TxConfirmation>(TxPduId, result)E_OK en caso de LIN_TX_OK, de lo contrario E_NOT_OK

Diagrama de secuencia: registro, recogida de datos controlada por slots y evaluación de estado durante la transmisión en el Master. Fuentes: [SWS_LinIf_00201] [SWS_LinIf_00706] [SWS_LinIf_00728] SWS LinIf p. 125 SWS PduR p. 107

Canal Slave: reacción a las cabeceras del Master

Un Slave no reconoce ningún schedule. Reacciona exclusivamente a LinIf_HeaderIndication [SWS_LinIf_91004] SWS LinIf p. 39. LinIf evalúa en primer lugar el PID:

  • Trama de transmisión: <User_TriggerTransmit> escribe directamente en el búfer del controlador [SWS_LinIf_00738]. A continuación, LinIf establece Cs y Dl y notifica LIN_FRAMERESPONSE_TX [SWS_LinIf_00739]. Si el usuario devuelve E_NOT_OK, LinIf notifica LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00740].
  • Trama de recepción: LinIf notifica LIN_FRAMERESPONSE_RX [SWS_LinIf_00733].
  • Trama irrelevante: LinIf notifica LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00748].

Tras una recepción correcta, el controlador invoca LinIf_RxIndication y LinIf transfiere los datos a <User_RxIndication> [SWS_LinIf_91005] [SWS_LinIf_00734]. Tras una transmisión correcta, el controlador invoca LinIf_TxConfirmation y LinIf confirma con E_OK [SWS_LinIf_91006] [SWS_LinIf_00741]. En las tramas activadas por eventos, el PID de la trama incondicional correspondiente se encuentra en el primer byte de datos [SWS_LinIf_00731]. El flag de pendiente se borra tras una transmisión correcta [SWS_LinIf_00732].

LinIf gestiona la señal response_error de forma autónoma para cada canal Slave [SWS_LinIf_00763] y la actualiza mediante Com_SendSignal [SWS_LinIf_00764]. Se borra tras una transmisión correcta [SWS_LinIf_00747]. Cualquier modificación puede notificarse opcionalmente mediante <User_ResponseErrorSignalChanged> [SWS_LinIf_00765] [SWS_LinIf_00766]. El NAD y la lista de PID se pueden leer y escribir en tiempo de ejecución [SWS_LinIf_00829] [SWS_LinIf_00833] [SWS_LinIf_91002] [SWS_LinIf_91003]. Quedan excluidos los PID de MRF y SRF [SWS_LinIf_00809] [SWS_LinIf_00824]. La fuente típica de estos valores es la memoria no volátil SWS LinIf p. 57.

procesamiento de frames guiado por cabeceras en el canal esclavoLinController/UARTLinLinIfNutzer (PduR/CDD)Interrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)EvaluatePID()altSende-Frame<User_TriggerTransmit>(TxPduId, PduInfoPtr)SduDataPtr = PduPtr->SduPtrE_OKCs, Dl setzenDrc = LIN_FRAMERESPONSE_TXEmpfangs-FrameCs, Dl setzenDrc = LIN_FRAMERESPONSE_RXirrelevante o TriggerTransmit = E_NOT_OKDrc = LIN_FRAMERESPONSE_IGNOREE_OKInterrupt (Response abgeschlossen)altResponse gesendetLinIf_TxConfirmation(Channel)<User_TxConfirmation>(TxPduId, E_OK)Response empfangenLinIf_RxIndication(Channel, Lin_SduPtr)<User_RxIndication>(RxPduId, PduInfoPtr)Fehler erkanntLinIf_LinErrorIndication(Channel, ErrorStatus)

Diagrama de secuencia: evaluación de cabecera en el Slave con ramificación según la dirección de la trama y posterior confirmación, notificación de recepción o notificación de error. Fuentes: [SWS_LinIf_91004] [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] SWS LinIf p. 121 SWS LinIf (Abb.) p. 133

Suspensión y reactivación de un canal LIN

El Master envía un comando Go-to-sleep cuando se solicita. El Slave entra en suspensión si recibe este comando o si el bus permanece inactivo SWS LinIf p. 48. En el Slave se considera comando Go-to-sleep una MRF con NAD 0 [SWS_LinIf_00750]. La supervisión de inactividad del bus se ejecuta en el estado LINIF_CHANNEL_OPERATIONAL [SWS_LinIf_00751] [SWS_LinIf_00752] [SWS_LinIf_00753]. Cada callback del controlador reinicia el temporizador [SWS_LinIf_00754]. En ambos casos, LinIf invoca <User>_GotoSleepIndication [SWS_LinIf_00756]. Si a continuación el usuario invoca LinIf_GotoSleep [SWS_LinIf_00204], sigue de inmediato Lin_GoToSleepInternal [SWS_LinIf_00757]. Después, LinIf borra el flag de reactivación [SWS_LinIf_00758] y confirma con TRUE [SWS_LinIf_00759]. En el Master, la MainFunction envía el comando según el diagrama mediante Lin_GoToSleep y confirma tras la verificación de estado SWS LinIf (Abb.) p. 93 [SWS_LinIf_00521].

transición al modo de reposo (canal esclavo)LinLinIfLinTrcvLinIf User (LinSM)altGo-to-sleep-Kommando empfangenLinIf_RxIndication(Channel, Lin_SduPtr)MRF con NAD = 0Bus-Idle-TimeoutBus-Idle-Timer abgelaufen<User>_GotoSleepIndication()LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)de inmediato, no esperar a la MainFunctionborrar flag de reactivación del canal<User>_GotoSleepConfirmation(channel, TRUE)E_OKoptel controlador del transceptor admiteLinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP)LinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)

Diagrama de secuencia: transición de un canal Slave al estado de suspensión tras un comando Go-to-sleep o timeout de inactividad del bus. Fuentes: [SWS_LinIf_00750] [SWS_LinIf_00755] [SWS_LinIf_00756] [SWS_LinIf_00757] [SWS_LinIf_00759] SWS LinIf p. 137

La reactivación proviene o bien del usuario mediante LinIf_Wakeup, o bien de una reactivación del bus detectada. LinIf comprueba una reactivación del bus mediante LinIf_CheckWakeup SWS LinIf p. 51. Para ello, LinIf_CheckWakeup [SWS_LinIf_00378] invoca Lin_CheckWakeup o LinTrcv_CheckWakeup SWS LinIf p. 112. Los controladores notifican una reactivación detectada mediante LinIf_WakeupConfirmation [SWS_LinIf_00715], tras lo cual LinIf activa el flag de reactivación del canal SWS LinIf p. 98. LinIf_Wakeup [SWS_LinIf_00205] se comporta de forma distinta según el estado. En un canal despierto simula éxito. En un canal en suspensión sin flag de reactivación invoca Lin_Wakeup SWS LinIf p. 89. Si el flag de reactivación está activado, se asume que Lin_WakeupInternal activa el canal sin pulso de reactivación [SWS_LinIf_00359]. Pregunta Q-2efc22e03c8e284e (abierta)

En el Master, la confirmación procede de la MainFunction SWS LinIf (Abb.) p. 87. En el Slave, procede con la primera cabecera recibida [SWS_LinIf_00761]. Antes de un retorno de E_NOT_OK, LinIf notifica FALSE [SWS_LinIf_00762]. Si el Master no envía cabeceras, la confirmación no llega y el LinSM incurre en un timeout SWS LinIf p. 52. Si llega una solicitud de reactivación durante la entrada en suspensión, el Master permanece operativo SWS LinIf p. 56. En este caso, el Slave reinicia la reactivación SWS LinIf p. 53.

comprobación de wake-up y solicitud de reactivaciónEcuMLinIf User (LinSM)LinIfLin / LinTrcvBSW-TaskUse Case: Bus-Wakeup (falls aufgetreten)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup / LinTrcv_CheckWakeupLinIf_WakeupConfirmation(WakeupSource)establecer flag de reactivación del canalUse Case: WeckanforderungLinIf_Wakeup(Channel)altel canal está en reposo, flag de reactivación no establecidoLin_Wakeup(Channel)el canal está en reposo, flag de reactivación establecido (suposición)Lin_WakeupInternal(Channel)el canal está activokein Treiberaufruf, Erfolg simulierenE_OKVor E_NOT_OK ruft LinIf<User>_WakeupConfirmation(channel, FALSE)altMasterLinIf_MainFunction_<LinIfChannel.ShortName>()<User>_WakeupConfirmation(channel, TRUE)SlaveLinIf_HeaderIndication(Channel, PduPtr)primer header tras LinIf_Wakeup<User>_WakeupConfirmation(channel, TRUE)

Diagrama de secuencia: verificación de Wakeup mediante EcuM, solicitud de reactivación por parte del usuario y confirmación dependiente del nodo. Fuentes: [SWS_LinIf_00378] [SWS_LinIf_00715] [SWS_LinIf_00205] [SWS_LinIf_00761] [SWS_LinIf_00762] SWS EcuM p. 182

Diagnóstico: LIN TP y Node Configuration

En el Master, LinTp controla las tablas de schedule mediante BswM_LinTp_RequestMode con LinTp_Mode [SWS_LinIf_00629], siempre que LinTpScheduleChangeDiag esté activo. En LinTp_Transmit [SWS_LinIf_00351], LinTp solicita el schedule de petición de diagnóstico. Tras la petición física sigue el schedule de respuesta de diagnóstico y, tras la respuesta, el schedule de aplicación SWS LinIf p. 62. Tras una petición funcional, el canal vuelve al schedule anterior [SWS_LinIf_00707]. PduR_LinTpTxConfirmation no tiene lugar hasta la finalización del cambio de schedule [SWS_LinIf_00702]. Una nueva petición física finaliza la gestión de TP en curso [SWS_LinIf_00708]. LinTp_ChangeParameter [SWS_LinIf_00501] es solo un marcador de posición y rechaza cualquier modificación SWS LinIf p. 103.

transmisión LIN-TP en el maestro con conmutación de schedulePduRLinIf (LinTp)BswMLinSMBSW-TaskLinTp_Transmit(TxPduId, PduInfoPtr)optLinTpScheduleChangeDiag = TRUEBswM_LinTp_RequestMode(Network, LINTP_DIAG_REQUEST)LinSM_ScheduleRequest(...)LinIf_ScheduleRequest(Channel, Schedule)E_OK (E_NOT_OK si se ha rechazado el cambio de schedule)loopje MRF (SF, FF, CF)LinIf_MainFunction_<LinIfChannel.ShortName>()PduR_LinTpCopyTxData(...)enviar MRF (como transmisión normal de frame)optphysischer Request, Schedule-Wechsel aktiviertBswM_LinTp_RequestMode(Network, LINTP_DIAG_RESPONSE)PduR_LinTpTxConfirmation(id, result)tras finalizar el cambio de schedule

Diagrama de secuencia: transmisión TP en el Master con conmutación de schedule mediante BswM y LinSM. Fuentes: [SWS_LinIf_00351] [SWS_LinIf_00702] [SWS_LinIf_00878] SWS LinIf (Abb.) p. 90 SWS LinIf p. 139

LinIf debe estar listo para la recepción en todo momento. Una FF o SF inicia la transferencia con PduR_LinTpStartOfReception. Al hacerlo, LinIf asigna el NAD a un Id de N-SDU y copia cada trama con PduR_LinTpCopyRxData SWS LinIf p. 67. En el Slave, la capa de transporte y la Node Configuration comparten las tramas MRF y SRF SWS LinIf p. 54. Por ello, LinIf evalúa el NAD, el PCI y el SID de cada MRF [SWS_LinIf_00771] y la distribuye en consecuencia [SWS_LinIf_00772] [SWS_LinIf_00773] [SWS_LinIf_00774]. El manejador de Node Configuration atiende una cabecera SRF si hay una respuesta pendiente; de lo contrario, pasa a la capa de transporte [SWS_LinIf_00775] [SWS_LinIf_00776]. Se admiten los siguientes servicios:

Las respuestas positivas salen con la siguiente cabecera SRF [SWS_LinIf_00780].

nodecfg mrf MRF empfangen (LinIf_RxIndication) eval evaluar NAD, PCI y SID mrf->eval pci ¿PCI válido? eval->pci ign1 Frame ignorieren pci->ign1 No func ¿NAD funcional 0x7E con solicitud de Node Configuration? pci->func Sí ign2 Anfrage ignorieren func->ign2 Sí own ¿se dirige al propio nodo? func->own No fremd informar al manejador de Node Configuration y a la capa de transporte; cancelar respuesta pendiente own->fremd No nc ¿solicitud válida de Node Configuration? own->nc Sí srf siguiente header SRF: ¿respuesta pendiente? fremd->srf acc Anfrage annehmen, N_As-Timer starten, Transportschicht informieren nc->acc Sí tp MRF an Transportschicht weiterleiten nc->tp No acc->srf tp->srf resp Antwort durch Node-Configuration-Handler senden srf->resp Sí tpsrf SRF-Header an Transportschicht srf->tpsrf No

Diagrama de actividades: distribución de cabeceras MRF y SRF recibidas en el Slave entre el manejador de Node Configuration y la capa de transporte. Interpretación: el orden de las comprobaciones se ha seleccionado con fines ilustrativos. Fuentes: [SWS_LinIf_00771] [SWS_LinIf_00772] [SWS_LinIf_00774] [SWS_LinIf_00788] [SWS_LinIf_00790] [SWS_LinIf_00776] SWS LinIf p. 59

Comportamiento en caso de error

LinIf notifica errores de desarrollo al DET, entre otros con LINIF_E_UNINIT, LINIF_E_NONEXISTENT_CHANNEL, LINIF_E_PARAMETER, LINIF_E_PARAM_POINTER y LINIF_E_SCHEDULE_REQUEST_ERROR [SWS_LinIf_00376]. Los callbacks comprueban el canal y el puntero [SWS_LinIf_00843] [SWS_LinIf_00844]. LinIf ignora las llamadas inesperadas a LinIf_RxIndication o LinIf_TxConfirmation sin una cabecera previa [SWS_LinIf_00848] [SWS_LinIf_00852].

Como errores de tiempo de ejecución, LinIf reconoce LINIF_E_RESPONSE y LINIF_E_NC_NO_RESPONSE [SWS_LinIf_00729]. Si el controlador invoca LinIf_LinErrorIndication en el Slave, la trama se considera perdida. LinIf notifica entonces LINIF_E_RESPONSE, excepto en caso de LIN_ERR_HEADER [SWS_LinIf_00735] [SWS_LinIf_00743]. Además, confirma el intento de transmisión con E_NOT_OK [SWS_LinIf_00742] y activa la señal response_error ante errores de respuesta [SWS_LinIf_00736] [SWS_LinIf_00744]. Una nueva cabecera mientras aún se espera una respuesta invalida la trama anterior [SWS_LinIf_00846]. Con el Mirroring activo, LinIf notifica estos errores con el código de estado convertido [SWS_LinIf_00869] [SWS_LinIf_00870].

LinTp supervisa tres límites de tiempo y cancela la operación hacia el PduR con E_NOT_OK en caso de superación:

LinTp también cancela en caso de problemas de búfer [SWS_LinIf_00676] [SWS_LinIf_00677]. En el Master, esto ocurre solo tras regresar al schedule de aplicación [SWS_LinIf_00792] [SWS_LinIf_00879]. Si el búfer apenas no es suficiente, el Master retiene las cabeceras SRF [SWS_LinIf_00679] SWS LinIf p. 65. Alternativamente, LinIf reintenta la copia con longitud 0 hasta que haya espacio disponible o llegue la siguiente CF [SWS_LinIf_00793] [SWS_LinIf_00795]. Asimismo, se cancela con E_NOT_OK ante un NAD erróneo [SWS_LinIf_00655], un número de secuencia incorrecto [SWS_LinIf_00081], una FF o SF tras una CF [SWS_LinIf_00653] y un error en la respuesta SRF [SWS_LinIf_00796]. En caso de timeout de P2, LinIf solicita el schedule de aplicación [SWS_LinIf_00877]. Si LinIf_ScheduleRequest rechaza el cambio, LinTp_Transmit devuelve E_NOT_OK [SWS_LinIf_00878].

En la Node Configuration, LinIf cancela una respuesta pendiente si expira N_As [SWS_LinIf_00785] [SWS_LinIf_00786], si llega un NAD desconocido [SWS_LinIf_00787] o si se recibe una nueva solicitud válida [SWS_LinIf_00789]. Por el contrario, una MRF perturbada mantiene la respuesta pendiente [SWS_LinIf_00791]. Los Extended Production Errors para timeouts de LinTp y cambios de schedule rechazados se incorporaron recién con R23-11; no aplican para R20-11 SWS LinIf p. 1 SWS LinIf p. 74.

Más evidencia detallada

Guía generada por IA sobre la base de los extractos de especificación incluidos en el payload para R20-11. Los requirements enlazados son vinculantes. Los pasajes documentales de versiones posteriores solo se han consultado de forma complementaria, identificándose las discrepancias correspondientes.

LIN Interface (LinIf)

Abstracts LIN hardware and manages schedule tables and frame transmission.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función LinIf_Init [SWS_LinIf_00198] 📄 PDF

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Initializes the LIN Interface.

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

La función síncrona LinIf_Init sirve para inicializar la interfaz LIN según [SWS_LinIf_00198]. La interfaz posee el Service-ID 0x01, está disponible a través del archivo de cabecera LinIf.h y se ejecuta de forma síncrona.

Contexto de llamada y parámetros

La función espera como único parámetro ConfigPtr (const LinIf_ConfigType*), el cual actúa como puntero a la configuración de la interfaz LIN [SWS_LinIf_00198]. No posee valor de retorno y no dispone de parámetros de entrada/salida ni exclusivamente de salida.

Flujos de inicialización e interacción

En el marco de la inicialización, la interfaz LIN realiza ajustes específicos para los nodos slave:

  • Según [SWS_LinIf_00767], el módulo inicializa en LinIf_Init la dirección de nodo inicial (initial NAD) y la dirección de nodo configurada (configured NAD) del nodo slave a partir de los parámetros de configuración LinIfInitialNAD y LinIfConfiguredNAD.
  • Según [SWS_LinIf_00768], el módulo inicializa en LinIf_Init los PID configurados del nodo slave a partir de los datos de configuración a través de los parámetros de configuración LinIfFrameId.

Concurrencia y restricciones

La función está especificada como no reentrante (Non Reentrant) [SWS_LinIf_00198]. Por tanto, no se permite una llamada concurrente o solapada. En el alcance de la especificación provisto no se indican códigos de error específicos ni mensajes DET para este servicio.

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

Guía del implementador pendiente (complejidad I1)

función LinIf_Transmit [SWS_LinIf_00201] 📄 PDF

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Re quests transmission of a PDU.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 26fe69f012f5 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 LinIf_Transmit declarada en LinIf.h (ID de servicio 0x49) sirve para solicitar de forma síncrona la transmisión de una PDU [SWS_LinIf_00201]. Como parámetros de entrada espera TxPduId para la identificación unívoca de la PDU a enviar, así como el puntero PduInfoPtr a una estructura PduInfoType que, además de la longitud de datos y los datos útiles propiamente dichos, también puede referenciar metadatos [SWS_LinIf_00201]. No existen parámetros adicionales de entrada/salida o de salida [SWS_LinIf_00201].

Valores de retorno y requisitos de comportamiento

Como valor de retorno, el servicio devuelve el estado Std_ReturnType [SWS_LinIf_00201]:

La interacción con los tipos de trama se precisa mediante [SWS_LinIf_00700]: con la interfaz LIN inicializada, LinIf_Transmit devuelve E_OK incluso si la PDU pertenece a una trama no esporádica en un nodo maestro LIN o a una trama no controlada por eventos en un nodo esclavo LIN.

concurrencia

En relación con el entorno de ejecución, LinIf_Transmit es reentrante para diferentes ID de PDU, pero no debe llamarse de forma simultánea o concurrente para la misma TxPduId [SWS_LinIf_00201].

Esta nota de uso ha sido generada automáticamente sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función LinIf_ScheduleRequest [SWS_LinIf_00202] 📄 PDF

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);

Requests a schedule table to be executed. Only used for LIN master nodes.

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

La función LinIf_ScheduleRequest sirve exclusivamente en nodos master LIN para solicitar la ejecución de una tabla de schedule predefinida [SWS_LinIf_00202]. La llamada se procesa de forma asíncrona y está diseñada como reentrante [SWS_LinIf_00202].

Parámetros y valores de retorno

A través del parámetro Channel se transfiere el índice del canal LIN afectado, mientras que Schedule determina la identificación de la nueva tabla de schedule a ejecutar [SWS_LinIf_00202]. La función devuelve el estado como Std_ReturnType:

Condiciones de error y restricciones

Según la especificación, un valor de retorno de E_NOT_OK se produce en los siguientes casos de error [SWS_LinIf_00202]:

  • La interfaz LIN aún no está inicializada.
  • El canal referenciado no existe o el índice transferido se encuentra fuera del rango de valores.
  • La tabla de schedule referenciada no existe o su identificador no es válido.
  • El estado actual es Sleep.

Interacción

El fallo de una solicitud de schedule repercute en los flujos de transporte de nivel superior: si en el marco de una llamada a LinTp_Transmit a través de BswM_LinTp_RequestMode se inicia un cambio de schedule mediante LinIf_ScheduleRequest, LinTp_Transmit debe devolver obligatoriamente E_NOT_OK cuando LinIf_ScheduleRequest responda con E_NOT_OK [SWS_LinIf_00878].

Esta nota de uso se basa exclusivamente en los datos de especificación de AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función LinIf_GotoSleep [SWS_LinIf_00204] 📄 PDF

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

Initiates a transition into the Sleep Mode on the selected channel.

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

usar

La función LinIf_GotoSleep (ID de servicio 0x06, declarada en LinIf.h) inicia la transición al modo Sleep en el canal LIN especificado [SWS_LinIf_00204]. La llamada se realiza de forma asíncrona y toma como parámetro de entrada Channel de tipo NetworkHandleType el identificador del canal en cuestión [SWS_LinIf_00204].

Valores de retorno y tratamiento de errores

Como valor de retorno, el servicio devuelve el tipo Std_ReturnType con los siguientes significados [SWS_LinIf_00204]:

  • E_OK: La solicitud de cambio al modo Sleep se aceptó con éxito, la transición de estado al modo Sleep ya está en curso o el controlador ya se encuentra en el estado Sleep [SWS_LinIf_00204].
  • E_NOT_OK: La solicitud no fue aceptada. Las posibles causas son una interfaz LIN aún no inicializada o un identificador de canal inexistente o situado fuera del rango de valores válido [SWS_LinIf_00204].

Concurrencia e interacción del sistema

La interfaz está definida como no reentrante (Non Reentrant) [SWS_LinIf_00204]. Si se llama a LinIf_GotoSleep, la interfaz LIN debe llamar inmediatamente a la función Lin_GotoSleepInternal y no debe esperar hasta el siguiente ciclo de la función principal [SWS_LinIf_00757].

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

Guía del implementador pendiente (complejidad I1)

función LinIf_Wakeup [SWS_LinIf_00205] 📄 PDF

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

Initiates the wake up process.

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

La función reentrante LinIf_Wakeup inicia el proceso de reactivación asíncrono para el canal LIN identificado por el parámetro Channel [SWS_LinIf_00205]. Está disponible a través del encabezado LinIf.h [SWS_LinIf_00205].

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

  • E_OK señala que la solicitud de reactivación fue aceptada o que el controlador ya no se encuentra en el estado de reposo [SWS_LinIf_00205].
  • E_NOT_OK se devuelve si la LIN Interface no está inicializada, el ID de canal transferido está fuera del rango válido o las llamadas a controladores subyacentes Lin_Wakeup o Lin_WakeupInternal fallan con E_NOT_OK [SWS_LinIf_00205].

La interacción con el usuario se realiza a través de la función de notificación <User>_WakeupConfirmation:

  • En caso de error, la LIN Interface llama obligatoriamente a <User>_WakeupConfirmation(FALSE) antes de devolver E_NOT_OK [SWS_LinIf_00762].
  • En caso de aceptación correcta (E_OK), la LIN Interface confirma la reactivación de forma asíncrona: solo cuando a continuación se llame por primera vez a la función LinIf_HeaderIndication, el módulo emite la llamada <User>_WakeupConfirmation(TRUE) [SWS_LinIf_00761].

Este texto ha sido generado automáticamente. Se basa en los requisitos de la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función LinIf_SetTrcvMode [SWS_LinIf_00544] 📄 PDF

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);

Set the given LIN transceiver to the given mode.

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

La función síncrona y reentrante LinIf_SetTrcvMode (ID de servicio 0x08) sirve para conmutar el transceptor LIN especificado al modo de funcionamiento solicitado [SWS_LinIf_00544]. La interfaz está disponible a través del archivo de cabecera LinIf.h [SWS_LinIf_00544].

Parámetros y valores de retorno

La llamada requiere dos parámetros de entrada [SWS_LinIf_00544]:

  • Channel (NetworkHandleType): Identifica el canal LIN que se va a controlar [SWS_LinIf_00544].
  • TransceiverMode (LinTrcv_TrcvModeType): Determina la transición de estado solicitada del transceptor [SWS_LinIf_00544].

El valor de retorno de tipo Std_ReturnType señala el resultado del proceso de conmutación [SWS_LinIf_00544]:

  • E_OK: Se devuelve cuando el estado del transceptor ha cambiado con éxito al modo solicitado [SWS_LinIf_00544].
  • E_NOT_OK: Señala que el cambio de estado ha fallado o que al menos un parámetro está fuera del rango permitido. El estado anterior del transceptor permanece sin cambios [SWS_LinIf_00544].

Ejecución y comportamiento ante errores

La función se ejecuta de forma síncrona y está especificada como reentrante [SWS_LinIf_00544]. Los mensajes de error específicos de DET o DEM no se indican por separado en el elemento de especificación; un fallo en el cambio de modo o valores de parámetro no permitidos conducen directamente al valor de retorno E_NOT_OK [SWS_LinIf_00544].

Esta nota de uso se generó automáticamente a partir de la especificación de AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función LinIf_GetTrcvMode [SWS_LinIf_00545] 📄 PDF

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);

Returns the actual sta te of a LIN Transceiver Driver.

función LinIf_GetTrcvWakeupReason [SWS_LinIf_00547] 📄 PDF

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

función LinIf_SetTrcvWakeupMode [SWS_LinIf_00550] 📄 PDF

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);

This API enables, disables and cl ears the notification for wakeup events on the addressed network

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: aabbd5422a4f 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 y reentrante LinIf_SetTrcvWakeupMode sirve para habilitar, deshabilitar o restablecer notificaciones de eventos de wakeup en el canal LIN especificado [SWS_LinIf_00550]. La declaración se proporciona mediante el encabezado LinIf.h y posee el Service ID 0x0b [SWS_LinIf_00550].

La interfaz espera dos parámetros de entrada [SWS_LinIf_00550]:

  • Channel: identificador unívoco de la red o canal LIN que se va a direccionar, de tipo NetworkHandleType [SWS_LinIf_00550].
  • LinTrcvWakeupMode: modo de wakeup solicitado del transceptor, de tipo LinTrcv_TrcvWakeupModeType [SWS_LinIf_00550].

Como valor de retorno, la función proporciona el estado Std_ReturnType [SWS_LinIf_00550]:

  • E_OK: la llamada al servicio API del controlador del transceptor LIN fue correcta y devolvió E_OK [SWS_LinIf_00550].
  • E_NOT_OK: el servicio API del controlador del transceptor LIN falló (retorno E_NOT_OK) o al menos uno de los parámetros transferidos para el canal o el modo no es válido [SWS_LinIf_00550].

En cuanto a la interacción, la función delega la solicitud al controlador del transceptor LIN; presumiblemente, el LinIf constituye aquí una interfaz mediadora entre las capas superiores y el hardware del transceptor [SWS_LinIf_00550]. Pregunta Q-07b525a14a2c5fcd (abierta) Puesto que el servicio está especificado como reentrante, se puede ejecutar en paralelo para diferentes canales o para el mismo [SWS_LinIf_00550].

Este texto ha sido generado por una IA y sirve como guía orientativa. Los documentos de especificación oficiales de AUTOSAR son los normativos.

Guía del implementador pendiente (complejidad I1)

función LinIf_GetPIDTable [SWS_LinIf_91002] 📄 PDF

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

función LinIf_SetPIDTable [SWS_LinIf_91003] 📄 PDF

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

función LinTp_Init [SWS_LinIf_00350] 📄 PDF

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Initializes the LIN Transport Layer.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 24052c633b39 Procedencia Preguntas abiertas (1)
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 LinTp_Init sirve para inicializar la capa de transporte del protocolo LIN ([SWS_LinIf_00350]). Según la especificación [SWS_LinIf_00350], la llamada a la función opera de forma síncrona.

La firma de la función es void LinTp_Init (const LinTp_ConfigType* ConfigPtr). A través del parámetro de entrada se transfiere la configuración:

  • ConfigPtr (in): puntero a los datos de configuración de la capa de transporte LIN de tipo LinTp_ConfigType ([SWS_LinIf_00350]).

La función no devuelve ningún valor de retorno (void) y no define parámetros de salida ni de entrada/salida ([SWS_LinIf_00350]). Posee el Service-ID hexadecimal 0x40 y se proporciona a través del archivo de cabecera LinIf.h ([SWS_LinIf_00350]).

Manejo de errores

El requisito [SWS_LinIf_00350] no define para esta función códigos de error específicos, mensajes DET o eventos DEM. No se produce ningún retorno de un estado de error al llamador ([SWS_LinIf_00350]).

Concurrencia y restricciones

La función LinTp_Init está clasificada explícitamente como no reentrante (Non Reentrant) ([SWS_LinIf_00350]). Por consiguiente, no debe llamarse de forma concurrente desde múltiples subprocesos, tareas o rutinas de interrupción. Interpretación: es probable que la llamada se realice típicamente de forma centralizada en el marco de la secuencia de inicialización del software base, antes de que puedan procesarse las solicitudes de comunicación subsiguientes. Pregunta Q-6e391bdf8abb1a09 (abierta)

Interacción

Para LinTp_Init no se enumeran en el presente extracto vínculos directos con otros requisitos de especificación o funciones vecinas ([SWS_LinIf_00350]). El módulo LinIf pone a disposición la declaración ([SWS_LinIf_00350]).

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

Guía del implementador pendiente (complejidad I1)

función LinTp_Transmit [SWS_LinIf_00351] 📄 PDF

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

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

La función síncrona LinTp_Transmit sirve para solicitar una transmisión de PDU a través del protocolo de transporte LIN ([SWS_LinIf_00351]). Como parámetros de transferencia espera el identificador de PDU TxPduId, así como el puntero PduInfoPtr, que proporciona la longitud de los datos y punteros a los datos de la PDU y a los metadatos ([SWS_LinIf_00351]). El valor de retorno es E_OK en caso de aceptación correcta de la solicitud de envío y E_NOT_OK en caso de rechazo ([SWS_LinIf_00351]).

El comportamiento en tiempo de ejecución y la interacción con la LIN Interface están sujetos a las siguientes especificaciones:

  • Solicitud de planificación: si el cambio de planificación iniciado en el marco de la llamada a través de BswM_LinTp_RequestMode falla en LinIf_ScheduleRequest y devuelve E_NOT_OK, LinTp_Transmit también debe responder directamente con E_NOT_OK ([SWS_LinIf_00878]).
  • Confirmación: solo si LinTp_Transmit fue correcto (valor de retorno E_OK), la LIN Interface llama a la función PduR_LinTpTxConfirmation con resultado positivo o negativo tras un cambio de tabla de planificación correcto o fallido ([SWS_LinIf_00702]). Si la orden de envío es rechazada, esta llamada se omite por completo ([SWS_LinIf_00702]).
  • Interrupción de procesos en curso: si durante la espera de una respuesta física o durante la recepción de una respuesta se desencadena una nueva solicitud física mediante LinTp_Transmit, la LIN Interface cancela el tratamiento de TP en curso, incluida la recepción y la supervisión de temporización de N_Cr y P2, y acepta la nueva solicitud ([SWS_LinIf_00708]).

En cuanto a la concurrencia, LinTp_Transmit es reentrante para diferentes TxPduId, pero no debe ejecutarse de forma concurrente para la misma TxPduId ([SWS_LinIf_00351]).

Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función LinTp_Shutdown [SWS_LinIf_00355] 📄 PDF

void LinTp_Shutdown (void);

Shutdowns the LIN TP.

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

La función LinTp_Shutdown sirve para el apagado controlado del protocolo de transporte LIN ([SWS_LinIf_00355]). Mediante su llamada se finaliza el funcionamiento del componente LIN-TP ([SWS_LinIf_00355]). La declaración de la función está disponible a través del archivo de cabecera LinIf.h ([SWS_LinIf_00355]).

Para el uso y la ejecución se aplican las siguientes características de especificación ([SWS_LinIf_00355]):

  • Parámetros y valor de retorno: la función no posee parámetros de entrada, de entrada/salida o de salida (void) y no devuelve ningún valor de retorno (void) ([SWS_LinIf_00355]).
  • Identificación del servicio: el servicio está definido bajo el Service-ID 0x43 ([SWS_LinIf_00355]).
  • Sincronía: la llamada se procesa de forma síncrona ([SWS_LinIf_00355]).
  • Reentrancia: la función no es reentrante (Non Reentrant) ([SWS_LinIf_00355]). No se permiten llamadas concurrentes o anidadas desde diferentes contextos.

En las fuentes no se describen códigos de error específicos, notificaciones al Development Error Tracer (DET) ni tratamientos especiales ante errores para esta función ([SWS_LinIf_00355]). Asimismo, faltan datos sobre requisitos relacionados o el llamador exacto; presumiblemente, la llamada se realiza en el marco de la desinicialización secuencial de la pila de comunicación por parte de una gestión de estados de la BSW de nivel superior. Pregunta Q-e25a3c9531527c4f (abierta)

Esta nota de uso se creó de forma automatizada. Se basa exclusivamente en las indicaciones de especificación del elemento de AUTOSAR en el release R20-11.

Guía del implementador pendiente (complejidad I1)

función LinTp_ChangeParameter [SWS_LinIf_00501] 📄 PDF

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);

Request to change a specific transport protocol parameter (e.g. block size).

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

Uso y semántica

La función síncrona LinTp_ChangeParameter sirve para ajustar en tiempo de ejecución un parámetro específico del protocolo de transporte para una PDU determinada [SWS_LinIf_00501]. Como parámetros se transfieren el identificador de la PDU (id), el identificador del parámetro del protocolo de transporte a modificar (parameter, por ejemplo el tamaño de bloque), así como el nuevo valor de destino (value) [SWS_LinIf_00501]. La declaración se proporciona a través de la cabecera LinIf.h [SWS_LinIf_00501].

Valores de retorno y comportamiento en caso de error

La función señala el resultado de la solicitud de forma inmediata a través de su valor de retorno de tipo Std_ReturnType [SWS_LinIf_00501]:

Concurrencia y restricciones

Según la especificación, LinTp_ChangeParameter está clasificada como no reentrante (Non Reentrant) [SWS_LinIf_00501]. Por lo tanto, no se permite una llamada concurrente o anidada para el mismo contexto o contextos paralelos, y el llamador debe evitarla. La ejecución síncrona bloquea al llamador hasta que se toma la decisión sobre la adopción del valor del parámetro [SWS_LinIf_00501].

Este texto ha sido elaborado por una IA y se basa exclusivamente en los datos de especificación de AUTOSAR R20-11.

función LinIf_CheckWakeup [SWS_LinIf_00378] 📄 PDF

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a8f712a4612b 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 síncrona LinIf_CheckWakeup se invoca en cuanto el módulo EcuM ha sido notificado sobre un evento de wake-up en un canal LIN determinado [SWS_LinIf_00378]. La llamada se realiza con el parámetro de entrada WakeupSource de tipo EcuM_WakeupSourceType [SWS_LinIf_00378]. Este parámetro especifica el dispositivo de origen que inició el evento de wake-up, pudiendo tratarse de un controlador LIN o de un transceptor LIN [SWS_LinIf_00378].

Tratamiento de errores y valores de retorno

Como valor de retorno, la función proporciona un estado de tipo Std_ReturnType [SWS_LinIf_00378]:

  • E_OK: no se ha producido ningún error durante la ejecución de la interfaz [SWS_LinIf_00378].
  • E_NOT_OK: se ha producido un error durante la ejecución de la interfaz o se ha transferido un valor no válido para WakeupSource [SWS_LinIf_00378].

Concurrencia e integración

La interfaz está especificada como reentrante, posee el Service-ID 0x60 y se proporciona a través del archivo de cabecera LinIf.h [SWS_LinIf_00378]. Conecta el procesamiento de reactivación de EcuM directamente con los canales de la interfaz LIN [SWS_LinIf_00378].

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

función LinIf_EnableBusMirroring [SWS_LinIf_00876] 📄 PDF

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Enables or disables mirroring for a LIN channel.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 78f53a1bd6f3 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 y reentrante LinIf_EnableBusMirroring habilita o deshabilita el bus mirroring para un canal LIN individual [SWS_LinIf_00876]. Está disponible a través del encabezado LinIf.h y se puede omitir si el bus mirroring no está habilitado mediante el parámetro de configuración LinIfBusMirroringSupport [SWS_LinIf_00875]. Normalmente, la entidad que realiza la llamada suele ser el módulo Mirror. Pregunta Q-1703af5207cb7ade (abierta)

A través del parámetro Channel se transfiere el canal LIN afectado, mientras que MirroringActive controla el modo [SWS_LinIf_00876]: si se transfiere TRUE, se habilita el mirroring; con FALSE, se deshabilita [SWS_LinIf_00876]. Como valor de retorno, la función devuelve E_OK si el modo de mirroring se ha modificado correctamente, o E_NOT_OK si se ha indicado un canal no válido o si el mirroring está deshabilitado globalmente [SWS_LinIf_00876]. En la definición de la función no se contemplan mensajes de error específicos de DET o DEM [SWS_LinIf_00876].

Si el bus mirroring está habilitado globalmente a través de LinIfBusMirroringSupported así como para el canal correspondiente, la LIN Interface reenvía los eventos relevantes a Mirror_ReportLinFrame:

  • Tramas recibidas en LinIf_RxIndication con estado LIN_RX_OK y puntero a los datos útiles [SWS_LinIf_00838], así como durante la lectura del estado del controlador LIN para slots Rx [SWS_LinIf_00873].
  • Tramas enviadas en LinIf_TxConfirmation con estado LIN_TX_OK y puntero a los datos transmitidos [SWS_LinIf_00839], así como durante la lectura del estado del controlador LIN para slots Tx [SWS_LinIf_00874].
  • Notificaciones de error en LinIf_LinErrorIndication para todos los códigos de error excepto LIN_ERR_HEADER, con estado de error y puntero NULL como contenido de datos [SWS_LinIf_00869].

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)

función LinIf_WakeupConfirmation [SWS_LinIf_00715] 📄 PDF

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);

The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.

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

La función LinIf_WakeupConfirmation sirve para notificar a la LIN Interface la detección correcta de un evento de wakeup [SWS_LinIf_00715].

Invocación y parámetros

La llamada la realiza el controlador LIN (LIN Driver) o el controlador del transceptor LIN (LIN Transceiver Driver), después de que haya tenido lugar una detección correcta de wakeup durante Check Wakeup o tras un encendido a través del bus (power on by bus) [SWS_LinIf_00715]. Como parámetro de transferencia se pasa WakeupSource de tipo EcuM_WakeupSourceType, que indica el dispositivo fuente que ha iniciado el evento de wakeup (controlador LIN o transceptor LIN) [SWS_LinIf_00715].

Propiedades de ejecución e interfaz

Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.

función LinIf_HeaderIndication [SWS_LinIf_91004] 📄 PDF

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);

The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

El controlador LIN llama de forma síncrona a la función de callback LinIf_HeaderIndication para notificar la recepción de una cabecera LIN en un canal esclavo [SWS_LinIf_91004]. Solo está disponible si la unidad de control dispone de al menos un canal esclavo LIN configurado [SWS_LinIf_91004]. La función es reentrante para diferentes canales, pero no debe llamarse de forma concurrente para el mismo canal [SWS_LinIf_91004].

Mediante el parámetro de entrada/salida PduPtr, el controlador transfiere el identificador recibido (PID), así como el puntero al búfer de datos de la SDU [SWS_LinIf_91004]. LinIf evalúa el PID y controla la reacción del nodo esclavo:

  • Trama de recepción: si el PID pertenece a una trama de recepción configurada, LinIf establece el tipo de suma de comprobación PduPtr->Cs, la longitud de datos PduPtr->Dl y asigna a PduPtr->Drc el valor LIN_FRAMERESPONSE_RX antes de retornar [SWS_LinIf_00733].
  • Trama de transmisión: si se trata de una trama de transmisión, LinIf solicita los datos útiles a través de <User_TriggerTransmit> [SWS_LinIf_00738]. En caso de provisión correcta (valor de retorno E_OK o datos SRF mediante Node Configuration Handler / protocolo de transporte), se configuran la suma de comprobación y la longitud, y PduPtr->Drc se establece en LIN_FRAMERESPONSE_TX [SWS_LinIf_00739]. Si la consulta falla con E_NOT_OK, PduPtr->Drc se establece en LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00740].
  • Tramas irrelevantes: si la trama no es relevante para el esclavo, LinIf también establece PduPtr->Drc en LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00748].

Además, cada llamada recarga el temporizador de bus inactivo en ejecución [SWS_LinIf_00754]. Si la llamada se produce por primera vez tras un LinIf_Wakeup correcto, se desencadena <User>_WakeupConfirmation(TRUE) [SWS_LinIf_00761]. Al recibir una cabecera SRF, LinIf inicia además el temporizador N_As para Consecutive Frames (CF) [SWS_LinIf_00800]. Como valor de retorno, E_OK señala la aceptación de la solicitud, mientras que E_NOT_OK indica errores de desarrollo o de producción [SWS_LinIf_91004].

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

Guía del implementador pendiente (complejidad I2)

función LinIf_RxIndication [SWS_LinIf_91005] 📄 PDF

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);

The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

El controlador LIN llama de forma síncrona a la función de callback LinIf_RxIndication para comunicar a la interfaz LIN la recepción correcta de una respuesta, incluidos los datos recibidos [SWS_LinIf_91005]. La función está disponible exclusivamente en unidades de control con al menos un canal esclavo LIN configurado [SWS_LinIf_91005].

En cuanto a la parametrización y la concurrencia, se aplican las siguientes condiciones:

  • Parámetros: se transfieren la identificación del canal Channel, así como el puntero Lin_SduPtr a un shadow buffer o al búfer de recepción mapeado en memoria del hardware LIN [SWS_LinIf_91005]. Este puntero solo es válido si la respuesta realmente se ha recibido [SWS_LinIf_91005].
  • Valor de retorno: La función no tiene valor de retorno (void) [SWS_LinIf_91005].
  • Reentrancia: la interfaz es reentrante para diferentes canales LIN, pero no es reentrante para el mismo canal [SWS_LinIf_91005].

En interacción con el comportamiento del módulo, la llamada inicia varias acciones coordinadoras:

  • Reenvío de los datos útiles recibidos y de la longitud de los datos útiles a la capa superior a través de <User_RxIndication> [SWS_LinIf_00734].
  • Comprobación de comandos Sleep: si se trata de un Master Request Frame (MRF) con NAD 0, la interfaz LIN reconoce un comando Go-to-Sleep e inicia la transición al modo Sleep [SWS_LinIf_00750].
  • Control de temporizadores: en cada llamada se recarga el temporizador de bus inactivo [SWS_LinIf_00754]. Además, en tramas MRF (FF, CF), la llamada controla el temporizador N_Cr (inicio/reinicio en FF y CF antes de la última trama, parada en el último CF) [SWS_LinIf_00805].
  • Bus Mirroring: si el reflejo está activado globalmente y para el canal, la interfaz LIN notifica la trama con el estado LIN_RX_OK a través de Mirror_ReportLinFrame() [SWS_LinIf_00838].

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

Guía del implementador pendiente (complejidad I1)

función LinIf_TxConfirmation [SWS_LinIf_91006] 📄 PDF

void LinIf_TxConfirmation (NetworkHandleType Channel);

The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

El controlador LIN llama a la función de callback síncrona LinIf_TxConfirmation (ID de servicio 0x7a, declarada en LinIf.h) para confirmar la transmisión correcta de una respuesta en el canal especificado [SWS_LinIf_91006]. La función no tiene valor de retorno y está prevista exclusivamente para unidades de control con al menos un canal esclavo LIN configurado [SWS_LinIf_91006].

Al llegar la confirmación, la interfaz LIN ejecuta varios procesamientos posteriores:

  • Notificación a la capa superior: el módulo reenvía el evento de transmisión a la capa superior a través de la función de callback <User_TxConfirmation> con el valor de retorno E_OK [SWS_LinIf_00741].
  • Estado de error: si la trama enviada con éxito contiene la señal de error response_error, la interfaz LIN restablece esta señal [SWS_LinIf_00747].
  • Supervisión del reposo del bus: cada llamada a LinIf_TxConfirmation recarga el temporizador de bus idle en ejecución del canal [SWS_LinIf_00754].
  • Protocolo de transporte (LinTp): si el controlador confirma la respuesta a una cabecera SRF (Slave Response Frame), la interfaz detiene el temporizador de supervisión N_As [SWS_LinIf_00800].
  • Bus Mirroring: si el reflejo está configurado globalmente mediante LinIfBusMirroringSupported y habilitado mediante LinIf_EnableBusMirroring(), la interfaz notifica la trama con el estado LIN_TX_OK y un puntero a los datos de transmisión a Mirror_ReportLinFrame() [SWS_LinIf_00839].

En cuanto a la concurrencia, LinIf_TxConfirmation está diseñada para ser reentrante para diferentes canales LIN, pero no debe llamarse de forma reentrante para el mismo canal [SWS_LinIf_91006].

Esta nota de uso se ha generado automáticamente a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función LinIf_LinErrorIndication [SWS_LinIf_91007] 📄 PDF

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);

The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d5f182fa17f5 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 síncrona LinIf_LinErrorIndication es llamada por el controlador LIN para notificar los errores ocurridos durante el procesamiento de la cabecera o la respuesta [SWS_LinIf_91007]. Está prevista exclusivamente para nodos LIN slave y requiere que la unidad de control disponga de al menos un canal LIN slave configurado [SWS_LinIf_91007]. Se pasan como parámetros la identificación del canal Channel y el estado de error ocurrido ErrorStatus de tipo Lin_SlaveErrorType [SWS_LinIf_91007].

Tratamiento de errores y concurrencia

La función es reentrante para diferentes canales, pero no debe llamarse de forma concurrente para el mismo canal [SWS_LinIf_91007]. Al llamarse, la interfaz LIN considera la respuesta o la trama transmitida como perdida y notifica el error de tiempo de ejecución LINIF_E_RESPONSE al Default Error Tracer (DET), a menos que el estado de error notificado sea LIN_ERR_HEADER [SWS_LinIf_00735], [SWS_LinIf_00743].

Interacción y supervisión del bus

Independientemente del código de error pasado, la interfaz LIN recarga el temporizador de bus idle en ejecución en cada llamada a LinIf_LinErrorIndication [SWS_LinIf_00754]. Si se produce un error en una respuesta SRF tras la recepción de una cabecera SRF, la interfaz LIN cancela la transmisión y lo notifica a la capa superior mediante PduR_LinTpTxConfirmation con el resultado E_NOT_OK [SWS_LinIf_00796].

Si el bus mirroring está activo globalmente mediante LinIfBusMirroringSupported y activado para el canal, la interfaz LIN reenvía los errores distintos de LIN_ERR_HEADER a través de Mirror_ReportLinFrame() con un puntero NULL para el contenido de los datos [SWS_LinIf_00869]. Para ello, los códigos de error del controlador se traducen previamente a los correspondientes valores de estado del tipo Lin_StatusType [SWS_LinIf_00870].

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

Guía del implementador pendiente (complejidad I2)

función <User_TriggerTransmit> [SWS_LinIf_00528] 📄 PDF

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.

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

La interfaz configurable <User_TriggerTransmit> sirve para la obtención síncrona de datos de SDU procedentes de un módulo superior para una transmisión pendiente [SWS_LinIf_00528].

A través del parámetro TxPduId se identifica la SDU solicitada, mientras que PduInfoPtr se transfiere como puntero a una estructura con el búfer de destino (SduDataPtr) y el tamaño de búfer disponible (SduLength) [SWS_LinIf_00528]. El módulo superior llamado comprueba dentro de esta API si los datos disponibles caben en el tamaño de búfer notificado [SWS_LinIf_00528]. Si hay suficiente espacio, el módulo copia sus datos en SduDataPtr, actualiza SduLength con la cantidad de bytes efectivamente copiados y señala el éxito con el valor de retorno E_OK [SWS_LinIf_00528].

Por el contrario, si el tamaño del búfer no es suficiente, no se copia ningún dato de SDU y el módulo devuelve E_NOT_OK sin modificar PduInfoPtr [SWS_LinIf_00528]. En caso de un valor de retorno de E_NOT_OK, el llamador no debe utilizar PduInfoPtr bajo ningún concepto, ya que este puede apuntar a datos no válidos o ser un puntero NULL [SWS_LinIf_00528].

En cuanto a la concurrencia, la función es reentrante para diferentes ID de PDU, pero no reentrante para el mismo ID de PDU [SWS_LinIf_00528].

Esta nota de uso se basa en la especificación AUTOSAR SWS_LinIf_00528.

función <User_TxConfirmation> [SWS_LinIf_00529] 📄 PDF

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

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

La función de callback configurable <User_TxConfirmation> es llamada por el módulo de interfaz de comunicación subyacente para confirmar a una capa superior la transmisión de una PDU o el fallo de la transmisión [SWS_LinIf_00529]. La llamada se realiza de forma síncrona y no devuelve ningún valor de retorno [SWS_LinIf_00529].

Parámetros y semántica

  • TxPduId (In): designa el identificador de la PDU transmitida de tipo PduIdType [SWS_LinIf_00529].
  • result (In): notifica el estado de éxito de la transmisión como Std_ReturnType con los valores E_OK en caso de transmisión correcta de la PDU o E_NOT_OK en caso de transmisión fallida [SWS_LinIf_00529].

Concurrencia y tratamiento de errores

En cuanto a la reentrancia, la función está diseñada como reentrante para diferentes ID de PDU, pero no debe llamarse de forma reentrante para el mismo ID de PDU [SWS_LinIf_00529]. El módulo no especifica para esta interfaz códigos de error independientes ni mensajes DET o DEM; en su lugar, el fallo de una transmisión se indica mediante el valor de parámetro E_NOT_OK [SWS_LinIf_00529]. El identificador real de la función probablemente se defina de manera específica para la integración según la capa de usuario configurada, ya que el servicio se indica como configurable [SWS_LinIf_00529]. Pregunta Q-35de931161f26cb8 (abierta)

Este texto fue generado por una IA a partir de la especificación.

función <User_RxIndication> [SWS_LinIf_00530] 📄 PDF

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

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

La función de callback <User_RxIndication> sirve para señalar una PDU recibida desde un módulo de interfaz de comunicación subyacente a la capa superior [SWS_LinIf_00530]. La llamada se efectúa con semántica síncrona y no posee ningún valor de retorno [SWS_LinIf_00530].

Parámetros y especificación de interfaz

La función transfiere dos parámetros de entrada a la capa superior [SWS_LinIf_00530]:

  • RxPduId: identificador de la PDU recibida de tipo PduIdType [SWS_LinIf_00530].
  • PduInfoPtr: puntero a una estructura de tipo PduInfoType que proporciona la longitud de los datos útiles (SduLength), un puntero al búfer con los datos útiles (SduDataPtr) así como metadatos asociados a la PDU [SWS_LinIf_00530].

Para esta interfaz no se contemplan ni parámetros de entrada/salida ni parámetros exclusivamente de salida [SWS_LinIf_00530].

Concurrencia y configuración

En lo que respecta a la reentrancia, la función está diseñada como reentrante para diferentes ID de PDU, mientras que para ID de PDU idénticos está especificada explícitamente como no reentrante [SWS_LinIf_00530]. Por tanto, los llamadores deben asegurarse de que no se produzcan llamadas solapadas para el mismo RxPduId. La función está declarada como interfaz configurable [SWS_LinIf_00530]; por consiguiente, el nombre concreto de la función de la capa superior probablemente se defina a través de la configuración del módulo. Pregunta Q-94175e8cd86775b6 (abierta)

Esta nota de uso se ha generado automáticamente a partir de la especificación SWS_LinIf_00530.

función <User_ResponseErrorSignalChanged> [SWS_LinIf_00856] 📄 PDF

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);

Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface

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

La interfaz <User_ResponseErrorSignalChanged> sirve en el módulo LinIf como función de notificación para indicar un cambio de valor de la señal Response-Error con el nuevo valor de la señal [SWS_LinIf_00856]. La llamada se realiza de forma síncrona y posee el Service-ID 0x74 [SWS_LinIf_00856]. No se contemplan parámetros de entrada/salida ni un valor de retorno; la signatura está definida con el tipo de retorno void [SWS_LinIf_00856].

Como parámetros de transferencia, la función espera dos valores puramente de entrada [SWS_LinIf_00856]:

  • Channel (tipo NetworkHandleType): Identificación unívoca del canal LIN afectado [SWS_LinIf_00856].
  • RespErrSigValue (tipo boolean): Valor actual de la señal Response-Error. El parámetro es true si la señal está ajustada a 1; de lo contrario, false [SWS_LinIf_00856].

En cuanto a la concurrencia y al contexto de llamada, se especifica que la función es reentrante para canales diferentes, pero no debe llamarse de forma reentrante para el mismo canal [SWS_LinIf_00856]. Una condición de contorno funcional consiste en que este servicio de notificación solo es aplicable a nodos LIN slave [SWS_LinIf_00856]. La declaración se proporciona a través del archivo de cabecera LinIf_Externals.h [SWS_LinIf_00856].

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

función <User_SaveConfigurationRequest> [SWS_LinIf_00857] 📄 PDF

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

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

La función de callback <User_SaveConfigurationRequest> (Service ID 0x75) notifica a una capa superior la recepción de una solicitud «Save Configuration» y está declarada en LinIf_Externals.h [SWS_LinIf_00857]. Esta interfaz es aplicable exclusivamente a nodos LIN slave [SWS_LinIf_00857].

La llamada se realiza de forma síncrona y está especificada como reentrante [SWS_LinIf_00857]:

  • Parámetros: mediante el parámetro de entrada Channel de tipo NetworkHandleType se transfiere el canal LIN afectado [SWS_LinIf_00857]. No existen parámetros adicionales de entrada o salida [SWS_LinIf_00857].
  • Valor de retorno: la función devuelve un valor de tipo boolean [SWS_LinIf_00857]. El valor de retorno TRUE indica que se debe enviar una respuesta positiva al bus LIN, mientras que FALSE impide la transmisión de cualquier respuesta [SWS_LinIf_00857].

En lo que respecta al tratamiento de errores, la especificación no define ni códigos de error específicos ni mensajes DET o DEM [SWS_LinIf_00857]. El comportamiento en caso de error o rechazo se controla directamente mediante el valor de retorno booleano, impidiéndose el envío de una respuesta mediante FALSE [SWS_LinIf_00857]. Puesto que la llamada está clasificada como reentrante, es probable que la función esté diseñada para la invocación concurrente en distintos canales [SWS_LinIf_00857]. Pregunta Q-84432030c1aff644 (abierta)

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

tipo LinIf_SchHandleType [SWS_LinIf_00197] 📄 PDF

Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255

tipo LinIf_ConfigType [SWS_LinIf_00668] 📄 PDF

A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.

tipo LinTp_ConfigType [SWS_LinIf_00426] 📄 PDF

This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification

tipo LinTp_Mode [SWS_LinIf_00629] 📄 PDF

This type denotes which Schedule table can be requested by LIN TP during diagnostic session

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 237979748ffe 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 LinTp_Mode está definido en el archivo de cabecera LinIf.h y determina qué modo de tabla de planificación puede solicitarse durante una sesión de diagnóstico mediante el protocolo de transporte LIN (LIN TP) [SWS_LinIf_00629].

El rango de valores comprende tres literales de enumeración para el control del cambio de planificación en el bus LIN [SWS_LinIf_00629]:

  • LINTP_APPLICATIVE_SCHEDULE: Selecciona la tabla de planificación de aplicación para el tráfico regular de mensajes [SWS_LinIf_00629].
  • LINTP_DIAG_REQUEST: Selecciona la tabla de planificación Master Request para la transmisión de solicitudes de diagnóstico [SWS_LinIf_00629].
  • LINTP_DIAG_RESPONSE: Selecciona la tabla de planificación Slave Response para la recepción de respuestas de diagnóstico [SWS_LinIf_00629].

En cuanto a la interacción, el tipo sirve para la conmutación entre transmisiones de diagnóstico y comunicación de aplicación regular dentro de la interfaz LIN [SWS_LinIf_00629]. En las fuentes no se especifican contextos de llamada concretos, propiedades de reentrancia ni tratamientos de errores (como mensajes DET o DEM) para este tipo de datos puro; presumiblemente, el tipo se transfiere como parámetro de función a la interfaz LIN durante llamadas de control mediante el protocolo de transporte LIN. Pregunta Q-1bf7553401882471 (abierta)

Este texto ha sido generado por una IA y se basa exclusivamente en las especificaciones de la versión R20-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

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

Record
AUTOSAR/AP/record/CP_MOD_LinIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinIf@rel:R20-11#08355853
Content hash
08355853
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINInterface.pdf#nameddest=SWS_LinIf_00198

Inicialización y estado

Returns the version information of this module.

void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinIf_Init función

Initializes the LIN Interface.

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Returns the version information of this module.

void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTp_Init función

Initializes the LIN Transport Layer.

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Servicios · Get…

Reports the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);

Returns the actual sta te of a LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);

Servicios · Set…

Sets the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);

Set the given LIN transceiver to the given mode.

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);

This API enables, disables and cl ears the notification for wakeup events on the addressed network

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);

Servicios · Otros

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);

Enables or disables mirroring for a LIN channel.

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Initiates a transition into the Sleep Mode on the selected channel.

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);

The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);

Requests a schedule table to be executed. Only used for LIN master nodes.

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);

Re quests transmission of a PDU.

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
LinIf_Wakeup función

Initiates the wake up process.

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);

Request to change a specific transport protocol parameter (e.g. block size).

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);

Shutdowns the LIN TP.

void LinTp_Shutdown (void);

Requests transmission of a PDU.

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Callbacks

The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);

The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_TxConfirmation (NetworkHandleType Channel);

Callouts e interfaces esperadas

Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);

Indication of a received PDU from a lower layer communication interface module.

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);

Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

Tipos

A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.

Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255

This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification

This type denotes which Schedule table can be requested by LIN TP during diagnostic session