DEENESPTFRRUARHIKOZHNL

FlexRay Transport Layer (FrTp)

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

Guía del móduloGENERADO POR IA

Segmenta y reensambla mensajes largos según ISO 10681-2 entre el PDU Router y el FlexRay Interface.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 74e3fa4a7265 Procedencia Preguntas abiertas (1)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Segmenta y reensambla mensajes largos según ISO 10681-2 entre el PDU Router y el FlexRay Interface.

FrTp transmite mensajes grandes entre PduR y FrIf según ISO 10681-2 ([SWS_FrTp_01005]). Los segmenta y reensambla, controla el flujo y distribuye el ancho de banda a través de pools compartidos de PDU de Tx. FrTp_Transmit solo acepta una orden de transmisión; el trabajo real lo realiza la FrTp_MainFunction cíclica, que debe ejecutarse al menos una vez por ciclo FlexRay ([SWS_FrTp_01152]). Se admiten transferencias con acuse de recibo y sin acuse de recibo, así como mensajes de longitud desconocida. En caso de errores de protocolo o segmentación no permitida, FrTp se interrumpe y notifica E_NOT_OK a PduR.

FrTp es la capa de transporte para FlexRay según ISO 10681-2. Donde la especificación no define nada propio, el módulo sigue esta norma ([SWS_FrTp_01005]). Divide N-SDU grandes de PduR en N-PDU, las reenvía a FrIf con FrIf_Transmit y vuelve a ensamblar las tramas recibidas ([SWS_FrTp_01050], FrTp SWS p. 19). Solo procesa en el estado FRTP_ON, es decir, entre FrTp_Init y FrTp_Shutdown ([SWS_FrTp_01032], [SWS_FrTp_01036]). FrTp_MainFunction debe ejecutarse al menos una vez por ciclo 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

Diagrama de contexto: FrTp entre PduR y FrIf, controlado por EcuM y el planificador BSW. Fuentes: [SWS_FrTp_00577], FrTp SWS p. 21

La transmisión comienza siempre con FrTp_Transmit. La llamada solo ocupa un canal y establece TX_SDU_AVAILABLE ([SWS_FrTp_00136], [SWS_FrTp_01039]). La MainFunction se encarga del resto: obtiene los datos mediante PduR_FrTpCopyTxData, ocupa la primera PDU libre del pool y decide sobre la segmentación ([SWS_FrTp_01045], [SWS_FrTp_01048]). En el modo «Decoupled Buffer Access», FrIf recupera los datos posteriormente mediante FrTp_TriggerTransmit ([SWS_FrTp_01060]). PduR_FrTpTxConfirmation sigue a cada orden aceptada ([SWS_FrTp_01058]).

Transmisión de una N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Comprobar TxPduId, ocupar canal libreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(longitud disponible)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopHasta que se hayan transmitido todos los datos de la N-SDUPduR_FrTpCopyTxData(longitud FrTpTxPdu)Preparar Address Information y PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI y datos copiadosFrTp_TxConfirmation(TxPduId, E_OK)Poner FrTpTxPdu en idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenRestablecer TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagrama de secuencia: aceptación de la orden, procesamiento en la MainFunction, confirmación por cada N-PDU y al final a PduR. Fuentes: FrTp SWS p. 44, [SWS_FrTp_01042]

Durante la recepción, FrTp comprueba el RxPduId y las direcciones frente a la configuración de la conexión ([SWS_FrTp_01069], [SWS_FrTp_01071]). En una nueva conexión, llama a PduR_FrTpStartOfReception, copia los fragmentos hacia arriba y envía FlowControl si es necesario ([SWS_FrTp_01078], [SWS_FrTp_01080]). Se admiten seis variantes: no segmentada o segmentada, con o sin acuse de recibo, con longitud conocida o desconocida ([SWS_FrTp_01007]–[SWS_FrTp_01012]). Varias conexiones comparten pools de PDU de Tx y se atienden de forma alternada ([SWS_FrTp_01020], [SWS_FrTp_01096]).

En caso de error, FrTp se interrumpe en tres situaciones y notifica E_NOT_OK a PduR: con Flow Status no válido o abortivo, y cuando se requiere segmentación en conexiones 1:n ([SWS_FrTp_01198], [SWS_FrTp_01208]). Los errores de tiempo de ejecución son FRTP_E_SEG_ERROR y FRTP_E_NO_CHANNEL. Temporizadores y contadores como el límite FC.WAIT acotan los tiempos de espera ([SWS_FrTp_01100], [SWS_FrTp_01114]). Las transmisiones en curso pueden cancelarse con FrTp_CancelTransmit y FrTp_CancelReceive ([SWS_FrTp_01116], [SWS_FrTp_01181]).

Rol en la pila FlexRay y estado del módulo

FrTp es la capa de transporte de FlexRay según ISO 10681-2. Donde la especificación no define nada propio, el módulo sigue esta norma y admite sus formatos de N-PDU ([SWS_FrTp_01005], [SWS_FrTp_01006]). Hacia arriba, FrTp atiende a PduR. PduR inicia transferencias con FrTp_Transmit, las cancela o modifica parámetros. FrTp devuelve datos y resultados a través de PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpCopyTxData, PduR_FrTpRxIndication y PduR_FrTpTxConfirmation (FrTp SWS p. 19). Hacia abajo, FrTp entrega N-PDU con FrIf_Transmit ([SWS_FrTp_01050]). FrIf responde con FrTp_RxIndication, FrTp_TxConfirmation y FrTp_TriggerTransmit (FrTp SWS p. 21). EcuM llama a FrTp_Init y FrTp_Shutdown (FrTp SWS p. 19). El planificador BSW llama a FrTp_MainFunction ([SWS_FrTp_00162], FrTp SWS p. 81).

Una diferencia entre las versiones: las versiones posteriores intercalan un enrutador de L-SDU (LSduR) entre FrTp y FrIf (FrTp SWS p. 19). Para R20-11 aplica la interfaz directa con FrIf, tal como establecen [SWS_FrTp_00577] y [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

Diagrama de contexto: FrTp se ubica entre PduR y FrIf y es controlado por EcuM y el planificador BSW. Fuentes: FrTp SWS p. 19, FrTp SWS p. 21, [SWS_FrTp_00577]

El módulo reconoce dos estados, FRTP_OFF y FRTP_ON ([SWS_FrTp_01028]). La variable de estado FrTpState registra cuál de ellos aplica ([SWS_FrTp_01029], [SWS_FrTp_01106]). Tras el encendido, FrTp se encuentra en FRTP_OFF ([SWS_FrTp_01030]). Solo un FrTp_Init exitoso con puntero a FrTp_ConfigType conmuta a FRTP_ON ([SWS_FrTp_01032], [SWS_FrTp_00147], [SWS_FrTp_01194]). La segmentación y el reensamblado se ejecutan únicamente en FRTP_ON ([SWS_FrTp_01033]). FrTp_Shutdown finaliza todas las conexiones abiertas deteniendo simplemente el funcionamiento. Libera los recursos y regresa a FRTP_OFF ([SWS_FrTp_00148], [SWS_FrTp_01036]).

lebenszyklus start OFF FRTP_OFF (sin procesamiento) start->OFF Einschalten ON FRTP_ON (Segmentierung, Reassemblierung, Verbindungsverarbeitung) OFF->ON FrTp_Init(configPtr) erfolgreich ON->OFF FrTp_Shutdown() todas las conexiones finalizadas, recursos liberados

Diagrama de estados: FrTp procesa datos únicamente entre FrTp_Init y FrTp_Shutdown. Fuentes: [SWS_FrTp_01030], [SWS_FrTp_01032], [SWS_FrTp_01036], FrTp SWS p. 38

FrTp_MainFunction planifica el módulo y constituye el punto de entrada de todas las tareas de procesamiento ([SWS_FrTp_00203], [SWS_FrTp_00580]). Debe ejecutarse al menos una vez por ciclo FlexRay ([SWS_FrTp_01152]). Por el contrario, las callbacks esencialmente solo establecen flags: TX_SDU_AVAILABLE existe por cada canal ([SWS_FrTp_00415], [SWS_FrTp_00416]). RX_PDU_AVAILABLE existe por cada N-PDU que puede recibirse y se borra tras el procesamiento ([SWS_FrTp_00418], [SWS_FrTp_00421]).

Variantes de transmisión según ISO 10681-2

FrTp admite seis secuencias de tramas. Se diferencian en tres aspectos: si el mensaje se segmenta, si el receptor envía acuse de recibo y si la longitud se conoce al inicio de la transmisión (FrTp SWS p. 27, FrTp SWS p. 31):

VarianteTramas característicasReferencia
no segmentada, sin acuse de recibo, longitud conocidaSTFU[SWS_FrTp_01007]
no segmentada, con acuse de recibo, longitud conocidaSTFA → FC.ACK[SWS_FrTp_01008]
segmentada, sin acuse de recibo, longitud conocidaSTFU, FC.CTS, CF, CFEOB, LF[SWS_FrTp_01009]
segmentada, con acuse de recibo, longitud conocidaSTFA, FC.CTS, CF, CFEOB, LF, FC.ACK[SWS_FrTp_01010]
segmentada, sin acuse de recibo, longitud desconocidacomo arriba, longitud total solo en LF[SWS_FrTp_01011], [SWS_FrTp_01067]
segmentada, con acuse de recibo, longitud desconocidacomo arriba, adicionalmente FC.ACK[SWS_FrTp_01012]

En las variantes segmentadas con acuse de recibo, es probable que FC.ACK siga a LastFrame y concluya la transferencia. Pregunta Q-f3c70b1506e2cde4 (abierta) Esta es una interpretación de los textos de las figuras, cuyo orden no es inequívoco (FrTp SWS p. 29). El siguiente diagrama muestra el caso básico segmentado sin acuse de recibo.

Transmisión segmentada sin acuse de recibo, longitud conocidaFrTp SenderReceptor 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)

Diagrama de secuencia: el receptor habilita cada bloque mediante FC.CTS, y CFEOB concluye un bloque. Fuentes: [SWS_FrTp_01009], FrTp SWS p. 28

Transmisión con longitud desconocida:

Conexiones, canales y pools de PDU

Cada relación de comunicación es una FrTpConnection propia. Su cantidad es configurable en post-build ([SWS_FrTp_01014], [SWS_FrTp_01015]). Cada conexión tiene un par de direcciones único en todo el módulo y un FRTP_SDUID unívoco ([SWS_FrTp_01017], [SWS_FrTp_01018]). Varias conexiones pueden compartir un FrTpConnectionControl y un FrTpTxPduPool ([SWS_FrTp_01022], [SWS_FrTp_01020]). En tiempo de ejecución, varios FrTpChannel operan en paralelo; su número lo define FrTpChanNum ([SWS_FrTp_00088], [SWS_FrTp_00228]). Para transmisión y recepción, los canales alternan respectivamente entre «idle» y «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 Referencia (para FlowControl) NPdu Tx N-PDUs (ascendente, longitud individual) Pool->NPdu Contiene FrIf FrIf NPdu->FrIf SF, CF, LF / FC

Diagrama de contexto: un canal semidúplex referencia una conexión de Tx y una de Rx. Ambas hacen referencia a parámetros de control y a un pool de PDU de Tx. Fuentes: FrTp SWS p. 39, [SWS_FrTp_01020], [SWS_FrTp_01088]

Direcciones:

  • Al transmitir, FrTp toma las direcciones de los metadatos SOURCE_ADDRESS_16 y TARGET_ADDRESS_16. Las FrTpLa/FrTpRa configuradas tienen prioridad en este caso ([SWS_FrTp_01204], [SWS_FrTp_01205]).
  • Al recibir, FrTp pasa las direcciones hacia arriba como metadatos. Emplea las mismas direcciones para FlowControl ([SWS_FrTp_01206]).

FrTp distribuye el ancho de banda a través de los pools:

Ruta de transmisión: de FrTp_Transmit a PduR_FrTpTxConfirmation

Cada transmisión comienza con FrTp_Transmit ([SWS_FrTp_00136], [SWS_FrTp_00149]). La llamada establece TX_SDU_AVAILABLE solo si el TxPduId es válido y un canal está libre ([SWS_FrTp_01039]). De lo contrario, finaliza con E_NOT_OK. Lo mismo aplica si ya hay una transmisión en curso para la misma dirección ([SWS_FrTp_01041], [SWS_FrTp_01200]).

El trabajo real lo realiza FrTp_MainFunction:

  1. Consulta la longitud disponible mediante PduR_FrTpCopyTxData ([SWS_FrTp_01042]).
  2. Ocupa la primera FrTpTxPdu libre ([SWS_FrTp_01045]).
  3. Decide sobre la segmentación ([SWS_FrTp_01048]).
  4. Copia datos con la longitud de la PDU ([SWS_FrTp_01123]).
  5. Entrega la N-PDU con longitud exacta a FrIf_Transmit ([SWS_FrTp_01051]).

El flujo se muestra en FrTp SWS p. 44.

segmentierung start laenge TX_SDU_AVAILABLE establecido: PduR_FrTpCopyTxData suministra la longitud disponible start->laenge frei ¿FrTpTxPdu libre en el pool? laenge->frei warten Postergar la conexión hasta el siguiente FrTp_MainFunction frei->warten No groesse FrTpTxSdu.Length > FrTpTxPdu.Length - AI.Length - PCI.Length? frei->groesse Sí unseg unsegmentiert (einzelner StartFrame) groesse->unseg No multi 1:n-Verbindung? groesse->multi Sí senden Preparar AI y PCI, PduR_FrTpCopyTxData (longitud FrTpTxPdu), FrIf_Transmit unseg->senden fehler Notificar FRTP_E_SEG_ERROR, cancelar transmisión, PduR_FrTpTxConfirmation(E_NOT_OK) multi->fehler Sí seg segmentiert (StartFrame, CF ..., LastFrame) multi->seg No seg->senden

Diagrama de actividades: decisión entre transmisión no segmentada y segmentada, incluida la cancelación en conexiones 1:n. Fuentes: [SWS_FrTp_01047], [SWS_FrTp_01048], [SWS_FrTp_01208], FrTp SWS p. 51

Importante para el rendimiento: si ninguna PDU está libre, FrTp pospone la conexión hasta la siguiente llamada a la MainFunction ([SWS_FrTp_01047]).

Tras cada N-PDU, FrIf llama a FrTp_TxConfirmation. Esto pasa el FrTpTxPdu a «idle» ([SWS_FrTp_01052], [SWS_FrTp_01054]). El canal y el flag quedan libres en cuanto se cumplen tres condiciones: todos los datos enviados, confirmados positivamente y, si está configurado, con acuse de recibo recibido ([SWS_FrTp_01056], [SWS_FrTp_01057]). PduR_FrTpTxConfirmation se produce tras cada orden aceptada, con E_OK solo en caso de éxito ([SWS_FrTp_01058]). Para la transmisión existen dos modos de acceso al búfer: «Immediate» y «Decoupled Buffer Access» ([SWS_FrTp_01084]). En «Decoupled», FrIf recupera los datos posteriormente mediante FrTp_TriggerTransmit. Esta llamada copia Address Information, PCI y datos útiles en el búfer proporcionado ([SWS_FrTp_01060], [SWS_FrTp_01061], FrTp SWS p. 50).

Transmisión de una N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Comprobar TxPduId, ocupar canal libreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(longitud disponible)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopHasta que se hayan transmitido todos los datos de la N-SDUPduR_FrTpCopyTxData(longitud FrTpTxPdu)Preparar Address Information y PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI y datos copiadosFrTp_TxConfirmation(TxPduId, E_OK)Poner FrTpTxPdu en idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenRestablecer TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagrama de secuencia: la orden llega de forma síncrona y se procesa de forma asíncrona en la MainFunction; opcionalmente sigue TriggerTransmit (Decoupled). Fuentes: FrTp SWS p. 44, FrTp SWS p. 50, [SWS_FrTp_01058]

Ruta de recepción y reensamblado

La recepción comienza con FrTp_RxIndication ([SWS_FrTp_00137]). FrTp solo procesa una N-PDU si se cumplen dos condiciones ([SWS_FrTp_01069], [SWS_FrTp_01071]):

  • El RxPduId es válido.
  • La dirección de destino coincide con FrTpLa y la de origen con FrTpRa.

De lo contrario, la N-PDU se ignora ([SWS_FrTp_01072]). Si no hay ningún canal de Rx libre, el procesamiento finaliza y FrTp notifica FRTP_E_NO_CHANNEL ([SWS_FrTp_01076], [SWS_FrTp_01186]). FrTp almacena una StartFrame en un búfer local. De este modo, una pasarela puede procesarla correctamente incluso ante una falta temporal de recursos (FrTp SWS p. 56).

En una nueva conexión, FrTp llama a PduR_FrTpStartOfReception. Se transmiten la longitud esperada, así como el contenido y el tamaño de la StartFrame ([SWS_FrTp_01078], [SWS_FrTp_01193]). El lugar donde se produce esta llamada lo muestran los diagramas de R20-11 en dos variantes: en FrTp_RxIndication (FrTp SWS p. 55) y en FrTp_MainFunction (FrTp SWS p. 86). R23-11 permite expresamente ambas (FrTp SWS p. 54).

A continuación, FrTp copia los fragmentos mediante PduR_FrTpCopyRxData y envía FlowControl donde el protocolo lo exige ([SWS_FrTp_01138], [SWS_FrTp_01080]). Libera el canal cuando se han recibido todos los datos y se han confirmado todos los FlowControl ([SWS_FrTp_01081]). PduR_FrTpRxIndication sigue siempre que PduR_FrTpStartOfReception haya sido exitoso ([SWS_FrTp_01083]).

Recepción y reensamblajeFrIfFrTpPduRFrTp_RxIndication(RxPduId, PduInfoPtr)Comprobar RxPduIdComprobar destino/origen frente a FrTpLa/FrTpRaaltStartFrame empfangenfreien Rx-Kanal belegenStartFrame in lokalen Puffer kopierenFolgerahmen (CF, LF)Buscar canal correspondienteRX_PDU_AVAILABLE setzenUse Case: FrTp_MainFunction (StartOfReception alternativ schon in FrTp_RxIndication)optneue VerbindungPduR_FrTpStartOfReception(RxSduId, datos y tamaño del StartFrame, longitud)Puffer bereitgestelltPduR_FrTpCopyRxData (N-SDU-Fragment)optFlowControl erforderlichFrIf_Transmit(FC N-PDU)FrTp_TxConfirmation(E_OK)Restablecer RX_PDU_AVAILABLEoptN-SDU recibida completamenteRx-Kanal freigebenPduR_FrTpRxIndication(RxSduId, E_OK)

Diagrama de secuencia: la callback comprueba y almacena en búfer, la MainFunction reensambla y envía FlowControl. Fuentes: FrTp SWS p. 55, [SWS_FrTp_01074], [SWS_FrTp_01083]

Cancelación y parámetros en tiempo de ejecución

La disponibilidad de la cancelación de transmisión se determina estáticamente mediante FrTpTransmitCancellation; se activa con FrTp_CancelTransmit ([SWS_FrTp_01097], [SWS_FrTp_00384]). El efecto depende del progreso:

  • Si la orden está aceptada pero aún no se ha iniciado, la conexión se libera inmediatamente. El receptor no nota nada ([SWS_FrTp_00385], FrTp SWS p. 63).
  • Si la transferencia está en curso, FrTp la detiene con E_OK ([SWS_FrTp_01116]).
  • E_NOT_OK se produce si ninguna conexión está activa o si la última N-PDU de una transmisión sin acuse de recibo ya se ha entregado a FrIf ([SWS_FrTp_01116]).

En el caso segmentado, en el receptor expira un timeout que finaliza la recepción (FrTp SWS p. 59).

Cancelación de transmisión en transferencia segmentadaPduR (Sender)FrTp SenderReceptor FrTpPduR (receptor)FrTp_TransmitUse Case: FrTp_MainFunctionStartFramePduR_FrTpStartOfReceptionFlowControlFrTp_CancelTransmit(TxPduId)E_OKTransmisión detenida, no hay más CFTimeout (no ha llegado ningún CF)PduR_FrTpRxIndication(Empfang abgebrochen)

Diagrama de secuencia: si el emisor cancela una transmisión segmentada en curso, el receptor finaliza la recepción mediante timeout. Fuentes: [SWS_FrTp_01116], FrTp SWS p. 69

FrTp_CancelReceive cancela una recepción en curso si el RxPduId es válido, y devuelve entonces E_OK ([SWS_FrTp_01181], [SWS_FrTp_01183]). En caso de recepción no segmentada o LastFrame en curso, la función la rechaza ([SWS_FrTp_01182]). FrTp_ChangeParameter modifica en tiempo de ejecución los valores de BandwidthControl FrTpSCexp y FrTpMaxNbrOfNPduPerCycle ([SWS_FrTp_00242]). La distribución de bits corresponde a la de la trama FC(CTS) ([SWS_FrTp_01195]). El identificador de parámetro para ello es TP_BC (ComStack Types p. 18). Durante una recepción en curso, la modificación se rechaza ([SWS_FrTp_01115]). Tras una modificación exitosa, la conexión utiliza los nuevos valores ([SWS_FrTp_01156]).

Comportamiento en caso de error

Los errores de desarrollo se definen en [SWS_FrTp_01201]:

  • FRTP_E_UNINIT: llamada sin inicialización; se exceptúan FrTp_Init y FrTp_GetVersionInfo.
  • FRTP_E_PARAM_POINTER: puntero NULL.
  • FRTP_E_INVALID_PDU_SDU_ID: ID de SDU o PDU no válido.
  • FRTP_E_INVALID_PARAMETER: parámetro no válido.
  • FRTP_E_UMSG_LENGTH_ERROR: longitud desconocida sin configuración adecuada ([SWS_FrTp_01134]).
  • un código de error para una inicialización fallida.

Las API comprueban ID y punteros y devuelven E_NOT_OK en caso de error donde dispongan de un valor de retorno ([SWS_FrTp_01139], [SWS_FrTp_01145], [SWS_FrTp_01147]). Los errores de tiempo de ejecución son FRTP_E_SEG_ERROR (0x05) y FRTP_E_NO_CHANNEL (0x07). Se canalizan a través de Det_ReportRuntimeError ([SWS_FrTp_01208], [SWS_FrTp_00577]).

En tres casos, el emisor se interrumpe y notifica PduR_FrTpTxConfirmation con E_NOT_OK:

Una FrTp_TxConfirmation con E_NOT_OK libera el canal en ambos extremos ([SWS_FrTp_01056], [SWS_FrTp_01081]). El flag RX_ERROR recuerda un error de recepción hasta que se permita enviar FlowControl. Tras la reacción (reintento, acuse de recibo negativo o cancelación), se borra ([SWS_FrTp_00429], [SWS_FrTp_00430]). En conexiones 1:n no hay acuse de recibo ni reintento ([SWS_FrTp_00598]).

Los temporizadores y timeouts siguen las tablas de la especificación ([SWS_FrTp_01099], [SWS_FrTp_01100], FrTp SWS p. 67). La configuración debe cumplir las siguientes condiciones:

Si PduR devuelve BUFREQ_E_BUSY durante la transmisión, FrTp lo reintenta hasta FrTpTimeCs veces ([SWS_FrTp_01196]). Los contadores están limitados ([SWS_FrTp_01105], [SWS_FrTp_01114]). Lo que ocurre al alcanzar un límite lo establece [SWS_FrTp_01113]; la tabla correspondiente no se encuentra disponible aquí. Si al receptor le falta un búfer, envía FC.WAIT. La cantidad de estas tramas está limitada por FrTpMaxFCWait (FrTp SWS p. 69).

Cuello de botella de búfer en el receptor: FC.WAIT y límite de contadorFrTp SenderReceptor FrTpPduR (receptor)StartFrameEl emisor supervisa Timeout_BSPduR_FrTpStartOfReceptionkein Pufferloopkein Puffer; COUNTER_FCWT begrenzt durch FrTpMaxFCWaitFlowControl (WAIT)Pufferanforderung wiederholenkein PufferPufferanforderungBúfer disponiblePduR_FrTpCopyRxDataFlowControl (CTS)ConsecutiveFrameEl receptor supervisa Timeout_CR

Diagrama de secuencia: si falta el búfer, el receptor envía FC.WAIT hasta que interviene el límite del contador; a continuación, FC.CTS reanuda la transferencia. Fuentes: [SWS_FrTp_01105], [SWS_FrTp_01114], FrTp SWS p. 70

Más evidencia detallada

Guía generada por IA sobre la base de los extractos de la especificación incluidos en el payload. Para R20-11 son normativos los requerimientos enlazados; las referencias a documentos de otras versiones solo sirven a efectos explicativos.

FlexRay Transport Layer (FrTp)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función 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 ).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c550cdee4114 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrTp_Init inicializa todas las variables globales de una instancia de la capa de transporte FlexRay y la pone en estado de reposo [SWS_FrTp_00147]. Como parámetro de entrada se transmite mediante configPtr un puntero a la configuración del protocolo de transporte FlexRay (const FrTp_ConfigType*) [SWS_FrTp_00147]. La interfaz se declara a través del encabezado FrTp.h con el Service-ID 0x00 [SWS_FrTp_00147].

En lo que respecta al comportamiento interno y al tratamiento de errores, se aplican las siguientes estipulaciones:

  • Una vez que la capa de transporte se ha inicializado correctamente mediante la llamada a FrTp_Init, el módulo FrTp cambia al estado interno FRTP_ON [SWS_FrTp_01032].
  • La función no posee valor de retorno (void), dado que los errores de software en los datos de inicialización ya deben detectarse durante la fase de configuración, por ejemplo mediante una herramienta de configuración [SWS_FrTp_00147].

En lo relativo a la concurrencia, el servicio está especificado como no reentrante (Non Reentrant) [SWS_FrTp_00147]. Por tanto, no se permite una llamada paralela o múltiple no coordinada. Interpretación: la llamada debería realizarse típicamente de forma centralizada en el marco del arranque de la ECU antes de utilizar servicios de transporte regulares. Pregunta Q-9b7cf7fc6dac510e (abierta)

Esta nota de uso se generó de forma automatizada basándose en los requisitos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 00fb8d95a0be Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrTp_Shutdown finaliza el funcionamiento del módulo de protocolo de transporte FlexRay (FrTp) [SWS_FrTp_00148]. Al llamarla, el servicio cierra inmediatamente todas las conexiones de protocolo de transporte aún pendientes cesando el funcionamiento, libera todos los recursos ocupados y detiene el módulo FrTp por completo [SWS_FrTp_00148].

En cuanto a la especificación de la interfaz y al comportamiento, se aplican las siguientes propiedades:

  • Firma y cabecera: la función está disponible a través del archivo de cabecera FrTp.h, posee el ID de servicio 0x01, no espera parámetros y no devuelve ningún valor de retorno (void) [SWS_FrTp_00148].
  • Concurrencia: FrTp_Shutdown está especificada como no reentrante (Non Reentrant) y debe ejecutarse de forma síncrona [SWS_FrTp_00148]. Por lo tanto, no se permite una llamada concurrente o múltiple en paralelo.
  • Transición de estado: mediante la ejecución correcta de la primitiva de servicio FrTp_Shutdown(), el módulo FrTp cambia al estado interno FRTP_OFF [SWS_FrTp_01036].

Dado que el servicio cierra las conexiones pendientes simplemente deteniendo el funcionamiento, es probable que las transmisiones en curso se interrumpan de forma inmediata y sin un mensaje de finalización independiente. Pregunta Q-35555515f521d0c3 (abierta)

Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función FrTp_Transmit [SWS_FrTp_00149] 📄 PDF

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

Requests transmission of a PDU.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ad193864f748 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función síncrona FrTp_Transmit solicita la transmisión de una PDU a través del módulo FlexRay Transport Layer [SWS_FrTp_00149]. Mediante el parámetro TxPduId se pasa el identificador de la PDU a transmitir, mientras que PduInfoPtr apunta a los datos útiles, los metadatos y la longitud [SWS_FrTp_00149]. Si se desea iniciar una transmisión con una longitud de mensaje aún desconocida para la capa superior, debe invocarse FrTp_Transmit con el valor de parámetro PduLength = 0 [SWS_FrTp_01064]. La aceptación de la solicitud de envío se confirma de forma síncrona con E_OK; si la solicitud no puede aceptarse, la función devuelve E_NOT_OK [SWS_FrTp_00149].

Concurrencia y disponibilidad de canales

La función es reentrante para llamadas con diferentes ID de PDU, pero no es reentrante para el mismo identificador TxPduId [SWS_FrTp_00149]. Además, la ejecución requiere un canal de transmisión libre: si no hay ningún canal disponible debido a que el estado no se encuentra inactivo (FrTpTxChannelState ≠ Idle), la función se interrumpe y devuelve E_NOT_OK [SWS_FrTp_01041].

Manejo de errores

Si la interfaz de desarrollo para la detección de errores está activa, FrTp_Transmit valida los parámetros pasados:

  • Si se pasa un TxPduId no admitido o no válido, el servicio se interrumpe con E_NOT_OK y notifica el error de desarrollo FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01040], [SWS_FrTp_01139].
  • Si el puntero PduInfoPtr no es válido, se notifica el error FRTP_E_PARAM_POINTER y la ejecución también se interrumpe con E_NOT_OK [SWS_FrTp_01140].

Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ce8fe8bc8ce1 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de servicio síncrona FrTp_CancelTransmit solicita la cancelación de una transmisión de PDU en curso en un módulo de comunicación subordinado [SWS_FrTp_00150]. La transmisión a cancelar se direcciona mediante el parámetro de entrada TxPduId [SWS_FrTp_00150].

Comportamiento dependiente del estado y valores de retorno

El comportamiento ante la cancelación depende del estado actual de la conexión:

  • Si la solicitud de transmisión está pendiente pero la transmisión en sí aún no se ha iniciado, FrTp_CancelTransmit libera la conexión de inmediato [SWS_FrTp_00385].
  • Si la transmisión ya está en curso, la función detiene el proceso de envío y confirma la cancelación exitosa con el valor de retorno E_OK [SWS_FrTp_01116].
  • Si la conexión no está activa o si la última N-PDU de una transmisión no confirmada ya se ha reenviado al FrIf, la cancelación falla y la función devuelve E_NOT_OK [SWS_FrTp_01116].

Tratamiento de errores y concurrencia

Siempre que la detección de errores de desarrollo (Development Error Detection) esté activada para FrTp_CancelTransmit, la función comprueba la validez del parámetro TxPduId. Si esta comprobación falla, se notifica el error de desarrollo FRTP_E_INVALID_PDU_SDU_ID y se devuelve E_NOT_OK [SWS_FrTp_01141].

La función es reentrante para llamadas con diferentes ID de PDU, pero no debe ejecutarse de forma concurrente para el mismo TxPduId [SWS_FrTp_00150].

Esta nota de uso se generó automáticamente sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I2)

función 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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a8ec21fec13d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrTp_ChangeParameter sirve, conforme a [SWS_FrTp_00151], para solicitar la modificación de parámetros específicos del protocolo de transporte en tiempo de ejecución. Mediante el parámetro id se referencia la PDU afectada, mientras que parameter transfiere el identificador del parámetro y value el nuevo valor. En caso de una adaptación correcta, la función devuelve E_OK; de lo contrario, la solicitud de modificación se rechaza con E_NOT_OK [SWS_FrTp_00151].

En concreto, este servicio se utiliza para modificar en tiempo de ejecución parámetros de la FlowControl-PDU para el control de ancho de banda (BandwidthControl, BC) según ISO 10681-2 [SWS_FrTp_00242]. Esto afecta a:

En el lado emisor, una FlowControl-PDU adicional desencadenada de este modo se recibe como N-PDU inesperada y se ignora [SWS_FrTp_00242].

Manejo de errores

Si la detección de errores de desarrollo (Development Error Detection) está activada para la función, se realizan comprobaciones formales de los parámetros:

  • Comprobación del identificador de PDU id: si el valor no es válido, la función notifica el error de desarrollo FRTP_E_INVALID_PDU_SDU_ID y devuelve E_NOT_OK [SWS_FrTp_01143].
  • Comprobación del parámetro parameter: si el identificador no es válido, la función notifica FRTP_E_INVALID_PARAMETER y devuelve E_NOT_OK [SWS_FrTp_01144].

Concurrencia y restricciones

La función está especificada como no reentrante (Non Reentrant) [SWS_FrTp_00151]. Por lo tanto, los llamadores deben asegurarse de que las llamadas se ejecuten secuencialmente; es de suponer que se requiera una sincronización externa en caso de accesos desde diferentes tareas. Pregunta Q-fe82be70448a3e0b (abierta)

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0a137ff0f510 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona FrTp_CancelReceive solicita la cancelación de una recepción de PDU en curso en la capa de transporte FlexRay [SWS_FrTp_01172]. Está disponible a través de la cabecera FrTp.h y permite detener de manera dirigida una operación de recepción activa.

Parámetros y valores de retorno

Como parámetro de entrada se transfiere RxPduId de tipo PduIdType, con lo cual se identifica de forma unívoca la PDU que se debe cancelar [SWS_FrTp_01172]. No existen parámetros de entrada o de salida adicionales. La función devuelve un valor de estado de tipo Std_ReturnType:

Concurrencia y restricciones

La función está clasificada como no reentrante (Non Reentrant) [SWS_FrTp_01172]. Por lo tanto, los llamadores deben asegurarse de que no se produzcan llamadas paralelas o anidadas, a fin de evitar incoherencias en la gestión interna de estados de las PDU.

Esta nota de uso se generó de forma automatizada sobre la base de la especificación.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fdebe9a74064 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona [SWS_FrTp_00154] sirve para proporcionar datos SDU para la transmisión. Mediante el parámetro TxPduId se identifica la SDU que se va a transmitir, mientras que PduInfoPtr apunta a una estructura con el búfer de destino (SduDataPtr) y el tamaño de búfer disponible (SduLength) [SWS_FrTp_00154].

Dentro de la función se comprueba si los datos proporcionados caben en el búfer de destino notificado a través de PduInfoPtr->SduLength [SWS_FrTp_00154]:

  • Operación de copia correcta: si la capacidad del búfer es suficiente, la función copia la información de dirección, el PCI y los datos N-SDU en el búfer PduInfoPtr->SduDataPtr [SWS_FrTp_01060]. La longitud de los datos en PduInfoPtr->SduLength se ajusta a la longitud exacta de los datos copiados y la función devuelve E_OK [SWS_FrTp_00154], [SWS_FrTp_01061].
  • Búfer insuficiente: si los datos no caben en el búfer, la función se cancela y devuelve E_NOT_OK sin modificar PduInfoPtr [SWS_FrTp_00154]. En caso de error, el llamador no debe utilizar PduInfoPtr, ya que puede contener datos no válidos o un puntero nulo [SWS_FrTp_00154].

Con la detección de errores de desarrollo (DET) activada, la función realiza comprobaciones previas de los parámetros transferidos:

  • Si TxPduId no es válido, la función notifica el error FRTP_E_INVALID_PDU_SDU_ID al DET y devuelve E_NOT_OK [SWS_FrTp_01145].
  • Si PduInfoPtr no es válido, notifica el error FRTP_E_PARAM_POINTER al DET y devuelve asimismo E_NOT_OK [SWS_FrTp_01146].

En cuanto a la concurrencia, la función es reentrante para diferentes PDU-IDs, pero no debe llamarse de forma concurrente para la misma TxPduId [SWS_FrTp_00154].

Esta nota de uso se ha generado automáticamente sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e20d38175b0c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función de callback síncrona FrTp_RxIndication sirve para indicar una PDU recibida desde un módulo de interfaz de comunicación subordinado al módulo FlexRay ISO Transport Layer e inicia todo el proceso de recepción [SWS_FrTp_00152], [SWS_FrTp_00137]. Está disponible a través del encabezado FrTp.h y posee el Service-ID 0x42 sin valor de retorno [SWS_FrTp_00152]. Como parámetros espera el identificador de la PDU recibida (RxPduId), así como un puntero a una estructura del tipo PduInfoType (PduInfoPtr) [SWS_FrTp_00152]. Este puntero proporciona la longitud de la PDU recibida (SduLength), un puntero de búfer a los datos útiles (SduDataPtr) y los metadatos asociados [SWS_FrTp_00152].

Manejo de errores

En lo que respecta al tratamiento de errores, la función comprueba ambos parámetros de entrada cuando la detección de desarrollo (DET) está activa: si RxPduId no es válido, notifica el error de desarrollo FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01147]. Si PduInfoPtr no es válido, se notifica el error FRTP_E_PARAM_POINTER [SWS_FrTp_01148]. Si se pasa un RxPduId no compatible, la ejecución finaliza sin acciones adicionales [SWS_FrTp_01075]. Si en el momento de la llamada no hay ningún canal de recepción libre disponible porque el estado del canal no es Idle (FrTpRxChannelState ≠ Idle), la función también se interrumpe sin procesamiento adicional [SWS_FrTp_01076] y el módulo desencadena el error de tiempo de ejecución FRTP_E_NO_CHANNEL [SWS_FrTp_01186].

Concurrencia e interacción

En cuanto a la concurrencia, FrTp_RxIndication es reentrante para diferentes PDU-IDs, pero no reentrante para PDU-IDs idénticos [SWS_FrTp_00152]. La llamada debe realizarse de forma síncrona a través de la interfaz subyacente para iniciar correctamente la recepción en el módulo FrTp [SWS_FrTp_00152], [SWS_FrTp_00137].

Esta nota de uso se generó de forma automatizada basándose en los requisitos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9cfd8edaa6b0 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona [SWS_FrTp_00153] sirve para que la capa de comunicación subyacente comunique al módulo FrTp la transmisión correcta o el fallo de una PDU. Durante la llamada, la capa subyacente transfiere el identificador configurado FrTpTxConfirmationPduId en el parámetro TxPduId, así como el resultado de envío result ([SWS_FrTp_01053]). Los valores válidos para result son E_OK en caso de envío correcto y E_NOT_OK en caso de transmisión fallida ([SWS_FrTp_00153]).

Si la detección de errores de desarrollo (DET) está activada, la función realiza una comprobación de parámetros: un identificador TxPduId no permitido desencadena el error de desarrollo FRTP_E_INVALID_PDU_SDU_ID ([SWS_FrTp_01149]), mientras que un valor no válido para result da lugar al error FRTP_E_INVALID_PARAMETER ([SWS_FrTp_01203]).

En cuanto a la concurrencia, la función es reentrante para diferentes PDU-ID, pero no debe llamarse de forma concurrente para el mismo TxPduId ([SWS_FrTp_00153]). Con cada llamada con el correspondiente FrTpTxConfirmationPduId, el módulo decrementa el contador TxPduPendingCounter ([SWS_FrTp_01092]).

En combinación con el estado de transmisión, la confirmación provoca las siguientes transiciones de estado:

  • En el lado emisor, el canal ocupado pasa al estado Idle (FrTpTxChannelState = Idle) y los flags TX_SDU_AVAILABLE y TX_SDU_UNKNOWN_MSG_LENGTH se restablecen tan pronto como se hayan enviado todos los datos N-SDU, result tenga el valor E_OK y se haya recibido un acuse de recibo eventualmente configurado, o bien inmediatamente si result es igual a E_NOT_OK ([SWS_FrTp_01056], [SWS_FrTp_01057], [SWS_FrTp_01124]).
  • En el lado receptor, el canal de recepción ocupado (FrTpRxChannelState = Idle) se libera cuando se hayan recibido todos los datos y se hayan confirmado todas las Flow-Control-PDU requeridas con E_OK, o cuando la confirmación se produzca con E_NOT_OK ([SWS_FrTp_01081]).

Este texto ha sido generado por una IA y se basa en las especificaciones del release R20-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

función FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF

void FrTp_MainFunction (void);

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 74855f22061c Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función FrTp_MainFunction posee la firma void FrTp_MainFunction (void); y está especificada con el ID de servicio 0x10 [SWS_FrTp_00162]. No recibe parámetros de entrada y no devuelve ningún valor de retorno al llamador [SWS_FrTp_00162]. La declaración está disponible a través de la cabecera SchM_FrTp.h [SWS_FrTp_00162]. A modo de interpretación, es de esperar que el BSW-Scheduler (Schedule Manager) llame típicamente a la función de manera cíclica. Pregunta Q-aaa6251bd84aef94 (abierta)

Interacción y tareas

La tarea principal de la función consiste en la planificación (scheduling) del módulo de protocolo de transporte FlexRay [SWS_FrTp_00162], [SWS_FrTp_00203]. Conforme a [SWS_FrTp_00580], FrTp_MainFunction representa el punto de entrada vinculante para tareas de procesamiento pendientes (processing tasks) del módulo FrTp, mediante el cual los procesos internos del protocolo se procesan y gestionan cíclicamente.

Condiciones temporales y restricciones

Para la integración temporal en el sistema global, la especificación define una tasa mínima fija de llamadas para la planificación:

  • FrTp_MainFunction debe llamarse al menos una vez por ciclo FlexRay [SWS_FrTp_01152].

En el presente alcance de la especificación no se describen tratamientos de error específicos, mensajes DET o DEM, ni requisitos explícitos sobre reentrancia o concurrencia.

Esta nota de uso se ha generado automáticamente a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

tipo 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#0a4a664c
Content hash
0a4a664c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayISOTransportLayer.pdf#nameddest=SWS_FrTp_00215

Inicialización y estado

Returns the version information.

void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTp_Init función

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

Servicios

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 función

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 función

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

Cíclico

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

void FrTp_MainFunction (void);

Tipos

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