DEENESPTFRRUARHIKOZHNL

FlexRay Transport Layer (FrTp)

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

Modul-GuideKI-GENERIERT

Segmentiert und reassembliert große Nachrichten nach ISO 10681-2 zwischen PDU Router und FlexRay Interface.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 74e3fa4a7265 Herkunft Offene Fragen (1)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Segmentiert und reassembliert große Nachrichten nach ISO 10681-2 zwischen PDU Router und FlexRay Interface.

FrTp überträgt große Nachrichten zwischen PduR und FrIf nach ISO 10681-2 ([SWS_FrTp_01005]). Es segmentiert und reassembliert sie, steuert den Fluss und verteilt die Bandbreite über gemeinsam genutzte Tx-PDU-Pools. FrTp_Transmit nimmt einen Sendeauftrag nur an; die eigentliche Arbeit erledigt die zyklische FrTp_MainFunction, die mindestens einmal je FlexRay-Zyklus laufen muss ([SWS_FrTp_01152]). Unterstützt werden quittierte und unquittierte Übertragungen sowie Nachrichten unbekannter Länge. Bei Protokollfehlern oder unzulässiger Segmentierung bricht FrTp ab und meldet E_NOT_OK an den PduR.

FrTp ist der Transportlayer für FlexRay nach ISO 10681-2. Wo die Spezifikation nichts Eigenes festlegt, folgt das Modul dieser Norm ([SWS_FrTp_01005]). Es zerlegt große N-SDUs des PduR in N-PDUs, gibt sie mit FrIf_Transmit an FrIf weiter und setzt empfangene Rahmen wieder zusammen ([SWS_FrTp_01050], FrTp SWS S. 19). Verarbeitet wird nur im Zustand FRTP_ON, also zwischen FrTp_Init und FrTp_Shutdown ([SWS_FrTp_01032], [SWS_FrTp_01036]). FrTp_MainFunction muss mindestens einmal je FlexRay-Zyklus laufen ([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

Kontextdiagramm: FrTp zwischen PduR und FrIf, gesteuert von EcuM und BSW-Scheduler. Quellen: [SWS_FrTp_00577], FrTp SWS S. 21

Senden beginnt immer mit FrTp_Transmit. Der Aufruf belegt nur einen Kanal und setzt TX_SDU_AVAILABLE ([SWS_FrTp_00136], [SWS_FrTp_01039]). Die MainFunction erledigt den Rest: Sie holt die Daten per PduR_FrTpCopyTxData, belegt den ersten freien Pool-PDU und entscheidet über die Segmentierung ([SWS_FrTp_01045], [SWS_FrTp_01048]). Im Modus „Decoupled Buffer Access“ holt FrIf die Daten später per FrTp_TriggerTransmit ab ([SWS_FrTp_01060]). PduR_FrTpTxConfirmation folgt nach jedem angenommenen Auftrag ([SWS_FrTp_01058]).

Senden einer N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)TxPduId prüfen, freien Kanal belegenTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(verfügbare Länge)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopbis alle N-SDU-Daten gesendetPduR_FrTpCopyTxData(Länge FrTpTxPdu)Address Information und PCI vorbereitenFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI und Daten kopiertFrTp_TxConfirmation(TxPduId, E_OK)FrTpTxPdu auf idle setzenoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenTX_SDU_AVAILABLE zurücksetzenPduR_FrTpTxConfirmation(E_OK)

Sequenzdiagramm: Annahme des Auftrags, Abarbeitung in der MainFunction, Bestätigung je N-PDU und am Ende an den PduR. Quellen: FrTp SWS S. 44, [SWS_FrTp_01042]

Beim Empfang prüft FrTp RxPduId und Adressen gegen die Verbindungskonfiguration ([SWS_FrTp_01069], [SWS_FrTp_01071]). Bei einer neuen Verbindung ruft es PduR_FrTpStartOfReception auf, kopiert die Fragmente nach oben und sendet bei Bedarf FlowControl ([SWS_FrTp_01078], [SWS_FrTp_01080]). Unterstützt werden sechs Varianten: unsegmentiert oder segmentiert, mit oder ohne Quittung, mit bekannter oder unbekannter Länge ([SWS_FrTp_01007]–[SWS_FrTp_01012]). Mehrere Verbindungen teilen sich Tx-PDU-Pools und werden abwechselnd bedient ([SWS_FrTp_01020], [SWS_FrTp_01096]).

Im Fehlerfall bricht FrTp in drei Situationen ab und meldet E_NOT_OK an den PduR: bei ungültigem oder abbrechendem Flow Status und bei Segmentierungsbedarf auf 1:n-Verbindungen ([SWS_FrTp_01198], [SWS_FrTp_01208]). Laufzeitfehler sind FRTP_E_SEG_ERROR und FRTP_E_NO_CHANNEL. Timer und Zähler wie das FC.WAIT-Limit begrenzen Wartezeiten ([SWS_FrTp_01100], [SWS_FrTp_01114]). Laufende Übertragungen lassen sich mit FrTp_CancelTransmit und FrTp_CancelReceive abbrechen ([SWS_FrTp_01116], [SWS_FrTp_01181]).

Rolle im FlexRay-Stack und Modulzustand

FrTp ist der FlexRay-Transportlayer nach ISO 10681-2. Wo die Spezifikation nichts Eigenes festlegt, folgt das Modul dieser Norm und unterstützt deren N-PDU-Formate ([SWS_FrTp_01005], [SWS_FrTp_01006]). Nach oben bedient FrTp den PduR. Der PduR startet Übertragungen mit FrTp_Transmit, bricht sie ab oder ändert Parameter. FrTp liefert über PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpCopyTxData, PduR_FrTpRxIndication und PduR_FrTpTxConfirmation Daten und Ergebnisse zurück (FrTp SWS S. 19). Nach unten übergibt FrTp N-PDUs mit FrIf_Transmit ([SWS_FrTp_01050]). FrIf meldet sich mit FrTp_RxIndication, FrTp_TxConfirmation und FrTp_TriggerTransmit zurück (FrTp SWS S. 21). Der EcuM ruft FrTp_Init und FrTp_Shutdown auf (FrTp SWS S. 19). Der BSW-Scheduler ruft FrTp_MainFunction auf ([SWS_FrTp_00162], FrTp SWS S. 81).

Ein Unterschied zwischen den Releases: Spätere Fassungen schalten einen L-SDU-Router (LSduR) zwischen FrTp und FrIf (FrTp SWS S. 19). Für R20-11 gilt die direkte Schnittstelle zu FrIf, wie sie [SWS_FrTp_00577] und [SWS_FrTp_01050] festlegen.

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

Kontextdiagramm: FrTp liegt zwischen PduR und FrIf und wird von EcuM und BSW-Scheduler gesteuert. Quellen: FrTp SWS S. 19, FrTp SWS S. 21, [SWS_FrTp_00577]

Das Modul kennt zwei Zustände, FRTP_OFF und FRTP_ON ([SWS_FrTp_01028]). Welcher gilt, hält die Statusvariable FrTpState fest ([SWS_FrTp_01029], [SWS_FrTp_01106]). Nach dem Einschalten ist FrTp in FRTP_OFF ([SWS_FrTp_01030]). Erst ein erfolgreiches FrTp_Init mit Zeiger auf FrTp_ConfigType schaltet nach FRTP_ON ([SWS_FrTp_01032], [SWS_FrTp_00147], [SWS_FrTp_01194]). Segmentierung und Reassemblierung laufen nur in FRTP_ON ([SWS_FrTp_01033]). FrTp_Shutdown beendet alle offenen Verbindungen, indem es den Betrieb einfach stoppt. Es gibt die Ressourcen frei und führt nach FRTP_OFF zurück ([SWS_FrTp_00148], [SWS_FrTp_01036]).

lebenszyklus start OFF FRTP_OFF (keine Verarbeitung) start->OFF Einschalten ON FRTP_ON (Segmentierung, Reassemblierung, Verbindungsverarbeitung) OFF->ON FrTp_Init(configPtr) erfolgreich ON->OFF FrTp_Shutdown() alle Verbindungen beendet, Ressourcen freigegeben

Zustandsdiagramm: Nur zwischen FrTp_Init und FrTp_Shutdown verarbeitet FrTp Daten. Quellen: [SWS_FrTp_01030], [SWS_FrTp_01032], [SWS_FrTp_01036], FrTp SWS S. 38

FrTp_MainFunction plant das Modul ein und ist der Einstiegspunkt aller Verarbeitungsaufgaben ([SWS_FrTp_00203], [SWS_FrTp_00580]). Sie muss mindestens einmal je FlexRay-Zyklus laufen ([SWS_FrTp_01152]). Die Callbacks setzen dagegen im Wesentlichen nur Flags: TX_SDU_AVAILABLE existiert je Kanal ([SWS_FrTp_00415], [SWS_FrTp_00416]). RX_PDU_AVAILABLE existiert je empfangbarer N-PDU und wird nach der Verarbeitung gelöscht ([SWS_FrTp_00418], [SWS_FrTp_00421]).

Übertragungsvarianten nach ISO 10681-2

FrTp unterstützt sechs Rahmenfolgen. Sie unterscheiden sich in drei Punkten: ob die Nachricht segmentiert wird, ob der Empfänger quittiert und ob die Länge bei Übertragungsbeginn bekannt ist (FrTp SWS S. 27, FrTp SWS S. 31):

VarianteKennzeichnende RahmenBeleg
unsegmentiert, ohne Quittung, Länge bekanntSTFU[SWS_FrTp_01007]
unsegmentiert, mit Quittung, Länge bekanntSTFA → FC.ACK[SWS_FrTp_01008]
segmentiert, ohne Quittung, Länge bekanntSTFU, FC.CTS, CF, CFEOB, LF[SWS_FrTp_01009]
segmentiert, mit Quittung, Länge bekanntSTFA, FC.CTS, CF, CFEOB, LF, FC.ACK[SWS_FrTp_01010]
segmentiert, ohne Quittung, Länge unbekanntwie oben, Gesamtlänge erst im LF[SWS_FrTp_01011], [SWS_FrTp_01067]
segmentiert, mit Quittung, Länge unbekanntwie oben, zusätzlich FC.ACK[SWS_FrTp_01012]

In den segmentierten, quittierten Varianten dürfte das FC.ACK nach dem LastFrame folgen und den Transfer abschließen. Frage Q-f3c70b1506e2cde4 (offen) Das ist eine Interpretation der Bildtexte, deren Reihenfolge nicht eindeutig ist (FrTp SWS S. 29). Das folgende Diagramm zeigt den segmentierten Grundfall ohne Quittung.

Segmentierte Übertragung ohne Quittung, Länge bekanntFrTp SenderFrTp EmpfängerStartFrame (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)

Sequenzdiagramm: Der Empfänger gibt jeden Block per FC.CTS frei, und CFEOB schließt einen Block ab. Quellen: [SWS_FrTp_01009], FrTp SWS S. 28

Übertragung mit unbekannter Länge:

Verbindungen, Kanäle und PDU-Pools

Jede Kommunikationsbeziehung ist eine eigene FrTpConnection. Ihre Anzahl ist post-build konfigurierbar ([SWS_FrTp_01014], [SWS_FrTp_01015]). Jede Verbindung hat ein modulweit eindeutiges Adresspaar und eine eindeutige FRTP_SDUID ([SWS_FrTp_01017], [SWS_FrTp_01018]). Mehrere Verbindungen können sich eine FrTpConnectionControl und einen FrTpTxPduPool teilen ([SWS_FrTp_01022], [SWS_FrTp_01020]). Zur Laufzeit arbeiten mehrere FrTpChannel parallel; ihre Zahl legt FrTpChanNum fest ([SWS_FrTp_00088], [SWS_FrTp_00228]). Für Senden und Empfangen wechseln die Kanäle jeweils zwischen „idle“ und „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 Referenz (für FlowControl) NPdu Tx N-PDUs (aufsteigend, individuelle Länge) Pool->NPdu enthält FrIf FrIf NPdu->FrIf SF, CF, LF / FC

Kontextdiagramm: Ein Halbduplex-Kanal verweist auf eine Tx- und eine Rx-Verbindung. Beide referenzieren Steuerparameter und einen Tx-PDU-Pool. Quellen: FrTp SWS S. 39, [SWS_FrTp_01020], [SWS_FrTp_01088]

Adressen:

  • Beim Senden übernimmt FrTp Adressen aus den Metadaten SOURCE_ADDRESS_16 und TARGET_ADDRESS_16. Konfigurierte FrTpLa/FrTpRa haben dabei Vorrang ([SWS_FrTp_01204], [SWS_FrTp_01205]).
  • Beim Empfang reicht FrTp die Adressen als Metadaten nach oben. Dieselben Adressen verwendet es für FlowControl ([SWS_FrTp_01206]).

Bandbreite verteilt FrTp über die Pools:

Sendepfad: von FrTp_Transmit bis PduR_FrTpTxConfirmation

Jedes Senden beginnt mit FrTp_Transmit ([SWS_FrTp_00136], [SWS_FrTp_00149]). Der Aufruf setzt TX_SDU_AVAILABLE nur, wenn die TxPduId gültig und ein Kanal frei ist ([SWS_FrTp_01039]). Andernfalls endet er mit E_NOT_OK. Dasselbe gilt, wenn für dieselbe Adresse schon eine Übertragung läuft ([SWS_FrTp_01041], [SWS_FrTp_01200]).

Die eigentliche Arbeit macht FrTp_MainFunction:

  1. Sie erfragt die verfügbare Länge per PduR_FrTpCopyTxData ([SWS_FrTp_01042]).
  2. Sie belegt den ersten freien FrTpTxPdu ([SWS_FrTp_01045]).
  3. Sie entscheidet über die Segmentierung ([SWS_FrTp_01048]).
  4. Sie kopiert Daten in PDU-Länge ([SWS_FrTp_01123]).
  5. Sie übergibt die N-PDU mit exakter Länge an FrIf_Transmit ([SWS_FrTp_01051]).

Den Ablauf zeigt FrTp SWS S. 44.

segmentierung start laenge TX_SDU_AVAILABLE gesetzt: PduR_FrTpCopyTxData liefert verfügbare Länge start->laenge frei freier FrTpTxPdu im Pool? laenge->frei warten Verbindung bis zum nächsten FrTp_MainFunction zurückstellen frei->warten nein groesse FrTpTxSdu.Length > FrTpTxPdu.Length - AI.Length - PCI.Length? frei->groesse ja unseg unsegmentiert (einzelner StartFrame) groesse->unseg nein multi 1:n-Verbindung? groesse->multi ja senden AI und PCI vorbereiten, PduR_FrTpCopyTxData (Länge FrTpTxPdu), FrIf_Transmit unseg->senden fehler FRTP_E_SEG_ERROR melden, Übertragung abbrechen, PduR_FrTpTxConfirmation(E_NOT_OK) multi->fehler ja seg segmentiert (StartFrame, CF ..., LastFrame) multi->seg nein seg->senden

Aktivitätsdiagramm: Entscheidung zwischen unsegmentierter und segmentierter Übertragung, einschließlich Abbruch auf 1:n-Verbindungen. Quellen: [SWS_FrTp_01047], [SWS_FrTp_01048], [SWS_FrTp_01208], FrTp SWS S. 51

Wichtig für den Durchsatz: Ist kein PDU frei, stellt FrTp die Verbindung bis zum nächsten MainFunction-Aufruf zurück ([SWS_FrTp_01047]).

Nach jeder N-PDU ruft FrIf FrTp_TxConfirmation auf. Das setzt den FrTpTxPdu auf „idle“ ([SWS_FrTp_01052], [SWS_FrTp_01054]). Kanal und Flag werden frei, sobald drei Bedingungen erfüllt sind: alle Daten gesendet, positiv bestätigt und, falls konfiguriert, quittiert ([SWS_FrTp_01056], [SWS_FrTp_01057]). PduR_FrTpTxConfirmation kommt nach jedem angenommenen Auftrag, mit E_OK nur im Erfolgsfall ([SWS_FrTp_01058]). Für das Senden gibt es zwei Pufferzugriffsarten: „Immediate“ und „Decoupled Buffer Access“ ([SWS_FrTp_01084]). Bei „Decoupled“ holt FrIf die Daten später über FrTp_TriggerTransmit. Dieser Aufruf kopiert Address Information, PCI und Nutzdaten in den bereitgestellten Puffer ([SWS_FrTp_01060], [SWS_FrTp_01061], FrTp SWS S. 50).

Senden einer N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)TxPduId prüfen, freien Kanal belegenTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(verfügbare Länge)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopbis alle N-SDU-Daten gesendetPduR_FrTpCopyTxData(Länge FrTpTxPdu)Address Information und PCI vorbereitenFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI und Daten kopiertFrTp_TxConfirmation(TxPduId, E_OK)FrTpTxPdu auf idle setzenoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenTX_SDU_AVAILABLE zurücksetzenPduR_FrTpTxConfirmation(E_OK)

Sequenzdiagramm: Der Auftrag kommt synchron an und wird asynchron in der MainFunction abgearbeitet; optional folgt TriggerTransmit (Decoupled). Quellen: FrTp SWS S. 44, FrTp SWS S. 50, [SWS_FrTp_01058]

Empfangspfad und Reassemblierung

Der Empfang beginnt mit FrTp_RxIndication ([SWS_FrTp_00137]). FrTp verarbeitet eine N-PDU nur, wenn zwei Bedingungen erfüllt sind ([SWS_FrTp_01069], [SWS_FrTp_01071]):

  • Die RxPduId ist gültig.
  • Die Zieladresse entspricht FrTpLa und die Quelladresse FrTpRa.

Sonst wird die N-PDU ignoriert ([SWS_FrTp_01072]). Ist kein Rx-Kanal frei, endet die Verarbeitung, und FrTp meldet FRTP_E_NO_CHANNEL ([SWS_FrTp_01076], [SWS_FrTp_01186]). Einen StartFrame legt FrTp in einem lokalen Puffer ab. So kann ein Gateway ihn auch bei kurzzeitigem Ressourcenmangel korrekt verarbeiten (FrTp SWS S. 56).

Bei einer neuen Verbindung ruft FrTp PduR_FrTpStartOfReception auf. Übergeben werden die erwartete Länge sowie Inhalt und Größe des StartFrames ([SWS_FrTp_01078], [SWS_FrTp_01193]). Wo dieser Aufruf erfolgt, zeigen die R20-11-Schaubilder in zwei Varianten: in FrTp_RxIndication (FrTp SWS S. 55) und in FrTp_MainFunction (FrTp SWS S. 86). R23-11 erlaubt ausdrücklich beides (FrTp SWS S. 54).

Danach kopiert FrTp die Fragmente per PduR_FrTpCopyRxData und sendet FlowControl, wo das Protokoll es verlangt ([SWS_FrTp_01138], [SWS_FrTp_01080]). Den Kanal gibt es frei, wenn alle Daten empfangen und alle FlowControls bestätigt sind ([SWS_FrTp_01081]). PduR_FrTpRxIndication folgt immer, wenn PduR_FrTpStartOfReception erfolgreich war ([SWS_FrTp_01083]).

Empfang und ReassemblierungFrIfFrTpPduRFrTp_RxIndication(RxPduId, PduInfoPtr)RxPduId prüfenZiel/Quelle gegen FrTpLa/FrTpRa prüfenaltStartFrame empfangenfreien Rx-Kanal belegenStartFrame in lokalen Puffer kopierenFolgerahmen (CF, LF)zugehörigen Kanal suchenRX_PDU_AVAILABLE setzenUse Case: FrTp_MainFunction (StartOfReception alternativ schon in FrTp_RxIndication)optneue VerbindungPduR_FrTpStartOfReception(RxSduId, Daten und Größe des StartFrames, Länge)Puffer bereitgestelltPduR_FrTpCopyRxData (N-SDU-Fragment)optFlowControl erforderlichFrIf_Transmit(FC N-PDU)FrTp_TxConfirmation(E_OK)RX_PDU_AVAILABLE zurücksetzenoptN-SDU vollständig empfangenRx-Kanal freigebenPduR_FrTpRxIndication(RxSduId, E_OK)

Sequenzdiagramm: Der Callback prüft und puffert, die MainFunction reassembliert und sendet FlowControl. Quellen: FrTp SWS S. 55, [SWS_FrTp_01074], [SWS_FrTp_01083]

Abbruch und Laufzeitparameter

Ob Sendeabbruch verfügbar ist, legt FrTpTransmitCancellation statisch fest; ausgelöst wird er mit FrTp_CancelTransmit ([SWS_FrTp_01097], [SWS_FrTp_00384]). Die Wirkung hängt vom Fortschritt ab:

  • Ist der Auftrag angenommen, aber noch nicht gestartet, wird die Verbindung sofort frei. Der Empfänger bemerkt nichts ([SWS_FrTp_00385], FrTp SWS S. 63).
  • Läuft die Übertragung, stoppt FrTp sie mit E_OK ([SWS_FrTp_01116]).
  • E_NOT_OK folgt, wenn keine Verbindung aktiv ist oder die letzte N-PDU einer unquittierten Übertragung schon an FrIf übergeben wurde ([SWS_FrTp_01116]).

Im segmentierten Fall läuft beim Empfänger ein Timeout ab, der den Empfang beendet (FrTp SWS S. 59).

Sendeabbruch bei segmentierter ÜbertragungPduR (Sender)FrTp SenderFrTp EmpfängerPduR (Empfänger)FrTp_TransmitUse Case: FrTp_MainFunctionStartFramePduR_FrTpStartOfReceptionFlowControlFrTp_CancelTransmit(TxPduId)E_OKÜbertragung gestoppt, keine weiteren CFTimeout (keine CF eingetroffen)PduR_FrTpRxIndication(Empfang abgebrochen)

Sequenzdiagramm: Bricht der Sender eine laufende segmentierte Übertragung ab, beendet der Empfänger den Empfang per Timeout. Quellen: [SWS_FrTp_01116], FrTp SWS S. 69

FrTp_CancelReceive bricht einen laufenden Empfang ab, wenn die RxPduId gültig ist, und liefert dann E_OK ([SWS_FrTp_01181], [SWS_FrTp_01183]). Bei unsegmentiertem Empfang oder laufendem LastFrame lehnt die Funktion ab ([SWS_FrTp_01182]). FrTp_ChangeParameter ändert zur Laufzeit die BandwidthControl-Werte FrTpSCexp und FrTpMaxNbrOfNPduPerCycle ([SWS_FrTp_00242]). Das Bitlayout entspricht dem des FC(CTS)-Rahmens ([SWS_FrTp_01195]). Die Parameterkennung dafür ist TP_BC (ComStack Types S. 18). Während eines laufenden Empfangs wird die Änderung abgewiesen ([SWS_FrTp_01115]). Nach erfolgreicher Änderung nutzt die Verbindung die neuen Werte ([SWS_FrTp_01156]).

Verhalten im Fehlerfall

Entwicklungsfehler sind in [SWS_FrTp_01201] festgelegt:

  • FRTP_E_UNINIT: Aufruf ohne Initialisierung; ausgenommen sind FrTp_Init und FrTp_GetVersionInfo.
  • FRTP_E_PARAM_POINTER: NULL-Zeiger.
  • FRTP_E_INVALID_PDU_SDU_ID: ungültige SDU- oder PDU-ID.
  • FRTP_E_INVALID_PARAMETER: ungültiger Parameter.
  • FRTP_E_UMSG_LENGTH_ERROR: unbekannte Länge ohne passende Konfiguration ([SWS_FrTp_01134]).
  • ein Fehlercode für eine fehlgeschlagene Initialisierung.

Die APIs prüfen IDs und Zeiger und liefern bei Fehlern E_NOT_OK, wo sie einen Rückgabewert haben ([SWS_FrTp_01139], [SWS_FrTp_01145], [SWS_FrTp_01147]). Laufzeitfehler sind FRTP_E_SEG_ERROR (0x05) und FRTP_E_NO_CHANNEL (0x07). Sie gehen über Det_ReportRuntimeError ([SWS_FrTp_01208], [SWS_FrTp_00577]).

In drei Fällen bricht der Sender ab und meldet PduR_FrTpTxConfirmation mit E_NOT_OK:

Eine FrTp_TxConfirmation mit E_NOT_OK gibt auf beiden Seiten den Kanal frei ([SWS_FrTp_01056], [SWS_FrTp_01081]). Das Flag RX_ERROR merkt sich einen Empfangsfehler, bis FlowControl gesendet werden darf. Nach der Reaktion (Retry, Negativquittung oder Abbruch) wird es gelöscht ([SWS_FrTp_00429], [SWS_FrTp_00430]). Auf 1:n-Verbindungen gibt es weder Quittung noch Retry ([SWS_FrTp_00598]).

Timer und Timeouts folgen den Tabellen der Spezifikation ([SWS_FrTp_01099], [SWS_FrTp_01100], FrTp SWS S. 67). Die Konfiguration muss folgende Bedingungen einhalten:

Liefert der PduR beim Senden BUFREQ_E_BUSY, versucht FrTp es bis zu FrTpTimeCs-mal erneut ([SWS_FrTp_01196]). Die Zähler sind begrenzt ([SWS_FrTp_01105], [SWS_FrTp_01114]). Was bei Erreichen eines Limits geschieht, legt [SWS_FrTp_01113] fest; die zugehörige Tabelle liegt hier nicht vor. Fehlt dem Empfänger ein Puffer, sendet er FC.WAIT. Die Zahl dieser Rahmen begrenzt FrTpMaxFCWait (FrTp SWS S. 69).

Pufferengpass beim Empfänger: FC.WAIT und ZählerlimitFrTp SenderFrTp EmpfängerPduR (Empfänger)StartFrameSender überwacht Timeout_BSPduR_FrTpStartOfReceptionkein Pufferloopkein Puffer; COUNTER_FCWT begrenzt durch FrTpMaxFCWaitFlowControl (WAIT)Pufferanforderung wiederholenkein PufferPufferanforderungPuffer verfügbarPduR_FrTpCopyRxDataFlowControl (CTS)ConsecutiveFrameEmpfänger überwacht Timeout_CR

Sequenzdiagramm: Fehlt der Puffer, sendet der Empfänger FC.WAIT, bis das Zählerlimit greift; danach setzt FC.CTS die Übertragung fort. Quellen: [SWS_FrTp_01105], [SWS_FrTp_01114], FrTp SWS S. 70

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der Spezifikationsauszüge im Payload. Normativ für R20-11 sind die verlinkten Requirements; Dokumentstellen anderer Releases dienen nur der Erläuterung.

FlexRay Transport Layer (FrTp)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function 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 ).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c550cdee4114 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion FrTp_Init initialisiert alle globalen Variablen einer Instanz der FlexRay-Transportschicht und versetzt diese in den Ruhezustand [SWS_FrTp_00147]. Als Eingabeparameter wird über configPtr ein Zeiger auf die Konfiguration des FlexRay-Transportprotokolls übergeben (const FrTp_ConfigType*) [SWS_FrTp_00147]. Die Schnittstelle wird über den Header FrTp.h mit der Service-ID 0x00 deklariert [SWS_FrTp_00147].

Hinsichtlich des internen Verhaltens und der Fehlerbehandlung gelten folgende Festlegungen:

  • Nachdem die Transportschicht erfolgreich durch den Aufruf von FrTp_Init initialisiert wurde, wechselt das FrTp-Modul in den internen Zustand FRTP_ON [SWS_FrTp_01032].
  • Die Funktion besitzt keinen Rückgabewert (void), da Softwarefehler in den Initialisierungsdaten bereits während der Konfigurationsphase, beispielsweise durch ein Konfigurationswerkzeug, erkannt werden müssen [SWS_FrTp_00147].

Bezüglich der Nebenläufigkeit ist der Dienst als nicht reentrant (Non Reentrant) spezifiziert [SWS_FrTp_00147]. Ein paralleler oder mehrfacher unkoordinierter Aufruf ist daher unzulässig. Interpretation: Der Aufruf dürfte typischerweise zentral im Rahmen des Steuergerätehochlaufs vor der Nutzung regulärer Transportdienste erfolgen. Frage Q-9b7cf7fc6dac510e (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function 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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 00fb8d95a0be Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion FrTp_Shutdown beendet den Betrieb des FlexRay-Transport-Protokoll-Moduls (FrTp) [SWS_FrTp_00148]. Beim Aufruf schließt der Service alle noch anstehenden Transportprotokoll-Verbindungen unmittelbar durch Einstellen des Betriebs, gibt sämtliche belegten Ressourcen frei und stoppt das FrTp-Modul vollständig [SWS_FrTp_00148].

Hinsichtlich der Schnittstellenspezifikation und des Verhaltens gelten folgende Eigenschaften:

  • Signatur und Header: Die Funktion ist über die Header-Datei FrTp.h verfügbar, besitzt die Service-ID 0x01, erwartet keine Parameter und liefert keinen Rückgabewert (void) [SWS_FrTp_00148].
  • Nebenläufigkeit: FrTp_Shutdown ist als nicht reentrant (Non Reentrant) spezifiziert und muss synchron ausgeführt werden [SWS_FrTp_00148]. Ein nebenläufiger oder mehrfacher paralleler Aufruf ist daher unzulässig.
  • Zustandsübergang: Durch die erfolgreiche Ausführung der Service-Primitive FrTp_Shutdown() wechselt das FrTp-Modul in den internen Zustand FRTP_OFF [SWS_FrTp_01036].

Da der Dienst anhängige Verbindungen durch bloßes Stoppen des Betriebs schließt, dürften laufende Übertragungen unmittelbar und ohne gesonderte Abschlussmeldung abgebrochen werden. Frage Q-35555515f521d0c3 (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function FrTp_Transmit [SWS_FrTp_00149] 📄 PDF

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

Requests transmission of a PDU.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ad193864f748 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone Funktion FrTp_Transmit fordert die Übertragung einer PDU über das FlexRay-Transport-Layer-Modul an [SWS_FrTp_00149]. Über den Parameter TxPduId wird die Kennung der zu übertragenden PDU übergeben, während PduInfoPtr auf die Nutzdaten, Metadaten sowie die Länge verweist [SWS_FrTp_00149]. Soll eine Übertragung mit einer der oberen Schicht noch unbekannten Nachrichtenlänge initiiert werden, ist FrTp_Transmit mit dem Parameterwert PduLength = 0 aufzurufen [SWS_FrTp_01064]. Die Annahme der Sendeanforderung wird synchron mit E_OK bestätigt; kann die Anforderung nicht akzeptiert werden, liefert die Funktion E_NOT_OK zurück [SWS_FrTp_00149].

Nebenläufigkeit und Kanalverfügbarkeit

Die Funktion ist reentrant für Aufrufe mit unterschiedlichen PDU-IDs, jedoch nicht reentrant für denselben Bezeichner TxPduId [SWS_FrTp_00149]. Zudem erfordert die Durchführung einen freien Übertragungskanal: Ist kein Kanal verfügbar, weil sich der Zustand nicht im Leerlauf befindet (FrTpTxChannelState ≠ Idle), bricht die Funktion ab und retourniert E_NOT_OK [SWS_FrTp_01041].

Fehlerbehandlung

Ist die Entwicklungsschnittstelle zur Fehlererkennung aktiv, validiert FrTp_Transmit die übergebenen Parameter:

  • Wird eine nicht unterstützte oder ungültige TxPduId übergeben, bricht der Dienst mit E_NOT_OK ab und meldet den Entwicklungsfehler FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01040], [SWS_FrTp_01139].
  • Ist der Zeiger PduInfoPtr ungültig, wird der Fehler FRTP_E_PARAM_POINTER gemeldet und die Ausführung bricht ebenfalls mit E_NOT_OK ab [SWS_FrTp_01140].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ce8fe8bc8ce1 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Service-Funktion FrTp_CancelTransmit fordert den Abbruch einer laufenden PDU-Übertragung in einem unterlagerten Kommunikationsmodul an [SWS_FrTp_00150]. Die abzubrechende Übertragung wird über den Eingangsparameter TxPduId adressiert [SWS_FrTp_00150].

Zustandsabhängiges Verhalten und Rückgabewerte

Das Verhalten beim Abbruch hängt vom aktuellen Zustand der Verbindung ab:

  • Ist die Sendeanforderung zwar anhängig, die Übertragung selbst jedoch noch nicht gestartet, gibt FrTp_CancelTransmit die Verbindung unverzüglich frei [SWS_FrTp_00385].
  • Befindet sich die Übertragung bereits im Gange, stoppt die Funktion den Sendevorgang und bestätigt den erfolgreichen Abbruch mit dem Rückgabewert E_OK [SWS_FrTp_01116].
  • Ist die Verbindung nicht aktiv oder wurde die letzte N-PDU einer unbestätigten Übertragung bereits an das FrIf weitergeleitet, schlägt der Abbruch fehl und die Funktion liefert E_NOT_OK zurück [SWS_FrTp_01116].

Fehlerbehandlung und Nebenläufigkeit

Sofern die Entwicklungserkennung (Development Error Detection) für FrTp_CancelTransmit aktiviert ist, prüft die Funktion den Parameter TxPduId auf Gültigkeit. Schlägt diese Überprüfung fehl, wird der Entwicklungsfehler FRTP_E_INVALID_PDU_SDU_ID gemeldet und E_NOT_OK zurückgegeben [SWS_FrTp_01141].

Die Funktion ist reentrant für Aufrufe mit unterschiedlichen PDU-IDs, darf jedoch für dieselbe TxPduId nicht nebenläufig ausgeführt werden [SWS_FrTp_00150].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 erstellt.

Implementer's Guide folgt (Komplexität I2)

function 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).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a8ec21fec13d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion FrTp_ChangeParameter dient gemäß [SWS_FrTp_00151] der Anforderung, spezifische Parameter des Transportprotokolls zur Laufzeit zu ändern. Über den Parameter id wird die betroffene PDU referenziert, während parameter die Kennung des Parameters und value den neuen Wert übergibt. Bei erfolgreicher Anpassung gibt die Funktion E_OK zurück, andernfalls wird die Änderungsanforderung mit E_NOT_OK abgewiesen [SWS_FrTp_00151].

Konkret wird dieser Dienst genutzt, um Parameter der FlowControl-PDU für die Bandbreitensteuerung (BandwidthControl, BC) nach ISO 10681-2 zur Laufzeit zu modifizieren [SWS_FrTp_00242]. Dies betrifft:

Auf Senderseite wird eine hierdurch ausgelöste zusätzliche FlowControl-PDU als unerwartete N-PDU empfangen und ignoriert [SWS_FrTp_00242].

Fehlerbehandlung

Ist die Entwicklungserkennung (Development Error Detection) für die Funktion aktiviert, erfolgen formale Parameterprüfungen:

  • Prüfung der PDU-Kennung id: Ist der Wert ungültig, meldet die Funktion den Entwicklungsfehler FRTP_E_INVALID_PDU_SDU_ID und liefert E_NOT_OK [SWS_FrTp_01143].
  • Prüfung des Parameters parameter: Ist die Kennung ungültig, meldet die Funktion FRTP_E_INVALID_PARAMETER und gibt E_NOT_OK zurück [SWS_FrTp_01144].

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_FrTp_00151]. Aufrufer müssen daher sicherstellen, dass Aufrufe sequentiell ablaufen; vermutlich ist bei Zugriffen aus verschiedenen Tasks eine externe Synchronisation erforderlich. Frage Q-fe82be70448a3e0b (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0a137ff0f510 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion FrTp_CancelReceive fordert den Abbruch eines laufenden PDU-Empfangs im FlexRay-Transport-Layer an [SWS_FrTp_01172]. Sie ist über den Header FrTp.h verfügbar und ermöglicht es, eine aktive Empfangsoperation gezielt zu stoppen.

Parameter und Rückgabewerte

Als Eingabeparameter wird RxPduId vom Typ PduIdType übergeben, wodurch die abzubrechende PDU eindeutig identifiziert wird [SWS_FrTp_01172]. Zusätzliche Ein- oder Ausgabeparameter existieren nicht. Die Funktion liefert einen Statuswert vom Typ Std_ReturnType zurück:

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht-reentrant (Non Reentrant) eingestuft [SWS_FrTp_01172]. Aufrufer müssen daher sicherstellen, dass keine parallelen oder verschachtelten Aufrufe erfolgen, um Inkonsistenzen bei der internen PDU-Zustandsverwaltung zu vermeiden.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fdebe9a74064 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion [SWS_FrTp_00154] dient der Bereitstellung von SDU-Daten für die Übertragung. Über den Parameter TxPduId wird die zu übertragende SDU identifiziert, während PduInfoPtr auf eine Struktur mit dem Zielpuffer (SduDataPtr) und der verfügbaren Puffergröße (SduLength) verweist [SWS_FrTp_00154].

Innerhalb der Funktion wird geprüft, ob die bereitgestellten Daten in den über PduInfoPtr->SduLength gemeldeten Zielpuffer passen [SWS_FrTp_00154]:

  • Erfolgreicher Kopiervorgang: Reicht die Pufferkapazität aus, kopiert die Funktion die Adressinformationen, PCI sowie N-SDU-Daten in den Puffer PduInfoPtr->SduDataPtr [SWS_FrTp_01060]. Die Datenlänge in PduInfoPtr->SduLength wird auf die exakte Länge der kopierten Daten gesetzt und die Funktion gibt E_OK zurück [SWS_FrTp_00154], [SWS_FrTp_01061].
  • Unzureichender Puffer: Passen die Daten nicht in den Puffer, bricht die Funktion ab und gibt E_NOT_OK zurück, ohne PduInfoPtr zu verändern [SWS_FrTp_00154]. Im Fehlerfall darf PduInfoPtr vom Aufrufer nicht verwendet werden, da er ungültige Daten oder einen Nullzeiger enthalten kann [SWS_FrTp_00154].

Bei aktivierter Entwicklungserkennung (DET) führt die Funktion Vorabprüfungen der Übergabeparameter durch:

  • Ist TxPduId ungültig, meldet die Funktion den Fehler FRTP_E_INVALID_PDU_SDU_ID an das DET und liefert E_NOT_OK [SWS_FrTp_01145].
  • Ist PduInfoPtr ungültig, meldet sie den Fehler FRTP_E_PARAM_POINTER an das DET und gibt ebenfalls E_NOT_OK zurück [SWS_FrTp_01146].

Bezüglich der Nebenläufigkeit ist die Funktion reentrant für unterschiedliche PDU-IDs, darf jedoch für dieselbe TxPduId nicht nebenläufig aufgerufen werden [SWS_FrTp_00154].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e20d38175b0c Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone Callback-Funktion FrTp_RxIndication dient der Indikation einer empfangenen PDU von einem unterlagerten Kommunikationsschnittstellenmodul an das FlexRay-ISO-Transport-Layer-Modul und leitet den gesamten Empfangsprozess ein [SWS_FrTp_00152], [SWS_FrTp_00137]. Sie ist über den Header FrTp.h verfügbar und besitzt die Service-ID 0x42 ohne Rückgabewert [SWS_FrTp_00152]. Als Parameter erwartet sie den Bezeichner der empfangenen PDU (RxPduId) sowie einen Zeiger auf eine Struktur vom Typ PduInfoType (PduInfoPtr) [SWS_FrTp_00152]. Dieser Zeiger stellt die Länge der empfangenen PDU (SduLength), einen Pufferzeiger auf die Nutzdaten (SduDataPtr) sowie die zugehörigen Metadaten bereit [SWS_FrTp_00152].

Fehlerbehandlung

Hinsichtlich der Fehlerbehandlung prüft die Funktion bei aktiver Entwicklungserkennung (DET) beide Eingangsparameter: Ist RxPduId ungültig, meldet sie den Entwicklungsfehler FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01147]. Ist PduInfoPtr ungültig, wird der Fehler FRTP_E_PARAM_POINTER gemeldet [SWS_FrTp_01148]. Wird eine nicht unterstützte RxPduId übergeben, wird die Ausführung ohne weitere Aktionen beendet [SWS_FrTp_01075]. Falls zum Zeitpunkt des Aufrufs kein freier Empfangskanal verfügbar ist, weil der Kanalzustand nicht Idle ist (FrTpRxChannelState ≠ Idle), bricht die Funktion ebenfalls ohne weitere Verarbeitung ab [SWS_FrTp_01076] und das Modul löst den Laufzeitfehler FRTP_E_NO_CHANNEL aus [SWS_FrTp_01186].

Nebenläufigkeit und Zusammenspiel

Bezüglich der Nebenläufigkeit ist FrTp_RxIndication reentrant für unterschiedliche PDU-IDs, jedoch nicht reentrant für identische PDU-IDs [SWS_FrTp_00152]. Der Aufruf muss synchron durch die unterlagerte Schnittstelle erfolgen, um den Empfang im FrTp-Modul ordnungsgemäß zu starten [SWS_FrTp_00152], [SWS_FrTp_00137].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9cfd8edaa6b0 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion [SWS_FrTp_00153] dient der unterlagerten Kommunikationsschicht dazu, dem FrTp-Modul die erfolgreiche Übertragung oder das Scheitern einer PDU mitzuteilen. Beim Aufruf übergibt die unterlagerte Schicht die konfigurierte Kennung FrTpTxConfirmationPduId im Parameter TxPduId sowie das Sendeergebnis result ([SWS_FrTp_01053]). Gültige Werte für result sind E_OK bei erfolgreicher Aussendung und E_NOT_OK bei einer fehlgeschlagenen Übertragung ([SWS_FrTp_00153]).

Ist die Entwicklungserkennung (DET) aktiviert, führt die Funktion eine Parameterprüfung durch: Ein unzulässiger Bezeichner TxPduId löst den Entwicklungsfehler FRTP_E_INVALID_PDU_SDU_ID aus ([SWS_FrTp_01149]), während ein ungültiger Wert für result den Fehler FRTP_E_INVALID_PARAMETER zur Folge hat ([SWS_FrTp_01203]).

Bezüglich der Nebenläufigkeit ist die Funktion reentrant für unterschiedliche PDU-IDs, darf jedoch für dieselbe TxPduId nicht nebenläufig aufgerufen werden ([SWS_FrTp_00153]). Bei jedem Aufruf mit der zugehörigen FrTpTxConfirmationPduId dekrementiert das Modul den Zähler TxPduPendingCounter ([SWS_FrTp_01092]).

Im Zusammenspiel mit dem Übertragungsstatus bewirkt die Bestätigung folgende Zustandsübergänge:

  • Auf der Senderseite wird der belegte Kanal in den Zustand Idle (FrTpTxChannelState = Idle) überführt und die Flags TX_SDU_AVAILABLE sowie TX_SDU_UNKNOWN_MSG_LENGTH werden zurückgesetzt, sobald alle N-SDU-Daten gesendet wurden, result den Wert E_OK hat und eine ggf. konfigurierte Quittung eingegangen ist – oder unmittelbar, wenn result gleich E_NOT_OK ist ([SWS_FrTp_01056], [SWS_FrTp_01057], [SWS_FrTp_01124]).
  • Auf der Empfängerseite wird der belegte Empfangskanal (FrTpRxChannelState = Idle) freigegeben, wenn alle Daten empfangen und alle erforderlichen Flow-Control-PDUs mit E_OK bestätigt wurden oder wenn die Bestätigung mit E_NOT_OK erfolgt ([SWS_FrTp_01081]).

Dieser Text wurde von einer KI erstellt und basiert auf den Spezifikationen des AUTOSAR-Releases R20-11.

Implementer's Guide folgt (Komplexität I2)

function FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF

void FrTp_MainFunction (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 74855f22061c Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion FrTp_MainFunction besitzt die Signatur void FrTp_MainFunction (void); und ist mit der Service-ID 0x10 spezifiziert [SWS_FrTp_00162]. Sie nimmt keine Eingangsparameter entgegen und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_FrTp_00162]. Die Deklaration ist über den Header SchM_FrTp.h verfügbar [SWS_FrTp_00162]. Als Interpretation dürfte die Funktion somit typischerweise durch den BSW-Scheduler (Schedule Manager) zyklisch aufgerufen werden. Frage Q-aaa6251bd84aef94 (offen)

Zusammenspiel und Aufgaben

Die Hauptaufgabe der Funktion besteht im Scheduling des FlexRay-Transport-Protokoll-Moduls [SWS_FrTp_00162], [SWS_FrTp_00203]. Gemäß [SWS_FrTp_00580] stellt FrTp_MainFunction den verbindlichen Einstiegspunkt für anstehende Verarbeitungsaufgaben (processing tasks) des FrTp-Moduls dar, wodurch die internen Protokollprozesse zyklisch abgearbeitet und verwaltet werden.

Zeitliche Bedingungen und Einschränkungen

Für die zeitliche Einbindung in das Gesamtsystem definiert die Spezifikation eine feste Mindestaufrufrate für das Scheduling:

  • FrTp_MainFunction muss mindestens einmal pro FlexRay-Zyklus aufgerufen werden [SWS_FrTp_01152].

Spezifische Fehlerbehandlungen, DET- oder DEM-Meldungen sowie explizite Vorgaben zur Reentranz oder zur Nebenläufigkeit werden im vorliegenden Spezifikationsumfang nicht beschrieben.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität 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#629ac4e3
Content hash
629ac4e3
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayISOTransportLayer.pdf#nameddest=SWS_FrTp_00215

Initialisierung und Status

Returns the version information.

void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTp_Init function

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);

Dienste

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 function

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 function

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);

Zyklisch

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

void FrTp_MainFunction (void);

Typen

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