DEENESPTFRRUARHIKOZHNL

FlexRay Transport Layer (FrTp)

ModulFrTp (FlexRay Transport Layer)
BSW-Modul-ID36
Standard-Header#include "FrTp.h"
SWS-SpezifikationAUTOSAR_SWS_FlexRayISOTransportLayer.pdf
ClusterFlexRay

Guide du moduleGÉNÉRÉ PAR IA

Segmente et réassemble les messages volumineux selon l'ISO 10681-2 entre le PDU Router et le FlexRay Interface.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 74e3fa4a7265 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

Segmente et réassemble les messages volumineux selon l'ISO 10681-2 entre le PDU Router et le FlexRay Interface.

FrTp transmet des messages volumineux entre le PduR et FrIf selon l'ISO 10681-2 ([SWS_FrTp_01005]). Il les segmente et les réassemble, contrôle le flux et répartit la bande passante sur des pools de PDU Tx partagés. FrTp_Transmit ne fait qu'accepter une demande d'émission ; le travail proprement dit est exécuté par la FrTp_MainFunction cyclique, qui doit s'exécuter au moins une fois par cycle FlexRay ([SWS_FrTp_01152]). Sont prises en charge les transmissions acquittées et non acquittées ainsi que les messages de longueur inconnue. En cas d'erreurs de protocole ou de segmentation non autorisée, FrTp s'interrompt et signale E_NOT_OK au PduR.

FrTp est la couche de transport pour FlexRay selon l'ISO 10681-2. Là où la spécification ne définit rien de spécifique, le module suit cette norme ([SWS_FrTp_01005]). Il découpe les grands N-SDU du PduR en N-PDU, les transmet à FrIf avec FrIf_Transmit et réassemble les trames reçues ([SWS_FrTp_01050], FrTp SWS p. 19). Le traitement n'a lieu que dans l'état FRTP_ON, c'est-à-dire entre FrTp_Init et FrTp_Shutdown ([SWS_FrTp_01032], [SWS_FrTp_01036]). FrTp_MainFunction doit s'exécuter au moins une fois par cycle FlexRay ([SWS_FrTp_01152]).

kontext EcuM EcuM FrTp FrTp EcuM->FrTp FrTp_Init / FrTp_Shutdown SchM BSW-Scheduler SchM->FrTp FrTp_MainFunction PduR PduR PduR->FrTp FrTp_Transmit, FrTp_CancelTransmit, FrTp_CancelReceive, FrTp_ChangeParameter FrTp->PduR PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpRxIndication, PduR_FrTpCopyTxData, PduR_FrTpTxConfirmation FrIf FrIf FrTp->FrIf FrIf_Transmit Det DET FrTp->Det Det_ReportRuntimeError FrIf->FrTp FrTp_RxIndication, FrTp_TxConfirmation, FrTp_TriggerTransmit

Diagramme de contexte : FrTp entre le PduR et FrIf, piloté par l'EcuM et le BSW-Scheduler. Sources : [SWS_FrTp_00577], FrTp SWS p. 21

L'émission commence toujours par FrTp_Transmit. L'appel n'occupe qu'un canal et définit TX_SDU_AVAILABLE ([SWS_FrTp_00136], [SWS_FrTp_01039]). La MainFunction se charge du reste : elle récupère les données via PduR_FrTpCopyTxData, alloue le premier PDU de pool libre et décide de la segmentation ([SWS_FrTp_01045], [SWS_FrTp_01048]). En mode « Decoupled Buffer Access », FrIf récupère ultérieurement les données via FrTp_TriggerTransmit ([SWS_FrTp_01060]). PduR_FrTpTxConfirmation suit après chaque demande acceptée ([SWS_FrTp_01058]).

Émission d'une N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Vérifier TxPduId, allouer un canal libreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(longueur disponible)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopjusqu'à ce que toutes les données N-SDU soient transmisesPduR_FrTpCopyTxData(longueur FrTpTxPdu)Préparer Address Information et PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI et données copiéesFrTp_TxConfirmation(TxPduId, E_OK)Définir FrTpTxPdu sur idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenRéinitialiser TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagramme de séquence : acceptation de la demande, traitement dans la MainFunction, confirmation pour chaque N-PDU et à la fin vers le PduR. Sources : FrTp SWS p. 44, [SWS_FrTp_01042]

Lors de la réception, FrTp vérifie le RxPduId et les adresses par rapport à la configuration de la connexion ([SWS_FrTp_01069], [SWS_FrTp_01071]). Lors d'une nouvelle connexion, il appelle PduR_FrTpStartOfReception, copie les fragments vers le haut et émet du FlowControl si nécessaire ([SWS_FrTp_01078], [SWS_FrTp_01080]). Six variantes sont prises en charge : non segmentée ou segmentée, avec ou sans acquittement, avec longueur connue ou inconnue ([SWS_FrTp_01007]–[SWS_FrTp_01012]). Plusieurs connexions partagent des pools de PDU Tx et sont servies à tour de rôle ([SWS_FrTp_01020], [SWS_FrTp_01096]).

En cas d'erreur, FrTp s'interrompt dans trois situations et signale E_NOT_OK au PduR : en cas de Flow Status invalide ou interruptif, et en cas de besoin de segmentation sur des connexions 1:n ([SWS_FrTp_01198], [SWS_FrTp_01208]). Les erreurs d'exécution sont FRTP_E_SEG_ERROR et FRTP_E_NO_CHANNEL. Des temporisateurs et des compteurs tels que la limite FC.WAIT bornent les temps d'attente ([SWS_FrTp_01100], [SWS_FrTp_01114]). Les transmissions en cours peuvent être interrompues avec FrTp_CancelTransmit et FrTp_CancelReceive ([SWS_FrTp_01116], [SWS_FrTp_01181]).

Rôle dans la pile FlexRay et état du module

FrTp est la couche de transport FlexRay selon l'ISO 10681-2. Là où la spécification ne définit rien de spécifique, le module suit cette norme et prend en charge ses formats de N-PDU ([SWS_FrTp_01005], [SWS_FrTp_01006]). Vers le haut, FrTp dessert le PduR. Le PduR démarre les transmissions avec FrTp_Transmit, les interrompt ou en modifie les paramètres. FrTp renvoie des données et des résultats via PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpCopyTxData, PduR_FrTpRxIndication et PduR_FrTpTxConfirmation (FrTp SWS p. 19). Vers le bas, FrTp transmet des N-PDU avec FrIf_Transmit ([SWS_FrTp_01050]). FrIf répond avec FrTp_RxIndication, FrTp_TxConfirmation et FrTp_TriggerTransmit (FrTp SWS p. 21). L'EcuM appelle FrTp_Init et FrTp_Shutdown (FrTp SWS p. 19). Le BSW-Scheduler appelle FrTp_MainFunction ([SWS_FrTp_00162], FrTp SWS p. 81).

Une différence entre les versions : des versions ultérieures intercalent un routeur de L-SDU (LSduR) entre FrTp et FrIf (FrTp SWS p. 19). Pour R20-11, l'interface directe avec FrIf s'applique, telle que définie par [SWS_FrTp_00577] et [SWS_FrTp_01050].

kontext EcuM EcuM FrTp FrTp EcuM->FrTp FrTp_Init / FrTp_Shutdown SchM BSW-Scheduler SchM->FrTp FrTp_MainFunction PduR PduR PduR->FrTp FrTp_Transmit, FrTp_CancelTransmit, FrTp_CancelReceive, FrTp_ChangeParameter FrTp->PduR PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpRxIndication, PduR_FrTpCopyTxData, PduR_FrTpTxConfirmation FrIf FrIf FrTp->FrIf FrIf_Transmit Det DET FrTp->Det Det_ReportRuntimeError FrIf->FrTp FrTp_RxIndication, FrTp_TxConfirmation, FrTp_TriggerTransmit

Diagramme de contexte : FrTp est situé entre le PduR et FrIf et est piloté par l'EcuM et le BSW-Scheduler. Sources : FrTp SWS p. 19, FrTp SWS p. 21, [SWS_FrTp_00577]

Le module connaît deux états, FRTP_OFF et FRTP_ON ([SWS_FrTp_01028]). La variable d'état FrTpState consigne celui qui s'applique ([SWS_FrTp_01029], [SWS_FrTp_01106]). Après la mise sous tension, FrTp se trouve dans FRTP_OFF ([SWS_FrTp_01030]). Seul un FrTp_Init réussi avec un pointeur vers FrTp_ConfigType fait basculer vers FRTP_ON ([SWS_FrTp_01032], [SWS_FrTp_00147], [SWS_FrTp_01194]). La segmentation et le réassemblage ne s'exécutent que dans FRTP_ON ([SWS_FrTp_01033]). FrTp_Shutdown met fin à toutes les connexions ouvertes en arrêtant purement et simplement le fonctionnement. Il libère les ressources et ramène vers FRTP_OFF ([SWS_FrTp_00148], [SWS_FrTp_01036]).

lebenszyklus start OFF FRTP_OFF (aucun traitement) start->OFF Einschalten ON FRTP_ON (Segmentierung, Reassemblierung, Verbindungsverarbeitung) OFF->ON FrTp_Init(configPtr) erfolgreich ON->OFF FrTp_Shutdown() toutes les connexions terminées, ressources libérées

Diagramme d'état : FrTp ne traite les données qu'entre FrTp_Init et FrTp_Shutdown. Sources : [SWS_FrTp_01030], [SWS_FrTp_01032], [SWS_FrTp_01036], FrTp SWS p. 38

FrTp_MainFunction planifie le module et constitue le point d'entrée de toutes les tâches de traitement ([SWS_FrTp_00203], [SWS_FrTp_00580]). Elle doit s'exécuter au moins une fois par cycle FlexRay ([SWS_FrTp_01152]). En revanche, les callbacks ne font pour l'essentiel que positionner des drapeaux : TX_SDU_AVAILABLE existe par canal ([SWS_FrTp_00415], [SWS_FrTp_00416]). RX_PDU_AVAILABLE existe pour chaque N-PDU pouvant être reçu et est effacé après le traitement ([SWS_FrTp_00418], [SWS_FrTp_00421]).

Variantes de transmission selon l'ISO 10681-2

FrTp prend en charge six séquences de trames. Elles diffèrent sur trois points : si le message est segmenté, si le récepteur acquitte et si la longueur est connue au début de la transmission (FrTp SWS p. 27, FrTp SWS p. 31) :

VarianteTrames caractéristiquesRéférence
non segmentée, sans acquittement, longueur connueSTFU[SWS_FrTp_01007]
non segmentée, avec acquittement, longueur connueSTFA → FC.ACK[SWS_FrTp_01008]
segmentée, sans acquittement, longueur connueSTFU, FC.CTS, CF, CFEOB, LF[SWS_FrTp_01009]
segmentée, avec acquittement, longueur connueSTFA, FC.CTS, CF, CFEOB, LF, FC.ACK[SWS_FrTp_01010]
segmentée, sans acquittement, longueur inconnuecomme ci-dessus, longueur totale uniquement dans LF[SWS_FrTp_01011], [SWS_FrTp_01067]
segmentée, avec acquittement, longueur inconnuecomme ci-dessus, avec FC.ACK en plus[SWS_FrTp_01012]

Dans les variantes segmentées et acquittées, FC.ACK devrait suivre LastFrame et conclure le transfert. Question Q-f3c70b1506e2cde4 (ouverte) Il s'agit d'une interprétation des légendes de figures, dont l'ordre n'est pas univoque (FrTp SWS p. 29). Le diagramme suivant illustre le cas de base segmenté sans acquittement.

Transmission segmentée sans acquittement, longueur connueFrTp SenderRécepteur FrTpStartFrame (STFU)FlowControl_CTS (FC.CTS)Use Case: Block 1ConsecutiveFrame (CF)ConsecutiveFrame (CF)ConsecutiveFrame_EOB (CFEOB)Blockende: neue Flusssteuerung erforderlichFlowControl_CTS (FC.CTS)Use Case: Block 2ConsecutiveFrame (CF)LastFrame (LF)

Diagramme de séquence : le récepteur libère chaque bloc par FC.CTS, et CFEOB conclut un bloc. Sources : [SWS_FrTp_01009], FrTp SWS p. 28

Transmission avec longueur inconnue :

Connexions, canaux et pools de PDU

Chaque relation de communication constitue une FrTpConnection propre. Leur nombre est configurable en post-build ([SWS_FrTp_01014], [SWS_FrTp_01015]). Chaque connexion possède une paire d'adresses unique à l'échelle du module et un FRTP_SDUID unique ([SWS_FrTp_01017], [SWS_FrTp_01018]). Plusieurs connexions peuvent partager un FrTpConnectionControl et un FrTpTxPduPool ([SWS_FrTp_01022], [SWS_FrTp_01020]). À l'exécution, plusieurs FrTpChannel fonctionnent en parallèle ; leur nombre est défini par FrTpChanNum ([SWS_FrTp_00088], [SWS_FrTp_00228]). Pour l'émission et la réception, les canaux basculent respectivement entre « idle » et « busy » ([SWS_FrTp_01117], [SWS_FrTp_01025]).

konfiguration Kanal FrTpChannel (Anzahl: FrTpChanNum) TxCon FrTpConnection (Tx) FrTpLa/FrTpRa, FRTP_SDUID Kanal->TxCon FrTpTxConRef RxCon FrTpConnection (Rx) FrTpLa/FrTpRa, FRTP_SDUID Kanal->RxCon FrTpRxConRef Ctrl FrTpConnectionControl (mehrfach referenzierbar) TxCon->Ctrl Referenz Pool FrTpTxPduPool (mehrfach referenzierbar) TxCon->Pool Referenz RxCon->Ctrl Referenz RxCon->Pool Référence (pour le FlowControl) NPdu Tx N-PDUs (ordre croissant, longueur individuelle) Pool->NPdu contient FrIf FrIf NPdu->FrIf SF, CF, LF / FC

Diagramme de contexte : un canal semi-duplex référence une connexion Tx et une connexion Rx. Toutes deux référencent des paramètres de contrôle et un pool de PDU Tx. Sources : FrTp SWS p. 39, [SWS_FrTp_01020], [SWS_FrTp_01088]

Adresses :

  • Lors de l'émission, FrTp reprend les adresses issues des métadonnées SOURCE_ADDRESS_16 et TARGET_ADDRESS_16. Les FrTpLa/FrTpRa configurés sont alors prioritaires ([SWS_FrTp_01204], [SWS_FrTp_01205]).
  • Lors de la réception, FrTp transmet les adresses vers le haut en tant que métadonnées. Il utilise ces mêmes adresses pour le FlowControl ([SWS_FrTp_01206]).

FrTp répartit la bande passante via les pools :

Chemin d'émission : de FrTp_Transmit à PduR_FrTpTxConfirmation

Toute émission commence par FrTp_Transmit ([SWS_FrTp_00136], [SWS_FrTp_00149]). L'appel ne positionne TX_SDU_AVAILABLE que si le TxPduId est valide et qu'un canal est libre ([SWS_FrTp_01039]). Dans le cas contraire, il se termine par E_NOT_OK. Il en va de même si une transmission est déjà en cours pour la même adresse ([SWS_FrTp_01041], [SWS_FrTp_01200]).

Le travail proprement dit est effectué par FrTp_MainFunction :

  1. Elle demande la longueur disponible via PduR_FrTpCopyTxData ([SWS_FrTp_01042]).
  2. Elle alloue le premier FrTpTxPdu libre ([SWS_FrTp_01045]).
  3. Elle décide de la segmentation ([SWS_FrTp_01048]).
  4. Elle copie les données à hauteur de la longueur du PDU ([SWS_FrTp_01123]).
  5. Elle transmet le N-PDU avec la longueur exacte à FrIf_Transmit ([SWS_FrTp_01051]).

Le déroulement est présenté dans FrTp SWS p. 44.

segmentierung start laenge TX_SDU_AVAILABLE défini : PduR_FrTpCopyTxData fournit la longueur disponible start->laenge frei FrTpTxPdu libre dans le pool ? laenge->frei warten Reporter la connexion jusqu'au prochain FrTp_MainFunction frei->warten Non groesse FrTpTxSdu.Length > FrTpTxPdu.Length - AI.Length - PCI.Length? frei->groesse Oui unseg unsegmentiert (einzelner StartFrame) groesse->unseg Non multi 1:n-Verbindung? groesse->multi Oui senden Préparer AI et PCI, PduR_FrTpCopyTxData (longueur FrTpTxPdu), FrIf_Transmit unseg->senden fehler Signaler FRTP_E_SEG_ERROR, interrompre la transmission, PduR_FrTpTxConfirmation(E_NOT_OK) multi->fehler Oui seg segmentiert (StartFrame, CF ..., LastFrame) multi->seg Non seg->senden

Diagramme d'activité : décision entre transmission non segmentée et segmentée, y compris interruption sur les connexions 1:n. Sources : [SWS_FrTp_01047], [SWS_FrTp_01048], [SWS_FrTp_01208], FrTp SWS p. 51

Important pour le débit : si aucun PDU n'est libre, FrTp reporte la connexion jusqu'au prochain appel de la MainFunction ([SWS_FrTp_01047]).

Après chaque N-PDU, FrIf appelle FrTp_TxConfirmation. Cela positionne le FrTpTxPdu sur « idle » ([SWS_FrTp_01052], [SWS_FrTp_01054]). Le canal et le drapeau sont libérés dès que trois conditions sont remplies : toutes les données ont été envoyées, confirmées positivement et, si cela est configuré, acquittées ([SWS_FrTp_01056], [SWS_FrTp_01057]). PduR_FrTpTxConfirmation intervient après chaque demande acceptée, avec E_OK uniquement en cas de succès ([SWS_FrTp_01058]). Pour l'émission, il existe deux modes d'accès aux tampons : « Immediate » et « Decoupled Buffer Access » ([SWS_FrTp_01084]). En mode « Decoupled », FrIf récupère ultérieurement les données via FrTp_TriggerTransmit. Cet appel copie les Address Information, le PCI et les données utiles dans le tampon fourni ([SWS_FrTp_01060], [SWS_FrTp_01061], FrTp SWS p. 50).

Émission d'une N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Vérifier TxPduId, allouer un canal libreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(longueur disponible)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopjusqu'à ce que toutes les données N-SDU soient transmisesPduR_FrTpCopyTxData(longueur FrTpTxPdu)Préparer Address Information et PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI et données copiéesFrTp_TxConfirmation(TxPduId, E_OK)Définir FrTpTxPdu sur idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenRéinitialiser TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagramme de séquence : la demande arrive de manière synchrone et est traitée de manière asynchrone dans la MainFunction ; TriggerTransmit (Decoupled) suit de manière optionnelle. Sources : FrTp SWS p. 44, FrTp SWS p. 50, [SWS_FrTp_01058]

Chemin de réception et réassemblage

La réception commence par FrTp_RxIndication ([SWS_FrTp_00137]). FrTp ne traite une N-PDU que si deux conditions sont remplies ([SWS_FrTp_01069], [SWS_FrTp_01071]) :

  • Le RxPduId est valide.
  • L'adresse de destination correspond à FrTpLa et l'adresse source à FrTpRa.

Sinon, la N-PDU est ignorée ([SWS_FrTp_01072]). Si aucun canal Rx n'est libre, le traitement prend fin et FrTp signale FRTP_E_NO_CHANNEL ([SWS_FrTp_01076], [SWS_FrTp_01186]). FrTp stocke une StartFrame dans un tampon local. Ainsi, une passerelle peut la traiter correctement même en cas de manque temporaire de ressources (FrTp SWS p. 56).

Lors d'une nouvelle connexion, FrTp appelle PduR_FrTpStartOfReception. La longueur attendue ainsi que le contenu et la taille de la StartFrame sont transmis ([SWS_FrTp_01078], [SWS_FrTp_01193]). Les diagrammes R20-11 montrent deux variantes pour l'emplacement de cet appel : dans FrTp_RxIndication (FrTp SWS p. 55) et dans FrTp_MainFunction (FrTp SWS p. 86). R23-11 autorise expressément les deux (FrTp SWS p. 54).

Ensuite, FrTp copie les fragments via PduR_FrTpCopyRxData et envoie FlowControl lorsque le protocole l'exige ([SWS_FrTp_01138], [SWS_FrTp_01080]). Il libère le canal lorsque toutes les données ont été reçues et que tous les FlowControls ont été confirmés ([SWS_FrTp_01081]). PduR_FrTpRxIndication suit systématiquement dès que PduR_FrTpStartOfReception a réussi ([SWS_FrTp_01083]).

Réception et réassemblageFrIfFrTpPduRFrTp_RxIndication(RxPduId, PduInfoPtr)Vérifier le RxPduIdVérifier cible/source par rapport à FrTpLa/FrTpRaaltStartFrame empfangenfreien Rx-Kanal belegenStartFrame in lokalen Puffer kopierenFolgerahmen (CF, LF)Rechercher le canal correspondantRX_PDU_AVAILABLE setzenUse Case: FrTp_MainFunction (StartOfReception alternativ schon in FrTp_RxIndication)optneue VerbindungPduR_FrTpStartOfReception(RxSduId, données et taille de la StartFrame, longueur)Puffer bereitgestelltPduR_FrTpCopyRxData (N-SDU-Fragment)optFlowControl erforderlichFrIf_Transmit(FC N-PDU)FrTp_TxConfirmation(E_OK)Réinitialiser RX_PDU_AVAILABLEoptN-SDU entièrement reçueRx-Kanal freigebenPduR_FrTpRxIndication(RxSduId, E_OK)

Diagramme de séquence : le callback vérifie et met en tampon, la MainFunction réassemble et envoie FlowControl. Sources : FrTp SWS p. 55, [SWS_FrTp_01074], [SWS_FrTp_01083]

Annulation et paramètres d'exécution

FrTpTransmitCancellation définit statiquement si l'annulation d'émission est disponible ; elle est déclenchée avec FrTp_CancelTransmit ([SWS_FrTp_01097], [SWS_FrTp_00384]). L'effet dépend de l'avancement :

  • Si la demande est acceptée mais pas encore démarrée, la connexion est immédiatement libérée. Le récepteur ne remarque rien ([SWS_FrTp_00385], FrTp SWS p. 63).
  • Si la transmission est en cours, FrTp l'arrête avec E_OK ([SWS_FrTp_01116]).
  • E_NOT_OK suit si aucune connexion n'est active ou si la dernière N-PDU d'une transmission non acquittée a déjà été transmise à FrIf ([SWS_FrTp_01116]).

Dans le cas segmenté, un timeout expire du côté du récepteur, ce qui met fin à la réception (FrTp SWS p. 59).

Interruption de l'émission lors d'une transmission segmentéePduR (Sender)FrTp SenderRécepteur FrTpPduR (récepteur)FrTp_TransmitUse Case: FrTp_MainFunctionStartFramePduR_FrTpStartOfReceptionFlowControlFrTp_CancelTransmit(TxPduId)E_OKTransmission interrompue, plus aucun CFTimeout (aucun CF reçu)PduR_FrTpRxIndication(Empfang abgebrochen)

Diagramme de séquence : si l'émetteur interrompt une transmission segmentée en cours, le récepteur met fin à la réception par timeout. Sources : [SWS_FrTp_01116], FrTp SWS p. 69

FrTp_CancelReceive interrompt une réception en cours si la RxPduId est valide, puis renvoie E_OK ([SWS_FrTp_01181], [SWS_FrTp_01183]). En cas de réception non segmentée ou de LastFrame en cours, la fonction rejette l'opération ([SWS_FrTp_01182]). FrTp_ChangeParameter modifie au moment de l'exécution les valeurs de BandwidthControl FrTpSCexp et FrTpMaxNbrOfNPduPerCycle ([SWS_FrTp_00242]). La disposition des bits correspond à celle de la trame FC(CTS) ([SWS_FrTp_01195]). L'identifiant de paramètre correspondant est TP_BC (ComStack Types p. 18). Pendant une réception en cours, la modification est rejetée ([SWS_FrTp_01115]). Après une modification réussie, la connexion utilise les nouvelles valeurs ([SWS_FrTp_01156]).

Comportement en cas d'erreur

Les erreurs de développement sont définies dans [SWS_FrTp_01201] :

  • FRTP_E_UNINIT : appel sans initialisation ; à l'exclusion de FrTp_Init et FrTp_GetVersionInfo.
  • FRTP_E_PARAM_POINTER : pointeur NULL.
  • FRTP_E_INVALID_PDU_SDU_ID : ID de SDU ou de PDU non valide.
  • FRTP_E_INVALID_PARAMETER : paramètre non valide.
  • FRTP_E_UMSG_LENGTH_ERROR : longueur inconnue sans configuration adaptée ([SWS_FrTp_01134]).
  • un code d'erreur pour une initialisation ayant échoué.

Les API vérifient les ID et les pointeurs et renvoient E_NOT_OK en cas d'erreur lorsqu'elles possèdent une valeur de retour ([SWS_FrTp_01139], [SWS_FrTp_01145], [SWS_FrTp_01147]). Les erreurs d'exécution sont FRTP_E_SEG_ERROR (0x05) et FRTP_E_NO_CHANNEL (0x07). Elles sont signalées via Det_ReportRuntimeError ([SWS_FrTp_01208], [SWS_FrTp_00577]).

Dans trois cas, l'émetteur interrompt la transmission et signale PduR_FrTpTxConfirmation avec E_NOT_OK :

Un FrTp_TxConfirmation avec E_NOT_OK libère le canal des deux côtés ([SWS_FrTp_01056], [SWS_FrTp_01081]). Le drapeau RX_ERROR mémorise une erreur de réception jusqu'à ce que l'envoi de FlowControl soit autorisé. Après la réaction (Retry, acquittement négatif ou annulation), il est effacé ([SWS_FrTp_00429], [SWS_FrTp_00430]). Sur les connexions 1:n, il n'y a ni acquittement ni Retry ([SWS_FrTp_00598]).

Les temporisateurs et les timeouts suivent les tableaux de la spécification ([SWS_FrTp_01099], [SWS_FrTp_01100], FrTp SWS p. 67). La configuration doit respecter les conditions suivantes :

Si le PduR renvoie BUFREQ_E_BUSY lors de l'émission, FrTp réessaie jusqu'à FrTpTimeCs fois ([SWS_FrTp_01196]). Les compteurs sont limités ([SWS_FrTp_01105], [SWS_FrTp_01114]). [SWS_FrTp_01113] définit ce qui se produit lorsqu'une limite est atteinte ; le tableau correspondant n'est pas disponible ici. Si le récepteur manque d'un tampon, il envoie FC.WAIT. FrTpMaxFCWait limite le nombre de ces trames (FrTp SWS p. 69).

Saturation du tampon au niveau du récepteur : FC.WAIT et limite de compteurFrTp SenderRécepteur FrTpPduR (récepteur)StartFrameL'émetteur surveille Timeout_BSPduR_FrTpStartOfReceptionkein Pufferloopkein Puffer; COUNTER_FCWT begrenzt durch FrTpMaxFCWaitFlowControl (WAIT)Pufferanforderung wiederholenkein PufferPufferanforderungTampon disponiblePduR_FrTpCopyRxDataFlowControl (CTS)ConsecutiveFrameLe récepteur surveille Timeout_CR

Diagramme de séquence : si le tampon manque, le récepteur envoie FC.WAIT jusqu'à ce que la limite du compteur s'applique ; ensuite, FC.CTS reprend la transmission. Sources : [SWS_FrTp_01105], [SWS_FrTp_01114], FrTp SWS p. 70

Preuves détaillées supplémentaires

Guide généré par IA basé sur des extraits de spécification dans le payload. Les exigences liées font foi pour R20-11 ; les passages de documents d'autres versions ne sont fournis qu'à titre explicatif.

FlexRay Transport Layer (FrTp)

Provides segmented data transmission over FlexRay (ISO 10681-2).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction FrTp_Init [SWS_FrTp_00147] 📄 PDF

void FrTp_Init (const FrTp_ConfigType* configPtr);

This service initializes all global variables of a Flex Ray Transport Layer instance and set it in the idle state. It has no return value because software errors in initialisation data shall be detected during configuration time (e.g. by configuration tool ).

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

La fonction synchrone FrTp_Init initialise toutes les variables globales d'une instance de la couche de transport FlexRay et la place à l'état de repos [SWS_FrTp_00147]. En tant que paramètre d'entrée, un pointeur vers la configuration du protocole de transport FlexRay est transmis via configPtr (const FrTp_ConfigType*) [SWS_FrTp_00147]. L'interface est déclarée via l'en-tête FrTp.h avec l'ID de service 0x00 [SWS_FrTp_00147].

Concernant le comportement interne et le traitement des erreurs, les dispositions suivantes s'appliquent :

  • Une fois la couche de transport initialisée avec succès par l'appel de FrTp_Init, le module FrTp passe dans l'état interne FRTP_ON [SWS_FrTp_01032].
  • La fonction ne possède aucune valeur de retour (void), car les erreurs logicielles dans les données d'initialisation doivent déjà être détectées pendant la phase de configuration, par exemple par un outil de configuration [SWS_FrTp_00147].

En ce qui concerne la concurrence, le service est spécifié comme non réentrant (Non Reentrant) [SWS_FrTp_00147]. Un appel parallèle ou multiple non coordonné n'est donc pas autorisé. Interprétation : l'appel devrait typiquement avoir lieu de manière centralisée dans le cadre du démarrage du calculateur avant l'utilisation des services de transport réguliers. Question Q-9b7cf7fc6dac510e (ouverte)

Cette note d'utilisation a été générée automatiquement sur la base des exigences de spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction FrTp_Shutdown [SWS_FrTp_00148] 📄 PDF

void FrTp_Shutdown (void);

This service closes all pending transport pro tocol connections by simply stopping operation, frees all resources and stops the Fr 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 : 00fb8d95a0be Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone FrTp_Shutdown met fin au fonctionnement du module de protocole de transport FlexRay (FrTp) [SWS_FrTp_00148]. Lors de l'appel, le service ferme immédiatement toutes les connexions de protocole de transport encore en attente par l'arrêt du fonctionnement, libère l'ensemble des ressources occupées et arrête complètement le module FrTp [SWS_FrTp_00148].

En ce qui concerne la spécification de l'interface et le comportement, les propriétés suivantes s'appliquent :

  • Signature et en-tête : la fonction est disponible via le fichier d'en-tête FrTp.h, possède le Service ID 0x01, n'attend aucun paramètre et ne fournit aucune valeur de retour (void) [SWS_FrTp_00148].
  • Concurrence : FrTp_Shutdown est spécifiée comme non réentrante (Non Reentrant) et doit être exécutée de manière synchrone [SWS_FrTp_00148]. Un appel concurrent ou de multiples appels parallèles sont par conséquent inadmissibles.
  • Transition d'état : par l'exécution réussie de la primitive de service FrTp_Shutdown(), le module FrTp passe dans l'état interne FRTP_OFF [SWS_FrTp_01036].

Étant donné que le service ferme les connexions en attente par le simple arrêt du fonctionnement, les transmissions en cours devraient être interrompues immédiatement et sans message de fin distinct. Question Q-35555515f521d0c3 (ouverte)

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction FrTp_Transmit [SWS_FrTp_00149] 📄 PDF

Std_ReturnType FrTp_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 : ad193864f748 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction synchrone FrTp_Transmit demande la transmission d'une PDU via le module de la couche de transport FlexRay [SWS_FrTp_00149]. L'identifiant de la PDU à transmettre est passé via le paramètre TxPduId, tandis que PduInfoPtr pointe vers les données utiles, les métadonnées ainsi que la longueur [SWS_FrTp_00149]. Si une transmission doit être initiée avec une longueur de message encore inconnue de la couche supérieure, il faut appeler FrTp_Transmit avec la valeur de paramètre PduLength = 0 [SWS_FrTp_01064]. L'acceptation de la demande d'émission est confirmée de manière synchrone par E_OK ; si la demande ne peut pas être acceptée, la fonction renvoie E_NOT_OK [SWS_FrTp_00149].

Concurrence et disponibilité des canaux

La fonction est réentrante pour les appels avec des ID de PDU différents, mais non réentrante pour le même identifiant TxPduId [SWS_FrTp_00149]. De plus, l'exécution nécessite un canal de transmission libre : si aucun canal n'est disponible parce que l'état ne se trouve pas au repos (FrTpTxChannelState ≠ Idle), la fonction s'interrompt et renvoie E_NOT_OK [SWS_FrTp_01041].

Gestion des erreurs

Si l'interface de développement pour la détection d'erreurs est active, FrTp_Transmit valide les paramètres transmis :

  • Si une TxPduId non prise en charge ou non valide est transmise, le service s'interrompt avec E_NOT_OK et signale l'erreur de développement FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01040], [SWS_FrTp_01139].
  • Si le pointeur PduInfoPtr n'est pas valide, l'erreur FRTP_E_PARAM_POINTER est signalée et l'exécution s'interrompt également avec E_NOT_OK [SWS_FrTp_01140].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

fonction FrTp_CancelTransmit [SWS_FrTp_00150] 📄 PDF

Std_ReturnType FrTp_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 : ce8fe8bc8ce1 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction de service synchrone FrTp_CancelTransmit demande l'annulation d'une transmission de PDU en cours dans un module de communication sous-jacent [SWS_FrTp_00150]. La transmission à annuler est adressée via le paramètre d'entrée TxPduId [SWS_FrTp_00150].

Comportement dépendant de l'état et valeurs de retour

Le comportement lors de l'annulation dépend de l'état actuel de la connexion :

  • Si la demande d'émission est en attente mais que la transmission elle-même n'a pas encore commencé, FrTp_CancelTransmit libère immédiatement la connexion [SWS_FrTp_00385].
  • Si la transmission est déjà en cours, la fonction interrompt le processus d'émission et confirme l'annulation réussie avec la valeur de retour E_OK [SWS_FrTp_01116].
  • Si la connexion n'est pas active ou si la dernière N-PDU d'une transmission non confirmée a déjà été transmise au FrIf, l'annulation échoue et la fonction renvoie E_NOT_OK [SWS_FrTp_01116].

Gestion des erreurs et concurrence

Pour autant que la détection d'erreurs de développement (Development Error Detection) soit activée pour FrTp_CancelTransmit, la fonction vérifie la validité du paramètre TxPduId. Si cette vérification échoue, l'erreur de développement FRTP_E_INVALID_PDU_SDU_ID est signalée et E_NOT_OK est renvoyé [SWS_FrTp_01141].

La fonction est réentrante pour les appels avec des ID de PDU différents, mais ne doit pas être exécutée de manière concurrente pour le même TxPduId [SWS_FrTp_00150].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction FrTp_ChangeParameter [SWS_FrTp_00151] 📄 PDF

Std_ReturnType FrTp_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 : a8ec21fec13d Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone FrTp_ChangeParameter sert, conformément à [SWS_FrTp_00151], à demander la modification au moment de l'exécution de paramètres spécifiques du protocole de transport. Le paramètre id référence la PDU concernée, tandis que parameter transmet l'identifiant du paramètre et value la nouvelle valeur. En cas d'adaptation réussie, la fonction renvoie E_OK ; dans le cas contraire, la demande de modification est rejetée avec E_NOT_OK [SWS_FrTp_00151].

Concrètement, ce service est utilisé pour modifier au moment de l'exécution des paramètres de la PDU FlowControl pour le contrôle de la bande passante (BandwidthControl, BC) selon l'ISO 10681-2 [SWS_FrTp_00242]. Cela concerne :

Côté émetteur, une PDU FlowControl supplémentaire déclenchée de cette manière est reçue en tant que N-PDU inattendue et ignorée [SWS_FrTp_00242].

Gestion des erreurs

Si la détection des erreurs de développement (Development Error Detection) est activée pour la fonction, des vérifications formelles des paramètres sont effectuées :

  • Vérification de l'identifiant de PDU id : si la valeur est invalide, la fonction signale l'erreur de développement FRTP_E_INVALID_PDU_SDU_ID et renvoie E_NOT_OK [SWS_FrTp_01143].
  • Vérification du paramètre parameter : si l'identifiant est invalide, la fonction signale FRTP_E_INVALID_PARAMETER et renvoie E_NOT_OK [SWS_FrTp_01144].

Concurrence et restrictions

La fonction est spécifiée comme non réentrante (Non Reentrant) [SWS_FrTp_00151]. Les appelants doivent par conséquent s'assurer que les appels se déroulent de manière séquentielle ; une synchronisation externe est vraisemblablement requise en cas d'accès depuis différentes tâches. Question Q-fe82be70448a3e0b (ouverte)

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction FrTp_CancelReceive [SWS_FrTp_01172] 📄 PDF

Std_ReturnType FrTp_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 : 0a137ff0f510 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone FrTp_CancelReceive demande l'interruption d'une réception de PDU en cours dans la couche de transport FlexRay [SWS_FrTp_01172]. Elle est disponible via l'en-tête FrTp.h et permet d'arrêter de manière ciblée une opération de réception active.

Paramètres et valeurs de retour

RxPduId de type PduIdType est transmis en tant que paramètre d'entrée, ce qui permet d'identifier de manière unique la PDU à interrompre [SWS_FrTp_01172]. Il n'existe aucun paramètre d'entrée ou de sortie supplémentaire. La fonction renvoie une valeur d'état de type Std_ReturnType :

Concurrence et restrictions

La fonction est classée comme non réentrante (Non Reentrant) [SWS_FrTp_01172]. Les appelants doivent par conséquent s'assurer qu'aucun appel parallèle ou imbriqué n'a lieu afin d'éviter toute incohérence dans la gestion interne des états de la PDU.

Cette note d'utilisation a été générée automatiquement sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I1)

fonction FrTp_TriggerTransmit [SWS_FrTp_00154] 📄 PDF

Std_ReturnType FrTp_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

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

La fonction synchrone [SWS_FrTp_00154] sert à fournir des données de SDU pour la transmission. Le paramètre TxPduId identifie la SDU à transmettre, tandis que PduInfoPtr pointe vers une structure contenant le tampon de destination (SduDataPtr) et la taille de tampon disponible (SduLength) [SWS_FrTp_00154].

Au sein de la fonction, il est vérifié si les données fournies tiennent dans le tampon de destination signalé via PduInfoPtr->SduLength [SWS_FrTp_00154] :

  • Opération de copie réussie : si la capacité du tampon est suffisante, la fonction copie les informations d'adressage, le PCI ainsi que les données N-SDU dans le tampon PduInfoPtr->SduDataPtr [SWS_FrTp_01060]. La longueur des données dans PduInfoPtr->SduLength est définie sur la longueur exacte des données copiées et la fonction renvoie E_OK [SWS_FrTp_00154], [SWS_FrTp_01061].
  • Tampon insuffisant : si les données ne tiennent pas dans le tampon, la fonction s'interrompt et renvoie E_NOT_OK sans modifier PduInfoPtr [SWS_FrTp_00154]. En cas d'erreur, PduInfoPtr ne doit pas être utilisé par l'appelant car il peut contenir des données invalides ou un pointeur nul [SWS_FrTp_00154].

Lorsque la détection des erreurs de développement (DET) est activée, la fonction effectue des vérifications préalables des paramètres transmis :

  • Si TxPduId est invalide, la fonction signale l'erreur FRTP_E_INVALID_PDU_SDU_ID au DET et renvoie E_NOT_OK [SWS_FrTp_01145].
  • Si PduInfoPtr est invalide, elle signale l'erreur FRTP_E_PARAM_POINTER au DET et renvoie également E_NOT_OK [SWS_FrTp_01146].

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_FrTp_00154].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction FrTp_RxIndication [SWS_FrTp_00152] 📄 PDF

void FrTp_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 : e20d38175b0c Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction de rappel synchrone FrTp_RxIndication sert à indiquer une PDU reçue depuis un module d'interface de communication sous-jacent au module de la couche de transport ISO FlexRay et amorce l'ensemble du processus de réception [SWS_FrTp_00152], [SWS_FrTp_00137]. Elle est disponible via l'en-tête FrTp.h et possède l'ID de service 0x42 sans valeur de retour [SWS_FrTp_00152]. En tant que paramètres, elle attend l'identifiant de la PDU reçue (RxPduId) ainsi qu'un pointeur vers une structure de type PduInfoType (PduInfoPtr) [SWS_FrTp_00152]. Ce pointeur fournit la longueur de la PDU reçue (SduLength), un pointeur de tampon vers les données utiles (SduDataPtr) ainsi que les métadonnées associées [SWS_FrTp_00152].

Gestion des erreurs

En ce qui concerne le traitement des erreurs, la fonction vérifie les deux paramètres d'entrée lorsque la détection des erreurs de développement (DET) est active : si RxPduId n'est pas valide, elle signale l'erreur de développement FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01147]. Si PduInfoPtr n'est pas valide, l'erreur FRTP_E_PARAM_POINTER est signalée [SWS_FrTp_01148]. Si une RxPduId non prise en charge est transmise, l'exécution se termine sans autre action [SWS_FrTp_01075]. Si aucun canal de réception libre n'est disponible au moment de l'appel parce que l'état du canal n'est pas Idle (FrTpRxChannelState ≠ Idle), la fonction s'interrompt également sans traitement supplémentaire [SWS_FrTp_01076] et le module déclenche l'erreur d'exécution FRTP_E_NO_CHANNEL [SWS_FrTp_01186].

Concurrence et interaction

Concernant la concurrence, FrTp_RxIndication est réentrante pour des ID de PDU différents, mais non réentrante pour des ID de PDU identiques [SWS_FrTp_00152]. L'appel doit être effectué de manière synchrone par l'interface sous-jacente afin de démarrer correctement la réception dans le module FrTp [SWS_FrTp_00152], [SWS_FrTp_00137].

Cette note d'utilisation a été générée automatiquement sur la base des exigences de spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction FrTp_TxConfirmation [SWS_FrTp_00153] 📄 PDF

void FrTp_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 : 9cfd8edaa6b0 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone [SWS_FrTp_00153] sert à la couche de communication sous-jacente pour notifier au module FrTp la transmission réussie ou l'échec d'une PDU. Lors de l'appel, la couche sous-jacente transmet l'identifiant configuré FrTpTxConfirmationPduId dans le paramètre TxPduId ainsi que le résultat d'émission result ([SWS_FrTp_01053]). Les valeurs valides pour result sont E_OK en cas d'émission réussie et E_NOT_OK en cas d'échec de la transmission ([SWS_FrTp_00153]).

Si la détection des erreurs de développement (DET) est activée, la fonction effectue une vérification des paramètres : un identifiant TxPduId non autorisé déclenche l'erreur de développement FRTP_E_INVALID_PDU_SDU_ID ([SWS_FrTp_01149]), tandis qu'une valeur invalide pour result entraîne l'erreur FRTP_E_INVALID_PARAMETER ([SWS_FrTp_01203]).

Concernant la concurrence, la fonction est réentrante pour différents identifiants de PDU, mais ne doit pas être appelée de manière concurrente pour le même TxPduId ([SWS_FrTp_00153]). À chaque appel avec le FrTpTxConfirmationPduId correspondant, le module décrémente le compteur TxPduPendingCounter ([SWS_FrTp_01092]).

En interaction avec l'état de transmission, la confirmation entraîne les transitions d'état suivantes :

  • Côté émetteur, le canal occupé passe à l'état Idle (FrTpTxChannelState = Idle) et les drapeaux TX_SDU_AVAILABLE ainsi que TX_SDU_UNKNOWN_MSG_LENGTH sont réinitialisés dès que toutes les données N-SDU ont été envoyées, que result a la valeur E_OK et qu'un accusé de réception éventuellement configuré a été reçu – ou immédiatement lorsque result est égal à E_NOT_OK ([SWS_FrTp_01056], [SWS_FrTp_01057], [SWS_FrTp_01124]).
  • Côté récepteur, le canal de réception occupé (FrTpRxChannelState = Idle) est libéré lorsque toutes les données ont été reçues et que toutes les PDU de contrôle de flux requises ont été confirmées avec E_OK, ou lorsque la confirmation a lieu avec E_NOT_OK ([SWS_FrTp_01081]).

Ce texte a été généré par une IA et repose sur les spécifications de la version AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF

void FrTp_MainFunction (void);

Schedules the Flex Ray TP. (Entry point for scheduling)

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

Utilisation et contexte d'appel

La fonction FrTp_MainFunction possède la signature void FrTp_MainFunction (void); et est spécifiée avec le Service ID 0x10 [SWS_FrTp_00162]. Elle ne prend aucun paramètre d'entrée et ne renvoie aucune valeur de retour à l'appelant [SWS_FrTp_00162]. La déclaration est disponible via l'en-tête SchM_FrTp.h [SWS_FrTp_00162]. À titre d'interprétation, la fonction devrait ainsi être typiquement appelée de manière cyclique par l'ordonnanceur BSW (Schedule Manager). Question Q-aaa6251bd84aef94 (ouverte)

Interaction et tâches

La tâche principale de la fonction consiste en l'ordonnancement du module de protocole de transport FlexRay [SWS_FrTp_00162], [SWS_FrTp_00203]. Conformément à [SWS_FrTp_00580], FrTp_MainFunction constitue le point d'entrée obligatoire pour les tâches de traitement (processing tasks) en attente du module FrTp, ce qui permet d'exécuter et de gérer de façon cyclique les processus de protocole internes.

Conditions temporelles et restrictions

Pour l'intégration temporelle dans l'ensemble du système, la spécification définit une fréquence minimale d'appel fixe pour l'ordonnancement :

  • FrTp_MainFunction doit être appelée au moins une fois par cycle FlexRay [SWS_FrTp_01152].

Aucun traitement d'erreurs spécifique, notification DET ou DEM, ni prescription explicite relative à la réentrance ou à la concurrence n'est décrit dans le cadre de la présente spécification.

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

type FrTp_ConfigType [SWS_FrTp_01194] 📄 PDF

This is the base type for the configuration of the Flex Ray Transport Protocol A pointer to an instance of this structure will be used in the initialization of the Flex Ray Transport Protocol. The outline of the structure is defined in chapter 10 Configura tion Specification

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_FrTp
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_FrTp@rel:R20-11#3fafa46e
Content hash
3fafa46e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayISOTransportLayer.pdf#nameddest=SWS_FrTp_00215

Initialisation et état

Returns the version information.

void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTp_Init fonction

This service initializes all global variables of a Flex Ray Transport Layer instance and set it in the idle state. It has no return value because software errors in initialisation data shall be detected during configuration time (e.g. by configuration tool ).

void FrTp_Init (const FrTp_ConfigType* configPtr);

Services

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

Std_ReturnType FrTp_CancelReceive (PduIdType RxPduId);

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

Std_ReturnType FrTp_CancelTransmit (PduIdType TxPduId);

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

Std_ReturnType FrTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
FrTp_Shutdown fonction

This service closes all pending transport pro tocol connections by simply stopping operation, frees all resources and stops the Fr Tp Module

void FrTp_Shutdown (void);
FrTp_Transmit fonction

Requests transmission of a PDU.

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

Callbacks

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

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

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType FrTp_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

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

void FrTp_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Cyclique

Schedules the Flex Ray TP. (Entry point for scheduling)

void FrTp_MainFunction (void);

Types

This is the base type for the configuration of the Flex Ray Transport Protocol A pointer to an instance of this structure will be used in the initialization of the Flex Ray Transport Protocol. The outline of the structure is defined in chapter 10 Configura tion Specification