CAN Transport Layer (CanTp)
Provides segmentation and reassembly of CAN messages up to 4095 bytes (ISO 15765-2).
Funktionen — Übersicht
void CanTp_Init (const CanTp_ConfigType* CfgPtr);This function initializes the Can Tp module.void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);This function returns the version information of the Can Tp module.void CanTp_Shutdown (void);This function is called to shutdown the Can Tp module.Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Request to change a specific transport protocol parameter (e.Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.void CanTp_MainFunction (void);The main function for scheduling the CAN TP.void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.void CanTp_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.
Typen — Übersicht
struct CanTp_ConfigTypeData structure type for the post - build configuration parameters.
Funktionen & Typen — Detailansicht
함수 CanTp_Init [SWS_CanTp_00208] 📄 PDF
void CanTp_Init (const CanTp_ConfigType* CfgPtr);
This function initializes the Can Tp module.
동기식 및 비재진입 함수 CanTp_Init은 CanTp 모듈을 초기화합니다[SWS_CanTp_00208]. 이 함수는 매개변수 CfgPtr를 통해 포스트 빌드 구성 데이터(CanTp_ConfigType)에 대한 포인터를 전달받으며 반환값을 갖지 않습니다[SWS_CanTp_00208]. 모듈 환경은 모듈을 추가 처리에 사용하기 전에 반드시 CanTp_Init를 호출해야 합니다[SWS_CanTp_00199].
초기화 동안 모듈의 모든 전역 변수가 초기화되고, 모든 전송 프로토콜 연결은 세그먼트화된 전송 및 세그먼트화된 수신이 모두 활성화되지 않은 CANTP_ON의 하위 상태로 전환됩니다[SWS_CanTp_00030]. 이때 수신 경로는 CANTP_RX_WAIT 상태에, 송신 경로는 CANTP_TX_WAIT 상태에 있게 됩니다[SWS_CanTp_00030]. 성공적으로 완료되면 모듈은 내부 상태 CANTP_ON로 전환됩니다[SWS_CanTp_00170].
모듈이 이미 전역 상태 CANTP_ON에 있을 때 CanTp_Init이 호출되면, 함수는 송신 및 수신 작업이 모두 실행되지 않도록 모듈을 Idle 상태로 재설정합니다[SWS_CanTp_00111].
개발 오류 감지(Development Error Detection)가 활성화된 경우, CanTp_Init를 호출하기 전에 PDU Router 또는 CAN Interface가 모듈의 함수(CanTp_GetVersionInfo 제외)를 실행하려고 시도하면 CanTp 모듈은 오류 CANTP_E_UNINIT을 보고합니다[SWS_CanTp_00031].
이 텍스트는 사양을 기반으로 AI에 의해 작성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTp_GetVersionInfo [SWS_CanTp_00210] 📄 PDF
void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
This function returns the version information of the Can Tp module.
함수 CanTp_Shutdown [SWS_CanTp_00211] 📄 PDF
void CanTp_Shutdown (void);
This function is called to shutdown the Can Tp module.
사용법 및 호출 컨텍스트
함수 CanTp_Shutdown은(는) 전체 CanTp 모듈을 정돈된 방식으로 종료([SWS_CanTp_00211])하는 역할을 합니다. 이 인터페이스는 헤더 파일 CanTp.h을(를) 통해 제공되며 서비스 ID 0x02([SWS_CanTp_00211])을(를) 가집니다. 호출은 동기식으로 처리되며, 전달 매개변수를 받지 않고 반환값을 제공하지 않습니다([SWS_CanTp_00211]).
상태 전이 및 정리
실행 시 CanTp_Shutdown은(는) 아직 보류 중인 모든 전송 프로토콜 연결을 닫고 할당된 모든 리소스를 해제하며 CanTp 모듈을 CANTP_OFF 상태로 전이합니다([SWS_CanTp_00202]). 중단 동작의 핵심적인 측면은 아직 보류 중인 프레임 전송 또는 프레임 수신 프로세스에 대해 상위 계층으로의 어떠한 알림도 명시적으로 트리거되어서는 안 된다는 점입니다([SWS_CanTp_00200]).
동시성 및 제약 조건
이 함수는 재진입 불가능(Non Reentrant)으로 명시되어 있습니다([SWS_CanTp_00211]). 따라서 서로 다른 실행 컨텍스트나 인터럽트 루틴에서 동시에 호출해서는 안 됩니다. 특정 오류 코드나 오류 관리로의 알림은 인터페이스 기능 범위에 명시되어 있지 않습니다.
이 사용 지침은 AUTOSAR Classic Release R20-11 사양을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTp_Transmit [SWS_CanTp_00212] 📄 PDF
Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
사용
함수 CanTp_Transmit은(는) CAN 전송 계층을 통한 N-SDU의 전송을 요청하는 데 사용됩니다 [SWS_CanTp_00212]. 매개변수로는 전송할 PDU의 식별자(TxPduId) 및 데이터, 길이, 메타데이터에 대한 포인터(PduInfoPtr)가 전달됩니다 [SWS_CanTp_00212]. 호출은 E_OK(으)로 성공적인 수락을, E_NOT_OK(으)로 요청의 거부를 보고합니다 [SWS_CanTp_00212]. 호출은 동기적으로 확인되는 반면, 전송 처리는 비동기적입니다 [SWS_CanTp_00176] (해석: 사양 표의 "Synchronous" 표시는 요청 수락과 관련된 것으로 보입니다). 질문 Q-df438ddaa4963aba (열림)
상호작용 및 PDU 처리
메타데이터가 포함된 N-SDU의 경우 모듈은 SF, FF 및 CF N-PDU에 사용하고 FC N-PDU 식별에 사용하기 위해 (Normal, Extended, Mixed 11 bit, Normal fixed 또는 Mixed 29 bit와 같은 어드레싱 형식에 따라) 주소 정보를 저장합니다 [SWS_CanTp_00334]. 메타데이터가 사용되지 않는 경우 CanTp_Transmit은(는) SF 또는 FF PCI를 준비하기 위해 길이 사양 SduLength에만 액세스하고 N-SDU 데이터 버퍼는 사용하지 않습니다 [SWS_CanTp_00225].
오류 처리 및 동시성
- 오류 검사: DET가 활성화되어 있고
PduInfoPtr이(가)NULL포인터인 경우, 함수는 오류CANTP_E_PARAM_POINTER을(를) 보고하고 추가 작업 없이 반환합니다 [SWS_CanTp_00321]. - 채널 할당: 할당된 채널이
CANTP_TX_PROCESSING상태에 있거나 해당 N-SDU 식별자에 대해 이미 세션이 진행 중인 경우, 전송 요청이 거부되고E_NOT_OK이(가) 반환됩니다 [SWS_CanTp_00123], [SWS_CanTp_00206]. - 재진입성: 이 서비스는 서로 다른 PDU ID에 대해서는 재진입이 가능하지만(reentrant), 동일한 PDU ID에 대해서는 재진입이 불가능합니다(non-reentrant) [SWS_CanTp_00212].
이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTp_CancelTransmit [SWS_CanTp_00246] 📄 PDF
Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);
Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
동기식 함수 CanTp_CancelTransmit은 하위 통신 모듈에서 진행 중인 PDU 전송의 취소를 요청하며[SWS_CanTp_00246], 이를 통해 송신 작업의 취소를 시작합니다[SWS_CanTp_00274]. 매개변수로 해당 PDU의 식별자(TxPduId)가 전달됩니다[SWS_CanTp_00246]. 반환값으로 E_OK는 대상 모듈에 의한 취소의 성공적인 수행을 나타내며, E_NOT_OK은 거부를 나타냅니다[SWS_CanTp_00246].
함수 호출 후 해당 연결에서의 전송이 취소됩니다[SWS_CanTp_00243]. 취소가 성공적으로 실행되면, 모듈 CanTp은 상위 레이어에 취소를 알리기 위해 음의 결과 E_NOT_OK과 함께 확인 PduR_CanTpTxConfirmation를 반드시 호출합니다[SWS_CanTp_00255].
개발 오류 감지(Development Error Detection)가 활성화된 경우, CanTp_CancelTransmit은 TxPduId의 유효성을 검사합니다. 매개변수가 유효하지 않으면 개발 오류 CANTP_E_PARAM_ID가 생성되고 E_NOT_OK이 반환됩니다[SWS_CanTp_00254]. 현재 전송 프로세스에 있지 않은 N-SDU에 대해 취소가 요청되면, 모듈은 런타임 오류 CANTP_E_OPER_NOT_SUPPORTED를 Default Error Tracer(DET)에 보고하고 마찬가지로 E_NOT_OK을 반환합니다[SWS_CanTp_00254].
동시성과 관련하여, 이 함수는 서로 다른 PDU-ID에 대해서는 재진입 가능하지만, 동일한 TxPduId에 대해서는 동시에 호출되어서는 안 됩니다[SWS_CanTp_00246].
본 사용 지침은 AUTOSAR 규격을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTp_CancelReceive [SWS_CanTp_00257] 📄 PDF
Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
함수 CanTp_CancelReceive은 하위 전송 프로토콜 모듈에서 진행 중인 PDU의 수신을 동기식으로 취소합니다[SWS_CanTp_00257]. 이 함수는 헤더 파일 CanTp.h를 통해 사용할 수 있으며 서비스 ID 0x4c을 갖습니다[SWS_CanTp_00257].
사용 및 호출 조건
입력 매개변수 RxPduId을 통해 취소할 PDU의 식별자가 전달됩니다[SWS_CanTp_00257]. 호출은 동기식으로 처리되며 비재진입(Non Reentrant)으로 명시되어 있습니다[SWS_CanTp_00257]. Std_ReturnType 타입의 인터페이스는 반환값으로 다음을 제공합니다:
E_OK: 대상 모듈에 의해 취소가 성공적으로 실행되었습니다[SWS_CanTp_00257].E_NOT_OK: 대상 모듈에 의해 취소가 거부되었습니다[SWS_CanTp_00257].
오류 처리
개발 오류 감지(Development Error Detection)가 활성화된 경우 함수는 매개변수 RxPduId을 검증합니다[SWS_CanTp_00260]:
RxPduId의 값이 유효하지 않은 경우,CanTp_CancelReceive은 개발 오류CANTP_E_PARAM_ID를 보고하고E_NOT_OK을 반환합니다[SWS_CanTp_00260].- 현재 수신 프로세스에 있지 않은 N-SDU에 대해 취소가 요청되면, 모듈은 런타임 오류
CANTP_E_OPER_NOT_SUPPORTED을 Default Error Tracer에 보고하고E_NOT_OK을 반환합니다[SWS_CanTp_00260].
인접 모듈과의 상호작용
수신 취소가 성공적으로 실행되면, CanTp는 상위 레이어에 취소를 알리기 위해 알림 결과 E_NOT_OK과 함께 콜백 함수 PduR_CanTpRxIndication을 호출합니다[SWS_CanTp_00263].
본 사용 지침은 AUTOSAR Classic R20-11 규격을 기반으로 하며 자동으로 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTp_ChangeParameter [SWS_CanTp_00302] 📄 PDF
Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
Request to change a specific transport protocol parameter (e.g. block size).
동기식 함수 CanTp_ChangeParameter은 블록 크기([SWS_CanTp_00302])와 같은 특정 전송 프로토콜 매개변수를 런타임에 변경하는 데 사용됩니다. 헤더 파일 CanTp.h를 통해 제공되는 이 서비스는 PDU 식별자(id), 매개변수 식별자(parameter) 및 새로 설정할 값(value)을 전달받습니다([SWS_CanTp_00302]). 성공적으로 수행되면 함수는 E_OK을 반환하며, 변경이 실패하거나 거부되면 E_NOT_OK을 반환합니다([SWS_CanTp_00302]).
동시성 및 호출 조건과 관련하여 다음 요구사항이 적용됩니다:
- 인터페이스는 비재진입(Non Reentrant)으로 구현되어 있습니다([SWS_CanTp_00302]).
- 호출 시점에 해당 N-SDU가 이미 진행 중인 수신 프로세스에 있는 경우,
CanTp_ChangeParameter은 즉시 중단되고E_NOT_OK을 반환하며 매개변수 값을 변경하지 않습니다([SWS_CanTp_00304]).
제네릭 연결에서 특별한 상호작용이 존재합니다: MetaData를 포함하는 N-SDU에 대해 이 함수가 호출되면, 매개변수 변경은 모든 제네릭 연결에 적용되며 이후의 모든 수신 프로세스에 반영됩니다([SWS_CanTp_00338]).
이 사용 지침은 명세 요구사항을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTp_ReadParameter [SWS_CanTp_00323] 📄 PDF
Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);
This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.
사용
동기식 함수 CanTp_ReadParameter은 지정된 수신 N-SDU에 대한 수신 매개변수 BS(Block Size) 또는 STmin(Separation Time minimum)의 현재 값을 읽어오는 데 사용됩니다[SWS_CanTp_00323]. 선언은 헤더 파일 CanTp.h를 통해 제공됩니다[SWS_CanTp_00323].
이 인터페이스는 다음 매개변수를 가집니다:
id(in): 수신 매개변수를 읽어올 수신된 N-SDU의 식별자(타입PduIdType)입니다[SWS_CanTp_00323].parameter(in): 읽어올 매개변수(타입TPParameterType의BS또는STmin)를 결정합니다[SWS_CanTp_00323].value(out): 읽어온 매개변수 값이 제공되는uint16에 대한 포인터입니다[SWS_CanTp_00323].
함수는 반환값으로 Std_ReturnType을 제공하며, 이때 E_OK은 요청 수락을, E_NOT_OK는 거부를 나타냅니다[SWS_CanTp_00323].
오류 처리
개발 오류 감지(Development Error Detection)가 활성화된 경우, CanTp_ReadParameter은 매개변수 id 및 parameter의 유효성을 검사합니다[SWS_CanTp_00324]. 이 매개변수 중 하나가 유효하지 않으면 함수는 개발 오류 CANTP_E_PARAM_ID를 보고하고 E_NOT_OK를 반환합니다[SWS_CanTp_00324].
동시성 및 제약사항
이 함수는 비재진입(Non Reentrant)으로 명시되어 있습니다[SWS_CanTp_00323]. 호출자는 동일한 인터페이스에 대한 병렬 접근을 피해야 합니다.
본 텍스트는 AUTOSAR R20-11 규격 문서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTp_MainFunction [SWS_CanTp_00213] 📄 PDF
void CanTp_MainFunction (void);
The main function for scheduling the CAN TP.
함수 CanTp_MainFunction은(는) CAN 트랜스포트 프로토콜(CAN TP)의 주기적 스케줄링을 위한 중앙 진입점 역할을 합니다 [SWS_CanTp_00213], [SWS_CanTp_00164]. 이 함수는 서비스 ID 0x06을(를) 가지며, 시그니처 void CanTp_MainFunction(void)을(를) 가지고 헤더 SchM_CanTp.h을(를) 통해 제공됩니다 [SWS_CanTp_00213]. 파라미터를 받지 않으며 반환값도 없습니다 [SWS_CanTp_00213].
호출 컨텍스트 및 타이밍 제어
호출은 필요한 주기 시간에 따라 Schedule Manager 또는 Free Running Timer 모듈에 의해 시작됩니다 [SWS_CanTp_00164]. 모듈 내에서 CanTp_MainFunction은(는) 프로토콜 시퀀스의 시간 모니터링 및 제어를 담당합니다 [SWS_CanTp_00164]. 구체적으로 이 함수는 다음 타이머 및 시간 조건 처리에 관여합니다:
- 전송 및 확인의 프로토콜 타임아웃:
N_As,N_Bs,N_Cs및N_Ar,N_Br그리고N_Cr[SWS_CanTp_00164]. - 최소 프레임 분리 시간 준수
STMmin[SWS_CanTp_00164].
오류 처리 및 동시성
페이로드에는 이 함수에 대한 DET 또는 DEM 전용 오류 코드가 정의되어 있지 않습니다. 해석: 주기적으로 호출되는 스케줄링 함수로서 CanTp_MainFunction은(는) 재진입이 불가능하며 내부 타이머의 올바른 감소를 보장하기 위해 일관된 호출 주기가 필요할 것으로 보입니다. 질문 Q-2fe22e31085abf49 (열림)
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTp_RxIndication [SWS_CanTp_00214] 📄 PDF
void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
사용법 및 의미론
동기 함수 [SWS_CanTp_00214]은(는) 하위 통신 인터페이스 모듈에 의한 N-PDU 수신을 CAN 전송 모듈에 알립니다. 호출 시 수신된 PDU의 식별 정보(RxPduId)와 포인터 PduInfoPtr을(를) 통해 길이(SduLength), 페이로드(SduDataPtr) 및 관련 메타데이터가 전달됩니다. 이 함수는 반환값이 없습니다.
동시성 및 호출 컨텍스트
이 함수는 서로 다른 PDU ID에 대해서는 재진입 가능하지만 동일한 PDU ID에 대해서는 재진입 불가능합니다 [SWS_CanTp_00214]. CanTp_RxIndication은(는) 인터럽트 컨텍스트에서 호출될 수 있으며, 예를 들어 CAN 수신 인터럽트에서 직접 호출될 수 있습니다 [SWS_CanTp_00235].
일반 연결에서의 상호작용
메타데이터가 포함된 싱글 프레임(SF) 또는 퍼스트 프레임(FF)에 대해 호출될 때 CanTp는 포함된 주소 정보(예: Normal-fixed 또는 Mixed-29-Bit 주소 지정의 경우 N_SA 및 N_TA)를 저장합니다. 이 정보는 상위 계층과의 연결 설정, 플로우 제어(FC) 프레임 전송 및 연속 프레임(CF) 감지에 사용됩니다 [SWS_CanTp_00330]. 후속 CF 및 수신된 FC 프레임의 경우 CanTp는 메타데이터의 주소 데이터를 저장된 값과 대조하여 확인합니다 [SWS_CanTp_00333], [SWS_CanTp_00336].
오류 처리 및 패딩
DET가 활성화되어 있고 PduInfoPtr이(가) NULL 포인터인 경우, 함수는 오류 CANTP_E_PARAM_POINTER을(를) 보고하고 아무 작업 없이 반환합니다 [SWS_CanTp_00322]. 최대 8바이트 페이로드를 가진 프레임에 대한 패딩 검사가 활성화된 경우(CanTpRxPaddingActivation 또는 CanTpTxPaddingActivation이(가) CANTP_ON와(과) 같음), 길이 오류 발생 시 런타임 오류 CANTP_E_PADDING이(가) DET에 보고됩니다:
SduLength < 8을(를) 포함한 SF는 거부됩니다 [SWS_CanTp_00345].SduLength != 8을(를) 포함한 마지막 CF는E_NOT_OK과(와) 함께PduR_CanTpRxIndication()을(를) 통해 진행 중인 수신을 중단합니다 [SWS_CanTp_00346].SduLength < 8을(를) 포함한 수신된 FC는E_NOT_OK과(와) 함께PduR_CanTpTxConfirmation()을(를) 통해 진행 중인 전송을 중단합니다 [SWS_CanTp_00349].
이 텍스트는 AI에 의해 생성되었으며 가이드 역할을 합니다. AUTOSAR 사양이 결정적인 기준입니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTp_TxConfirmation [SWS_CanTp_00215] 📄 PDF
void CanTp_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.
CanTp 모듈은 전송된 PDU에 대한 확인 호출을 수신하기 위해 헤더 CanTp.h을(를) 통해 동기 콜백 함수 CanTp_TxConfirmation(서비스 ID 0x40)을(를) 제공합니다 [SWS_CanTp_00076] [SWS_CanTp_00215]. 이 인터페이스를 통해 하위 통신 인터페이스 모듈은 PDU 전송의 성공적인 발송 또는 실패를 알립니다 [SWS_CanTp_00215].
매개변수 및 반환값
이 함수는 반환값을 제공하지 않으며(void) 두 개의 입력 매개변수를 요구합니다 [SWS_CanTp_00215]:
TxPduId: 전송된 PDU의 ID [SWS_CanTp_00215].result: 전송 상태.E_OK값은 성공적인 전송을 확인하는 반면,E_NOT_OK은(는) PDU 전송의 실패를 나타냅니다 [SWS_CanTp_00215].
오류 처리
CanTp_TxConfirmation이(가) 결과값 E_NOT_OK(으)로 호출되면 CanTp 모듈은 관련 전송 세션을 중단합니다 [SWS_CanTp_00355].
동시성 및 실행 컨텍스트
동시성과 관련하여 이 함수는 서로 다른 PDU ID에 대해서는 재진입 가능하지만 동일한 PDU ID에 대해서는 재진입 불가능합니다 [SWS_CanTp_00215]. 인터럽트 컨텍스트에서 호출 가능해야 하며, 예를 들어 CAN 송신 인터럽트에서 직접 호출될 수 있습니다 [SWS_CanTp_00236].
이 사용 지침은 AUTOSAR Classic Release R20-11 사양을 기반으로 자동으로 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
타입 CanTp_ConfigType [SWS_CanTp_00340] 📄 PDF
Data structure type for the post - build configuration parameters.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTp- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTp@rel:R20-11#c6495517- Content hash
c6495517- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransportLayer.pdf#nameddest=SWS_CanTp_00208
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문