CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
función CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
Uso y semántica
La función CanTrcv_Init sirve para la inicialización básica del módulo CanTrcv, así como de todos los transceptores CAN conectados [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. La ejecución es síncrona y está especificada como no reentrante [SWS_CanTrcv_00001]. Como parámetro de transferencia espera a través de ConfigPtr un puntero a la configuración del controlador y no posee valor de retorno [SWS_CanTrcv_00001].
Interacción y verificación de hardware
Durante el proceso, la función ejecuta las secuencias de inicialización vinculadas al hardware de todos los transceptores conectados según la configuración, apoyando así la secuencia de inicialización de la pila AUTOSAR [SWS_CanTrcv_00180]. Mediante la llamada, cada transceptor cambia de manera independiente, según su configuración respectiva, al modo CANTRCV_TRCVMODE_SLEEP o a CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00148]. Siempre que el hardware lo admita, CanTrcv_Init comprueba además si se produjo previamente un evento de despertar debido a la actividad del transceptor y lo notifica al EcuM a través de EcuM_SetWakeupEvent con la fuente definida mediante CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
Manejo de errores
En caso de comunicación defectuosa o inexistente con el hardware (por ejemplo, a través de pines de puerto o SPI), la función notifica el error de tiempo de ejecución CANTRCV_E_NO_TRCV_CONTROL al Default Error Tracer [SWS_CanTrcv_00113]. Si la detección de errores de desarrollo está activa, se notifica además CANTRCV_E_BAUDRATE_NOT_SUPPORTED si una velocidad en baudios configurada no es compatible con el transceptor respectivo [SWS_CanTrcv_00168].
Este texto ha sido generado por una IA basándose en la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTrcv_SetOpMode [SWS_CanTrcv_00002] 📄 PDF
Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);
Sets the mode of the Transceiver to the value Op Mode.
La función CanTrcv_SetOpMode sirve para cambiar de forma asíncrona el modo de funcionamiento de un transceptor CAN [SWS_CanTrcv_00002]. Acepta el número de dispositivo del transceptor (Transceiver) así como el modo de destino deseado (OpMode), el cual puede adoptar los valores CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY o CANTRCV_TRCVMODE_SLEEP [SWS_CanTrcv_00102]. La función es reentrante para diferentes transceptores [SWS_CanTrcv_00002]. El valor de retorno E_OK confirma la aceptación de la orden de conmutación; E_NOT_OK señaliza el rechazo de la solicitud, errores en los parámetros o la falta de soporte del modo por parte del hardware [SWS_CanTrcv_00002], [SWS_CanTrcv_00105].
Al realizar la llamada deben respetarse las transiciones de estado predeterminadas:
- Si el transceptor se encuentra en el modo
CANTRCV_TRCVMODE_NORMAL, solo se puede transferir como modo de destinoCANTRCV_TRCVMODE_STANDBYoCANTRCV_TRCVMODE_NORMAL[SWS_CanTrcv_00103]. - Si el transceptor se encuentra en
CANTRCV_TRCVMODE_STANDBY, la función solo se puede llamar conCANTRCV_TRCVMODE_SLEEPoCANTRCV_TRCVMODE_STANDBY[SWS_CanTrcv_00104].
Con la detección de errores de desarrollo (DET) activada, la función notifica las llamadas previas a la inicialización como CANTRCV_E_UNINIT [SWS_CanTrcv_00122], los números de transceptor no válidos como CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123] y los modos de funcionamiento no admisibles como CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. Si se solicita Standby sin que el transceptor se encuentre en Normal o Standby, se desencadena CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_00120]; al solicitar Sleep fuera de Standby o Sleep, se emite la notificación CANTRCV_E_TRCV_NOT_STANDBY [SWS_CanTrcv_00121]. Si el DET está desactivado, en estos casos se devuelve E_NOT_OK. En caso de comunicación inexistente o errónea con el transceptor, se notifica el error de tiempo de ejecución CANTRCV_E_NO_TRCV_CONTROL al DET y se devuelve E_NOT_OK [SWS_CanTrcv_00114].
Si el hardware admite Selective Wakeup, la API comprueba los flags de estado POR y SYSERR [SWS_CanTrcv_00186]. Tan pronto como el transceptor alcanza el modo solicitado, el módulo informa a la capa superior a través del callback CanIf_TrcvModeIndication [SWS_CanTrcv_00158].
Este texto ha sido generado por una IA sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I2)
función CanTrcv_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
función CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] 📄 PDF
Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
Gets the wakeup reason for the Transceiver and returns it in parameter Reason.
función CanTrcv_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
función CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] 📄 PDF
Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);
En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.
Uso y semántica
La función síncrona CanTrcv_SetWakeupMode sirve para activar, desactivar o borrar eventos de wake-up para un transceptor determinado [SWS_CanTrcv_00009]. Se le transfieren el transceptor de destino a través del parámetro Transceiver, así como el modo deseado a través de TrcvWakeupMode. En caso de cambio de estado correcto, la función devuelve E_OK. Si el estado no se puede cambiar o un parámetro no es válido, se devuelve E_NOT_OK y el estado previo se conserva sin cambios [SWS_CanTrcv_00009].
Modos de funcionamiento e interacción
Si se llama a TrcvWakeupMode con el valor CANTRCV_WUMODE_CLEAR, la función borra un evento de wake-up almacenado del transceptor direccionado [SWS_CanTrcv_00094]. En caso de llamada con CANTRCV_WUMODE_ENABLE, el módulo actualiza el evento de wake-up al estado «present», siempre que ya haya pendiente un evento de wake-up almacenado para el bus correspondiente [SWS_CanTrcv_00111]. Interpretación: Para desactivar eventos de wake-up debería existir análogamente un valor de modo correspondiente, aunque este no se detalle por separado en el presente extracto de requisitos. Pregunta Q-e0f15d1d0855db81 (abierta)
Tratamiento de errores y concurrencia
La función es reentrante para diferentes instancias de transceptor [SWS_CanTrcv_00009]. Antes de la llamada, el controlador del transceptor debe estar completamente inicializado: una llamada en estado no inicializado desencadena el error CANTRCV_E_UNINIT con la detección de errores de desarrollo (DET) activa; de lo contrario, se devuelve E_NOT_OK [SWS_CanTrcv_00127]. Un índice no válido en Transceiver produce CANTRCV_E_INVALID_TRANSCEIVER (o bien E_NOT_OK) [SWS_CanTrcv_00131], y un valor de modo no permitido en TrcvWakeupMode notifica CANTRCV_E_PARAM_TRCV_WAKEUP_MODE o proporciona E_NOT_OK [SWS_CanTrcv_00089]. Si no hay comunicación o esta es defectuosa con el transceptor, se notifica el error de tiempo de ejecución CANTRCV_E_NO_TRCV_CONTROL al Default Error Tracer y se devuelve E_NOT_OK [SWS_CanTrcv_00117].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] 📄 PDF
Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);
Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
función CanTrcv_ClearTrcvWufFlag [SWS_CanTrcv_00214] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);
Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
La función síncrona CanTrcv_ClearTrcvWufFlag borra el flag de trama de activación (WUF) en el hardware del transceptor CAN direccionado y solo está disponible si se ha configurado compatibilidad con Selective Wakeup (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. En caso de borrado correcto se devuelve E_OK; de lo contrario, E_NOT_OK [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].
Interacción y secuencia
El módulo CanSM utiliza la API al entrar en un modo de bajo consumo para garantizar que no se pierda ningún evento de activación por trama durante la transición de estado [SWS_CanTrcv_00194]. Tras restablecer el flag WUF, el transceptor CAN debe ponerse en modo Standby (CANTRCV_STANDBY) [SWS_CanTrcv_00194].
Concurrencia y contexto de llamada
Las llamadas a CanTrcv_ClearTrcvWufFlag son reentrantes para diferentes instancias de transceptor (Transceiver) [SWS_CanTrcv_00214].
Manejo de errores
- Errores de desarrollo (DET): Si la detección de errores está activa, la función notifica el error
CANTRCV_E_UNINIT[SWS_CanTrcv_00197] si el controlador no está inicializado y el errorCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198] en caso de un parámetro no válidoTransceiver. Si DET está desactivado, en estos casos se devuelve directamenteE_NOT_OK[SWS_CanTrcv_00197], [SWS_CanTrcv_00198]. - Errores en tiempo de ejecución: Si la comunicación con el transceptor falla o es defectuosa, la función notifica el error en tiempo de ejecución
CANTRCV_E_NO_TRCV_CONTROLal Default Error Tracer y devuelveE_NOT_OK[SWS_CanTrcv_00196].
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 CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the tim eout flag from the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
La función síncrona CanTrcv_ReadTrcvTimeoutFlag lee el estado del flag de timeout directamente desde el hardware del transceptor CAN [SWS_CanTrcv_00215]. Como parámetro de entrada sirve Transceiver para identificar el transceptor al que dirigirse, mientras que mediante el parámetro de salida FlagState de tipo CanTrcv_TrcvFlagStateType* se devuelve el estado del flag [SWS_CanTrcv_00215]. El valor de retorno señala con E_OK una lectura correcta y con E_NOT_OK que no se pudo determinar el estado del flag de timeout [SWS_CanTrcv_00215].
Para el uso y la integración en el controlador del transceptor se aplican las siguientes condiciones marco:
-
Configuración: La API está disponible exclusivamente si está activado el soporte de hardware para redes parciales (
CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. El contenedor de configuración asociadoCanTrcvPartialNetworktambién existe únicamente bajo esta condición [SWS_CanTrcv_00175]. -
Concurrencia: La función está especificada como no reentrante (
Non Reentrant) [SWS_CanTrcv_00215].
El tratamiento de errores distingue según el estado de la detección de errores de desarrollo (Development Error Detection, DET):
-
Si se transfiere un identificador de transceptor no válido, el módulo genera con DET activo el error
CANTRCV_E_INVALID_TRANSCEIVER; con DET desactivado se devuelve en su lugarE_NOT_OK[SWS_CanTrcv_00199]. -
Si se transfiere un puntero nulo para
FlagState(FlagState = NULL), el módulo notifica con DET activo el errorCANTRCV_E_PARAM_POINTER; si DET está desconectado, la llamada proporcionaE_NOT_OK[SWS_CanTrcv_00200].
Esta nota de uso se ha generado automáticamente sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);
Clears the status of the timeout flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
La función síncrona CanTrcv_ClearTrcvTimeoutFlag sirve para restablecer el flag de timeout en el hardware del transceptor [SWS_CanTrcv_00216]. Está disponible exclusivamente si el soporte de hardware para Partial Networking está activado a través del parámetro de configuración CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00216].
Uso e interfaz
La llamada se realiza de forma síncrona a través de la interfaz en CanTrcv.h indicando el transceptor de destino:
- Parámetro:
Transceiverdetermina como valor de entrada (uint8) el canal del transceptor al que dirigirse [SWS_CanTrcv_00216]. - Valor de retorno: Un
Std_ReturnTypeseñala conE_OKel borrado correcto del flag de hardware o conE_NOT_OKun fallo de la operación [SWS_CanTrcv_00216].
Manejo de errores
Si se transfiere a la función un identificador no válido para el parámetro Transceiver, se aplica un tratamiento de errores diferenciado:
- Con la detección de errores de desarrollo (Development Error Detection) activa, se notifica el error
CANTRCV_E_INVALID_TRANSCEIVERal DET [SWS_CanTrcv_00201]. - Si la detección de errores de desarrollo está desactivada, la llamada se interrumpe y devuelve
E_NOT_OKa quien llamó [SWS_CanTrcv_00201].
Concurrencia e integración en el sistema
La función está clasificada como no reentrante (Non Reentrant) [SWS_CanTrcv_00216]. Por lo tanto, las llamadas paralelas para la misma unidad de hardware deben evitarse o sincronizarse mediante la capa llamadora. Además, la función forma parte del alcance funcional para funciones de wakeup selectivo (Partial Networking); las estructuras de configuración correspondientes en el contenedor CanTrcvPartialNetwork existen asimismo solo si CanTrcvHwPnSupport está establecido [SWS_CanTrcv_00175].
Esta nota de uso se basa en la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.
La función síncrona y no reentrante CanTrcv_ReadTrcvSilenceFlag (ID de servicio 0x0d) sirve para leer el estado del flag de silencio directamente desde el hardware del transceptor CAN [SWS_CanTrcv_00217]. Se proporciona a través de la cabecera CanTrcv.h y, debido a la falta de reentrancia, no debe ejecutarse de forma concurrente [SWS_CanTrcv_00217].
Parámetros y valores de retorno
Transceiver: Parámetro de entrada (uint8) para direccionar la respectiva instancia de transceptor a través de su identificador [SWS_CanTrcv_00217].FlagState: Parámetro de salida como puntero aCanTrcv_TrcvFlagStateType, a través del cual se devuelve el estado leído del flag de silencio [SWS_CanTrcv_00217].- Valor de retorno (
Std_ReturnType): DevuelveE_OKsi el estado de hardware del flag de silencio se pudo leer correctamente; de lo contrario,E_NOT_OK[SWS_CanTrcv_00217].
Manejo de errores
Si se transfiere a la función un puntero nulo para el parámetro de salida (FlagState == NULL), el tratamiento de errores depende del control de desarrollo: con DET activado, el controlador del transceptor CAN notifica el error de desarrollo CANTRCV_E_PARAM_POINTER; si DET está desactivado, la llamada se cancela de inmediato con E_NOT_OK [SWS_CanTrcv_00203].
Configuración e interacción
La función se encuentra en el contexto del despertar selectivo (Selective Wakeup). El contenedor de configuración correspondiente CanTrcvPartialNetwork, así como la interfaz CanTrcv_ReadTrcvSilenceFlag, solo están disponibles en el controlador si el soporte de hardware para Partial Networking está configurado mediante CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00217].
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 CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);
Service is called by underlying CANIF in case a wake up interrupt is detected.
La función síncrona y reentrante CanTrcv_CheckWakeup es llamada por la interfaz subyacente CanIf tan pronto como se detecta una interrupción de despertar [SWS_CanTrcv_00143]. A través del parámetro Transceiver se direcciona el transceptor CAN que se va a comprobar [SWS_CanTrcv_00143]. El valor de retorno E_OK señala la aceptación de la llamada, mientras que E_NOT_OK indica la no aceptación [SWS_CanTrcv_00143].
Siempre que el hardware lo admita, la función comprueba si realmente existe un evento de reactivación debido a actividad en el transceptor [SWS_CanTrcv_00146]. Si este es el caso, la notificación de reactivación se envía al EcuM a través de la API EcuM_SetWakeupEvent con la fuente de reactivación referenciada en CanTrcvWakeupSourceRef [SWS_CanTrcv_00146].
Para el tratamiento de errores, se aplican los siguientes requisitos con la detección de errores de desarrollo (DET) activada:
- Si la función se invoca antes de la inicialización del módulo CanTrcv, se notifica el error de desarrollo
CANTRCV_E_UNINIT; si DET está desactivado, la llamada devuelve en su lugarE_NOT_OK[SWS_CanTrcv_00144]. - Si se transfiere un número de transceptor no válido, la función notifica
CANTRCV_E_INVALID_TRANSCEIVER; si DET está desactivado, se devuelveE_NOT_OK[SWS_CanTrcv_00145].
Esta nota de uso se basa exclusivamente en los requisitos de especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] 📄 PDF
Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a remote wake - up pattern (standard CAN wake - up) or by the configured remote wake - up frame.
La función síncrona CanTrcv_SetPNActivationState configura el comportamiento de despertar del transceptor CAN para el modo Standby y Sleep ([SWS_CanTrcv_00219]). Determina si el transceptor se despierta a través de un patrón de wake-up estándar o de forma selectiva a través de una trama de wake-up remota configurada en el marco de Partial Networking ([SWS_CanTrcv_00219]).
Uso y parámetros
La función se proporciona a través de CanTrcv.h con el ID de servicio 0x0f y se ejecuta de forma síncrona ([SWS_CanTrcv_00219]). Su parámetro de transferencia ActivationState de tipo CanTrcv_PNActivationType controla el modo de funcionamiento:
PN_ENABLED: Activa la funcionalidad de wakeup de PN en el transceptor CAN ([SWS_CanTrcv_00219]).PN_DIABLED: Desactiva la funcionalidad de wakeup de PN ([SWS_CanTrcv_00219]).
Como valor de retorno, la función proporciona E_OK si el transceptor se cambió con éxito a la configuración de PN solicitada. Si el cambio falla, se devuelve E_NOT_OK; en este caso, la configuración anterior se mantiene sin modificaciones ([SWS_CanTrcv_00219]).
Restricciones y tratamiento de errores
La función es no reentrante (Non Reentrant) ([SWS_CanTrcv_00219]). Como condición previa obligatoria, el módulo CanTrcv debe haberse inicializado por completo antes de la llamada: si la llamada se produce antes de la inicialización, la función notifica el error CANTRCV_E_UNINIT al DET con la detección de errores de desarrollo activa; si DET está desactivado, la llamada se rechaza de inmediato con el valor de retorno E_NOT_OK ([SWS_CanTrcv_00220]).
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 CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
Requests to check the status of the wakeup flag from the transceiver hardware.
La función CanTrcv_CheckWakeFlag solicita la comprobación del estado del flag de wakeup directamente desde el hardware del transceptor ([SWS_CanTrcv_00223]). La llamada se realiza de forma asíncrona y hace referencia, a través del parámetro de entrada Transceiver, al identificador correspondiente del transceptor CAN al que dirigirse ([SWS_CanTrcv_00223]).
Como valor de retorno, la función proporciona el estado Std_ReturnType ([SWS_CanTrcv_00223]):
E_OK: La solicitud para comprobar el flag de wakeup fue aceptada con éxito ([SWS_CanTrcv_00223]).E_NOT_OK: La solicitud fue rechazada ([SWS_CanTrcv_00223]).
En cuanto a la concurrencia, se establece que la función es no reentrante (Non Reentrant) ([SWS_CanTrcv_00223]). Dado que el servicio está especificado como asíncrono, el valor de retorno refleja únicamente la aceptación de la orden de comprobación; la lectura efectiva del hardware debería producirse posteriormente ([SWS_CanTrcv_00223]). Pregunta Q-f09b7ff49c24cea8 (abierta) No se indican códigos de error concretos ni notificaciones DET o DEM para este servicio.
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF
void CanTrcv_DeInit (void);
De - initializes the Can Trcv module.
La función síncrona CanTrcv_DeInit sirve para la desinicialización del controlador del transceptor CAN [SWS_CanTrcv_91001]. No recibe ningún parámetro, no devuelve ningún valor y está especificada como no reentrante (Non Reentrant) [SWS_CanTrcv_91001]. La interfaz se proporciona a través de la cabecera CanTrcv.h con el Service-ID 0x10 [SWS_CanTrcv_91001].
Durante la ejecución, la función sitúa el hardware del transceptor CAN en el estado NOT_ACTIVE [SWS_CanTrcv_91003]. Dado que CanTrcv_DeInit no es reentrante, las llamadas no deben realizarse de forma interruptiva ni concurrente entre sí [SWS_CanTrcv_91001].
Con respecto al tratamiento de errores y las condiciones de secuencia, se aplica lo siguiente:
- Si la detección de errores de desarrollo (Development Error Detection) está activada para el módulo, la función comprueba el modo de funcionamiento del transceptor. Si el transceptor no se encuentra en el modo
CANTRCV_TRCVMODE_NORMALen el momento de la llamada,CanTrcv_DeInitnotifica el error de desarrolloCANTRCV_E_TRCV_NOT_NORMAL[SWS_CanTrcv_91005]. - De ello se deriva para el llamador la condición previa funcional de operar el transceptor en el estado
CANTRCV_TRCVMODE_NORMALantes de la desinicialización, a fin de evitar un informe de error en el modo de desarrollo [SWS_CanTrcv_91005].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
función CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF
void CanTrcv_MainFunction (void);
Service to scan all busses for wake up events and perform these event.
La función CanTrcv_MainFunction sirve como servicio central del controlador de transceptor CAN para supervisar todos los canales de bus conectados en busca de eventos de despertar ocurridos, así como para llevar a cabo dichos eventos [SWS_CanTrcv_00013]. Posee la signatura en C void CanTrcv_MainFunction(void), está definida con el ID de servicio hexadecimal 0x06 y opera de forma síncrona sin parámetros de transferencia ni valores de retorno [SWS_CanTrcv_00013].
Para la supervisión cíclica, la función explora selectivamente todos los buses que se encuentran en los estados de reposo STANDBY o SLEEP [SWS_CanTrcv_00112]. Si el controlador detecta un evento de despertar en uno de los buses supervisados, CanTrcv_MainFunction establece un flag interno de evento de despertar para provocar la posterior ejecución y procesamiento de estos eventos en el sistema [SWS_CanTrcv_00112].
En cuanto al contexto de llamada, la interfaz se proporciona a través del archivo de cabecera SchM_CanTrcv.h [SWS_CanTrcv_00013]. Interpretación: la provisión mediante esta cabecera del SchM sugiere que la función probablemente deba ser llamada periódicamente por el planificador de BSW en el contexto de una tarea cíclica para muestrear regularmente los canales de bus en estados inactivos. Pregunta Q-588109b1111a0f43 (abierta) En el presente extracto de la especificación no se mencionan códigos de error específicos, mensajes al DET o DEM ni requisitos de reentrancia.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF
void CanTrcv_MainFunctionDiagnostics (void);
Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
La función CanTrcv_MainFunctionDiagnostics (Service-ID 0x08) lee periódicamente el estado de diagnóstico del transceptor y establece los correspondientes errores de producción y de desarrollo [SWS_CanTrcv_00218]. La función carece de parámetros, no posee valor de retorno (void CanTrcv_MainFunctionDiagnostics(void)) y se proporciona a través de la cabecera SchM_CanTrcv.h [SWS_CanTrcv_00218].
Contexto de llamada y concurrencia
Debido a su puesta a disposición a través de SchM_CanTrcv.h, la función principal probablemente es invocada de forma cíclica por el planificador de BSW (SchM) en el contexto de una tarea (interpretación). Pregunta Q-ab1f6c55abcb8d4b (abierta) Dado que la especificación no indica reentrancia, debe asumirse una ejecución no reentrante.
Tratamiento de errores e interacción con el DEM
La evaluación del diagnóstico se realiza en función de la configuración y de la compatibilidad del hardware:
- Si el flag
BUSERRnotificado por el BSW está establecido, la función invoca la APIDem_SetEventStatuscon el parámetroEventIdcomoCANTRCV_E_BUS_ERRORyEventStatuscomoDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - Si el flag
BUSERRestá restablecido,CanTrcv_MainFunctionDiagnosticsinvoca la APIDem_SetEventStatuscon la mismaEventId(CANTRCV_E_BUS_ERROR) y el estadoDEM_EVENT_STATUS_PASSED[SWS_CanTrcv_00227].
Este texto ha sido generado por una IA. No sustituye el estudio de las especificaciones AUTOSAR correspondientes.
Guía del implementador pendiente (complejidad I1)
tipo CanTrcv_ConfigType [SWS_CanTrcv_00209] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and settings affecting all transceivers. Furthermore it contains pointers to transceiver configuration structures. The con tents of the initialization data structure are CAN transceiver hardware specific.
tipo CanTrcv_PNActivationType [SWS_CanTrcv_00210] 📄 PDF
Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.
tipo CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211] 📄 PDF
Provides the state of a flag in the transceiver hardware.
El tipo de enumeración CanTrcv_TrcvFlagStateType representa el estado de un flag individual en el hardware del transceptor [SWS_CanTrcv_00211]. La declaración se proporciona para los módulos de software y controladores aplicadores a través del archivo de cabecera CanTrcv.h [SWS_CanTrcv_00211].
El rango de valores tiene una estructura binaria y distingue dos estados discretos según [SWS_CanTrcv_00211]:
CANTRCV_FLAG_SET: Indica que el flag respectivo está activado en el hardware del transceptor [SWS_CanTrcv_00211].CANTRCV_FLAG_CLEARED: Indica que el flag en el hardware del transceptor está borrado o no está activado [SWS_CanTrcv_00211].
Para el uso práctico, cabe señalar que el tipo sirve primordialmente para el mapeo estandarizado de estados de registro cercanos al hardware [SWS_CanTrcv_00211]. Interpretación: Las capas llamadoras, como el controlador de interfaz CAN o los módulos de diagnóstico, deberían leer típicamente este tipo mediante funciones de consulta a través de parámetros de puntero o valor de retorno, para evaluar posibles flags de error o de wake-up. Pregunta Q-1b75b4baf2f4c6e3 (abierta) Puesto que el tipo en sí no contiene lógica de función, restricciones de reentrancia o notificaciones DET, la comprobación de rangos de valores válidos corresponde a las interfaces de procesamiento.
Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF
Operating modes of the CAN Transceiver Driver.
El tipo de enumeración CanTrcv_TrcvModeType define según [SWS_CanTrcv_00163] los modos de funcionamiento estandarizados para el controlador del transceptor CAN (CanTrcv). La declaración se pone a disposición a través del archivo de cabecera Can_GeneralTypes.h para interfaces intersoftware en la pila de comunicación de AUTOSAR.
Rango de valores y significados
Según [SWS_CanTrcv_00163] se dispone de tres valores de enumeración:
CANTRCV_TRCVMODE_NORMAL(valor0x00): Identifica el modo de funcionamiento regular del transceptor para la transmisión y recepción de mensajes CAN.CANTRCV_TRCVMODE_STANDBY: Representa el modo standby del transceptor, en el que la comunicación descansa y existe un consumo de corriente reducido.CANTRCV_TRCVMODE_SLEEP: Representa el modo de suspensión del transceptor para el máximo ahorro de energía.
Uso y restricciones
La enumeración sirve como representación común del tipo de datos para el estado de hardware del transceptor CAN [SWS_CanTrcv_00163]. Interpretación: El tipo debería servir sobre todo para el paso de parámetros en interfaces de control y consulta del controlador del transceptor, mediante las cuales capas superiores como la interfaz CAN provocan cambios de modo o leen el estado actual. Pregunta Q-95fceb6988818621 (abierta) Dado que el presente extracto de la especificación no contiene errores de tiempo de ejecución (DET/DEM), indicaciones de reentrancia ni firmas de funciones concretas, los contextos de llamada y las reglas de concurrencia deben consultarse en las respectivas funciones del controlador que lo utilicen.
Esta nota de uso se basa exclusivamente en los datos de especificación de AUTOSAR R20-11 sobre [SWS_CanTrcv_00163].
Guía del implementador pendiente (complejidad I1)
tipo CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] 📄 PDF
This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.
El tipo de enumeración CanTrcv_TrcvWakeupModeType sirve para el control de un transceptor CAN en lo relativo a eventos de wake-up y notificaciones de wake-up [SWS_CanTrcv_00164]. La definición del tipo se proporciona a través del archivo de cabecera Can_GeneralTypes.h y queda así disponible en toda la pila [SWS_CanTrcv_00164].
El rango de valores comprende tres modos de control para el transceptor respectivamente direccionado [SWS_CanTrcv_00164]:
CANTRCV_WUMODE_ENABLE(valor0x00): Activa la notificación para eventos de wakeup en el transceptor direccionado [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(valor0x01): Desactiva la notificación para eventos de wakeup en el transceptor direccionado [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(valor0x02): Borra un evento de wakeup almacenado en el transceptor direccionado [SWS_CanTrcv_00164].
Interpretación: En la práctica, el tipo se debería utilizar primordialmente como parámetro de transferencia en funciones de control del controlador del transceptor para activar o desactivar dinámicamente notificaciones de wake-up, así como para restablecer eventos de wake-up detectados. Pregunta Q-c53d60cdad0442ca (abierta) Dado que la especificación, como mero tipo de enumeración, no predefine firmas de función, semántica de ejecución, códigos de error o reglas de concurrencia, estos aspectos quedan determinados por completo por las interfaces del controlador que llaman y procesan [SWS_CanTrcv_00164].
Este texto ha sido elaborado por una IA; no se puede garantizar su exactitud.
Guía del implementador pendiente (complejidad I1)
tipo CanTrcv_TrcvWakeupReasonType [SWS_CanTrcv_00165] 📄 PDF
This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTrcv- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTrcv@rel:R20-11#b28186d8- Content hash
b28186d8- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001
gemini-3.8-flash-low· 2026-10-13 · Original en alemán