DEENESPTFRRUARHIKOZHNL

CAN Transport Layer (CanTp)

ModulCanTp (CAN Transport Layer)
BSW-Modul-ID35
Standard-Header#include "CanTp.h"
SWS-SpezifikationAUTOSAR_SWS_CANTransportLayer.pdf
ClusterCAN

Guide du moduleGÉNÉRÉ PAR IA

Découpe les longs messages en trames CAN et réassemble les segments reçus avec contrôle de flux.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 69cea53d1819 Provenance Questions ouvertes (1)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Découpe les longs messages en trames CAN et réassemble les segments reçus avec contrôle de flux.

Le CAN Transport Layer découpe les messages qui ne tiennent pas dans une trame CAN, gère le flux de données par Flow Control et réassemble les segments reçus selon ISO 15765-2 [SWS_CanTp_00033]. Il s'intercale entre PduR et CanIf, ne possède pas de tampon propre pour les données utiles et copie les données d'émission et de réception segment par segment via les services de copie de la couche supérieure [SWS_CanTp_00298]. Il conclut chaque transmission acceptée par une notification à la couche supérieure, avec succès via E_OK, ou en cas de timeout ou d'interruption via E_NOT_OK. Tout cela nécessite CanTp_Init ; la MainFunction cyclique surveille les timeouts.

CanTp est le CAN Transport Layer. Il découpe les longs messages en trames CAN, contrôle le flux de données et réassemble les segments reçus ; il suit pour cela l'ISO 15765-2, dans la mesure où la spécification n'en dispose pas autrement [SWS_CanTp_00033]. Le module s'intercale entre PduR et CanIf et ne dispose pas de son propre tampon pour les données utiles. Il copie les données segment par segment via les services de copie de la couche supérieure [SWS_CanTp_00298] [SWS_CanTp_00216].

kontext Nutzer DCM / Com (TP-Nutzer) PduR PduR Nutzer->PduR TP-Dienste CanTp CanTp PduR->CanTp CanTp_Transmit CanTp_CancelTransmit / CanTp_CancelReceive CanTp_ChangeParameter / CanTp_ReadParameter CanTp->PduR PduR_CanTpStartOfReception PduR_CanTpCopyRxData / PduR_CanTpCopyTxData PduR_CanTpRxIndication / PduR_CanTpTxConfirmation CanIf CanIf CanTp->CanIf CanIf_Transmit (SF, FF, CF, FC) Det DET CanTp->Det Det_ReportError Det_ReportRuntimeError CanIf->CanTp CanTp_RxIndication CanTp_TxConfirmation BswM BswM (Modusmanagement) BswM->CanTp CanTp_Init / CanTp_Shutdown Sched Schedule Manager (zyklischer Task) Sched->CanTp CanTp_MainFunction

Diagramme de contexte : les interfaces de CanTp vers PduR, CanIf, la gestion des modes, l'ordonnanceur et le DET. Sources : [SWS_CanTp_00216], SWS CanTp p. 17

Après la mise sous tension, CanTp se trouve dans CANTP_OFF [SWS_CanTp_00168]. CanTp_Init avec CanTp_ConfigType [SWS_CanTp_00208] place toutes les connexions à l'état de repos [SWS_CanTp_00030] ; ensuite, CANTP_ON s'applique [SWS_CanTp_00170]. CanTp_Shutdown ferme toutes les connexions sans notifier personne [SWS_CanTp_00202] [SWS_CanTp_00200]. Les canaux de connexion fonctionnent indépendamment les uns des autres avec leurs propres timers [SWS_CanTp_00122]. Si un canal d'émission est occupé, CanTp rejette les nouvelles requêtes avec E_NOT_OK [SWS_CanTp_00123].

Lors de l'émission, CanTp_Transmit évalue uniquement la longueur (et le cas échéant MetaData) [SWS_CanTp_00225]. Selon la longueur, un SF ou une session segmentée s'ensuit [SWS_CanTp_00232]. Pour chaque segment, CanTp récupère les données avec PduR_CanTpCopyTxData [SWS_CanTp_00086] et attend un Flow Control après le FF et chaque bloc sous N_Bs [SWS_CanTp_00315]. Interprétation : l'appel ne signale que l'acceptation ; la fin du transfert intervient de manière asynchrone via PduR_CanTpTxConfirmation [SWS_CanTp_00176] [SWS_CanTp_00204]. Question (ouverte)

Lors de la réception, CanTp demande d'abord un tampon avec PduR_CanTpStartOfReception [SWS_CanTp_00079]. Ensuite, il copie chaque CF avec PduR_CanTpCopyRxData [SWS_CanTp_00269]. Si le tampon est insuffisant, CanTp l'interroge à nouveau dans chaque MainFunction et émet au maximum WFTmax FC(WAIT) [SWS_CanTp_00222] [SWS_CanTp_00223]. À la fin se trouve PduR_CanTpRxIndication [SWS_CanTp_00084]. La fonction cyclique CanTp_MainFunction surveille les expirations de délai [SWS_CanTp_00164].

Réception segmentée d'une N-SDUCanIfCanTpPduRUse Case: First FrameCanTp_RxIndication(FF)N_Br gestartetPduR_CanTpStartOfReception(TpSduLength)BUFREQ_OK, taille de tampon disponiblePduR_CanTpCopyRxData(FF-Daten)CanIf_Transmit(FC: CTS, BS, STmin)looppour chaque CF d'un blocCanTp_RxIndication(CF)PduR_CanTpCopyRxData(6/7 Byte)BUFREQ_OK, Restpufferaltle tampon restant ne suffit pas pour le bloc suivantN_Br en coursCanTp_MainFunctionPduR_CanTpCopyRxData(longueur 0, NULL_PTR)BUFREQ_OK, RestpufferCanIf_Transmit(FC: WAIT)au maximum WFTmax foisPuffer ausreichendCanIf_Transmit(FC: CTS)Use Case: Letzter Consecutive FrameCanTp_RxIndication(letzter CF)PduR_CanTpCopyRxData()PduR_CanTpRxIndication(E_OK)

Diagramme de séquence : réception segmentée avec négociation de tampon et Flow Control CTS/WAIT. Sources : [SWS_CanTp_00269], [SWS_CanTp_00222], SWS CanTp p. 38

CanTp traite les erreurs de trois manières. Il signale les erreurs de développement au DET et renvoie E_NOT_OK [SWS_CanTp_00294]. Les erreurs de protocole telles que les timeouts interrompent la session et sont transmises avec E_NOT_OK à PduR [SWS_CanTp_00205] [SWS_CanTp_00311]. Il en va de même pour les annulations sur demande via les services de cancel [SWS_CanTp_00255] [SWS_CanTp_00263]. Pour les ID invalides dans les services de cancel, R20-11 exige CANTP_E_PARAM_ID [SWS_CanTp_00254], tandis que des versions plus récentes mentionnent d'autres codes.

Rôle dans la pile CAN : protocole de transport entre PduR et CanIf

CanTp est le CAN Transport Layer. Il découpe les messages qui ne tiennent pas dans une trame CAN individuelle en segments, contrôle le flux de données et réassemble les segments reçus (SWS CanTp p. 24, SWS CanTp p. 17). La base est l'ISO 15765-2 : chaque recommandation de cette norme s'applique, à moins que la spécification ne l'exclue expressément [SWS_CanTp_00033]. CanTp n'exécute la segmentation et le réassemblage que dans l'état CANTP_ON [SWS_CanTp_00238].

Vers le haut, CanTp met à la disposition du PduR les services suivants : CanTp_Transmit [SWS_CanTp_00212], CanTp_CancelTransmit [SWS_CanTp_00246] et CanTp_CancelReceive [SWS_CanTp_00257]. Vers le haut, CanTp appelle lui-même PduR_CanTpStartOfReception, PduR_CanTpCopyRxData, PduR_CanTpCopyTxData, PduR_CanTpRxIndication et PduR_CanTpTxConfirmation, et vers le bas CanIf_Transmit [SWS_CanTp_00216]. La couche inférieure signale les trames reçues via CanTp_RxIndication [SWS_CanTp_00078] et les confirmations d'émission via CanTp_TxConfirmation [SWS_CanTp_00076]. Les deux fonctions doivent pouvoir être appelées dans le contexte d'interruption [SWS_CanTp_00235] [SWS_CanTp_00236]. Des passages documentaires plus récents désignent le L-SDU Router (LSduR) comme appelant (SWS CanTp p. 27). Les exigences de R20-11 mentionnent quant à elles le CAN Interface, par exemple [SWS_CanTp_00031] et [SWS_CanTp_00335].

CanTp ne dispose pas de son propre tampon pour les données utiles. Il récupère directement les données d'émission auprès de la couche supérieure [SWS_CanTp_00298] et copie les données reçues immédiatement dans la mémoire de celle-ci (SWS CanTp p. 35). Il en résulte des délais de verrouillage pour la couche supérieure (SWS CanTp p. 35) :

  • Elle maintient le tampon d'émission verrouillé dès que CanTp_Transmit retourne avec E_OK, jusqu'à ce que PduR_CanTpTxConfirmation arrive.
  • Elle maintient le tampon de réception verrouillé dès qu'elle a fourni BUFREQ_OK à PduR_CanTpStartOfReception, jusqu'à ce que PduR_CanTpRxIndication arrive.
kontext Nutzer DCM / Com (TP-Nutzer) PduR PduR Nutzer->PduR TP-Dienste CanTp CanTp PduR->CanTp CanTp_Transmit CanTp_CancelTransmit / CanTp_CancelReceive CanTp_ChangeParameter / CanTp_ReadParameter CanTp->PduR PduR_CanTpStartOfReception PduR_CanTpCopyRxData / PduR_CanTpCopyTxData PduR_CanTpRxIndication / PduR_CanTpTxConfirmation CanIf CanIf CanTp->CanIf CanIf_Transmit (SF, FF, CF, FC) Det DET CanTp->Det Det_ReportError Det_ReportRuntimeError CanIf->CanTp CanTp_RxIndication CanTp_TxConfirmation BswM BswM (Modusmanagement) BswM->CanTp CanTp_Init / CanTp_Shutdown Sched Schedule Manager (zyklischer Task) Sched->CanTp CanTp_MainFunction

Diagramme de contexte : CanTp se situe entre PduR et CanIf. Il est initialisé par le gestionnaire de mode, déclenché cycliquement par le planificateur et signale les erreurs à DET. Sources : [SWS_CanTp_00216], [SWS_CanTp_00217], [SWS_CanTp_00164], SWS CanTp p. 17, Mode Management Guide p. 54

Cycle de vie : CANTP_OFF, CanTp_Init et canaux de connexion indépendants

CanTp connaît les états CANTP_OFF et CANTP_ON [SWS_CanTp_00027]. Après la mise sous tension, le module est dans CANTP_OFF [SWS_CanTp_00168] ; ce n'est que là que la configuration post-build peut être mise à jour [SWS_CanTp_00169].

CanTp_Init reçoit un pointeur vers CanTp_ConfigType [SWS_CanTp_00208] [SWS_CanTp_00340]. La fonction initialise toutes les variables globales et place chaque connexion à l'état de repos CANTP_RX_WAIT ou CANTP_TX_WAIT [SWS_CanTp_00030] ; ensuite, CANTP_ON [SWS_CanTp_00170] s'applique. L'environnement doit appeler CanTp_Init avant toute utilisation ultérieure [SWS_CanTp_00199]. Dans le guide de gestion des modes, une règle BswM s'en charge après NvM_ReadAll (Mode Management Guide p. 54). Un nouvel appel dans CANTP_ON annule toutes les connexions en cours et ramène à l'état de repos [SWS_CanTp_00273] [SWS_CanTp_00111].

CanTp_Shutdown ferme toutes les connexions ouvertes, libère les ressources et définit CANTP_OFF [SWS_CanTp_00202]. Ce faisant, CanTp n'avertit personne des transmissions interrompues [SWS_CanTp_00200] (SWS CanTp p. 58).

Dans CANTP_ON, plusieurs connexions s'exécutent simultanément [SWS_CanTp_00096] :

  • Chaque N-SDU est assignée statiquement à un canal de connexion. Chaque canal possède ses propres temporisateurs, tampons et sa propre machine d'état [SWS_CanTp_00121] [SWS_CanTp_00122].
  • Les canaux ne sont visibles qu'en interne [SWS_CanTp_00285]. L'outil de configuration détermine leur nombre [SWS_CanTp_00289].
  • Si un canal d'émission est dans CANTP_TX_PROCESSING, CanTp rejette les nouvelles requêtes via CanTp_Transmit avec E_NOT_OK [SWS_CanTp_00123]. La même règle s'applique à une N-SDU qui se trouve déjà dans une session en cours [SWS_CanTp_00206].
  • Si plusieurs N-SDU partagent un canal et qu'aucun canal libre n'est disponible, CanTp refuse l'émission ou interrompt la réception [SWS_CanTp_00288] (SWS CanTp p. 42).
lebenszyklus cluster_on CANTP_ON cluster_rx Rx-Verbindungskanal cluster_tx Tx-Verbindungskanal PowerUp Einschalten OFF CANTP_OFF (configuration post-build modifiable) PowerUp->OFF RXW CANTP_RX_WAIT OFF->RXW CanTp_Init (erfolgreich) TXW CANTP_TX_WAIT OFF->TXW CanTp_Init (erfolgreich) RXP CANTP_RX_PROCESSING RXW->RXP SF/FF empfangen RXP->RXW aucune autre N-PDU attendue ou interruption TXP CANTP_TX_PROCESSING TXW->TXP CanTp_Transmit = E_OK TXP->OFF CanTp_Shutdown (sans notification) TXP->TXW transfert terminé ou interruption

Diagramme d'état : après CanTp_Init, les canaux de réception et d'émission commutent indépendamment les uns des autres entre WAIT et PROCESSING ; CanTp_Shutdown ramène à CANTP_OFF. Sources : [SWS_CanTp_00027], [SWS_CanTp_00030], [SWS_CanTp_00170], [SWS_CanTp_00202], SWS CanTp p. 27

Émission : de CanTp_Transmit à la confirmation

CanTp_Transmit reçoit TxPduId et PduInfoPtr [SWS_CanTp_00212]. Sans MetaData, CanTp n'évalue que la longueur totale SduLength et n'accède pas au tampon de données [SWS_CanTp_00225] [SWS_CanTp_00299]. Avec MetaData, il stocke en plus les informations d'adressage pour tous les SF, FF et CF [SWS_CanTp_00334]. Si les données tiennent dans une N-PDU, CanTp transmet une SF, sinon il ouvre une session multi-trames [SWS_CanTp_00232] (SWS CanTp p. 60). La longueur maximale d'émission (TX_DL) découle de PduLength dans EcuC [SWS_CanTp_00354]. Interprétation : l'appel signale de manière synchrone uniquement si la requête est acceptée ; le transfert proprement dit s'exécute de façon asynchrone [SWS_CanTp_00176]. Question Q-b6d13590324e2906 (ouverte) Après acceptation, CanTp signale dans tous les cas la fin via PduR_CanTpTxConfirmation [SWS_CanTp_00177] [SWS_CanTp_00204].

Pour chaque segment (SF, FF, CF), CanTp appelle PduR_CanTpCopyTxData [SWS_CanTp_00086] ; le temporisateur N_Cs s'exécute jusqu'au premier appel [SWS_CanTp_00167]. Si la couche supérieure retourne BUFREQ_E_BUSY, CanTp réessaie ultérieurement [SWS_CanTp_00184]. CanTp définit toujours le paramètre de réessai sur NULL, car ISO 15765-2 n'admet aucune répétition [SWS_CanTp_00272].

Après le FF et après le dernier CF de chaque bloc, CanTp attend une trame de contrôle de flux sous N_Bs [SWS_CanTp_00315]. Grâce à elle, le récepteur libère des CF supplémentaires ou les retarde [SWS_CanTp_00282]. Si la session est terminée avec succès, PduR_CanTpTxConfirmation suit avec E_OK [SWS_CanTp_00090]. La même séquence en mode pull est illustrée par l'exemple de 50 octets (SWS CanTp p. 37) et par le chemin allant de DCM à CanTp (SWS PduR p. 104).

Émission segmentée d'une N-SDUPduRCanTpCanIfUse Case: déclenchementCanTp_Transmit(TxPduId, PduInfoPtr)uniquement SduLength (+ MetaData)E_OKN_Cs en coursUse Case: First FramePduR_CanTpCopyTxData()BUFREQ_OKCanIf_Transmit(FF)CanTp_TxConfirmation(E_OK)N_Bs en cours : attente du FCCanTp_RxIndication(FC: CTS, BS, STmin)looppour chaque CF d'un bloc (BS trames, intervalle STmin)PduR_CanTpCopyTxData()BUFREQ_OKCanIf_Transmit(CF)CanTp_TxConfirmation(E_OK)attendre à nouveau le FC après chaque bloc (N_Bs)Use Case: AbschlussPduR_CanTpTxConfirmation(E_OK)

Diagramme de séquence : CanTp demande les données segment par segment auprès de PduR, attend le Flow Control après le FF et chaque bloc, et confirme à la fin avec E_OK. Sources : [SWS_CanTp_00212], [SWS_CanTp_00086], [SWS_CanTp_00315], [SWS_CanTp_00090], SWS CanTp p. 73

Réception : négociation de tampon, Flow Control et réassemblage

À chaque SF ou FF entrant, CanTp signale le début de réception avec PduR_CanTpStartOfReception [SWS_CanTp_00079]. La taille de tampon disponible est renvoyée via un paramètre de sortie et peut être inférieure à la N-SDU [SWS_CanTp_00080]. Lors d'un FF, CanTp démarre préalablement le temporisateur N_Br [SWS_CanTp_00166]. Il n'envoie le Flow Control que lorsque le résultat est disponible ; son contenu dépend de ce résultat [SWS_CanTp_00064] [SWS_CanTp_00277]. Tous les FC d'une session de réception portent les mêmes valeurs pour BS et STmin [SWS_CanTp_00067]. Un FC suit respectivement après BS Consecutive Frames [SWS_CanTp_00278].

Après chaque CF, CanTp transmet les données utiles avec PduR_CanTpCopyRxData et prend connaissance à cette occasion du tampon restant [SWS_CanTp_00269]. Pour CAN 2.0, cela représente six ou sept octets par CF. Si le tampon restant après le dernier CF d'un bloc ne suffit pas pour le bloc suivant, CanTp démarre le temporisateur N_Br [SWS_CanTp_00325] [SWS_CanTp_00082]. Tant que ce temporisateur tourne :

Si la session prend fin, avec succès ou non, CanTp appelle PduR_CanTpRxIndication [SWS_CanTp_00084]. Avec ou sans padding, CanTp ne remonte vers le haut que les octets de données réellement utilisés [SWS_CanTp_00116].

Réception segmentée d'une N-SDUCanIfCanTpPduRUse Case: First FrameCanTp_RxIndication(FF)N_Br gestartetPduR_CanTpStartOfReception(TpSduLength)BUFREQ_OK, taille de tampon disponiblePduR_CanTpCopyRxData(FF-Daten)CanIf_Transmit(FC: CTS, BS, STmin)looppour chaque CF d'un blocCanTp_RxIndication(CF)PduR_CanTpCopyRxData(6/7 Byte)BUFREQ_OK, Restpufferaltle tampon restant ne suffit pas pour le bloc suivantN_Br en coursCanTp_MainFunctionPduR_CanTpCopyRxData(longueur 0, NULL_PTR)BUFREQ_OK, RestpufferCanIf_Transmit(FC: WAIT)au maximum WFTmax foisPuffer ausreichendCanIf_Transmit(FC: CTS)Use Case: Letzter Consecutive FrameCanTp_RxIndication(letzter CF)PduR_CanTpCopyRxData()PduR_CanTpRxIndication(E_OK)

Diagramme de séquence : réception segmentée avec négociation de tampon, contrôle de flux par blocs et phase d'attente en cas de tampon restreint. Sources : [SWS_CanTp_00079], [SWS_CanTp_00269], [SWS_CanTp_00222], [SWS_CanTp_00084], SWS CanTp p. 76

rxstart Ein CanTp_RxIndication : SF ou FF reçu Kanal Kanal in CANTP_RX_PROCESSING? Ein->Kanal Art avec MetaData ou autre N_AI ? Kanal->Art Oui Sor PduR_CanTpStartOfReception() Kanal->Sor Non Ign Frame ignorieren Art->Ign Oui Neu laufenden Empfang abbrechen, Frame als neuen Empfang behandeln Art->Neu nein (gleiche N_AI) Neu->Sor Erg valeur de retour ? Sor->Erg NotOk interrompre la réception : aucun FC, aucune PduR_CanTpRxIndication Erg->NotOk BUFREQ_E_NOT_OK Ovfl FF: FC(OVFLW) senden, abbrechen SF: abbrechen Erg->Ovfl BUFREQ_E_OVFL Typ Frame-Typ? Erg->Typ BUFREQ_OK Sf SF: Daten kopieren, PduR_CanTpRxIndication Typ->Sf SF Puf FF : le tampon est-il suffisant pour le bloc suivant ? Typ->Puf FF Cts FC(CTS) senden Puf->Cts Oui Br N_Br starten, Puffer in MainFunction abfragen Puf->Br Non

Diagramme d'activité : voici comment CanTp décide, lors d'une SF ou d'un FF entrant, en fonction de l'état du canal et du résultat de PduR_CanTpStartOfReception. Sources : [SWS_CanTp_00124], [SWS_CanTp_00337], [SWS_CanTp_00081], [SWS_CanTp_00318], [SWS_CanTp_00353], SWS CanTp p. 67

Adressage, MetaData et padding

L'adressage fonctionnel (1:n) n'est autorisé que pour les SF [SWS_CanTp_00092]. CanTp rejette toute session segmentée via un descripteur fonctionnel et signale CANTP_E_INVALID_TATYPE [SWS_CanTp_00093] (SWS CanTp p. 39). En cas d'adressage étendu (Extended) ou mixte (Mixed), CanTp détermine la N-SDU à partir de N_TA ou N_AE dans le premier octet de données [SWS_CanTp_00095] [SWS_CanTp_00284] [SWS_CanTp_00283]. Pour l'affectation des identifiants (SWS CanTp p. 44) :

  • Chaque NSduId est affectée à exactement un LSduId [SWS_CanTp_00035].
  • Le LSduId d'un FC identifie, conjointement avec N_TA ou N_AE, exactement un NSduId [SWS_CanTp_00094].
  • Plusieurs N-SDU ne sont autorisées à référencer la même N-PDU qu'en cas d'adressage étendu/mixte ou avec MetaData [SWS_CanTp_00328].

Les connexions génériques fonctionnent avec MetaData. CanTp enregistre les informations d'adressage issues de la SF ou du FF [SWS_CanTp_00330], les transmet à PduR_CanTpStartOfReception [SWS_CanTp_00331] et vérifie les CF suivants par rapport à celles-ci [SWS_CanTp_00333]. Si le canal est déjà en cours de réception, CanTp ignore toute autre SF ou FF avec MetaData [SWS_CanTp_00337].

Le padding est activé par N-SDU (SWS CanTp p. 43). La valeur de remplissage est CANTP_PADDING_BYTE [SWS_CanTp_00059]. Pour les trames ayant au maximum 8 octets de charge utile :

Si une longueur d'émission ne correspond à aucun DLC valide, CanTp remplit jusqu'à la valeur valide immédiatement supérieure [SWS_CanTp_00351]. CanTp déduit la longueur de réception RX_DL de la première CAN_DL reçue [SWS_CanTp_00350].

Surveillance temporelle, paramètres d'exécution et annulation sur demande

CanTp_MainFunction [SWS_CanTp_00213] est appelée cycliquement. Elle surveille N_As, N_Bs, N_Cs, N_Ar, N_Br, N_Cr ainsi que STmin [SWS_CanTp_00164] (SWS CanTp p. 63). Sa cadence dépend de CanTpMainFunctionPeriod [SWS_CanTp_00300]. Cette valeur doit correspondre à la période de cycle de la tâche appelante (SWS CanTp p. 77). À titre d'exemple, l'analyse temporelle mentionne une tâche de 5 ms (TR Timing Analysis p. 117).

Deux services accèdent au moment de l'exécution aux paramètres de réception BS et STmin d'une N-SDU : CanTp_ChangeParameter les modifie [SWS_CanTp_00302], CanTp_ReadParameter les lit [SWS_CanTp_00323]. Tous deux n'existent que si CanTpChangeParameterApi = TRUE (SWS CanTp p. 61). BS n'est qu'une valeur maximale dont CanTp a le droit de descendre en dessous pour des raisons de tampon [SWS_CanTp_00091]. Entre le FF et le dernier CF d'une session de réception en cours, CanTp rejette toute modification avec E_NOT_OK [SWS_CanTp_00303] [SWS_CanTp_00304]. Pour les connexions génériques, une modification s'applique à toutes [SWS_CanTp_00338].

Les transmissions en cours peuvent être annulées sur demande :

Comportement en cas d'erreur

Erreurs de développement. Si la détection est active, CanTp signale l'erreur à DET et fournit E_NOT_OK [SWS_CanTp_00294] [SWS_CanTp_00217] (SWS CanTp p. 49). Les codes sont définis par [SWS_CanTp_00293]. Cas typiques :

Divergence entre les versions : pour un PduId non valide lors des services d'annulation, R20-11 exige CANTP_E_PARAM_ID [SWS_CanTp_00254] [SWS_CanTp_00260]. Des passages de documents plus récents indiquent à la place CANTP_E_INVALID_TX_ID ou CANTP_E_INVALID_RX_ID (SWS CanTp p. 59). Pour R20-11, l'exigence fait foi.

Erreurs d'exécution. Elles sont transmises au Default Error Tracer [SWS_CanTp_00352] :

Erreurs de protocole. Elles mettent fin à la session avec E_NOT_OK vers la couche supérieure [SWS_CanTp_00205] :

Le PduR transmet la confirmation négative à l'utilisateur, par exemple au DCM, qui se charge ensuite du rétablissement (Error Description p. 29, Error Description p. 28). Dem traite les erreurs de production via FiM [SWS_CanTp_00291].

abbruch cluster_tx Sendeseite cluster_rx Empfangsseite t1 PduR_CanTpCopyTxData = BUFREQ_E_NOT_OK TA Sendesitzung abbrechen t1->TA t2 N_Cs abgelaufen t2->TA t3 N_As abgelaufen t3->TA t4 N_Bs abgelaufen t4->TA t5 FC avec OVFLW ou FS non valide t5->TA t6 FC plus court que 8 octets lors du remplissage d'émission (Tx padding) t6->TA t7 CanIf_Transmit(SF/FF/CF) = E_NOT_OK t7->TA t8 CanTp_TxConfirmation(E_NOT_OK) t8->TA t9 CanTp_CancelTransmit = E_OK t9->TA r1 N_Ar abgelaufen RA Empfangssitzung abbrechen r1->RA r2 N_Cr abgelaufen r2->RA r3 PduR_CanTpCopyRxData = BUFREQ_E_NOT_OK r3->RA r4 WFTmax FC(WAIT) erreicht r4->RA r5 dernier CF trop court lors du remplissage de réception (Rx padding) r5->RA r6 CanIf_Transmit(FC) = E_NOT_OK r6->RA r7 CanTp_CancelReceive = E_OK r7->RA TC PduR_CanTpTxConfirmation(E_NOT_OK) TA->TC RC PduR_CanTpRxIndication(E_NOT_OK) RA->RC

Diagramme d'activité : toutes les causes d'interruption aboutissent pour chaque direction à une notification négative adressée à PduR. Sources : [SWS_CanTp_00205], [SWS_CanTp_00343], [SWS_CanTp_00355], [SWS_CanTp_00342], [SWS_CanTp_00223], [SWS_CanTp_00084], Error Description p. 28

Preuves détaillées supplémentaires

Guide généré par IA sur la base d'extraits de spécification relatifs à CanTp (R20-11). Seules les exigences associées en lien font foi ; les références documentaires issues d'autres versions ne sont fournies qu'à titre explicatif.

CAN Transport Layer (CanTp)

Provides segmentation and reassembly of CAN messages up to 4095 bytes (ISO 15765-2).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction CanTp_Init [SWS_CanTp_00208] 📄 PDF

void CanTp_Init (const CanTp_ConfigType* CfgPtr);

This function initializes the Can Tp module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 62b706f68200 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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_Shutdown [SWS_CanTp_00211] 📄 PDF

void CanTp_Shutdown (void);

This function is called to shutdown the Can Tp module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e5430e2cac5b Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7a5280a26edd Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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 PduInfoPtr est un pointeur NULL, la fonction signale l'erreur CANTP_E_PARAM_POINTER et retourne sans autre action [SWS_CanTp_00321].
  • Occupation du canal : si le canal associé se trouve dans l'état CANTP_TX_PROCESSING ou si une session est déjà en cours pour l'identifiant N-SDU, la demande de transmission est rejetée et E_NOT_OK est 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f7624766b8a1 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ccccdf72ba41 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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 RxPduId est non valide, CanTp_CancelReceive signale l'erreur de développement CANTP_E_PARAM_ID et renvoie E_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_SUPPORTED au Default Error Tracer et renvoie E_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).

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2d391dbc31e8 Provenance
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-low · 2026-10-13 · Original allemand

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_ChangeParameter s'interrompt immédiatement, renvoie E_NOT_OK et 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.

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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 949f6cb3df18 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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 (type PduIdType) pour laquelle le paramètre de réception est lu [SWS_CanTp_00323].
  • parameter (in) : détermine le paramètre à lire (BS ou STmin de type TPParameterType) [SWS_CanTp_00323].
  • value (out) : pointeur vers uint16, 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 64a7b42182e1 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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_Cs ainsi que N_Ar, N_Br et N_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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 38e732456055 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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 < 8 est rejetée [SWS_CanTp_00345].
  • Une dernière CF avec SduLength != 8 interrompt la réception en cours via PduR_CanTpRxIndication() avec E_NOT_OK [SWS_CanTp_00346].
  • Une FC reçue avec SduLength < 8 interrompt la transmission en cours via PduR_CanTpTxConfirmation() avec E_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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2541d17fed91 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

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 valeur E_OK confirme la transmission réussie, tandis que E_NOT_OK signale 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)

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

Initialisation et état

This function returns the version information of the Can Tp module.

void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
CanTp_Init fonction

This function initializes the Can Tp module.

void CanTp_Init (const CanTp_ConfigType* CfgPtr);

Services

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);

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

Std_ReturnType CanTp_ChangeParameter (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.

Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);

This function is called to shutdown the Can Tp module.

void CanTp_Shutdown (void);

Requests transmission of a PDU.

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

Callbacks

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

void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

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

void CanTp_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Cyclique

The main function for scheduling the CAN TP.

void CanTp_MainFunction (void);

Types

Data structure type for the post - build configuration parameters.