LIN Driver (Lin)
Controls hardware LIN controllers on the ECU.
Funktionen — Übersicht
void Lin_Init (const Lin_ConfigType* Config);Initializes the LIN module.Std_ReturnType Lin_CheckWakeup (uint8 Channel);This function checks if a wakeup has occurred on the addressed LIN channel.void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);Sends a LIN header and a LIN response, if necessary.Std_ReturnType Lin_GoToSleep (uint8 Channel);The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel.Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced...Std_ReturnType Lin_Wakeup (uint8 Channel);Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.Std_ReturnType Lin_WakeupInternal (uint8 Channel);Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);Service Lin_GetStatus.
Typen — Übersicht
struct Lin_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR...Lin_FramePidTypeRepresents all valid protected identifier used by Lin_ Send Frame().Lin_FrameCsModelTypeThis type is used to specify the Checksum model to be used for the LIN Frame.Lin_FrameResponseTypeThi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.Lin_FrameDlTypeThis type is used to specify the number of SDU data bytes to copy.Lin_PduTypeThis Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.enum Lin_StatusTypeLIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().enum Lin_SlaveErrorTypeThis type represents the slave error types that are detected during header reception and response transmission / reception.
Funktionen & Typen — Detailansicht
función Lin_Init [SWS_Lin_00006] 📄 PDF
void Lin_Init (const Lin_ConfigType* Config);
Initializes the LIN module.
La función síncrona Lin_Init sirve para inicializar el módulo del controlador LIN de la plataforma AUTOSAR Classic conforme a la especificación [SWS_Lin_00006]. La interfaz se proporciona a través de la cabecera Lin.h y se direcciona internamente mediante el Service ID 0x00 [SWS_Lin_00006].
Para el uso y la llamada a la función se aplican las siguientes condiciones de parámetros y de interfaz:
- Parámetros de entrada: Como único parámetro de entrada se espera
Config[SWS_Lin_00006]. Se trata de un puntero al conjunto de datos de configuración del controlador LIN del tipoconst Lin_ConfigType*[SWS_Lin_00006]. Para esta interfaz no se prevén ni parámetros de entrada/salida ni parámetros exclusivos de salida [SWS_Lin_00006]. - Valor de retorno: La función no devuelve ningún valor de retorno (
void) [SWS_Lin_00006]. - Semántica de ejecución: El procesamiento se realiza de forma completamente síncrona (
Synchronous), de modo que los pasos de inicialización del controlador se procesan directamente durante la llamada a la función [SWS_Lin_00006].
En lo que respecta al contexto de llamada y a la concurrencia, se establece que Lin_Init no es reentrante (Non Reentrant) [SWS_Lin_00006]. Interpretación: Dado que la función realiza la inicialización fundamental del módulo del controlador LIN y no está diseñada para ser reentrante, es probable que se llame típicamente durante la fase de arranque del sistema global, antes de utilizar otros servicios del controlador LIN. Pregunta Q-d535602a0d4708ce (abierta) Probablemente no está permitida una llamada simultánea o múltiple desde diferentes contextos de ejecución.
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF
Std_ReturnType Lin_CheckWakeup (uint8 Channel);
This function checks if a wakeup has occurred on the addressed LIN channel.
La función síncrona Lin_CheckWakeup sirve para comprobar si se ha producido un evento de wakeup en un canal LIN direccionado [SWS_Lin_00160]. La interfaz está disponible a través del archivo de cabecera Lin.h y posee el Service ID 0x0a [SWS_Lin_00160]. Para identificar el canal, la función recibe el parámetro Channel del tipo de datos uint8 [SWS_Lin_00160]. No se prevén más parámetros de entrada o de salida para esta interfaz [SWS_Lin_00160].
El resultado de la ejecución se notifica de forma síncrona a través del tipo de retorno Std_ReturnType [SWS_Lin_00160]. El valor de estado E_OK indica que no se ha producido ningún error durante la ejecución de la llamada a la API [SWS_Lin_00160]. Si, por el contrario, se produce un error durante la ejecución, el servicio devuelve el valor de retorno E_NOT_OK [SWS_Lin_00160]. En las fuentes no se especifican códigos de error específicos ni notificaciones a DET o DEM para este elemento.
En cuanto al comportamiento de concurrencia, Lin_CheckWakeup se define como no reentrante (Non Reentrant) [SWS_Lin_00160]. Por tanto, los llamadores deben asegurarse de que las llamadas se realicen de forma secuencial y de que no tenga lugar una ejecución simultánea. Dado que el contexto de llamada exacto no está definido con mayor detalle en la especificación, es de suponer que la llamada probablemente sea iniciada por capas superiores, como la gestión de wakeup o el ECU State Manager. Pregunta Q-40221056a2e2c042 (abierta)
Este texto ha sido generado por una IA; todas las afirmaciones proceden de las especificaciones del estándar AUTOSAR.
función Lin_GetVersionInfo [SWS_Lin_00161] 📄 PDF
void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
función Lin_SendFrame [SWS_Lin_00191] 📄 PDF
Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.
La función Lin_SendFrame sirve para enviar una cabecera LIN y, en caso necesario, la respuesta LIN correspondiente, y está prevista exclusivamente para nodos maestro LIN [SWS_Lin_00191]. Mediante el puntero PduInfoPtr se define la dirección de transmisión de la respuesta de la trama, la cual puede representar una respuesta de maestro, una respuesta de esclavo o una comunicación de esclavo a esclavo [SWS_Lin_00191].
Llamada y parámetros: La ejecución de la función se realiza de forma asíncrona [SWS_Lin_00191]. En la llamada se pasan los siguientes parámetros de entrada:
Channel: Determina el canal LIN al que dirigirse comouint8[SWS_Lin_00191].PduInfoPtr: Puntero a una estructura del tipoLin_PduTypeque contiene el identificador protegido (PID), el modelo de suma de comprobación (Checksum Model), el tipo de respuesta, la longitud de datos (Dl) y el puntero de datos a la SDU [SWS_Lin_00191].
Valores de retorno y comportamiento ante errores: La función devuelve el tipo de retorno Std_ReturnType [SWS_Lin_00191]:
E_OK: La orden de transmisión se ha recibido correctamente y se ha aceptado para su ejecución asíncrona [SWS_Lin_00191].E_NOT_OK: La orden de transmisión ha sido rechazada porque existe un error de desarrollo (Development Error) o un error de producción (Production Error) [SWS_Lin_00191].
Concurrencia e integración: La interfaz está especificada como no reentrante (Non Reentrant), motivo por el cual deben evitarse llamadas paralelas en el mismo canal [SWS_Lin_00191]. La función posee el Service ID 0x04 y se incluye a través del archivo de cabecera Lin.h [SWS_Lin_00191].
Esta nota de uso se creó de manera automatizada a partir de la especificación AUTOSAR R20-11.
función Lin_GoToSleep [SWS_Lin_00166] 📄 PDF
Std_ReturnType Lin_GoToSleep (uint8 Channel);
The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.
Función y contexto de llamada
La función Lin_GoToSleep instruye al controlador LIN a enviar un comando de go-to-sleep en el canal LIN direccionado [SWS_Lin_00166]. Este servicio de controlador tiene el Service-ID 0x06 y se pone a disposición a través del archivo de cabecera Lin.h [SWS_Lin_00166]. La ejecución del servicio se realiza de forma asíncrona para quien llama [SWS_Lin_00166]. La declaración de la función es Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].
Parámetros y valores de retorno
Como único parámetro de paso se transmite Channel de tipo uint8, el cual identifica el canal LIN al que se debe acceder [SWS_Lin_00166]. No existen parámetros de entrada o salida adicionales [SWS_Lin_00166].
El valor de retorno de tipo Std_ReturnType proporciona información sobre la aceptación de la solicitud [SWS_Lin_00166]:
E_OK: el comando de go-to-sleep ha sido aceptado con éxito por el controlador [SWS_Lin_00166].E_NOT_OK: el comando no ha sido aceptado porque se ha producido un error de desarrollo o un error de producción [SWS_Lin_00166].
Restricciones y concurrencia
En cuanto a la concurrencia, la función está declarada como no reentrante (Non Reentrant) [SWS_Lin_00166]. Como restricción funcional fundamental, Lin_GoToSleep está previsto exclusivamente para nodos LIN master [SWS_Lin_00166].
Esta nota de uso se generó de forma automatizada a partir de la especificación AUTOSAR R20-11.
función Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF
Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);
Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).
La función síncrona Lin_GoToSleepInternal establece el estado del canal LIN direccionado en LIN_CH_SLEEP, activa la detección de wake-up y pone opcionalmente la unidad de hardware LIN en un modo de bajo consumo de energía reducido, siempre que el hardware lo admita [SWS_Lin_00167]. El direccionamiento del canal LIN deseado se realiza mediante el parámetro de entrada Channel de tipo uint8, mientras que no existen otros parámetros de entrada o salida [SWS_Lin_00167].
El resultado de la ejecución se señaliza de forma síncrona mediante el valor de retorno de tipo Std_ReturnType [SWS_Lin_00167]:
E_OK: el comando para pasar al modo de reposo fue aceptado con éxito [SWS_Lin_00167].E_NOT_OK: el comando fue rechazado porque se ha producido un error de desarrollo o de producción [SWS_Lin_00167].
En cuanto a la concurrencia y el contexto de llamada, Lin_GoToSleepInternal está especificada como no reentrante (Non Reentrant) [SWS_Lin_00167]. Las unidades de software llamadoras deben garantizar por tanto que las llamadas se realicen de forma secuencial y no se superpongan de forma concurrente. La función está definida bajo el Service-ID 0x09 y disponible a través del archivo de cabecera Lin.h [SWS_Lin_00167].
Esta nota de uso se generó de forma automatizada sobre la base de la especificación.
Guía del implementador pendiente (complejidad I1)
función Lin_Wakeup [SWS_Lin_00169] 📄 PDF
Std_ReturnType Lin_Wakeup (uint8 Channel);
Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.
Uso y contexto de llamada
La función Lin_Wakeup pertenece al módulo de controlador Lin de la plataforma AUTOSAR Classic [SWS_Lin_00169]. Su propósito consiste en generar un pulso de activación (Wake-up Pulse) en el canal de bus direccionado y pasar el estado del canal inmediatamente a LIN_CH_OPERATIONAL [SWS_Lin_00169]. La interfaz se proporciona a través del archivo de cabecera Lin.h con el Service-ID 0x07 y la signatura Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].
Como parámetro de entrada, la función recibe Channel de tipo uint8, con lo cual se especifica el canal LIN que se va a controlar [SWS_Lin_00169]. No hay parámetros de entrada/salida ni parámetros de salida puros [SWS_Lin_00169]. El comportamiento de ejecución es asíncrono (Asynchronous); el retorno de la función, por lo tanto, únicamente confirma la aceptación de la orden, mientras que el pulso de wake-up físico se genera posteriormente en el bus [SWS_Lin_00169].
Valores de retorno y tratamiento de errores
A través del tipo de retorno Std_ReturnType se notifica el resultado de la aceptación de la orden [SWS_Lin_00169]:
E_OK: la solicitud de wake-up fue aceptada por el controlador LIN y se procesará [SWS_Lin_00169].E_NOT_OK: la solicitud fue rechazada porque se ha producido un error de desarrollo o de producción [SWS_Lin_00169].
Concurrencia y restricciones
Según la especificación, la función está clasificada como no reentrante (Non Reentrant) [SWS_Lin_00169]. Por lo tanto, las llamadas no deben realizarse de forma interruptiva ni concurrente desde diferentes contextos de ejecución para la misma instancia del controlador. Los componentes llamadores deben asegurar una sincronización adecuada.
Esta nota de uso se ha generado automáticamente sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF
Std_ReturnType Lin_WakeupInternal (uint8 Channel);
Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.
La función Lin_WakeupInternal, proporcionada a través de la cabecera Lin.h, pone un canal LIN de forma asíncrona en el estado operativo LIN_CH_OPERATIONAL sin emitir por ello un impulso de activación hacia el bus LIN físico [SWS_Lin_00256]. Procesa solicitudes internas de activación de la interfaz LIN superior en las que no se permite enviar una señal de wakeup de bus [SWS_Lin_00262]. La llamada se realiza a través del parámetro Channel de tipo uint8. La función devuelve E_OK si la solicitud de activación ha sido aceptada, o E_NOT_OK si la solicitud ha sido rechazada o si existe un error de desarrollo o de producción [SWS_Lin_00256].
Para el contexto de llamada y la concurrencia se aplica que Lin_WakeupInternal no es reentrante (Non Reentrant) [SWS_Lin_00256]. Como condición estricta de secuencia, la máquina de estados del canal direccionado debe encontrarse en el estado de reposo LIN_CH_SLEEP en el momento de la llamada [SWS_Lin_00260].
Con la detección de errores de desarrollo activada, el módulo supervisa las siguientes condiciones de error y notifica los errores de desarrollo correspondientes:
LIN_E_UNINIT: Llamada a la función antes de la inicialización del módulo del controlador LIN [SWS_Lin_00258].LIN_E_INVALID_CHANNEL: El parámetro de canal transferido no es válido o el canal direccionado está inactivo [SWS_Lin_00259].LIN_E_STATE_TRANSITION: Existe una transición de estado no permitida, ya que el canal LIN no se encuentra en el estadoLIN_CH_SLEEP[SWS_Lin_00260].
Esta nota de uso se generó automáticamente a partir de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I1)
función Lin_GetStatus [SWS_Lin_00168] 📄 PDF
Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);
Service Lin_GetStatus.
tipo Lin_ConfigType [SWS_Lin_00227] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.
tipo Lin_FramePidType [SWS_Lin_00228] 📄 PDF
Represents all valid protected identifier used by Lin_ Send Frame().
tipo Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF
This type is used to specify the Checksum model to be used for the LIN Frame.
El tipo de enumeración Lin_FrameCsModelType sirve, conforme a [SWS_Lin_00229], para determinar el modelo de suma de comprobación que se utiliza para una trama LIN individual. La definición del tipo está disponible de forma estándar a través de la cabecera Lin_GeneralTypes.h [SWS_Lin_00229].
Para la configuración se dispone de dos valores conforme a [SWS_Lin_00229]:
LIN_ENHANCED_CS: Selecciona el modelo de suma de comprobación mejorado (Enhanced checksum model) [SWS_Lin_00229].LIN_CLASSIC_CS: Selecciona el modelo de suma de comprobación clásico (Classic checksum model) [SWS_Lin_00229].
Como tipo de datos puro, Lin_FrameCsModelType no define por sí mismo interfaces de funciones, valores de retorno ni mensajes de error DET/DEM [SWS_Lin_00229]. Es probable que su uso tenga lugar principalmente como parámetro o elemento dentro de descriptores de configuración y de trama en el módulo Lin (interpretación), para indicar al controlador según qué algoritmo se verifica la suma de comprobación de la trama durante la transmisión o recepción. Pregunta Q-6d3354059d0641df (abierta) Por lo tanto, un tratamiento de errores para valores no válidos probablemente deba interceptarse a nivel de las API del controlador de procesamiento o de la configuración del módulo (interpretación). Pregunta Q-06e26f4bcff1e520 (abierta)
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
tipo Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF
Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.
tipo Lin_FrameDlType [SWS_Lin_00231] 📄 PDF
This type is used to specify the number of SDU data bytes to copy.
tipo Lin_PduType [SWS_Lin_00232] 📄 PDF
This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.
tipo Lin_StatusType [SWS_Lin_00233] 📄 PDF
LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().
El tipo enumerado Lin_StatusType se proporciona a través de Lin_GeneralTypes.h y define los estados operativos y de transmisión para canales LIN y tramas LIN que se notifican como valor de retorno del servicio de API Lin_GetStatus() [SWS_Lin_00233].
Los valores de estado se dividen en estados de canal y valores de operación de trama [SWS_Lin_00233]:
- Estado del canal:
LIN_OPERATIONALrepresenta el funcionamiento normal en el que el canal LIN está listo para transmitir la siguiente cabecera y no existen datos de una trama anterior (p. ej., tras la inicialización). Por el contrario,LIN_CH_SLEEPrepresenta el estado de reposo del canal, en el que la detección de wake-up está activada para nodos slave [SWS_Lin_00233]. - Transmisiones en curso:
LIN_TX_BUSYidentifica una transmisión en curso de cabecera o respuesta.LIN_RX_BUSYseñaliza un proceso de recepción en curso en el que ya ha llegado al menos un byte de respuesta, pero aún no el byte de checksum final [SWS_Lin_00233]. - Finalización exitosa:
LIN_TX_OKconfirma la transmisión exitosa, mientras queLIN_RX_OKacredita la recepción sin errores de una respuesta completa [SWS_Lin_00233]. - Estados de error y timeouts:
LIN_NOT_OKindica errores de desarrollo o de producción. En operaciones de transmisión, el tipo distingue entreLIN_TX_HEADER_ERROR(error al transmitir la cabecera debido a discrepancia de datos, error de paridad de identificador o errores físicos de bus) yLIN_TX_ERROR(error en la transmisión de la respuesta debido a discrepancia de datos o errores de bus). En el lado de recepción,LIN_RX_ERRORidentifica errores de recepción como errores de framing, overrun, checksum o respuestas incompletas;LIN_RX_NO_RESPONSEnotifica la ausencia total de bytes de respuesta [SWS_Lin_00233].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
tipo Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF
This type represents the slave error types that are detected during header reception and response transmission / reception.
El tipo de enumeración Lin_SlaveErrorType representa los tipos de error específicos de un esclavo LIN que se detectan durante la recepción de la cabecera, así como durante la transmisión o la recepción de la respuesta [SWS_Lin_91140]. La definición del tipo se pone a disposición a través del archivo de cabecera Lin_GeneralTypes.h [SWS_Lin_91140].
Estados de error y rango de valores
La enumeración cubre errores durante las diferentes fases de la comunicación LIN [SWS_Lin_91140]:
LIN_ERR_HEADER: Señaliza un error al recibir la cabecera LIN [SWS_Lin_91140].LIN_ERR_RESP_STOPBIT: Indica un error de trama (framing) o un error de bit de parada en la respuesta [SWS_Lin_91140].LIN_ERR_RESP_CHKSUM: Identifica un error de suma de comprobación (checksum) en la respuesta recibida [SWS_Lin_91140].LIN_ERR_RESP_DATABIT: Notifica un error de monitorización de bits de un bit de datos transmitido en la respuesta [SWS_Lin_91140].LIN_ERR_NO_RESP: Señala que no se ha recibido ninguna respuesta a la cabecera [SWS_Lin_91140].LIN_ERR_INC_RESP: Se produce cuando se ha recibido o transmitido una respuesta incompleta [SWS_Lin_91140].
Uso y restricciones
Interpretación: Dado que el presente extracto de la especificación no contiene firmas de funciones concretas, es de suponer que el tipo sirva como valor de retorno o parámetro de estado en notificaciones a módulos de nivel superior, como la interfaz LIN. Pregunta Q-6a9c54976345ca2b (abierta) El extracto no contiene más detalles sobre reentrancia, contextos de llamada o ejecución síncrona o asíncrona.
Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR R20-11.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Lin- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#33551c79- Content hash
33551c79- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006
gemini-3.8-flash-low· 2026-10-13 · Original en alemán