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
fonction CanTp_Init [SWS_CanTp_00208] 📄 PDF
void CanTp_Init (const CanTp_ConfigType* CfgPtr);
This function initializes the Can Tp module.
La fonction synchrone et non réentrante CanTp_Init initialise le module CanTp [SWS_CanTp_00208]. Elle prend en charge, via le paramètre CfgPtr, un pointeur vers les données de configuration post-build (CanTp_ConfigType) et ne possède aucune valeur de retour [SWS_CanTp_00208]. L'environnement du module doit impérativement appeler CanTp_Init avant que le module ne puisse être utilisé pour d'autres traitements [SWS_CanTp_00199].
Pendant l'initialisation, toutes les variables globales du module sont initialisées et toutes les connexions de protocole de transport sont placées dans un sous-état de CANTP_ON au sein duquel ni une transmission segmentée ni une réception segmentée n'est active [SWS_CanTp_00030]. Les voies de réception se trouvent alors dans l'état CANTP_RX_WAIT et les voies d'émission dans l'état CANTP_TX_WAIT [SWS_CanTp_00030]. Après une exécution réussie, le module passe dans l'état interne CANTP_ON [SWS_CanTp_00170].
Si CanTp_Init est appelée alors que le module se trouve déjà dans l'état global CANTP_ON, la fonction réinitialise le module à l'état Idle, de sorte qu'aucune opération d'émission ni de réception n'est en cours [SWS_CanTp_00111].
Si la détection des erreurs de développement (Development Error Detection) est activée, le module CanTp signale l'erreur CANTP_E_UNINIT lorsque le PDU Router ou le CAN Interface tente d'exécuter des fonctions du module (à l'exception de CanTp_GetVersionInfo) avant l'appel de CanTp_Init [SWS_CanTp_00031].
Ce texte a été rédigé par une IA sur la base de la spécification.
Guide de l'implémenteur à venir (complexité I2)
fonction CanTp_GetVersionInfo [SWS_CanTp_00210] 📄 PDF
void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
This function returns the version information of the Can Tp module.
fonction CanTp_Shutdown [SWS_CanTp_00211] 📄 PDF
void CanTp_Shutdown (void);
This function is called to shutdown the Can Tp module.
Utilisation et contexte d'appel
La fonction CanTp_Shutdown sert à arrêter de manière ordonnée l’ensemble du module CanTp ([SWS_CanTp_00211]). L’interface est fournie via le fichier d’en-tête CanTp.h et possède l’ID de service 0x02 ([SWS_CanTp_00211]). L’appel est traité de manière synchrone, ne prend aucun paramètre d’entrée et ne renvoie aucune valeur de retour ([SWS_CanTp_00211]).
Transition d’état et nettoyage
Lors de son exécution, CanTp_Shutdown ferme toutes les connexions de protocole de transport encore en attente, libère l’ensemble des ressources allouées et fait passer le module CanTp à l’état CANTP_OFF ([SWS_CanTp_00202]). Un aspect essentiel du comportement d’interruption est qu’aucune notification ne doit être expressément déclenchée à l’attention des couches supérieures pour les transmissions de trames ou réceptions de trames encore en cours ([SWS_CanTp_00200]).
Concurrence et contraintes
La fonction est spécifiée comme non réentrante (Non Reentrant) ([SWS_CanTp_00211]). Elle ne doit par conséquent pas être appelée simultanément depuis différents contextes d’exécution ou routines d’interruption. Aucun code d’erreur spécifique ni notification destinée à la gestion des erreurs ne figurent dans le périmètre de l’interface.
Cette note d'utilisation a été créée automatiquement sur la base de la spécification AUTOSAR Classic version R20-11.
Guide de l'implémenteur à venir (complexité I1)
fonction CanTp_Transmit [SWS_CanTp_00212] 📄 PDF
Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
Utilisation
La fonction CanTp_Transmit sert à demander la transmission d'une N-SDU via la couche de transport CAN [SWS_CanTp_00212]. Sont transmis comme paramètres l'identifiant de la PDU à transmettre (TxPduId) ainsi qu'un pointeur vers les données, la longueur et les métadonnées (PduInfoPtr) [SWS_CanTp_00212]. L'appel renvoie par E_OK l'acceptation réussie ou par E_NOT_OK le rejet de la requête [SWS_CanTp_00212]. Tandis que l'appel fait l'objet d'un accusé de réception synchrone, le traitement de la transmission est asynchrone [SWS_CanTp_00176] (interprétation : la mention « Synchronous » dans le tableau de spécification devrait faire référence à la prise en compte de la requête). Question Q-df438ddaa4963aba (ouverte)
Interaction et traitement des PDU
Pour les N-SDU avec métadonnées, le module enregistre les informations d'adressage (selon le format d'adressage tel que Normal, Extended, Mixed 11 bit, Normal fixed ou Mixed 29 bit) afin de les utiliser pour les N-PDU SF, FF et CF ainsi que pour l'identification des N-PDU FC [SWS_CanTp_00334]. Si aucune métadonnée n'est utilisée, CanTp_Transmit accède uniquement à l'indication de longueur SduLength pour préparer le PCI SF ou FF et n'utilise pas le tampon de données N-SDU [SWS_CanTp_00225].
Gestion des erreurs et concurrence
- Contrôle d'erreur : si le DET est activé et que
PduInfoPtrest un pointeurNULL, la fonction signale l'erreurCANTP_E_PARAM_POINTERet retourne sans autre action [SWS_CanTp_00321]. - Occupation du canal : si le canal associé se trouve dans l'état
CANTP_TX_PROCESSINGou si une session est déjà en cours pour l'identifiant N-SDU, la demande de transmission est rejetée etE_NOT_OKest renvoyé [SWS_CanTp_00123], [SWS_CanTp_00206]. - Réentrance : le service est réentrant pour des PDU-ID différents, mais non réentrant pour le même PDU-ID [SWS_CanTp_00212].
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR Classic R20-11.
Guide de l'implémenteur à venir (complexité I2)
fonction 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 fonction synchrone CanTp_CancelTransmit demande l'interruption d'une transmission de PDU en cours dans un module de communication sous-jacent [SWS_CanTp_00246] et amorce ainsi l'annulation de l'opération d'émission [SWS_CanTp_00274]. L'identifiant de la PDU concernée (TxPduId) est transmis comme paramètre [SWS_CanTp_00246]. En guise de valeur de retour, E_OK signale l'exécution réussie de l'interruption par le module cible, tandis que E_NOT_OK indique un rejet [SWS_CanTp_00246].
Après l'appel de fonction, la transmission est interrompue sur la connexion concernée [SWS_CanTp_00243]. Si l'interruption a été exécutée avec succès, le module CanTp appelle obligatoirement la confirmation PduR_CanTpTxConfirmation avec le résultat négatif E_NOT_OK afin d'informer les couches supérieures de l'interruption [SWS_CanTp_00255].
Lorsque la détection des erreurs de développement (Development Error Detection) est activée, CanTp_CancelTransmit vérifie la validité de TxPduId : si le paramètre est non valide, l'erreur de développement CANTP_E_PARAM_ID est générée et E_NOT_OK est renvoyé [SWS_CanTp_00254]. Si l'interruption est demandée pour une N-SDU qui ne se trouve pas actuellement dans un processus de transmission, le module signale l'erreur d'exécution CANTP_E_OPER_NOT_SUPPORTED au Default Error Tracer (DET) et fournit également E_NOT_OK [SWS_CanTp_00254].
En matière de concurrence, la fonction est réentrante pour différents ID de PDU, mais ne doit pas être appelée de manière concurrente pour le même TxPduId [SWS_CanTp_00246].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.
Guide de l'implémenteur à venir (complexité I2)
fonction 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 fonction CanTp_CancelReceive interrompt de manière synchrone la réception en cours d'une PDU dans un module de protocole de transport sous-jacent [SWS_CanTp_00257]. Elle est disponible via le fichier d'en-tête CanTp.h et possède l'ID de service 0x4c [SWS_CanTp_00257].
Utilisation et conditions d'appel
L'identifiant de la PDU à interrompre est transmis via le paramètre d'entrée RxPduId [SWS_CanTp_00257]. L'appel est traité de manière synchrone et est spécifié comme non réentrant (Non Reentrant) [SWS_CanTp_00257]. Comme valeur de retour, l'interface fournit le type Std_ReturnType :
E_OK: l'interruption a été exécutée avec succès par le module cible [SWS_CanTp_00257].E_NOT_OK: l'interruption a été rejetée par le module cible [SWS_CanTp_00257].
Gestion des erreurs
Lorsque la détection des erreurs de développement (Development Error Detection) est activée, la fonction valide le paramètre RxPduId [SWS_CanTp_00260] :
- Si la valeur de
RxPduIdest non valide,CanTp_CancelReceivesignale l'erreur de développementCANTP_E_PARAM_IDet renvoieE_NOT_OK[SWS_CanTp_00260]. - Si une interruption est demandée pour une N-SDU qui ne se trouve pas actuellement dans un processus de réception en cours, le module signale l'erreur d'exécution
CANTP_E_OPER_NOT_SUPPORTEDau Default Error Tracer et renvoieE_NOT_OK[SWS_CanTp_00260].
Interaction avec les modules voisins
Si l'interruption de la réception a été exécutée avec succès, CanTp appelle la fonction de rappel PduR_CanTpRxIndication avec le résultat de notification E_NOT_OK afin d'informer la couche supérieure de l'interruption [SWS_CanTp_00263].
Cette note d'utilisation est basée sur la spécification AUTOSAR Classic R20-11 et a été générée automatiquement.
Guide de l'implémenteur à venir (complexité I1)
fonction 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 fonction synchrone CanTp_ChangeParameter sert à modifier au moment de l'exécution un paramètre spécifique de protocole de transport, tel que la taille de bloc ([SWS_CanTp_00302]). Fourni via le fichier d'en-tête CanTp.h, le service prend en charge l'identifiant de la PDU (id), l'identifiant du paramètre (parameter) ainsi que la nouvelle valeur à définir (value) ([SWS_CanTp_00302]). En cas d'exécution réussie, la fonction renvoie E_OK ; si la modification échoue ou est rejetée, elle fournit E_NOT_OK ([SWS_CanTp_00302]).
En ce qui concerne la concurrence et les conditions d'appel, les dispositions suivantes s'appliquent :
- L'interface est exécutée comme non réentrante (Non Reentrant) ([SWS_CanTp_00302]).
- Si la N-SDU concernée se trouve déjà dans un processus de réception en cours au moment de l'appel,
CanTp_ChangeParameters'interrompt immédiatement, renvoieE_NOT_OKet ne modifie pas la valeur du paramètre ([SWS_CanTp_00304]).
Une interaction particulière existe pour les connexions génériques : si la fonction est appelée pour une N-SDU avec MetaData, la modification de paramètre est alors appliquée à toutes les connexions génériques et adoptée pour toutes les opérations de réception ultérieures ([SWS_CanTp_00338]).
Cette note d’utilisation a été générée de manière automatisée sur la base des exigences de la spécification.
La fonction synchrone et non réentrante CanTp_ChangeParameter permet de demander la modification d'un paramètre spécifique du protocole de transport, tel que la taille de bloc (block size), pour une PDU identifiée [SWS_CanTp_00302]. Accessible via le fichier d'en-tête CanTp.h sous le Service ID 0x4b, elle reçoit l'identifiant de la PDU concernée (id), l'identifiant du paramètre à ajuster (parameter) et sa nouvelle valeur (value) [SWS_CanTp_00302].
Son comportement à l'exécution et ses conditions de validation s'articulent ainsi :
- Résultat de la modification : La fonction renvoie
E_OKsi le paramètre a pu être modifié avec succès, ouE_NOT_OKsi la demande a été rejetée [SWS_CanTp_00302]. - Réception en cours : Lorsqu'un changement de paramètre est requis pour une N-SDU dont le processus de réception est déjà actif, l'appel retourne immédiatement
E_NOT_OKet la valeur du paramètre reste inchangée [SWS_CanTp_00304]. - Connexions génériques : Si la fonction est appelée pour une N-SDU dotée de métadonnées (
MetaData), la modification s'applique à l'ensemble des connexions génériques afin d'être prise en compte lors de toutes les réceptions suivantes [SWS_CanTp_00338].
Ce texte a été généré par une intelligence artificielle d'après les exigences officielles de la spécification.
Guide de l'implémenteur à venir (complexité I1)
fonction 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.
Utilisation
La fonction synchrone CanTp_ReadParameter sert à lire la valeur actuelle des paramètres de réception BS (Block Size) ou STmin (Separation Time minimum) pour une N-SDU de réception spécifiée [SWS_CanTp_00323]. La déclaration est disponible via le fichier d'en-tête CanTp.h [SWS_CanTp_00323].
L'interface possède les paramètres suivants :
id(in) : identificateur de la N-SDU reçue (typePduIdType) pour laquelle le paramètre de réception est lu [SWS_CanTp_00323].parameter(in) : détermine le paramètre à lire (BSouSTminde typeTPParameterType) [SWS_CanTp_00323].value(out) : pointeur versuint16, par l'intermédiaire duquel la valeur de paramètre lue est mise à disposition [SWS_CanTp_00323].
Comme valeur de retour, la fonction fournit Std_ReturnType ; E_OK signale alors l'acceptation de la demande et E_NOT_OK le rejet [SWS_CanTp_00323].
Gestion des erreurs
Pour autant que la détection des erreurs de développement (Development Error Detection) soit activée, CanTp_ReadParameter vérifie la validité des paramètres id et parameter [SWS_CanTp_00324]. Si l'un de ces paramètres est non valide, la fonction signale l'erreur de développement CANTP_E_PARAM_ID et renvoie E_NOT_OK [SWS_CanTp_00324].
Concurrence et restrictions
La fonction est spécifiée comme non réentrante (Non Reentrant) [SWS_CanTp_00323]. Les appelants doivent éviter les accès parallèles à la même interface.
Ce texte a été généré par une IA sur la base des documents de spécification d'AUTOSAR R20-11.
Guide de l'implémenteur à venir (complexité I1)
fonction CanTp_MainFunction [SWS_CanTp_00213] 📄 PDF
void CanTp_MainFunction (void);
The main function for scheduling the CAN TP.
La fonction CanTp_MainFunction sert de point d'entrée central pour l'ordonnancement périodique du protocole de transport CAN (CAN TP) [SWS_CanTp_00213], [SWS_CanTp_00164]. Elle possède le Service-ID 0x06, présente la signature void CanTp_MainFunction(void) et est disponible via l'en-tête SchM_CanTp.h [SWS_CanTp_00213]. Elle ne prend aucun paramètre et ne renvoie aucune valeur [SWS_CanTp_00213].
Contexte d'appel et contrôle temporel
L'appel est initié conformément à la durée de période requise, soit par le Schedule Manager, soit par le module Free Running Timer [SWS_CanTp_00164]. Au sein du module, CanTp_MainFunction assure la surveillance temporelle et le contrôle des déroulements du protocole [SWS_CanTp_00164]. Concrètement, la fonction participe au traitement des temporisateurs et conditions temporelles suivants :
- Les délais d'attente du protocole pour la transmission et la confirmation :
N_As,N_Bs,N_Csainsi queN_Ar,N_BretN_Cr[SWS_CanTp_00164]. - Le respect du temps minimal de séparation des trames
STMmin[SWS_CanTp_00164].
Gestion des erreurs et concurrence
Aucun code d'erreur spécifique pour DET ou DEM n'est défini pour cette fonction dans le payload. Interprétation : en tant que fonction d'ordonnancement appelée cycliquement, CanTp_MainFunction devrait être non réentrante et nécessiter une cadence d'appel constante afin de garantir une décrémentation correcte des temporisateurs internes. Question Q-2fe22e31085abf49 (ouverte)
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.
Guide de l'implémenteur à venir (complexité I1)
fonction 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.
Utilisation et sémantique
La fonction synchrone [SWS_CanTp_00214] signale au module de transport CAN la réception d’une N-PDU par un module d’interface de communication sous-jacent. L’appel transmet l’identifiant de la PDU reçue (RxPduId) ainsi que, via le pointeur PduInfoPtr, la longueur (SduLength), les données utiles (SduDataPtr) et les métadonnées associées. La fonction ne possède pas de valeur de retour.
Concurrence et contexte d'appel
La fonction est réentrante pour des PDU-ID différents, mais non réentrante pour un même PDU-ID [SWS_CanTp_00214]. CanTp_RxIndication peut être appelée dans un contexte d’interruption, par exemple directement depuis l’interruption de réception CAN [SWS_CanTp_00235].
Interaction en cas de connexions génériques
Lors d’un appel pour des trames uniques (SF) ou des premières trames (FF) avec des métadonnées, CanTp enregistre les informations d’adressage contenues (telles que N_SA et N_TA pour l’adressage Normal-fixed ou Mixed-29-Bit). Ces informations servent à l’établissement de la connexion vers la couche supérieure, à l’envoi de trames de contrôle de flux (FC) et à la détection de trames consécutives (CF) [SWS_CanTp_00330]. Pour les trames CF ultérieures et les trames FC reçues, CanTp vérifie les données d’adresse des métadonnées par rapport aux valeurs enregistrées [SWS_CanTp_00333], [SWS_CanTp_00336].
Gestion des erreurs et padding
Si DET est activé et que PduInfoPtr est un pointeur NULL, la fonction signale l’erreur CANTP_E_PARAM_POINTER et retourne sans effectuer d’action [SWS_CanTp_00322]. Si la vérification du remplissage (padding) est activée pour les trames ayant une charge utile allant jusqu’à 8 octets (CanTpRxPaddingActivation ou CanTpTxPaddingActivation égal à CANTP_ON), l’erreur d’exécution CANTP_E_PADDING est signalée au DET en cas d’erreurs de longueur :
- Une SF avec
SduLength < 8est rejetée [SWS_CanTp_00345]. - Une dernière CF avec
SduLength != 8interrompt la réception en cours viaPduR_CanTpRxIndication()avecE_NOT_OK[SWS_CanTp_00346]. - Une FC reçue avec
SduLength < 8interrompt la transmission en cours viaPduR_CanTpTxConfirmation()avecE_NOT_OK[SWS_CanTp_00349].
Ce texte a été généré par une IA et sert de guide d'orientation. La spécification AUTOSAR fait foi.
Guide de l'implémenteur à venir (complexité I2)
fonction 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.
Le module CanTp fournit la fonction de rappel synchrone CanTp_TxConfirmation (ID de service 0x40) via l’en-tête CanTp.h afin de recevoir les appels de confirmation pour les PDU envoyées [SWS_CanTp_00076] [SWS_CanTp_00215]. Via cette interface, le module d’interface de communication sous-jacent signale l’envoi réussi ou l’échec d’une transmission de PDU [SWS_CanTp_00215].
Paramètres et valeurs de retour
La fonction ne fournit aucune valeur de retour (void) et attend deux paramètres d’entrée [SWS_CanTp_00215] :
TxPduId: ID de la PDU transmise [SWS_CanTp_00215].result: état de la transmission. La valeurE_OKconfirme la transmission réussie, tandis queE_NOT_OKsignale l’échec de la transmission de la PDU [SWS_CanTp_00215].
Gestion des erreurs
Si CanTp_TxConfirmation est appelée avec la valeur de résultat E_NOT_OK, le module CanTp interrompt la session de transmission associée [SWS_CanTp_00355].
Concurrence et contexte d'exécution
En matière de concurrence, la fonction est réentrante pour des PDU-ID différents, mais non réentrante pour un même PDU-ID [SWS_CanTp_00215]. Elle doit pouvoir être appelée dans un contexte d’interruption et peut par exemple être appelée directement depuis l’interruption d’émission CAN [SWS_CanTp_00236].
Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification d'AUTOSAR Classic Release R20-11.
Guide de l'implémenteur à venir (complexité I2)
type 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#88f46357- Content hash
88f46357- 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 allemand