CAN Transport Layer (CanTp)
Provides segmentation and reassembly of CAN messages up to 4095 bytes (ISO 15765-2).
Funktionen — Übersicht
void CanTp_Init (const CanTp_ConfigType* CfgPtr);This function initializes the Can Tp module.void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);This function returns the version information of the Can Tp module.void CanTp_Shutdown (void);This function is called to shutdown the Can Tp module.Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Request to change a specific transport protocol parameter (e.Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.void CanTp_MainFunction (void);The main function for scheduling the CAN TP.void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.void CanTp_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.
Typen — Übersicht
struct CanTp_ConfigTypeData structure type for the post - build configuration parameters.
Funktionen & Typen — Detailansicht
función CanTp_Init [SWS_CanTp_00208] 📄 PDF
void CanTp_Init (const CanTp_ConfigType* CfgPtr);
This function initializes the Can Tp module.
La función síncrona y no reentrante CanTp_Init inicializa el módulo CanTp [SWS_CanTp_00208]. Acepta mediante el parámetro CfgPtr un puntero a los datos de configuración post-build (CanTp_ConfigType) y no posee valor de retorno [SWS_CanTp_00208]. El entorno del módulo debe llamar obligatoriamente a CanTp_Init antes de que el módulo pueda utilizarse para otros procesamientos [SWS_CanTp_00199].
Durante la inicialización, se inicializan todas las variables globales del módulo y todas las conexiones de protocolo de transporte se sitúan en un subestado de CANTP_ON, en el cual no está activa una transmisión segmentada ni una recepción segmentada [SWS_CanTp_00030]. Las rutas de recepción se encuentran en el estado CANTP_RX_WAIT y las rutas de transmisión en el estado CANTP_TX_WAIT [SWS_CanTp_00030]. Tras una ejecución correcta, el módulo pasa al estado interno CANTP_ON [SWS_CanTp_00170].
Si se llama a CanTp_Init cuando el módulo ya se encuentra en el estado global CANTP_ON, la función restablece el módulo al estado Idle, de modo que no haya procesos de transmisión ni de recepción en curso [SWS_CanTp_00111].
Si la detección de errores de desarrollo (Development Error Detection) está activada, el módulo CanTp notifica el error CANTP_E_UNINIT si el PDU Router o la CAN Interface intentan ejecutar funciones del módulo (a excepción de CanTp_GetVersionInfo) antes de la llamada a CanTp_Init [SWS_CanTp_00031].
Este texto ha sido generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I2)
función CanTp_GetVersionInfo [SWS_CanTp_00210] 📄 PDF
void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
This function returns the version information of the Can Tp module.
función CanTp_Shutdown [SWS_CanTp_00211] 📄 PDF
void CanTp_Shutdown (void);
This function is called to shutdown the Can Tp module.
Uso y contexto de llamada
La función CanTp_Shutdown sirve para apagar de forma ordenada todo el módulo CanTp ([SWS_CanTp_00211]). La interfaz se proporciona a través del archivo de cabecera CanTp.h y posee el ID de servicio 0x02 ([SWS_CanTp_00211]). La llamada se procesa de forma síncrona, no recibe parámetros de entrada y no devuelve ningún valor ([SWS_CanTp_00211]).
Transición de estado y limpieza
Durante su ejecución, CanTp_Shutdown cierra todas las conexiones de protocolo de transporte aún pendientes, libera todos los recursos asignados y transfiere el módulo CanTp al estado CANTP_OFF ([SWS_CanTp_00202]). Un aspecto esencial del comportamiento de cancelación es que, para las transmisiones o recepciones de tramas aún pendientes, no debe activarse expresamente ninguna notificación a las capas superiores ([SWS_CanTp_00200]).
Concurrencia y condiciones de contorno
La función está especificada como no reentrante (Non Reentrant) ([SWS_CanTp_00211]). Por lo tanto, no debe llamarse simultáneamente desde diferentes contextos de ejecución o rutinas de interrupción. En el alcance funcional de la interfaz no se identifican códigos de error específicos ni notificaciones a la gestión de errores.
Esta nota de uso se ha creado automáticamente a partir de la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTp_Transmit [SWS_CanTp_00212] 📄 PDF
Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
usar
La función CanTp_Transmit sirve para solicitar la transmisión de una N-SDU a través de la capa de transporte de CAN [SWS_CanTp_00212]. Como parámetros se transfieren el identificador de la PDU que se va a transmitir (TxPduId), así como un puntero a los datos, la longitud y los metadatos (PduInfoPtr) [SWS_CanTp_00212]. La llamada responde con E_OK indicando la aceptación correcta o con E_NOT_OK el rechazo de la solicitud [SWS_CanTp_00212]. Mientras que la llamada se confirma de forma síncrona, la tramitación de la transmisión es asíncrona [SWS_CanTp_00176] (interpretación: la indicación «Synchronous» en la tabla de la especificación probablemente se refiera a la recepción de la solicitud). Pregunta Q-df438ddaa4963aba (abierta)
Interacción y procesamiento de PDU
En el caso de N-SDU con metadatos, el módulo almacena la información de direccionamiento (en función del formato de direccionamiento como Normal, Extended, Mixed 11 bit, Normal fixed o Mixed 29 bit) para utilizarla en SF-, FF- y CF-N-PDU, así como para la identificación de FC-N-PDU [SWS_CanTp_00334]. Si no se utilizan metadatos, CanTp_Transmit solo accede a la especificación de longitud SduLength para preparar el PCI de SF o FF, y no utiliza el búfer de datos de la N-SDU [SWS_CanTp_00225].
Tratamiento de errores y concurrencia
- Comprobación de errores: si DET está activado y
PduInfoPtres un punteroNULL, la función notifica el errorCANTP_E_PARAM_POINTERy regresa sin realizar ninguna otra acción [SWS_CanTp_00321]. - Ocupación del canal: si el canal asignado se encuentra en el estado
CANTP_TX_PROCESSINGo si ya se está ejecutando una sesión para el identificador de N-SDU, la solicitud de transmisión se rechaza y se devuelveE_NOT_OK[SWS_CanTp_00123], [SWS_CanTp_00206]. - Reentrancia: el servicio es reentrante para diferentes ID de PDU, pero no es reentrante para el mismo ID de PDU [SWS_CanTp_00212].
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función CanTp_CancelTransmit [SWS_CanTp_00246] 📄 PDF
Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);
Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
La función síncrona CanTp_CancelTransmit solicita la cancelación de una transmisión de PDU en curso en un módulo de comunicación subyacente [SWS_CanTp_00246], iniciando con ello la anulación del proceso de envío [SWS_CanTp_00274]. Como parámetro se transfiere el identificador de la PDU afectada (TxPduId) [SWS_CanTp_00246]. Como valor de retorno, E_OK señaliza la ejecución correcta de la cancelación por parte del módulo de destino, mientras que E_NOT_OK indica un rechazo [SWS_CanTp_00246].
Tras la llamada a la función, la transmisión en la conexión afectada se cancela [SWS_CanTp_00243]. Si la cancelación se ha ejecutado con éxito, el módulo CanTp llama obligatoriamente a la confirmación PduR_CanTpTxConfirmation con el resultado negativo E_NOT_OK para informar a las capas superiores sobre la cancelación [SWS_CanTp_00255].
Con la detección de errores de desarrollo (Development Error Detection) activada, CanTp_CancelTransmit comprueba la validez de TxPduId: en caso de parámetro no válido, se genera el error de desarrollo CANTP_E_PARAM_ID y se devuelve E_NOT_OK [SWS_CanTp_00254]. Si la cancelación se solicita para una N-SDU que actualmente no se encuentra en proceso de transmisión, el módulo notifica el error de tiempo de ejecución CANTP_E_OPER_NOT_SUPPORTED al Default Error Tracer (DET) y entrega asimismo E_NOT_OK [SWS_CanTp_00254].
En cuanto a la concurrencia, la función es reentrante para diferentes PDU-IDs, pero no debe llamarse de forma concurrente para la misma TxPduId [SWS_CanTp_00246].
Esta nota de uso se ha elaborado automáticamente a partir de la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función CanTp_CancelReceive [SWS_CanTp_00257] 📄 PDF
Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
La función CanTp_CancelReceive cancela de forma síncrona la recepción en curso de una PDU en un módulo de protocolo de transporte subyacente [SWS_CanTp_00257]. Está disponible a través del archivo de cabecera CanTp.h y posee el Service-ID 0x4c [SWS_CanTp_00257].
Uso y condiciones de llamada
A través del parámetro de entrada RxPduId se transfiere el identificador de la PDU que se va a cancelar [SWS_CanTp_00257]. La llamada se procesa de forma síncrona y está especificada como no reentrante (Non Reentrant) [SWS_CanTp_00257]. Como valor de retorno, la interfaz devuelve el tipo Std_ReturnType:
E_OK: la cancelación ha sido ejecutada con éxito por el módulo de destino [SWS_CanTp_00257].E_NOT_OK: la cancelación ha sido rechazada por el módulo de destino [SWS_CanTp_00257].
Manejo de errores
Con la detección de errores de desarrollo (Development Error Detection) activada, la función valida el parámetro RxPduId [SWS_CanTp_00260]:
- Si el valor de
RxPduIdno es válido,CanTp_CancelReceivenotifica el error de desarrolloCANTP_E_PARAM_IDy devuelveE_NOT_OK[SWS_CanTp_00260]. - Si se solicita una cancelación para una N-SDU que actualmente no se encuentra en un proceso de recepción en curso, el módulo notifica el error de tiempo de ejecución
CANTP_E_OPER_NOT_SUPPORTEDal Default Error Tracer y devuelveE_NOT_OK[SWS_CanTp_00260].
Interacción con módulos adyacentes
Si la cancelación de la recepción se ha ejecutado con éxito, CanTp llama a la función de callback PduR_CanTpRxIndication con el resultado de notificación E_NOT_OK para informar a la capa superior sobre la cancelación [SWS_CanTp_00263].
Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11 y ha sido generada automáticamente.
Guía del implementador pendiente (complejidad I1)
función CanTp_ChangeParameter [SWS_CanTp_00302] 📄 PDF
Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
Request to change a specific transport protocol parameter (e.g. block size).
La función síncrona CanTp_ChangeParameter sirve para la modificación en tiempo de ejecución de un parámetro específico del protocolo de transporte como, por ejemplo, el tamaño de bloque ([SWS_CanTp_00302]). Proporcionado a través del archivo de cabecera CanTp.h, el servicio acepta el identificador de la PDU (id), el identificador del parámetro (parameter) así como el nuevo valor a establecer (value) ([SWS_CanTp_00302]). En caso de ejecución correcta, la función devuelve E_OK; si la modificación falla o es rechazada, entrega E_NOT_OK ([SWS_CanTp_00302]).
Con respecto a la concurrencia y a las condiciones de llamada se aplican los siguientes requisitos:
- La interfaz está implementada como no reentrante (Non Reentrant) ([SWS_CanTp_00302]).
- Si la N-SDU afectada ya se encuentra en un proceso de recepción en curso en el momento de la llamada,
CanTp_ChangeParameterse cancela inmediatamente, devuelveE_NOT_OKy no modifica el valor del parámetro ([SWS_CanTp_00304]).
Existe una interacción especial en el caso de conexiones genéricas: si la función se llama para una N-SDU con MetaData, la modificación del parámetro se aplica a todas las conexiones genéricas y se adopta para todos los procesos de recepción posteriores ([SWS_CanTp_00338]).
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I1)
función CanTp_ReadParameter [SWS_CanTp_00323] 📄 PDF
Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);
This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.
usar
La función síncrona CanTp_ReadParameter sirve para leer el valor actual de los parámetros de recepción BS (Block Size) o STmin (Separation Time minimum) para una N-SDU de recepción especificada [SWS_CanTp_00323]. La declaración está disponible a través del archivo de cabecera CanTp.h [SWS_CanTp_00323].
La interfaz dispone de los siguientes parámetros:
id(in): identificador de la N-SDU recibida (tipoPduIdType) para la que se lee el parámetro de recepción [SWS_CanTp_00323].parameter(in): determina el parámetro a leer (BSoSTminde tipoTPParameterType) [SWS_CanTp_00323].value(out): puntero auint16mediante el cual se proporciona el valor de parámetro leído [SWS_CanTp_00323].
Como valor de retorno, la función devuelve Std_ReturnType; en este caso, E_OK señaliza la aceptación de la solicitud y E_NOT_OK el rechazo [SWS_CanTp_00323].
Manejo de errores
Siempre que la detección de errores de desarrollo (Development Error Detection) esté activada, CanTp_ReadParameter comprueba la validez de los parámetros id y parameter [SWS_CanTp_00324]. Si uno de estos parámetros no es válido, la función notifica el error de desarrollo CANTP_E_PARAM_ID y devuelve E_NOT_OK [SWS_CanTp_00324].
Concurrencia y restricciones
La función está especificada como no reentrante (Non Reentrant) [SWS_CanTp_00323]. Los llamadores deben evitar accesos paralelos a la misma interfaz.
Este texto ha sido generado por una IA a partir de los documentos de especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función CanTp_MainFunction [SWS_CanTp_00213] 📄 PDF
void CanTp_MainFunction (void);
The main function for scheduling the CAN TP.
La función CanTp_MainFunction sirve como punto de entrada central para la planificación periódica del protocolo de transporte CAN (CAN TP) [SWS_CanTp_00213], [SWS_CanTp_00164]. Posee el ID de servicio 0x06, tiene la signatura void CanTp_MainFunction(void) y está disponible a través de la cabecera SchM_CanTp.h [SWS_CanTp_00213]. No recibe parámetros y no devuelve ningún valor de retorno [SWS_CanTp_00213].
Contexto de llamada y control temporal
La llamada se inicia conforme al periodo necesario, bien a través del Schedule Manager o bien mediante el módulo Free Running Timer [SWS_CanTp_00164]. Dentro del módulo, CanTp_MainFunction asume la supervisión temporal y el control de los flujos del protocolo [SWS_CanTp_00164]. En concreto, la función participa en la gestión de los siguientes temporizadores y condiciones temporales:
- Los tiempos de espera (timeouts) del protocolo para la transmisión y la confirmación:
N_As,N_Bs,N_Cs, así comoN_Ar,N_BryN_Cr[SWS_CanTp_00164]. - El cumplimiento del tiempo mínimo de separación entre tramas
STMmin[SWS_CanTp_00164].
Tratamiento de errores y concurrencia
En la carga útil no se definen códigos de error específicos para DET o DEM para esta función. Interpretación: al ser una función de planificación invocada cíclicamente, es probable que CanTp_MainFunction no sea reentrante y requiera una tasa de llamada constante para garantizar una decrementación correcta de los temporizadores internos. Pregunta Q-2fe22e31085abf49 (abierta)
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 CanTp_RxIndication [SWS_CanTp_00214] 📄 PDF
void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
Uso y semántica
La función síncrona [SWS_CanTp_00214] notifica al módulo de transporte CAN la recepción de una N-PDU por parte de un módulo de interfaz de comunicación subyacente. La llamada transfiere la identificación de la PDU recibida (RxPduId) así como, a través del puntero PduInfoPtr, la longitud (SduLength), los datos útiles (SduDataPtr) y los metadatos asociados. La función no tiene valor de retorno.
Concurrencia y contexto de llamada
La función es reentrante para diferentes ID de PDU, pero no es reentrante para el mismo ID de PDU [SWS_CanTp_00214]. CanTp_RxIndication puede llamarse en contexto de interrupción, por ejemplo, directamente desde la interrupción de recepción CAN [SWS_CanTp_00235].
Interacción en conexiones genéricas
Al llamarse para Single Frames (SF) o First Frames (FF) con metadatos, CanTp almacena la información de direccionamiento contenida (como N_SA y N_TA en direccionamiento Normal-fixed o Mixed-29-Bit). Esta información sirve para establecer la conexión con la capa superior, enviar tramas de control de flujo (Flow Control, FC) y reconocer tramas consecutivas (Consecutive Frames, CF) [SWS_CanTp_00330]. En las tramas CF posteriores y tramas FC recibidas, CanTp comprueba los datos de dirección de los metadatos con respecto a los valores almacenados [SWS_CanTp_00333], [SWS_CanTp_00336].
Tratamiento de errores y relleno
Si DET está habilitado y PduInfoPtr es un puntero NULL, la función notifica el error CANTP_E_PARAM_POINTER y regresa sin realizar ninguna acción [SWS_CanTp_00322]. Si la comprobación de relleno (padding) está habilitada para tramas con una carga útil de hasta 8 bytes (CanTpRxPaddingActivation o CanTpTxPaddingActivation igual a CANTP_ON), en caso de errores de longitud se notifica el error en tiempo de ejecución CANTP_E_PADDING al DET:
- Un SF con
SduLength < 8se descarta [SWS_CanTp_00345]. - Un último CF con
SduLength != 8cancela la recepción en curso mediantePduR_CanTpRxIndication()conE_NOT_OK[SWS_CanTp_00346]. - Un FC recibido con
SduLength < 8cancela la transmisión en curso mediantePduR_CanTpTxConfirmation()conE_NOT_OK[SWS_CanTp_00349].
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 I2)
función CanTp_TxConfirmation [SWS_CanTp_00215] 📄 PDF
void CanTp_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.
El módulo CanTp proporciona la función de callback síncrona CanTp_TxConfirmation (ID de servicio 0x40) a través de la cabecera CanTp.h para recibir llamadas de confirmación para PDU transmitidas [SWS_CanTp_00076] [SWS_CanTp_00215]. A través de esta interfaz, el módulo de interfaz de comunicación subyacente notifica el envío correcto o el fallo en la transmisión de una PDU [SWS_CanTp_00215].
Parámetros y valores de retorno
La función no devuelve ningún valor (void) y espera dos parámetros de entrada [SWS_CanTp_00215]:
TxPduId: ID de la PDU transmitida [SWS_CanTp_00215].result: Estado de transmisión. El valorE_OKconfirma la transmisión correcta, mientras queE_NOT_OKseñala el fallo en la transmisión de la PDU [SWS_CanTp_00215].
Manejo de errores
Si se llama a CanTp_TxConfirmation con el valor de resultado E_NOT_OK, el módulo CanTp cancela la sesión de transmisión asociada [SWS_CanTp_00355].
Concurrencia y contexto de ejecución
En cuanto a la concurrencia, la función es reentrante para diferentes ID de PDU, pero no es reentrante para el mismo ID de PDU [SWS_CanTp_00215]. Debe poder invocarse en contexto de interrupción y puede llamarse, por ejemplo, directamente desde la interrupción de transmisión CAN [SWS_CanTp_00236].
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 I2)
tipo CanTp_ConfigType [SWS_CanTp_00340] 📄 PDF
Data structure type for the post - build configuration parameters.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTp- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTp@rel:R20-11#4a420b51- Content hash
4a420b51- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransportLayer.pdf#nameddest=SWS_CanTp_00208
gemini-3.8-flash-low· 2026-10-13 · Original en alemán