DEENESPTFRRUARHIKOZHNL

FlexRay Transport Layer (FrTp)

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

모듈 가이드AI 생성

PDU Router와 FlexRay Interface 사이에서 ISO 10681-2에 따라 대형 메시지를 세그먼트화 및 재조립합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 74e3fa4a7265 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

PDU Router와 FlexRay Interface 사이에서 ISO 10681-2에 따라 대형 메시지를 세그먼트화 및 재조립합니다.

FrTp는 ISO 10681-2([SWS_FrTp_01005])에 따라 PduR과 FrIf 사이에서 대형 메시지를 전송합니다. 메시지를 세그먼트화 및 재조립하고, 흐름을 제어하며, 공유 Tx-PDU 풀을 통해 대역폭을 분배합니다. FrTp_Transmit은 전송 요청을 수락하기만 합니다. 실제 작업은 주기적인 FrTp_MainFunction가 수행하며, 이는 FlexRay 주기마다 적어도 한 번 실행되어야 합니다([SWS_FrTp_01152]). 확인 응답이 있는 전송 및 확인 응답이 없는 전송뿐만 아니라 길이를 알 수 없는 메시지도 지원됩니다. 프로토콜 오류 또는 허용되지 않는 세그먼트화가 발생하면 FrTp는 중단하고 PduR에 E_NOT_OK를 보고합니다.

FrTp는 ISO 10681-2에 따른 FlexRay용 전송 계층입니다. 규격에서 자체적으로 정의하지 않은 부분은 모듈이 이 표준을 따릅니다([SWS_FrTp_01005]). PduR의 대형 N-SDU를 N-PDU로 분할하여 FrIf_Transmit을 통해 FrIf로 전달하고 수신된 프레임을 다시 재조립합니다([SWS_FrTp_01050], FrTp SWS 19쪽). 처리는 FRTP_ON 상태, 즉 FrTp_Init와 FrTp_Shutdown 사이에서만 이루어집니다([SWS_FrTp_01032], [SWS_FrTp_01036]). FrTp_MainFunction는 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

컨텍스트 다이어그램: PduR과 FrIf 사이에 위치하며, EcuM 및 BSW 스케줄러에 의해 제어되는 FrTp. 출처: [SWS_FrTp_00577], FrTp SWS 21쪽

전송은 항상 FrTp_Transmit으로 시작합니다. 이 호출은 단지 채널을 할당하고 TX_SDU_AVAILABLE을 설정합니다([SWS_FrTp_00136], [SWS_FrTp_01039]). MainFunction이 나머지를 처리합니다: PduR_FrTpCopyTxData를 통해 데이터를 가져오고, 첫 번째 유휴 풀 PDU를 할당하며, 세그먼트화를 결정합니다([SWS_FrTp_01045], [SWS_FrTp_01048]). “Decoupled Buffer Access” 모드에서 FrIf는 나중에 FrTp_TriggerTransmit을 통해 데이터를 가져옵니다([SWS_FrTp_01060]). PduR_FrTpTxConfirmation는 수락된 각 요청 후에 이어집니다([SWS_FrTp_01058]).

N-SDU 전송(Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)TxPduId 확인, 빈 채널 점유TX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(사용 가능한 길이)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloop모든 N-SDU 데이터가 전송될 때까지PduR_FrTpCopyTxData(FrTpTxPdu 길이)Address Information 및 PCI 준비FrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI 및 데이터 복사됨FrTp_TxConfirmation(TxPduId, E_OK)FrTpTxPdu를 idle로 설정optFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenTX_SDU_AVAILABLE 재설정PduR_FrTpTxConfirmation(E_OK)

시퀀스 다이어그램: 요청 수락, MainFunction에서의 처리, N-PDU별 확인 및 최종적으로 PduR로의 확인. 출처: FrTp SWS 44쪽, [SWS_FrTp_01042]

수신 시 FrTp는 연결 구성에 대해 RxPduId 및 주소를 확인합니다([SWS_FrTp_01069], [SWS_FrTp_01071]). 새 연결의 경우 PduR_FrTpStartOfReception를 호출하고, 단편을 상위로 복사하며, 필요한 경우 FlowControl을 전송합니다([SWS_FrTp_01078], [SWS_FrTp_01080]). 비세그먼트 또는 세그먼트, 확인 응답 유무, 길이 인지 또는 미인지의 여섯 가지 변형이 지원됩니다([SWS_FrTp_01007]–[SWS_FrTp_01012]). 여러 연결이 Tx-PDU 풀을 공유하며 번갈아 가며 처리됩니다([SWS_FrTp_01020], [SWS_FrTp_01096]).

오류 발생 시 FrTp는 세 가지 상황에서 중단하고 PduR에 E_NOT_OK을 보고합니다: Flow Status가 유효하지 않거나 중단되는 경우 및 1:n 연결에서 세그먼트화가 필요한 경우입니다([SWS_FrTp_01198], [SWS_FrTp_01208]). 런타임 오류는 FRTP_E_SEG_ERROR 및 FRTP_E_NO_CHANNEL입니다. FC.WAIT 한도와 같은 타이머 및 카운터는 대기 시간을 제한합니다([SWS_FrTp_01100], [SWS_FrTp_01114]). 진행 중인 전송은 FrTp_CancelTransmit 및 FrTp_CancelReceive로 취소할 수 있습니다([SWS_FrTp_01116], [SWS_FrTp_01181]).

FlexRay 스택에서의 역할 및 모듈 상태

FrTp는 ISO 10681-2에 따른 FlexRay 전송 계층입니다. 규격에서 자체적으로 정의하지 않은 부분은 모듈이 이 표준을 따르며 해당 N-PDU 형식을 지원합니다([SWS_FrTp_01005], [SWS_FrTp_01006]). 상위 방향으로 FrTp는 PduR을 지원합니다. PduR은 FrTp_Transmit를 사용하여 전송을 시작하거나, 취소하거나, 매개변수를 변경합니다. FrTp는 PduR_FrTpStartOfReception, PduR_FrTpCopyRxData, PduR_FrTpCopyTxData, PduR_FrTpRxIndication 및 PduR_FrTpTxConfirmation을 통해 데이터와 결과를 반환합니다(FrTp SWS 19쪽). 하위 방향으로 FrTp는 FrIf_Transmit를 사용하여 N-PDU를 전달합니다([SWS_FrTp_01050]). FrIf는 FrTp_RxIndication, FrTp_TxConfirmation 및 FrTp_TriggerTransmit으로 응답합니다(FrTp SWS 21쪽). EcuM은 FrTp_Init 및 FrTp_Shutdown을 호출합니다(FrTp SWS 19쪽). BSW 스케줄러는 FrTp_MainFunction을 호출합니다([SWS_FrTp_00162], FrTp SWS 81쪽).

릴리스 간의 차이점: 이후 버전에서는 FrTp와 FrIf 사이에 L-SDU 라우터(LSduR)를 삽입합니다(FrTp SWS 19쪽). R20-11의 경우 [SWS_FrTp_00577] 및 [SWS_FrTp_01050]에서 정의한 대로 FrIf로의 직접 인터페이스가 적용됩니다.

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

컨텍스트 다이어그램: FrTp는 PduR과 FrIf 사이에 위치하며 EcuM 및 BSW 스케줄러에 의해 제어됩니다. 출처: FrTp SWS 19쪽, FrTp SWS 21쪽, [SWS_FrTp_00577]

모듈에는 FRTP_OFF 및 FRTP_ON의 두 가지 상태가 있습니다([SWS_FrTp_01028]). 어느 상태가 적용되는지는 상태 변수 FrTpState에 기록됩니다([SWS_FrTp_01029], [SWS_FrTp_01106]). 전원을 켠 후 FrTp는 FRTP_OFF 상태입니다([SWS_FrTp_01030]). FrTp_ConfigType를 가리키는 포인터를 사용한 성공적인 FrTp_Init이 완료되어야만 FRTP_ON으로 전환됩니다([SWS_FrTp_01032], [SWS_FrTp_00147], [SWS_FrTp_01194]). 세그먼트화 및 재조립은 FRTP_ON에서만 실행됩니다([SWS_FrTp_01033]). FrTp_Shutdown은 단순히 작동을 중지하여 열려 있는 모든 연결을 종료합니다. 리소스를 해제하고 FRTP_OFF로 되돌아갑니다([SWS_FrTp_00148], [SWS_FrTp_01036]).

lebenszyklus start OFF FRTP_OFF (처리 없음) start->OFF Einschalten ON FRTP_ON (Segmentierung, Reassemblierung, Verbindungsverarbeitung) OFF->ON FrTp_Init(configPtr) erfolgreich ON->OFF FrTp_Shutdown() 모든 연결 종료됨, 리소스 해제됨

상태 다이어그램: FrTp는 FrTp_Init과 FrTp_Shutdown 사이에서만 데이터를 처리합니다. 출처: [SWS_FrTp_01030], [SWS_FrTp_01032], [SWS_FrTp_01036], FrTp SWS 38쪽

FrTp_MainFunction은 모듈을 스케줄링하며 모든 처리 작업의 진입점입니다([SWS_FrTp_00203], [SWS_FrTp_00580]). FlexRay 주기마다 적어도 한 번 실행되어야 합니다([SWS_FrTp_01152]). 반면 콜백은 본질적으로 플래그만 설정합니다: TX_SDU_AVAILABLE는 채널별로 존재합니다([SWS_FrTp_00415], [SWS_FrTp_00416]). RX_PDU_AVAILABLE은 수신 가능한 N-PDU별로 존재하며 처리 후 지워집니다([SWS_FrTp_00418], [SWS_FrTp_00421]).

ISO 10681-2에 따른 전송 변형

FrTp는 여섯 가지 프레임 시퀀스를 지원합니다. 이들은 세 가지 점에서 다릅니다: 메시지가 세그먼트화되는지 여부, 수신자가 확인 응답을 보내는지 여부, 전송 시작 시 길이를 알 수 있는지 여부입니다(FrTp SWS 27쪽, FrTp SWS 31쪽):

변형특징적 프레임근거
비세그먼트, 확인 응답 없음, 길이 인지STFU[SWS_FrTp_01007]
비세그먼트, 확인 응답 있음, 길이 인지STFA → FC.ACK[SWS_FrTp_01008]
세그먼트, 확인 응답 없음, 길이 인지STFU, FC.CTS, CF, CFEOB, LF[SWS_FrTp_01009]
세그먼트, 확인 응답 있음, 길이 인지STFA, FC.CTS, CF, CFEOB, LF, FC.ACK[SWS_FrTp_01010]
세그먼트, 확인 응답 없음, 길이 미인지위와 동일, 전체 길이는 LF에서 비로소 제공됨[SWS_FrTp_01011], [SWS_FrTp_01067]
세그먼트, 확인 응답 있음, 길이 미인지위와 동일, 추가로 FC.ACK[SWS_FrTp_01012]

세그먼트화되고 확인 응답이 있는 변형에서는 FC.ACK이 LastFrame 다음에 이어져 전송을 완료할 것으로 보입니다. 질문 Q-f3c70b1506e2cde4 (열림) 이는 캡션의 해석이며, 그 순서가 명확하지 않습니다(FrTp SWS 29쪽). 다음 다이어그램은 확인 응답이 없는 세그먼트화 기본 케이스를 보여줍니다.

확인응답 없는 분할 전송, 길이 알려짐FrTp SenderFrTp 수신자StartFrame (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)

시퀀스 다이어그램: 수신자는 FC.CTS를 통해 각 블록을 해제하고, CFEOB는 블록을 완료합니다. 출처: [SWS_FrTp_01009], FrTp SWS 28쪽

알 수 없는 길이를 가진 전송:

연결, 채널 및 PDU 풀

각 통신 관계는 고유한 FrTpConnection입니다. 그 수는 포스트 빌드 구성이 가능합니다([SWS_FrTp_01014], [SWS_FrTp_01015]). 각 연결은 모듈 전체에서 고유한 주소 쌍과 고유한 FRTP_SDUID을 갖습니다([SWS_FrTp_01017], [SWS_FrTp_01018]). 여러 연결이 하나의 FrTpConnectionControl 및 하나의 FrTpTxPduPool을 공유할 수 있습니다([SWS_FrTp_01022], [SWS_FrTp_01020]). 런타임에 여러 FrTpChannel이 병렬로 작동하며, 그 수는 FrTpChanNum이 결정합니다([SWS_FrTp_00088], [SWS_FrTp_00228]). 전송 및 수신을 위해 채널은 각각 “idle”과 “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 참조(FlowControl용) NPdu Tx N-PDU (오름차순, 개별 길이) Pool->NPdu 포함함 FrIf FrIf NPdu->FrIf SF, CF, LF / FC

컨텍스트 다이어그램: 반이중 채널은 하나의 Tx 및 하나의 Rx 연결을 참조합니다. 둘 다 제어 매개변수와 Tx-PDU 풀을 참조합니다. 출처: FrTp SWS 39쪽, [SWS_FrTp_01020], [SWS_FrTp_01088]

주소:

  • 전송 시 FrTp는 메타데이터 SOURCE_ADDRESS_16 및 TARGET_ADDRESS_16에서 주소를 가져옵니다. 이때 구성된 FrTpLa/FrTpRa이 우선합니다([SWS_FrTp_01204], [SWS_FrTp_01205]).
  • 수신 시 FrTp는 주소를 메타데이터로 상위에 전달합니다. 동일한 주소를 FlowControl에도 사용합니다([SWS_FrTp_01206]).

대역폭은 FrTp가 풀을 통해 분배합니다:

전송 경로: FrTp_Transmit에서 PduR_FrTpTxConfirmation까지

모든 전송은 FrTp_Transmit으로 시작합니다([SWS_FrTp_00136], [SWS_FrTp_00149]). 이 호출은 TxPduId가 유효하고 채널이 비어 있는 경우에만 TX_SDU_AVAILABLE을 설정합니다([SWS_FrTp_01039]). 그렇지 않으면 E_NOT_OK로 끝납니다. 동일한 주소에 대해 이미 전송이 실행 중인 경우에도 동일하게 적용됩니다([SWS_FrTp_01041], [SWS_FrTp_01200]).

실제 작업은 FrTp_MainFunction이 수행합니다:

  1. PduR_FrTpCopyTxData을 통해 사용 가능한 길이를 조회합니다([SWS_FrTp_01042]).
  2. 첫 번째 유휴 FrTpTxPdu을 할당합니다([SWS_FrTp_01045]).
  3. 세그먼트화를 결정합니다([SWS_FrTp_01048]).
  4. 데이터를 PDU 길이만큼 복사합니다([SWS_FrTp_01123]).
  5. 정확한 길이의 N-PDU를 FrIf_Transmit에 전달합니다([SWS_FrTp_01051]).

동작 순서는 FrTp SWS 44쪽에 나와 있습니다.

segmentierung start laenge TX_SDU_AVAILABLE 설정됨: PduR_FrTpCopyTxData가 사용 가능한 길이를 제공함 start->laenge frei 풀에 빈 FrTpTxPdu가 있는가? laenge->frei warten 다음 FrTp_MainFunction까지 연결 연기 frei->warten 아니요 groesse FrTpTxSdu.Length > FrTpTxPdu.Length - AI.Length - PCI.Length? frei->groesse 예 unseg unsegmentiert (einzelner StartFrame) groesse->unseg 아니요 multi 1:n-Verbindung? groesse->multi 예 senden AI 및 PCI 준비, PduR_FrTpCopyTxData (FrTpTxPdu 길이), FrIf_Transmit unseg->senden fehler FRTP_E_SEG_ERROR 보고, 전송 중단, PduR_FrTpTxConfirmation(E_NOT_OK) multi->fehler 예 seg segmentiert (StartFrame, CF ..., LastFrame) multi->seg 아니요 seg->senden

액티비티 다이어그램: 1:n 연결에서의 중단을 포함한 비세그먼트 전송과 세그먼트 전송 간의 결정. 출처: [SWS_FrTp_01047], [SWS_FrTp_01048], [SWS_FrTp_01208], FrTp SWS 51쪽

처리량에 중요한 사항: 사용 가능한 PDU가 없으면 FrTp는 다음 MainFunction 호출까지 연결 처리를 연기합니다([SWS_FrTp_01047]).

각 N-PDU 후에 FrIf는 FrTp_TxConfirmation을 호출합니다. 이는 FrTpTxPdu을 “idle”로 설정합니다([SWS_FrTp_01052], [SWS_FrTp_01054]). 채널과 플래그는 세 가지 조건이 충족되는 즉시 해제됩니다: 모든 데이터가 전송되었고, 긍정 확인되었으며, 구성된 경우 확인 응답을 받았습니다([SWS_FrTp_01056], [SWS_FrTp_01057]). PduR_FrTpTxConfirmation은 수락된 각 요청 후에 오며, 성공한 경우에만 E_OK이 함께 제공됩니다([SWS_FrTp_01058]). 전송을 위한 버퍼 액세스 모드는 “Immediate”와 “Decoupled Buffer Access”의 두 가지가 있습니다([SWS_FrTp_01084]). “Decoupled”의 경우 FrIf는 나중에 FrTp_TriggerTransmit을 통해 데이터를 가져옵니다. 이 호출은 Address Information, PCI 및 페이로드를 제공된 버퍼로 복사합니다([SWS_FrTp_01060], [SWS_FrTp_01061], FrTp SWS 50쪽).

N-SDU 전송(Immediate / Decoupled Buffer Access)PduRFrTpFrIfFrTp_Transmit(TxPduId, PduInfoPtr)TxPduId 확인, 빈 채널 점유TX_SDU_AVAILABLE setzenAuftrag angenommenUse Case: FrTp_MainFunctionPduR_FrTpCopyTxData(사용 가능한 길이)ersten freien FrTpTxPdu belegenSegmentierung entscheidenloop모든 N-SDU 데이터가 전송될 때까지PduR_FrTpCopyTxData(FrTpTxPdu 길이)Address Information 및 PCI 준비FrIf_Transmit(TxPduId)optDecoupled Buffer AccessFrTp_TriggerTransmit(TxPduId, PduInfoPtr)AI, PCI 및 데이터 복사됨FrTp_TxConfirmation(TxPduId, E_OK)FrTpTxPdu를 idle로 설정optFlowControl erwartetwarten, bis FlowControl per FrTp_RxIndication eintrifftKanal freigebenTX_SDU_AVAILABLE 재설정PduR_FrTpTxConfirmation(E_OK)

시퀀스 다이어그램: 요청은 동기식으로 수신되어 MainFunction에서 비동기식으로 처리되며, 선택적으로 TriggerTransmit(Decoupled)가 이어집니다. 출처: FrTp SWS 44쪽, FrTp SWS 50쪽, [SWS_FrTp_01058]

수신 경로 및 재조립

수신은 FrTp_RxIndication으로 시작합니다([SWS_FrTp_00137]). FrTp는 두 가지 조건이 충족되는 경우에만 N-PDU를 처리합니다([SWS_FrTp_01069], [SWS_FrTp_01071]):

  • RxPduId가 유효하다.
  • 대상 주소가 FrTpLa과 일치하고 소스 주소가 FrTpRa과 일치합니다.

그렇지 않으면 N-PDU는 무시됩니다([SWS_FrTp_01072]). Rx 채널이 비어 있지 않으면 처리가 종료되고 FrTp는 FRTP_E_NO_CHANNEL을 보고합니다([SWS_FrTp_01076], [SWS_FrTp_01186]). FrTp는 StartFrame을 로컬 버퍼에 저장합니다. 이를 통해 일시적인 리소스 부족 시에도 게이트웨이가 올바르게 처리할 수 있습니다(FrTp SWS 56쪽).

새 연결 시 FrTp는 PduR_FrTpStartOfReception을 호출합니다. 예상 길이뿐만 아니라 StartFrame의 내용과 크기도 전달됩니다([SWS_FrTp_01078], [SWS_FrTp_01193]). 이 호출이 발생하는 위치는 R20-11 다이어그램에 두 가지 변형으로 표시됩니다: FrTp_RxIndication 내부(FrTp SWS 55쪽) 및 FrTp_MainFunction 내부(FrTp SWS 86쪽). R23-11은 두 가지 모두를 명시적으로 허용합니다(FrTp SWS 54쪽).

그 후 FrTp는 PduR_FrTpCopyRxData을 통해 단편을 복사하고 프로토콜에서 요구하는 경우 FlowControl을 전송합니다([SWS_FrTp_01138], [SWS_FrTp_01080]). 모든 데이터가 수신되고 모든 FlowControl이 확인되면 채널을 해제합니다([SWS_FrTp_01081]). PduR_FrTpRxIndication는 PduR_FrTpStartOfReception가 성공했을 때 항상 뒤따릅니다([SWS_FrTp_01083]).

수신 및 재조립FrIfFrTpPduRFrTp_RxIndication(RxPduId, PduInfoPtr)RxPduId 검사대상을 FrTpLa/FrTpRa와 비교하여 검사altStartFrame empfangenfreien Rx-Kanal belegenStartFrame in lokalen Puffer kopierenFolgerahmen (CF, LF)해당 채널 검색RX_PDU_AVAILABLE setzenUse Case: FrTp_MainFunction (StartOfReception alternativ schon in FrTp_RxIndication)optneue VerbindungPduR_FrTpStartOfReception(RxSduId, 시작 프레임의 데이터 및 크기, 길이)Puffer bereitgestelltPduR_FrTpCopyRxData (N-SDU-Fragment)optFlowControl erforderlichFrIf_Transmit(FC N-PDU)FrTp_TxConfirmation(E_OK)RX_PDU_AVAILABLE 리셋optN-SDU 완전 수신됨Rx-Kanal freigebenPduR_FrTpRxIndication(RxSduId, E_OK)

시퀀스 다이어그램: 콜백이 확인 및 버퍼링을 수행하고, MainFunction이 재조립 및 FlowControl을 전송합니다. 출처: FrTp SWS 55쪽, [SWS_FrTp_01074], [SWS_FrTp_01083]

중단 및 런타임 매개변수

전송 중단 사용 가능 여부는 FrTpTransmitCancellation이 정적으로 정의하며, 이는 FrTp_CancelTransmit로 트리거됩니다([SWS_FrTp_01097], [SWS_FrTp_00384]). 효과는 진행 상황에 따라 달라집니다:

  • 요청이 수락되었지만 아직 시작되지 않은 경우 연결은 즉시 해제됩니다. 수신자는 이를 알아채지 못합니다([SWS_FrTp_00385], FrTp SWS 63쪽).
  • 전송이 진행 중인 경우 FrTp는 E_OK으로 전송을 중지합니다([SWS_FrTp_01116]).
  • 활성 연결이 없거나 확인되지 않은 전송의 마지막 N-PDU가 이미 FrIf로 전달된 경우 E_NOT_OK이 이어집니다([SWS_FrTp_01116]).

세그먼트화된 경우 수신자 측에서 타임아웃이 만료되어 수신을 종료합니다(FrTp SWS 59쪽).

세그먼트화된 전송 시 전송 중단PduR (Sender)FrTp SenderFrTp 수신자PduR (수신자)FrTp_TransmitUse Case: FrTp_MainFunctionStartFramePduR_FrTpStartOfReceptionFlowControlFrTp_CancelTransmit(TxPduId)E_OK전송 중단됨, 추가 CF 없음타임아웃 (CF가 도달하지 않음)PduR_FrTpRxIndication(Empfang abgebrochen)

시퀀스 다이어그램: 송신자가 진행 중인 세그먼트 전송을 중단하면 수신자는 타임아웃을 통해 수신을 종료합니다. 출처: [SWS_FrTp_01116], FrTp SWS 69쪽

FrTp_CancelReceive은(는) RxPduId가 유효한 경우 진행 중인 수신을 중단하고 E_OK을(를) 반환합니다([SWS_FrTp_01181], [SWS_FrTp_01183]). 비세그먼트 수신 중이거나 LastFrame이 진행 중인 경우 해당 함수는 이를 거부합니다([SWS_FrTp_01182]). FrTp_ChangeParameter은(는) 런타임에 BandwidthControl 값인 FrTpSCexp 및 FrTpMaxNbrOfNPduPerCycle을(를) 변경합니다([SWS_FrTp_00242]). 비트 레이아웃은 FC(CTS) 프레임의 비트 레이아웃과 일치합니다([SWS_FrTp_01195]). 이에 대한 매개변수 식별자는 TP_BC입니다(ComStack Types 18쪽). 수신이 진행 중인 동안에는 변경이 거부됩니다([SWS_FrTp_01115]). 변경이 성공한 후 연결은 새 값을 사용합니다([SWS_FrTp_01156]).

오류가 발생한 경우의 동작

개발 오류는 [SWS_FrTp_01201]에 정의되어 있다:

  • FRTP_E_UNINIT: 초기화되지 않은 상태에서의 호출. FrTp_Init 및 FrTp_GetVersionInfo은(는) 제외됩니다.
  • FRTP_E_PARAM_POINTER: NULL 포인터.
  • FRTP_E_INVALID_PDU_SDU_ID: 유효하지 않은 SDU 또는 PDU ID.
  • FRTP_E_INVALID_PARAMETER: 유효하지 않은 매개변수.
  • FRTP_E_UMSG_LENGTH_ERROR: 적절한 구성이 없는 알 수 없는 길이([SWS_FrTp_01134]).
  • 실패한 초기화에 대한 오류 코드.

API는 ID와 포인터를 확인하고, 반환값이 있는 경우 오류 시 E_NOT_OK을(를) 반환합니다([SWS_FrTp_01139], [SWS_FrTp_01145], [SWS_FrTp_01147]). 런타임 오류는 FRTP_E_SEG_ERROR(0x05) 및 FRTP_E_NO_CHANNEL(0x07)입니다. 이는 Det_ReportRuntimeError을(를) 통해 전달됩니다([SWS_FrTp_01208], [SWS_FrTp_00577]).

세 가지 경우에 송신기가 중단하고 E_NOT_OK과(와) 함께 PduR_FrTpTxConfirmation을(를) 보고합니다:

  • FlowControl에 유효하지 않은 Flow Status 또는 OVFLW/ABT이(가) 있는 경우([SWS_FrTp_01198]).
  • ACK_RET이(가) 버퍼 외부의 위치를 가리키는 경우([SWS_FrTp_01199]).
  • 1:n 연결이 세그먼트화되어야 하는 경우(FrTp SWS 51쪽).

E_NOT_OK을(를) 동반한 FrTp_TxConfirmation은(는) 양쪽 모두에서 채널을 해제합니다([SWS_FrTp_01056], [SWS_FrTp_01081]). 플래그 RX_ERROR은(는) FlowControl 전송이 허용될 때까지 수신 오류를 기억합니다. 응답(재시도, 부정 응답 또는 중단) 후에는 지워집니다([SWS_FrTp_00429], [SWS_FrTp_00430]). 1:n 연결에는 응답도 재시도도 없습니다([SWS_FrTp_00598]).

타이머와 타임아웃은 명세서의 표를 따릅니다([SWS_FrTp_01099], [SWS_FrTp_01100], FrTp SWS 67쪽). 구성은 다음 조건을 준수해야 합니다:

송신 시 PduR이 BUFREQ_E_BUSY을(를) 반환하면 FrTp는 최대 FrTpTimeCs회 재시도합니다([SWS_FrTp_01196]). 카운터는 제한되어 있습니다([SWS_FrTp_01105], [SWS_FrTp_01114]). 한계에 도달했을 때 발생하는 동작은 [SWS_FrTp_01113]에서 정의하며, 관련 표는 여기에 제공되지 않습니다. 수신기에 버퍼가 없으면 FC.WAIT를 전송합니다. 이 프레임의 수는 FrTpMaxFCWait에 의해 제한됩니다(FrTp SWS 69쪽).

수신기 측 버퍼 부족: FC.WAIT 및 카운터 제한FrTp SenderFrTp 수신자PduR (수신자)StartFrame송신자가 Timeout_BS 모니터링PduR_FrTpStartOfReceptionkein Pufferloopkein Puffer; COUNTER_FCWT begrenzt durch FrTpMaxFCWaitFlowControl (WAIT)Pufferanforderung wiederholenkein PufferPufferanforderung버퍼 사용 가능PduR_FrTpCopyRxDataFlowControl (CTS)ConsecutiveFrame수신기가 Timeout_CR을 모니터링함

시퀀스 다이어그램: 버퍼가 부족한 경우, 수신기는 카운터 한계에 도달할 때까지 FC.WAIT를 전송하며, 그 후 FC.CTS가 전송을 재개합니다. 출처: [SWS_FrTp_01105], [SWS_FrTp_01114], FrTp SWS 70쪽

더 자세한 증거

페이로드의 명세서 발췌본을 기반으로 AI가 생성한 가이드입니다. R20-11에 대해 규범적인 것은 링크된 Requirements이며, 다른 릴리스의 문서 내용은 설명 목적으로만 제공됩니다.

FlexRay Transport Layer (FrTp)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 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 ).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c550cdee4114 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrTp_Init은 FlexRay 전송 계층 인스턴스의 모든 전역 변수를 초기화하고 이를 유휴 상태로 전환합니다 [SWS_FrTp_00147]. 입력 매개변수로 configPtr을(를) 통해 FlexRay 전송 프로토콜의 구성에 대한 포인터가 전달됩니다(const FrTp_ConfigType*) [SWS_FrTp_00147]. 이 인터페이스는 서비스 ID 0x00을(를) 가지며 헤더 FrTp.h을(를) 통해 선언됩니다 [SWS_FrTp_00147].

내부 동작 및 오류 처리와 관련하여 다음 규정이 적용됩니다.

  • 전송 계층이 FrTp_Init 호출을 통해 성공적으로 초기화된 후, FrTp 모듈은 내부 상태 FRTP_ON(으)로 전환됩니다 [SWS_FrTp_01032].
  • 초기화 데이터의 소프트웨어 오류는 구성 단계 중에(예: 구성 도구를 통해) 이미 감지되어야 하므로, 이 함수는 반환값(void)을 갖지 않습니다 [SWS_FrTp_00147].

동시성과 관련하여 이 서비스는 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_FrTp_00147]. 따라서 병렬 또는 조정되지 않은 다중 호출은 허용되지 않습니다. 해석: 이 호출은 일반적으로 정규 전송 서비스를 사용하기 전 ECU 시작 과정에서 중앙 집중식으로 수행될 것으로 추정됩니다. 질문 Q-9b7cf7fc6dac510e (열림)

이 사용 지침은 AUTOSAR R20-11의 사양 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 00fb8d95a0be 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrTp_Shutdown은 FlexRay 전송 프로토콜 모듈(FrTp)의 작동을 종료합니다 [SWS_FrTp_00148]. 호출 시 이 서비스는 작동을 중지하여 대기 중인 모든 전송 프로토콜 연결을 즉시 닫고, 점유된 모든 리소스를 해제하며 FrTp 모듈을 완전히 정지합니다 [SWS_FrTp_00148].

인터페이스 명세 및 동작과 관련하여 다음 속성이 적용됩니다:

  • 시그니처 및 헤더: 이 함수는 헤더 파일 FrTp.h을 통해 제공되고, 서비스 ID 0x01을 가지며, 매개변수를 받지 않고 반환값(void)을 제공하지 않습니다 [SWS_FrTp_00148].
  • 동시성: FrTp_Shutdown은 재진입 불가능(Non Reentrant)으로 명시되어 있으며 동기식으로 실행되어야 합니다 [SWS_FrTp_00148]. 따라서 동시 호출이나 다중 병렬 호출은 허용되지 않습니다.
  • 상태 전이: 서비스 프리미티브 FrTp_Shutdown()이 성공적으로 실행되면 FrTp 모듈은 내부 상태 FRTP_OFF로 전환됩니다 [SWS_FrTp_01036].

이 서비스는 단순히 동작을 중지하여 대기 중인 연결을 닫으므로, 진행 중인 전송은 별도의 완료 통지 없이 즉시 중단될 것으로 보입니다. 질문 Q-35555515f521d0c3 (열림)

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 FrTp_Transmit [SWS_FrTp_00149] 📄 PDF

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

Requests transmission of a PDU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ad193864f748 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 함수 FrTp_Transmit은(는) FlexRay 전송 계층 모듈을 통한 PDU 전송을 요청합니다 [SWS_FrTp_00149]. 매개변수 TxPduId을(를) 통해 전송할 PDU의 식별자가 전달되며, PduInfoPtr은(는) 페이로드 데이터, 메타데이터 및 길이를 가리킵니다 [SWS_FrTp_00149]. 상위 계층에 아직 알려지지 않은 메시지 길이로 전송을 시작하려는 경우, FrTp_Transmit을(를) 매개변수 값 PduLength = 0(으)로 호출해야 합니다 [SWS_FrTp_01064]. 전송 요청의 수락은 E_OK(으)로 동기식 확인되며, 요청을 수락할 수 없는 경우 함수는 E_NOT_OK을(를) 반환합니다 [SWS_FrTp_00149].

동시성 및 채널 가용성

이 함수는 서로 다른 PDU-ID를 사용한 호출에 대해서는 재진입이 가능하지만, 동일한 식별자에 대해서는 재진입할 수 없습니다 TxPduId [SWS_FrTp_00149]. 또한 실행을 위해서는 유휴 전송 채널이 필요합니다. 상태가 유휴 상태(FrTpTxChannelState ≠ Idle)가 아니어서 사용 가능한 채널이 없는 경우, 함수는 중단되고 E_NOT_OK을(를) 반환합니다 [SWS_FrTp_01041].

오류 처리

오류 감지를 위한 개발 인터페이스가 활성화되어 있는 경우, FrTp_Transmit은(는) 전달된 매개변수를 검증합니다.

  • 지원되지 않거나 유효하지 않은 TxPduId이(가) 전달되면 서비스는 E_NOT_OK(으)로 중단되고 개발 오류 FRTP_E_INVALID_PDU_SDU_ID을(를) 보고합니다 [SWS_FrTp_01040], [SWS_FrTp_01139].
  • 포인터 PduInfoPtr이(가) 유효하지 않은 경우, 오류 FRTP_E_PARAM_POINTER이(가) 보고되며 실행 역시 E_NOT_OK(으)로 중단됩니다 [SWS_FrTp_01140].

이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ce8fe8bc8ce1 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 서비스 함수 FrTp_CancelTransmit은(는) 하위 통신 모듈에서 진행 중인 PDU 전송의 취소를 요청합니다 [SWS_FrTp_00150]. 취소할 전송은 입력 매개변수 TxPduId을(를) 통해 지정됩니다 [SWS_FrTp_00150].

상태 종속 동작 및 반환값

취소 시의 동작은 연결의 현재 상태에 따라 달라집니다.

  • 전송 요청이 대기 중이지만 전송 자체가 아직 시작되지 않은 경우, FrTp_CancelTransmit은(는) 즉시 연결을 해제합니다 [SWS_FrTp_00385].
  • 전송이 이미 진행 중인 경우, 함수는 전송 프로세스를 중지하고 반환값 E_OK(으)로 성공적인 취소를 확인합니다 [SWS_FrTp_01116].
  • 연결이 활성 상태가 아니거나 확인되지 않은 전송의 마지막 N-PDU가 이미 FrIf(으)로 전달된 경우, 취소는 실패하고 함수는 E_NOT_OK을(를) 반환합니다 [SWS_FrTp_01116].

오류 처리 및 동시성

FrTp_CancelTransmit에 대해 개발 오류 감지(Development Error Detection)가 활성화되어 있는 경우, 함수는 매개변수 TxPduId의 유효성을 검사합니다. 이 검사가 실패하면 개발 오류 FRTP_E_INVALID_PDU_SDU_ID이(가) 보고되고 E_NOT_OK이(가) 반환됩니다 [SWS_FrTp_01141].

이 함수는 서로 다른 PDU-ID를 사용한 호출에 대해서는 재진입이 가능하지만, 동일한 TxPduId에 대해서는 동시에 실행되어서는 안 됩니다 [SWS_FrTp_00150].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a8ec21fec13d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrTp_ChangeParameter은 [SWS_FrTp_00151]에 따라 런타임에 전송 프로토콜의 특정 매개변수를 변경하도록 요청하는 역할을 합니다. 매개변수 id를 통해 대상 PDU가 참조되며, parameter은 매개변수 식별자를, value는 새 값을 전달합니다. 성공적으로 조정되면 함수는 E_OK를 반환하며, 그렇지 않으면 변경 요청이 E_NOT_OK과 함께 거부됩니다 [SWS_FrTp_00151].

구체적으로 이 서비스는 ISO 10681-2에 따른 대역폭 제어(BandwidthControl, BC)를 위한 FlowControl PDU의 매개변수를 런타임에 수정하는 데 사용됩니다 [SWS_FrTp_00242]. 이는 다음에 해당합니다:

송신자 측에서는 이로 인해 트리거된 추가 FlowControl PDU가 예기치 않은 N-PDU로 수신되어 무시됩니다 [SWS_FrTp_00242].

오류 처리

함수에 대해 개발 오류 감지(Development Error Detection)가 활성화된 경우 형식적인 매개변수 검사가 수행됩니다:

  • PDU 식별자 id 검사: 값이 유효하지 않은 경우, 함수는 개발 오류 FRTP_E_INVALID_PDU_SDU_ID을 보고하고 E_NOT_OK를 반환합니다 [SWS_FrTp_01143].
  • 매개변수 parameter 검사: 식별자가 유효하지 않은 경우, 함수는 FRTP_E_INVALID_PARAMETER을 보고하고 E_NOT_OK를 반환합니다 [SWS_FrTp_01144].

동시성 및 제약사항

이 함수는 재진입 불가능(Non Reentrant)으로 지정되어 있습니다 [SWS_FrTp_00151]. 따라서 호출자는 호출이 순차적으로 실행되도록 보장해야 하며, 서로 다른 태스크에서 접근하는 경우 외부 동기화가 필요할 것으로 추정됩니다. 질문 Q-fe82be70448a3e0b (열림)

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0a137ff0f510 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 FrTp_CancelReceive은 FlexRay 전송 계층에서 진행 중인 PDU 수신의 취소를 요청합니다 [SWS_FrTp_01172]. 이 함수는 헤더 FrTp.h를 통해 제공되며, 활성 수신 작업을 특정하여 중지할 수 있도록 합니다.

매개변수 및 반환값

입력 매개변수로 PduIdType 타입의 RxPduId이 전달되어 취소할 PDU가 고유하게 식별됩니다 [SWS_FrTp_01172]. 추가적인 입력 또는 출력 매개변수는 존재하지 않습니다. 함수는 Std_ReturnType 타입의 상태 값을 반환합니다:

동시성 및 제약사항

이 함수는 재진입 불가능(Non Reentrant)으로 분류되어 있습니다 [SWS_FrTp_01172]. 따라서 호출자는 내부 PDU 상태 관리의 불일치를 방지하기 위해 병렬 또는 중첩 호출이 발생하지 않도록 해야 합니다.

이 사용 지침은 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fdebe9a74064 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 [SWS_FrTp_00154]은 전송을 위한 SDU 데이터를 제공하는 역할을 합니다. 매개변수 TxPduId을 통해 전송할 SDU가 식별되며, PduInfoPtr는 대상 버퍼(SduDataPtr) 및 사용 가능한 버퍼 크기(SduLength)가 포함된 구조체를 가리킵니다 [SWS_FrTp_00154].

함수 내부에서는 제공된 데이터가 PduInfoPtr->SduLength을 통해 보고된 대상 버퍼에 맞는지 검사합니다 [SWS_FrTp_00154]:

  • 성공적인 복사 작업: 버퍼 용량이 충분하면 함수는 주소 정보, PCI 및 N-SDU 데이터를 버퍼 PduInfoPtr->SduDataPtr으로 복사합니다 [SWS_FrTp_01060]. PduInfoPtr->SduLength의 데이터 길이는 복사된 데이터의 정확한 길이로 설정되며 함수는 E_OK을 반환합니다 [SWS_FrTp_00154], [SWS_FrTp_01061].
  • 버퍼 부족: 데이터가 버퍼에 맞지 않으면 함수는 중단되고 PduInfoPtr을 변경하지 않은 채 E_NOT_OK을 반환합니다 [SWS_FrTp_00154]. 오류 발생 시 PduInfoPtr은 유효하지 않은 데이터나 널 포인터를 포함할 수 있으므로 호출자가 사용해서는 안 됩니다 [SWS_FrTp_00154].

개발 오류 감지(DET)가 활성화된 경우 함수는 전달 매개변수의 사전 검사를 수행합니다:

  • TxPduId이 유효하지 않으면 함수는 DET에 오류 FRTP_E_INVALID_PDU_SDU_ID을 보고하고 E_NOT_OK를 반환합니다 [SWS_FrTp_01145].
  • PduInfoPtr이 유효하지 않으면 DET에 오류 FRTP_E_PARAM_POINTER을 보고하고 마찬가지로 E_NOT_OK를 반환합니다 [SWS_FrTp_01146].

동시성과 관련하여, 이 함수는 서로 다른 PDU-ID에 대해서는 재진입 가능하지만, 동일한 TxPduId에 대해서는 동시에 호출되어서는 안 됩니다[SWS_FrTp_00154].

이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e20d38175b0c 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 콜백 함수 FrTp_RxIndication은(는) 하위 통신 인터페이스 모듈에서 FlexRay ISO 전송 계층 모듈로 수신된 PDU를 지시(indication)하는 역할을 하며 전체 수신 프로세스를 개시합니다 [SWS_FrTp_00152], [SWS_FrTp_00137]. 이 함수는 헤더 FrTp.h을(를) 통해 제공되며 반환값 없이 서비스 ID 0x42을(를) 가집니다 [SWS_FrTp_00152]. 매개변수로 수신된 PDU의 식별자(RxPduId) 및 PduInfoType 유형의 구조체에 대한 포인터(PduInfoPtr)를 기대합니다 [SWS_FrTp_00152]. 이 포인터는 수신된 PDU의 길이(SduLength), 페이로드 데이터에 대한 버퍼 포인터(SduDataPtr) 및 관련 메타데이터를 제공합니다 [SWS_FrTp_00152].

오류 처리

오류 처리와 관련하여, 이 함수는 개발 오류 감지(DET)가 활성화된 경우 두 입력 매개변수를 모두 검사합니다. RxPduId이(가) 유효하지 않으면 개발 오류 FRTP_E_INVALID_PDU_SDU_ID을(를) 보고합니다 [SWS_FrTp_01147]. PduInfoPtr이(가) 유효하지 않으면 오류 FRTP_E_PARAM_POINTER이(가) 보고됩니다 [SWS_FrTp_01148]. 지원되지 않는 RxPduId이(가) 전달되면 추가 조치 없이 실행이 종료됩니다 [SWS_FrTp_01075]. 호출 시점에 채널 상태가 Idle이(가) 아니어서(FrTpRxChannelState ≠ Idle) 사용 가능한 유휴 수신 채널이 없는 경우, 함수는 마찬가지로 추가 처리 없이 중단되며 [SWS_FrTp_01076] 모듈은 런타임 오류 FRTP_E_NO_CHANNEL을(를) 발생시킵니다 [SWS_FrTp_01186].

동시성 및 상호 작용

동시성과 관련하여 FrTp_RxIndication은(는) 서로 다른 PDU-ID에 대해서는 재진입이 가능하지만, 동일한 PDU-ID에 대해서는 재진입할 수 없습니다 [SWS_FrTp_00152]. FrTp 모듈에서 수신을 올바르게 시작하려면 하위 인터페이스에 의해 동기식으로 호출되어야 합니다 [SWS_FrTp_00152], [SWS_FrTp_00137].

이 사용 지침은 AUTOSAR R20-11의 사양 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9cfd8edaa6b0 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 [SWS_FrTp_00153]은 하위 통신 계층이 FrTp 모듈에 PDU의 성공적인 전송 또는 실패를 알리는 역할을 합니다. 호출 시 하위 계층은 매개변수 TxPduId에 구성된 식별자 FrTpTxConfirmationPduId과 송신 결과 result([SWS_FrTp_01053])을 전달합니다. result에 대한 유효한 값은 성공적인 전송 시 E_OK이고 실패한 전송 시 E_NOT_OK입니다([SWS_FrTp_00153]).

개발 오류 감지(DET)가 활성화된 경우 함수는 매개변수 검사를 수행합니다. 잘못된 식별자 TxPduId은 개발 오류 FRTP_E_INVALID_PDU_SDU_ID을 트리거하고([SWS_FrTp_01149]), 유효하지 않은 result 값은 오류 FRTP_E_INVALID_PARAMETER를 유발합니다([SWS_FrTp_01203]).

동시성과 관련하여, 이 함수는 서로 다른 PDU-ID에 대해서는 재진입 가능하지만 동일한 TxPduId에 대해서는 동시에 호출되어서는 안 됩니다([SWS_FrTp_00153]). 연결된 FrTpTxConfirmationPduId로 호출될 때마다 모듈은 카운터 TxPduPendingCounter을 감소시킵니다([SWS_FrTp_01092]).

전송 상태와 상호작용하여 이 확인은 다음과 같은 상태 전이를 일으킵니다:

  • 송신자 측에서는 모든 N-SDU 데이터가 전송되고, result가 E_OK 값을 가지며, 구성된 경우 확인 응답이 수신된 직후, 또는 result이 E_NOT_OK과 같을 때 즉시 점유된 채널이 Idle(FrTpTxChannelState = Idle) 상태로 전이되고 플래그 TX_SDU_AVAILABLE 및 TX_SDU_UNKNOWN_MSG_LENGTH이 재설정됩니다([SWS_FrTp_01056], [SWS_FrTp_01057], [SWS_FrTp_01124]).
  • 수신자 측에서는 모든 데이터가 수신되고 필요한 모든 Flow Control PDU가 E_OK로 확인되었거나 확인이 E_NOT_OK로 이루어지면 점유된 수신 채널(FrTpRxChannelState = Idle)이 해제됩니다([SWS_FrTp_01081]).

본 텍스트는 AI에 의해 작성되었으며 AUTOSAR 릴리스 R20-11의 규격을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF

void FrTp_MainFunction (void);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 74855f22061c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 FrTp_MainFunction은 시그니처 void FrTp_MainFunction (void);을 가지며 서비스 ID 0x10로 명시되어 있습니다 [SWS_FrTp_00162]. 입력 매개변수를 받지 않으며 호출자에게 반환값을 반환하지 않습니다 [SWS_FrTp_00162]. 선언은 헤더 SchM_FrTp.h를 통해 제공됩니다 [SWS_FrTp_00162]. 해석하자면, 따라서 이 함수는 일반적으로 BSW 스케줄러(Schedule Manager)에 의해 주기적으로 호출될 것으로 보입니다. 질문 Q-aaa6251bd84aef94 (열림)

상호작용 및 태스크

이 함수의 주된 역할은 FlexRay 전송 프로토콜 모듈의 스케줄링입니다 [SWS_FrTp_00162], [SWS_FrTp_00203]. [SWS_FrTp_00580]에 따르면 FrTp_MainFunction은 FrTp 모듈의 대기 중인 처리 태스크(processing tasks)를 위한 구속력 있는 진입점을 나타내며, 이를 통해 내부 프로토콜 프로세스가 주기적으로 처리되고 관리됩니다.

시간 조건 및 제약 사항

전체 시스템 내의 시간적 통합을 위해 명세서는 스케줄링에 대한 고정된 최소 호출 주기를 정의합니다:

  • FrTp_MainFunction은 FlexRay 사이클당 최소 한 번 호출되어야 합니다 [SWS_FrTp_01152].

특정 오류 처리, DET 또는 DEM 메시지, 그리고 재진입성이나 동시성에 대한 명시적 요구사항은 현재 명세 범위에 기술되어 있지 않습니다.

이 사용 지침은 AUTOSAR R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

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

초기화 및 상태

Returns the version information.

void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
FrTp_Init 함수

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

서비스

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

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

Requests transmission of a PDU.

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

콜백

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

주기적

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

void FrTp_MainFunction (void);

타입

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