DEENESPTFRRUARHIKOZHNL

FlexRay Transport Layer (FrTp)

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

Guia do móduloGERADO POR IA

Segmenta e remonta mensagens grandes conforme a ISO 10681-2 entre o PDU Router e o FlexRay Interface.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 74e3fa4a7265 Procedência Perguntas em aberto (1)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Segmenta e remonta mensagens grandes conforme a ISO 10681-2 entre o PDU Router e o FlexRay Interface.

O FrTp transmite mensagens grandes entre o PduR e o FrIf de acordo com a ISO 10681-2 ([SWS_FrTp_01005]). Ele as segmenta e remonta, controla o fluxo e distribui a largura de banda através de pools de Tx-PDUs compartilhados. FrTp_Transmit apenas aceita uma solicitação de transmissão; o trabalho real é realizado pela FrTp_MainFunction cíclica, que deve ser executada pelo menos uma vez por ciclo FlexRay ([SWS_FrTp_01152]). São suportadas transmissões com e sem confirmação, bem como mensagens de comprimento desconhecido. Em caso de erros de protocolo ou segmentação inadmissível, o FrTp é abortado e reporta E_NOT_OK ao PduR.

O FrTp é a camada de transporte para o FlexRay de acordo com a ISO 10681-2. Onde a especificação não definir nada próprio, o módulo segue esta norma ([SWS_FrTp_01005]). Ele divide grandes N-SDUs do PduR em N-PDUs, as repassa para o FrIf com FrIf_Transmit e remonta os quadros recebidos ([SWS_FrTp_01050], FrTp SWS p. 19). O processamento ocorre apenas no estado FRTP_ON, ou seja, entre FrTp_Init e FrTp_Shutdown ([SWS_FrTp_01032], [SWS_FrTp_01036]). A FrTp_MainFunction deve ser executada pelo menos uma 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 e FrIf, controlado pelo EcuM e pelo escalonador BSW. Fontes: [SWS_FrTp_00577], FrTp SWS p. 21

A transmissão sempre começa com FrTp_Transmit. A chamada apenas ocupa um canal e define TX_SDU_AVAILABLE ([SWS_FrTp_00136], [SWS_FrTp_01039]). A MainFunction cuida do restante: ela busca os dados via PduR_FrTpCopyTxData, aloca a primeira PDU livre do pool e decide sobre a segmentação ([SWS_FrTp_01045], [SWS_FrTp_01048]). No modo «Decoupled Buffer Access», o FrIf busca os dados posteriormente via FrTp_TriggerTransmit ([SWS_FrTp_01060]). PduR_FrTpTxConfirmation segue após cada solicitação aceita ([SWS_FrTp_01058]).

Envio de uma N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Verificar TxPduId, ocupar canal livreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(comprimento disponível)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopaté que todos os dados da N-SDU sejam enviadosPduR_FrTpCopyTxData(comprimento FrTpTxPdu)Preparar Address Information e PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI e dados copiadosFrTp_TxConfirmation(TxPduId, E_OK)Definir FrTpTxPdu para idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenReinicializar TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagrama de sequência: aceitação da solicitação, processamento na MainFunction, confirmação por N-PDU e, ao final, para o PduR. Fontes: FrTp SWS p. 44, [SWS_FrTp_01042]

Na recepção, o FrTp verifica a RxPduId e os endereços em relação à configuração da conexão ([SWS_FrTp_01069], [SWS_FrTp_01071]). Em uma nova conexão, ele chama PduR_FrTpStartOfReception, copia os fragmentos para cima e envia FlowControl quando necessário ([SWS_FrTp_01078], [SWS_FrTp_01080]). São suportadas seis variantes: não segmentada ou segmentada, com ou sem confirmação, com comprimento conhecido ou desconhecido ([SWS_FrTp_01007]–[SWS_FrTp_01012]). Múltiplas conexões compartilham pools de Tx-PDUs e são atendidas alternadamente ([SWS_FrTp_01020], [SWS_FrTp_01096]).

Em caso de erro, o FrTp é abortado em três situações e reporta E_NOT_OK ao PduR: em caso de Flow Status inválido ou de cancelamento e quando houver necessidade de segmentação em conexões 1:n ([SWS_FrTp_01198], [SWS_FrTp_01208]). Erros de tempo de execução são FRTP_E_SEG_ERROR e FRTP_E_NO_CHANNEL. Temporizadores e contadores como o limite de FC.WAIT limitam os tempos de espera ([SWS_FrTp_01100], [SWS_FrTp_01114]). Transmissões em andamento podem ser canceladas com FrTp_CancelTransmit e FrTp_CancelReceive ([SWS_FrTp_01116], [SWS_FrTp_01181]).

Papel na pilha FlexRay e estado do módulo

O FrTp é a camada de transporte FlexRay de acordo com a ISO 10681-2. Onde a especificação não definir nada próprio, o módulo segue esta norma e suporta seus formatos de N-PDU ([SWS_FrTp_01005], [SWS_FrTp_01006]). Para cima, o FrTp atende o PduR. O PduR inicia transmissões com FrTp_Transmit, as cancela ou altera parâmetros. O FrTp retorna dados e resultados via PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpCopyTxData, PduR_FrTpRxIndication e PduR_FrTpTxConfirmation (FrTp SWS p. 19). Para baixo, o FrTp transfere N-PDUs com FrIf_Transmit ([SWS_FrTp_01050]). O FrIf responde com FrTp_RxIndication, FrTp_TxConfirmation e FrTp_TriggerTransmit (FrTp SWS p. 21). O EcuM chama FrTp_Init e FrTp_Shutdown (FrTp SWS p. 19). O escalonador BSW chama FrTp_MainFunction ([SWS_FrTp_00162], FrTp SWS p. 81).

Uma diferença entre as versões: versões posteriores inserem um roteador de L-SDU (LSduR) entre o FrTp e o FrIf (FrTp SWS p. 19). Para o R20-11, aplica-se a interface direta com o FrIf, conforme estabelecido por [SWS_FrTp_00577] e [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: o FrTp localiza-se entre o PduR e o FrIf e é controlado pelo EcuM e pelo escalonador BSW. Fontes: FrTp SWS p. 19, FrTp SWS p. 21, [SWS_FrTp_00577]

O módulo reconhece dois estados, FRTP_OFF e FRTP_ON ([SWS_FrTp_01028]). Qual deles é válido é registrado pela variável de estado FrTpState ([SWS_FrTp_01029], [SWS_FrTp_01106]). Após a inicialização, o FrTp está em FRTP_OFF ([SWS_FrTp_01030]). Apenas um FrTp_Init bem-sucedido com ponteiro para FrTp_ConfigType comuta para FRTP_ON ([SWS_FrTp_01032], [SWS_FrTp_00147], [SWS_FrTp_01194]). A segmentação e a remontagem ocorrem apenas em FRTP_ON ([SWS_FrTp_01033]). FrTp_Shutdown encerra todas as conexões abertas simplesmente parando a operação. Ele libera os recursos e retorna para FRTP_OFF ([SWS_FrTp_00148], [SWS_FrTp_01036]).

lebenszyklus start OFF FRTP_OFF (sem processamento) start->OFF Einschalten ON FRTP_ON (Segmentierung, Reassemblierung, Verbindungsverarbeitung) OFF->ON FrTp_Init(configPtr) erfolgreich ON->OFF FrTp_Shutdown() todas as conexões encerradas, recursos liberados

Diagrama de estados: o FrTp processa dados apenas entre FrTp_Init e FrTp_Shutdown. Fontes: [SWS_FrTp_01030], [SWS_FrTp_01032], [SWS_FrTp_01036], FrTp SWS p. 38

FrTp_MainFunction escalona o módulo e é o ponto de entrada de todas as tarefas de processamento ([SWS_FrTp_00203], [SWS_FrTp_00580]). Ela deve ser executada pelo menos uma vez por ciclo FlexRay ([SWS_FrTp_01152]). Os callbacks, por outro lado, basicamente apenas definem flags: TX_SDU_AVAILABLE existe por canal ([SWS_FrTp_00415], [SWS_FrTp_00416]). RX_PDU_AVAILABLE existe por N-PDU recebível e é limpa após o processamento ([SWS_FrTp_00418], [SWS_FrTp_00421]).

Variantes de transmissão conforme a ISO 10681-2

O FrTp suporta seis sequências de quadros. Elas diferem em três aspectos: se a mensagem é segmentada, se o receptor confirma e se o comprimento é conhecido no início da transmissão (FrTp SWS p. 27, FrTp SWS p. 31):

VarianteQuadros característicosReferência
não segmentada, sem confirmação, comprimento conhecidoSTFU[SWS_FrTp_01007]
não segmentada, com confirmação, comprimento conhecidoSTFA → FC.ACK[SWS_FrTp_01008]
segmentada, sem confirmação, comprimento conhecidoSTFU, FC.CTS, CF, CFEOB, LF[SWS_FrTp_01009]
segmentada, com confirmação, comprimento conhecidoSTFA, FC.CTS, CF, CFEOB, LF, FC.ACK[SWS_FrTp_01010]
segmentada, sem confirmação, comprimento desconhecidocomo acima, comprimento total apenas no LF[SWS_FrTp_01011], [SWS_FrTp_01067]
segmentada, com confirmação, comprimento desconhecidocomo acima, adicionalmente FC.ACK[SWS_FrTp_01012]

Nas variantes segmentadas e confirmadas, o FC.ACK provavelmente deve seguir o LastFrame e concluir a transferência. Pergunta Q-f3c70b1506e2cde4 (aberta) Esta é uma interpretação das legendas das figuras, cuja ordem não é inequívoca (FrTp SWS p. 29). O diagrama a seguir mostra o caso básico segmentado sem confirmação.

Transmissão segmentada sem confirmação, comprimento conhecidoFrTp 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 sequência: o receptor libera cada bloco via FC.CTS, e o CFEOB conclui um bloco. Fontes: [SWS_FrTp_01009], FrTp SWS p. 28

Transmissão com comprimento desconhecido:

Conexões, canais e pools de PDUs

Cada relação de comunicação é uma FrTpConnection própria. Sua quantidade é configurável em post-build ([SWS_FrTp_01014], [SWS_FrTp_01015]). Cada conexão possui um par de endereços exclusivo em todo o módulo e um FRTP_SDUID exclusivo ([SWS_FrTp_01017], [SWS_FrTp_01018]). Múltiplas conexões podem compartilhar uma FrTpConnectionControl e um FrTpTxPduPool ([SWS_FrTp_01022], [SWS_FrTp_01020]). Em tempo de execução, múltiplos FrTpChannel operam em paralelo; seu número é definido por FrTpChanNum ([SWS_FrTp_00088], [SWS_FrTp_00228]). Para envio e recepção, os canais alternam respectivamente entre «idle» e «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 Referência (para FlowControl) NPdu Tx N-PDUs (ordem crescente, comprimento individual) Pool->NPdu contém FrIf FrIf NPdu->FrIf SF, CF, LF / FC

Diagrama de contexto: um canal half-duplex referencia uma conexão Tx e uma conexão Rx. Ambas referenciam parâmetros de controle e um pool de Tx-PDUs. Fontes: FrTp SWS p. 39, [SWS_FrTp_01020], [SWS_FrTp_01088]

Endereços:

  • Durante o envio, o FrTp adota endereços a partir dos metadados SOURCE_ADDRESS_16 e TARGET_ADDRESS_16. FrTpLa/FrTpRa configurados têm prioridade nisso ([SWS_FrTp_01204], [SWS_FrTp_01205]).
  • Na recepção, o FrTp repassa os endereços para cima como metadados. Ele utiliza os mesmos endereços para FlowControl ([SWS_FrTp_01206]).

O FrTp distribui a largura de banda através dos pools:

Caminho de transmissão: de FrTp_Transmit a PduR_FrTpTxConfirmation

Cada envio começa com FrTp_Transmit ([SWS_FrTp_00136], [SWS_FrTp_00149]). A chamada define TX_SDU_AVAILABLE apenas se a TxPduId for válida e um canal estiver livre ([SWS_FrTp_01039]). Caso contrário, ela termina com E_NOT_OK. O mesmo se aplica se já houver uma transmissão em andamento para o mesmo endereço ([SWS_FrTp_01041], [SWS_FrTp_01200]).

O trabalho real é feito pela FrTp_MainFunction:

  1. Ela consulta o comprimento disponível via PduR_FrTpCopyTxData ([SWS_FrTp_01042]).
  2. Ela aloca o primeiro FrTpTxPdu livre ([SWS_FrTp_01045]).
  3. Ela decide sobre a segmentação ([SWS_FrTp_01048]).
  4. Ela copia dados no comprimento da PDU ([SWS_FrTp_01123]).
  5. Ela transfere a N-PDU com comprimento exato para FrIf_Transmit ([SWS_FrTp_01051]).

FrTp SWS p. 44 mostra a sequência.

segmentierung start laenge TX_SDU_AVAILABLE definido: PduR_FrTpCopyTxData fornece o comprimento disponível start->laenge frei FrTpTxPdu livre no pool? laenge->frei warten Adiar conexão até o próximo FrTp_MainFunction frei->warten não groesse FrTpTxSdu.Length > FrTpTxPdu.Length - AI.Length - PCI.Length? frei->groesse sim unseg unsegmentiert (einzelner StartFrame) groesse->unseg não multi 1:n-Verbindung? groesse->multi sim senden Preparar AI e PCI, PduR_FrTpCopyTxData (comprimento FrTpTxPdu), FrIf_Transmit unseg->senden fehler Reportar FRTP_E_SEG_ERROR, cancelar transmissão, PduR_FrTpTxConfirmation(E_NOT_OK) multi->fehler sim seg segmentiert (StartFrame, CF ..., LastFrame) multi->seg não seg->senden

Diagrama de atividades: decisão entre transmissão não segmentada e segmentada, incluindo cancelamento em conexões 1:n. Fontes: [SWS_FrTp_01047], [SWS_FrTp_01048], [SWS_FrTp_01208], FrTp SWS p. 51

Importante para o throughput: se nenhuma PDU estiver livre, o FrTp adia a conexão até a próxima chamada da MainFunction ([SWS_FrTp_01047]).

Após cada N-PDU, o FrIf chama FrTp_TxConfirmation. Isso define o FrTpTxPdu como «idle» ([SWS_FrTp_01052], [SWS_FrTp_01054]). O canal e a flag ficam livres assim que três condições forem atendidas: todos os dados enviados, confirmados positivamente e, se configurado, reconhecidos ([SWS_FrTp_01056], [SWS_FrTp_01057]). PduR_FrTpTxConfirmation ocorre após cada solicitação aceita, com E_OK apenas em caso de sucesso ([SWS_FrTp_01058]). Para a transmissão, existem dois tipos de acesso ao buffer: «Immediate» e «Decoupled Buffer Access» ([SWS_FrTp_01084]). Em «Decoupled», o FrIf busca os dados posteriormente via FrTp_TriggerTransmit. Esta chamada copia Address Information, PCI e dados úteis para o buffer fornecido ([SWS_FrTp_01060], [SWS_FrTp_01061], FrTp SWS p. 50).

Envio de uma N-SDU (Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)Verificar TxPduId, ocupar canal livreTX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(comprimento disponível)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloopaté que todos os dados da N-SDU sejam enviadosPduR_FrTpCopyTxData(comprimento FrTpTxPdu)Preparar Address Information e PCIFrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI e dados copiadosFrTp_TxConfirmation(TxPduId, E_OK)Definir FrTpTxPdu para idleoptFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenReinicializar TX_SDU_AVAILABLEPduR_FrTpTxConfirmation(E_OK)

Diagrama de sequência: a solicitação chega de forma síncrona e é processada de forma assíncrona na MainFunction; opcionalmente segue TriggerTransmit (Decoupled). Fontes: FrTp SWS p. 44, FrTp SWS p. 50, [SWS_FrTp_01058]

Caminho de recepção e remontagem

A recepção começa com FrTp_RxIndication ([SWS_FrTp_00137]). O FrTp processa uma N-PDU apenas se duas condições forem atendidas ([SWS_FrTp_01069], [SWS_FrTp_01071]):

  • O RxPduId é válido.
  • O endereço de destino corresponde a FrTpLa e o endereço de origem a FrTpRa.

Caso contrário, a N-PDU é ignorada ([SWS_FrTp_01072]). Se nenhum canal Rx estiver livre, o processamento termina e o FrTp reporta FRTP_E_NO_CHANNEL ([SWS_FrTp_01076], [SWS_FrTp_01186]). O FrTp armazena um StartFrame em um buffer local. Assim, um gateway pode processá-lo corretamente mesmo em caso de escassez temporária de recursos (FrTp SWS p. 56).

Em uma nova conexão, o FrTp chama PduR_FrTpStartOfReception. São passados o comprimento esperado, bem como o conteúdo e o tamanho do StartFrame ([SWS_FrTp_01078], [SWS_FrTp_01193]). Os diagramas do R20-11 mostram duas variantes de onde essa chamada ocorre: em FrTp_RxIndication (FrTp SWS p. 55) e em FrTp_MainFunction (FrTp SWS p. 86). O R23-11 permite expressamente ambas (FrTp SWS p. 54).

Depois disso, o FrTp copia os fragmentos via PduR_FrTpCopyRxData e envia FlowControl onde o protocolo exigir ([SWS_FrTp_01138], [SWS_FrTp_01080]). Ele libera o canal quando todos os dados tiverem sido recebidos e todos os FlowControls tiverem sido confirmados ([SWS_FrTp_01081]). PduR_FrTpRxIndication sempre se segue quando PduR_FrTpStartOfReception tiver sido bem-sucedido ([SWS_FrTp_01083]).

Recepção e remontagemFrIfFrTpPduRFrTp_RxIndication(RxPduId, PduInfoPtr)Verificar RxPduIdVerificar destino/origem contra FrTpLa/FrTpRaaltStartFrame empfangenfreien Rx-Kanal belegenStartFrame in lokalen Puffer kopierenFolgerahmen (CF, LF)Procurar canal correspondenteRX_PDU_AVAILABLE setzenUse Case: FrTp_MainFunction (StartOfReception alternativ schon in FrTp_RxIndication)optneue VerbindungPduR_FrTpStartOfReception(RxSduId, dados e tamanho do StartFrame, comprimento)Puffer bereitgestelltPduR_FrTpCopyRxData (N-SDU-Fragment)optFlowControl erforderlichFrIf_Transmit(FC N-PDU)FrTp_TxConfirmation(E_OK)Reinicializar RX_PDU_AVAILABLEoptN-SDU totalmente recebidaRx-Kanal freigebenPduR_FrTpRxIndication(RxSduId, E_OK)

Diagrama de sequência: o callback verifica e armazena em buffer, a MainFunction remonta e envia FlowControl. Fontes: FrTp SWS p. 55, [SWS_FrTp_01074], [SWS_FrTp_01083]

Cancelamento e parâmetros de tempo de execução

A disponibilidade de cancelamento de transmissão é definida estaticamente por FrTpTransmitCancellation; ele é disparado com FrTp_CancelTransmit ([SWS_FrTp_01097], [SWS_FrTp_00384]). O efeito depende do progresso:

  • Se a solicitação foi aceita, mas ainda não iniciada, a conexão é liberada imediatamente. O receptor não percebe nada ([SWS_FrTp_00385], FrTp SWS p. 63).
  • Se a transmissão estiver em andamento, o FrTp a interrompe com E_OK ([SWS_FrTp_01116]).
  • E_NOT_OK ocorre se nenhuma conexão estiver ativa ou se a última N-PDU de uma transmissão não confirmada já tiver sido entregue ao FrIf ([SWS_FrTp_01116]).

No caso segmentado, um timeout expira no receptor, encerrando a recepção (FrTp SWS p. 59).

Cancelamento de envio na transmissão segmentadaPduR (Sender)FrTp SenderReceptor FrTpPduR (receptor)FrTp_TransmitUse Case: FrTp_MainFunctionStartFramePduR_FrTpStartOfReceptionFlowControlFrTp_CancelTransmit(TxPduId)E_OKTransmissão interrompida, sem mais CFTimeout (nenhum CF recebido)PduR_FrTpRxIndication(Empfang abgebrochen)

Diagrama de sequência: se o transmissor cancelar uma transmissão segmentada em andamento, o receptor encerra a recepção por timeout. Fontes: [SWS_FrTp_01116], FrTp SWS p. 69

FrTp_CancelReceive cancela uma recepção em andamento se a RxPduId for válida e, então, retorna E_OK ([SWS_FrTp_01181], [SWS_FrTp_01183]). Em recepção não segmentada ou com LastFrame em andamento, a função rejeita ([SWS_FrTp_01182]). FrTp_ChangeParameter altera os valores de BandwidthControl FrTpSCexp e FrTpMaxNbrOfNPduPerCycle em tempo de execução ([SWS_FrTp_00242]). O layout de bits corresponde ao do quadro FC(CTS) ([SWS_FrTp_01195]). O identificador de parâmetro para isso é TP_BC (ComStack Types p. 18). Durante uma recepção em andamento, a alteração é rejeitada ([SWS_FrTp_01115]). Após alteração bem-sucedida, a conexão utiliza os novos valores ([SWS_FrTp_01156]).

Comportamento em caso de erro

Os erros de desenvolvimento estão definidos em [SWS_FrTp_01201]:

  • FRTP_E_UNINIT: chamada sem inicialização; excetuam-se FrTp_Init e FrTp_GetVersionInfo.
  • FRTP_E_PARAM_POINTER: ponteiro NULL.
  • FRTP_E_INVALID_PDU_SDU_ID: ID de SDU ou PDU inválido.
  • FRTP_E_INVALID_PARAMETER: parâmetro inválido.
  • FRTP_E_UMSG_LENGTH_ERROR: comprimento desconhecido sem configuração correspondente ([SWS_FrTp_01134]).
  • um código de erro para uma inicialização malsucedida.

As APIs verificam IDs e ponteiros e retornam E_NOT_OK em caso de erros, onde possuem um valor de retorno ([SWS_FrTp_01139], [SWS_FrTp_01145], [SWS_FrTp_01147]). Erros de tempo de execução são FRTP_E_SEG_ERROR (0x05) e FRTP_E_NO_CHANNEL (0x07). Eles são enviados via Det_ReportRuntimeError ([SWS_FrTp_01208], [SWS_FrTp_00577]).

Em três casos, o transmissor aborta e reporta PduR_FrTpTxConfirmation com E_NOT_OK:

Uma FrTp_TxConfirmation com E_NOT_OK libera o canal em ambos os lados ([SWS_FrTp_01056], [SWS_FrTp_01081]). A flag RX_ERROR memoriza um erro de recepção até que o envio de FlowControl seja permitido. Após a reação (retry, confirmação negativa ou cancelamento), ela é limpa ([SWS_FrTp_00429], [SWS_FrTp_00430]). Em conexões 1:n, não há confirmação nem retry ([SWS_FrTp_00598]).

Temporizadores e timeouts seguem as tabelas da especificação ([SWS_FrTp_01099], [SWS_FrTp_01100], FrTp SWS p. 67). A configuração deve cumprir as seguintes condições:

Se o PduR retornar BUFREQ_E_BUSY durante o envio, o FrTp tenta novamente até FrTpTimeCs vezes ([SWS_FrTp_01196]). Os contadores são limitados ([SWS_FrTp_01105], [SWS_FrTp_01114]). O que acontece ao atingir um limite é definido por [SWS_FrTp_01113]; a tabela correspondente não está disponível aqui. Se faltar um buffer ao receptor, ele envia FC.WAIT. O número desses quadros é limitado por FrTpMaxFCWait (FrTp SWS p. 69).

Gargalo de buffer no receptor: FC.WAIT e limite do contadorFrTp SenderReceptor FrTpPduR (receptor)StartFrameEmissor monitora Timeout_BSPduR_FrTpStartOfReceptionkein Pufferloopkein Puffer; COUNTER_FCWT begrenzt durch FrTpMaxFCWaitFlowControl (WAIT)Pufferanforderung wiederholenkein PufferPufferanforderungBuffer disponívelPduR_FrTpCopyRxDataFlowControl (CTS)ConsecutiveFrameReceptor monitora Timeout_CR

Diagrama de sequência: na ausência do buffer, o receptor envia FC.WAIT até atingir o limite do contador; depois disso, o FC.CTS retoma a transmissão. Fontes: [SWS_FrTp_01105], [SWS_FrTp_01114], FrTp SWS p. 70

Evidências mais detalhadas

Guia gerado por IA com base nos extratos de especificação no payload. Normativos para R20-11 são os requirements vinculados; trechos de documentos de outros releases servem apenas para esclarecimento.

FlexRay Transport Layer (FrTp)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função 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 ).

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c550cdee4114 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrTp_Init inicializa todas as variáveis globais de uma instância da camada de transporte FlexRay e a coloca em estado de repouso [SWS_FrTp_00147]. Como parâmetro de entrada, é passado via configPtr um ponteiro para a configuração do protocolo de transporte FlexRay (const FrTp_ConfigType*) [SWS_FrTp_00147]. A interface é declarada por meio do cabeçalho FrTp.h com o ID de serviço 0x00 [SWS_FrTp_00147].

Em relação ao comportamento interno e ao tratamento de erros, aplicam-se as seguintes determinações:

  • Depois que a camada de transporte tiver sido inicializada com sucesso pela chamada de FrTp_Init, o módulo FrTp transita para o estado interno FRTP_ON [SWS_FrTp_01032].
  • A função não possui valor de retorno (void), pois erros de software nos dados de inicialização já devem ser detectados durante a fase de configuração, por exemplo, por uma ferramenta de configuração [SWS_FrTp_00147].

Em relação à concorrência, o serviço está especificado como não reentrante (Non Reentrant) [SWS_FrTp_00147]. Uma chamada paralela ou múltipla desordenada é, portanto, inadmissível. Interpretação: A chamada provavelmente ocorre tipicamente de forma centralizada no âmbito da inicialização da ECU antes do uso dos serviços regulares de transporte. Pergunta Q-9b7cf7fc6dac510e (aberta)

Esta nota de uso foi gerada automaticamente com base nos requisitos de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 00fb8d95a0be Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrTp_Shutdown encerra a operação do módulo do protocolo de transporte FlexRay (FrTp) [SWS_FrTp_00148]. Ao ser chamado, o serviço fecha imediatamente todas as conexões de protocolo de transporte ainda pendentes mediante a interrupção da operação, libera todos os recursos ocupados e para o módulo FrTp completamente [SWS_FrTp_00148].

Em relação à especificação da interface e ao comportamento, aplicam-se as seguintes propriedades:

  • Assinatura e cabeçalho: a função está disponível através do arquivo de cabeçalho FrTp.h, possui o service ID 0x01, não espera parâmetros e não fornece valor de retorno (void) [SWS_FrTp_00148].
  • Concorrência: FrTp_Shutdown é especificada como não reentrante (Non Reentrant) e deve ser executada de forma síncrona [SWS_FrTp_00148]. Uma chamada concorrente ou múltipla em paralelo é, portanto, inadmissível.
  • Transição de estado: através da execução bem-sucedida da primitiva de serviço FrTp_Shutdown(), o módulo FrTp transita para o estado interno FRTP_OFF [SWS_FrTp_01036].

Como o serviço fecha as conexões pendentes simplesmente interrompendo a operação, as transmissões em andamento provavelmente devem ser abortadas imediatamente e sem mensagem de conclusão separada. Pergunta Q-35555515f521d0c3 (aberta)

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função FrTp_Transmit [SWS_FrTp_00149] 📄 PDF

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

Requests transmission of a PDU.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ad193864f748 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função síncrona FrTp_Transmit solicita a transmissão de uma PDU por meio do módulo da camada de transporte FlexRay [SWS_FrTp_00149]. Por meio do parâmetro TxPduId, é passado o identificador da PDU a ser transmitida, enquanto PduInfoPtr aponta para os dados úteis, metadados e o comprimento [SWS_FrTp_00149]. Caso uma transmissão deva ser iniciada com um comprimento de mensagem ainda desconhecido para a camada superior, FrTp_Transmit deve ser chamado com o valor de parâmetro PduLength = 0 [SWS_FrTp_01064]. O aceite da solicitação de envio é confirmado de forma síncrona com E_OK; se a solicitação não puder ser aceita, a função retorna E_NOT_OK [SWS_FrTp_00149].

Concorrência e disponibilidade de canal

A função é reentrante para chamadas com diferentes IDs de PDU, mas não é reentrante para o mesmo identificador TxPduId [SWS_FrTp_00149]. Além disso, a execução requer um canal de transmissão livre: se nenhum canal estiver disponível porque o estado não está em idle (FrTpTxChannelState ≠ Idle), a função aborta e retorna E_NOT_OK [SWS_FrTp_01041].

Tratamento de erros

Se a interface de desenvolvimento para detecção de erros estiver ativa, FrTp_Transmit valida os parâmetros transmitidos:

  • Se for passado um TxPduId não suportado ou inválido, o serviço aborta com E_NOT_OK e reporta o erro de desenvolvimento FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01040], [SWS_FrTp_01139].
  • Se o ponteiro PduInfoPtr for inválido, o erro FRTP_E_PARAM_POINTER é reportado e a execução também é abortada com E_NOT_OK [SWS_FrTp_01140].

Este texto foi gerado por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ce8fe8bc8ce1 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função de serviço síncrona FrTp_CancelTransmit solicita o cancelamento de uma transmissão de PDU em andamento em um módulo de comunicação subjacente [SWS_FrTp_00150]. A transmissão a ser cancelada é endereçada por meio do parâmetro de entrada TxPduId [SWS_FrTp_00150].

Comportamento dependente do estado e valores de retorno

O comportamento durante o cancelamento depende do estado atual da conexão:

  • Se a solicitação de envio estiver pendente, mas a transmissão em si ainda não tiver iniciado, FrTp_CancelTransmit libera a conexão imediatamente [SWS_FrTp_00385].
  • Se a transmissão já estiver em andamento, a função interrompe o processo de envio e confirma o cancelamento bem-sucedido com o valor de retorno E_OK [SWS_FrTp_01116].
  • Se a conexão não estiver ativa ou se a última N-PDU de uma transmissão não confirmada já tiver sido encaminhada para o FrIf, o cancelamento falha e a função retorna E_NOT_OK [SWS_FrTp_01116].

Tratamento de erros e simultaneidade

Se a deteção de erros de desenvolvimento (Development Error Detection) estiver ativada para FrTp_CancelTransmit, a função verifica a validade do parâmetro TxPduId. Se essa verificação falhar, o erro de desenvolvimento FRTP_E_INVALID_PDU_SDU_ID é reportado e E_NOT_OK é retornado [SWS_FrTp_01141].

A função é reentrante para chamadas com diferentes IDs de PDU, mas não deve ser executada concorrentemente para a mesma TxPduId [SWS_FrTp_00150].

Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I2)

função 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).

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a8ec21fec13d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrTp_ChangeParameter serve, de acordo com [SWS_FrTp_00151], para a solicitação de alteração de parâmetros específicos do protocolo de transporte em tempo de execução. Por meio do parâmetro id, a PDU afetada é referenciada, enquanto parameter passa o identificador do parâmetro e value o novo valor. Em caso de adaptação bem-sucedida, a função retorna E_OK; caso contrário, a solicitação de alteração é rejeitada com E_NOT_OK [SWS_FrTp_00151].

Especificamente, este serviço é utilizado para modificar em tempo de execução parâmetros da PDU de FlowControl para o controle de largura de banda (BandwidthControl, BC) conforme a ISO 10681-2 [SWS_FrTp_00242]. Isso diz respeito:

No lado do transmissor, uma PDU de FlowControl adicional disparada por isso é recebida como N-PDU inesperada e ignorada [SWS_FrTp_00242].

Tratamento de erros

Se a detecção de erros de desenvolvimento (Development Error Detection) estiver ativada para a função, são realizadas verificações formais de parâmetros:

  • Verificação do identificador da PDU id: se o valor for inválido, a função reporta o erro de desenvolvimento FRTP_E_INVALID_PDU_SDU_ID e retorna E_NOT_OK [SWS_FrTp_01143].
  • Verificação do parâmetro parameter: se o identificador for inválido, a função reporta FRTP_E_INVALID_PARAMETER e retorna E_NOT_OK [SWS_FrTp_01144].

Simultaneidade e restrições

A função é especificada como não reentrante (Non Reentrant) [SWS_FrTp_00151]. Os chamadores devem, portanto, assegurar que as chamadas ocorram sequencialmente; provavelmente, é necessária uma sincronização externa no caso de acessos a partir de diferentes tarefas. Pergunta Q-fe82be70448a3e0b (aberta)

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0a137ff0f510 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona FrTp_CancelReceive solicita o cancelamento de uma recepção de PDU em andamento na FlexRay Transport Layer [SWS_FrTp_01172]. Ela está disponível por meio do cabeçalho FrTp.h e permite interromper de forma direcionada uma operação de recepção ativa.

Parâmetros e valores de retorno

Como parâmetro de entrada, é passado RxPduId do tipo PduIdType, pelo qual a PDU a ser cancelada é identificada de forma unívoca [SWS_FrTp_01172]. Não existem parâmetros adicionais de entrada ou saída. A função retorna um valor de status do tipo Std_ReturnType:

Simultaneidade e restrições

A função é classificada como não reentrante (Non Reentrant) [SWS_FrTp_01172]. Os chamadores devem, portanto, assegurar que não ocorram chamadas paralelas ou aninhadas, a fim de evitar inconsistências no gerenciamento interno do estado da PDU.

Esta nota de utilização foi gerada automaticamente com base na especificação.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fdebe9a74064 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona [SWS_FrTp_00154] serve para a disponibilização de dados da SDU para a transmissão. Por meio do parâmetro TxPduId, identifica-se a SDU a ser transmitida, enquanto PduInfoPtr referencia uma estrutura com o buffer de destino (SduDataPtr) e o tamanho de buffer disponível (SduLength) [SWS_FrTp_00154].

Dentro da função, verifica-se se os dados disponibilizados cabem no buffer de destino informado via PduInfoPtr->SduLength [SWS_FrTp_00154]:

  • Operação de cópia bem-sucedida: se a capacidade do buffer for suficiente, a função copia as informações de endereço, PCI bem como dados da N-SDU para o buffer PduInfoPtr->SduDataPtr [SWS_FrTp_01060]. O comprimento dos dados em PduInfoPtr->SduLength é definido para o comprimento exato dos dados copiados e a função retorna E_OK [SWS_FrTp_00154], [SWS_FrTp_01061].
  • Buffer insuficiente: se os dados não couberem no buffer, a função é interrompida e retorna E_NOT_OK sem alterar PduInfoPtr [SWS_FrTp_00154]. Em caso de erro, PduInfoPtr não deve ser utilizado pelo chamador, pois pode conter dados inválidos ou um ponteiro nulo [SWS_FrTp_00154].

Com a detecção de erros de desenvolvimento (DET) ativada, a função realiza verificações prévias dos parâmetros passados:

  • Se TxPduId for inválido, a função reporta o erro FRTP_E_INVALID_PDU_SDU_ID ao DET e retorna E_NOT_OK [SWS_FrTp_01145].
  • Se PduInfoPtr for inválido, ela reporta o erro FRTP_E_PARAM_POINTER ao DET e também retorna E_NOT_OK [SWS_FrTp_01146].

Em relação à simultaneidade, a função é reentrante para diferentes IDs de PDU, mas não pode ser chamada concorrentemente para a mesma TxPduId [SWS_FrTp_00154].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e20d38175b0c Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função de callback síncrona FrTp_RxIndication serve para a indicação de uma PDU recebida de um módulo de interface de comunicação subjacente para o módulo da camada de transporte FlexRay ISO e inicia todo o processo de receção [SWS_FrTp_00152], [SWS_FrTp_00137]. Ela está disponível através do cabeçalho FrTp.h e possui o ID de serviço 0x42 sem valor de retorno [SWS_FrTp_00152]. Como parâmetros, ela espera o identificador da PDU recebida (RxPduId), bem como um ponteiro para uma estrutura do tipo PduInfoType (PduInfoPtr) [SWS_FrTp_00152]. Este ponteiro disponibiliza o comprimento da PDU recebida (SduLength), um ponteiro de buffer para os dados úteis (SduDataPtr) e os metadados associados [SWS_FrTp_00152].

Tratamento de erros

Em relação ao tratamento de erros, a função verifica ambos os parâmetros de entrada se a deteção de erros de desenvolvimento (DET) estiver ativa: se RxPduId for inválido, ela reporta o erro de desenvolvimento FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01147]. Se PduInfoPtr for inválido, o erro FRTP_E_PARAM_POINTER é reportado [SWS_FrTp_01148]. Se for transmitida uma RxPduId não suportada, a execução é terminada sem ações adicionais [SWS_FrTp_01075]. Caso nenhum canal de receção livre esteja disponível no momento da chamada porque o estado do canal não é Idle (FrTpRxChannelState ≠ Idle), a função também é abortada sem processamento adicional [SWS_FrTp_01076] e o módulo aciona o erro de tempo de execução FRTP_E_NO_CHANNEL [SWS_FrTp_01186].

Concorrência e interação

Em relação à concorrência, FrTp_RxIndication é reentrante para diferentes IDs de PDU, mas não reentrante para IDs de PDU idênticos [SWS_FrTp_00152]. A chamada deve ocorrer sincronamente pela interface subjacente para iniciar adequadamente a receção no módulo FrTp [SWS_FrTp_00152], [SWS_FrTp_00137].

Esta nota de uso foi gerada automaticamente com base nos requisitos de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9cfd8edaa6b0 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona [SWS_FrTp_00153] serve para a camada de comunicação subjacente informar ao módulo FrTp a transmissão bem-sucedida ou a falha de uma PDU. Durante a chamada, a camada subjacente passa o identificador configurado FrTpTxConfirmationPduId no parâmetro TxPduId, bem como o resultado da transmissão result ([SWS_FrTp_01053]). Valores válidos para result são E_OK em caso de envio bem-sucedido e E_NOT_OK no caso de uma transmissão com falha ([SWS_FrTp_00153]).

Se a detecção de erros de desenvolvimento (DET) estiver ativada, a função executa uma verificação de parâmetros: um identificador TxPduId inválido dispara o erro de desenvolvimento FRTP_E_INVALID_PDU_SDU_ID ([SWS_FrTp_01149]), enquanto um valor inválido para result resulta no erro FRTP_E_INVALID_PARAMETER ([SWS_FrTp_01203]).

Em relação à concorrência, a função é reentrante para PDU-IDs diferentes, mas não pode ser chamada concorrentemente para o mesmo TxPduId ([SWS_FrTp_00153]). A cada chamada com o respectivo FrTpTxConfirmationPduId, o módulo decrementa o contador TxPduPendingCounter ([SWS_FrTp_01092]).

Em interação com o status de transmissão, a confirmação causa as seguintes transições de estado:

  • No lado do transmissor, o canal ocupado é transicionado para o estado Idle (FrTpTxChannelState = Idle) e as flags TX_SDU_AVAILABLE bem como TX_SDU_UNKNOWN_MSG_LENGTH são resetadas assim que todos os dados da N-SDU tiverem sido enviados, result tiver o valor E_OK e uma eventual confirmação configurada tiver sido recebida – ou imediatamente se result for igual a E_NOT_OK ([SWS_FrTp_01056], [SWS_FrTp_01057], [SWS_FrTp_01124]).
  • No lado do receptor, o canal de recepção ocupado (FrTpRxChannelState = Idle) é liberado quando todos os dados tiverem sido recebidos e todas as Flow Control PDUs necessárias tiverem sido confirmadas com E_OK, ou se a confirmação ocorrer com E_NOT_OK ([SWS_FrTp_01081]).

Este texto foi elaborado por uma IA e baseia-se nas especificações da versão AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF

void FrTp_MainFunction (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 74855f22061c Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função FrTp_MainFunction possui a assinatura void FrTp_MainFunction (void); e está especificada com o service ID 0x10 [SWS_FrTp_00162]. Ela não recebe parâmetros de entrada e não retorna nenhum valor de retorno ao chamador [SWS_FrTp_00162]. A declaração está disponível através do cabeçalho SchM_FrTp.h [SWS_FrTp_00162]. Como interpretação, a função normalmente deve ser chamada de forma cíclica pelo escalonador da BSW (Schedule Manager). Pergunta Q-aaa6251bd84aef94 (aberta)

Interação e tarefas

A principal tarefa da função consiste no escalonamento do módulo do protocolo de transporte FlexRay [SWS_FrTp_00162], [SWS_FrTp_00203]. De acordo com [SWS_FrTp_00580], FrTp_MainFunction representa o ponto de entrada vinculativo para tarefas de processamento pendentes (processing tasks) do módulo FrTp, por meio do qual os processos internos do protocolo são processados e gerenciados ciclicamente.

Condições temporais e restrições

Para a integração temporal no sistema geral, a especificação define uma taxa mínima fixa de chamadas para o escalonamento:

  • FrTp_MainFunction deve ser chamada pelo menos uma vez por ciclo FlexRay [SWS_FrTp_01152].

Tratamentos de erros específicos, mensagens DET ou DEM, bem como diretrizes explícitas sobre reentrância ou concorrência não são descritos no presente escopo da especificação.

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade 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#954b7cfc
Content hash
954b7cfc
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayISOTransportLayer.pdf#nameddest=SWS_FrTp_00215

Inicialização e estado

Returns the version information.

void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTp_Init função

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

Serviços

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 função

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 função

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