CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
함수 CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
사용법 및 의미론
함수 CanTrcv_Init은(는) CanTrcv 모듈 및 연결된 모든 CAN 트랜시버의 기본 초기화를 수행하는 역할을 합니다 [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. 동기식으로 실행되며 재진입 불가능한 것으로 명시되어 있습니다 [SWS_CanTrcv_00001]. 전달 파라미터로 ConfigPtr을(를) 통해 드라이버 구성에 대한 포인터를 기대하며 반환값은 없습니다 [SWS_CanTrcv_00001].
상호작용 및 하드웨어 점검
실행되는 동안 이 함수는 구성에 따라 연결된 모든 트랜시버의 하드웨어 관련 초기화 시퀀스를 수행하며, 이 과정에서 AUTOSAR 스택의 초기화 순서를 지원합니다 [SWS_CanTrcv_00180]. 호출을 통해 각 트랜시버는 개별 구성에 따라 CANTRCV_TRCVMODE_SLEEP 모드 또는 CANTRCV_TRCVMODE_STANDBY 모드로 각각 전환됩니다 [SWS_CanTrcv_00148]. 하드웨어에서 지원되는 경우 CanTrcv_Init은(는) 트랜시버 활동으로 인한 웨이크업 이벤트가 사전에 발생했는지 여부도 확인하고, 이를 EcuM_SetWakeupEvent을(를) 통해 CanTrcvWakeupSourceRef(으)로 정의된 소스와 함께 EcuM에 보고합니다 [SWS_CanTrcv_00167].
오류 처리
하드웨어 통신에 오류가 있거나 통신이 되지 않는 경우(예: 포트 핀 또는 SPI를 통한 통신), 함수는 런타임 오류 CANTRCV_E_NO_TRCV_CONTROL을(를) Default Error Tracer에 보고합니다 [SWS_CanTrcv_00113]. 개발 오류 감지가 활성화되어 있는 경우, 구성된 보레이트가 해당 트랜시버에서 지원되지 않으면 CANTRCV_E_BAUDRATE_NOT_SUPPORTED도 추가로 보고됩니다 [SWS_CanTrcv_00168].
이 텍스트는 AUTOSAR R20-11 명세서를 기반으로 AI가 생성했습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_SetOpMode [SWS_CanTrcv_00002] 📄 PDF
Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);
Sets the mode of the Transceiver to the value Op Mode.
함수 CanTrcv_SetOpMode은 CAN 트랜시버의 작동 모드를 비동기식으로 전환하는 데 사용됩니다[SWS_CanTrcv_00002]. 이 함수는 트랜시버의 디바이스 번호(Transceiver)와 CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY 또는 CANTRCV_TRCVMODE_SLEEP의 값을 가질 수 있는 원하는 대상 모드(OpMode)를 전달받습니다[SWS_CanTrcv_00102]. 이 함수는 서로 다른 트랜시버에 대해 재진입 가능합니다[SWS_CanTrcv_00002]. 반환값 E_OK는 전환 명령의 수락을 확인하며, E_NOT_OK은 요청 거부, 매개변수 오류 또는 하드웨어에 의한 모드 미지원을 나타냅니다[SWS_CanTrcv_00002], [SWS_CanTrcv_00105].
호출 시 규정된 상태 전이를 준수해야 합니다:
- 트랜시버가
CANTRCV_TRCVMODE_NORMAL모드에 있는 경우, 대상 모드로CANTRCV_TRCVMODE_STANDBY또는CANTRCV_TRCVMODE_NORMAL만 전달될 수 있습니다[SWS_CanTrcv_00103]. - 트랜시버가
CANTRCV_TRCVMODE_STANDBY상태에 있는 경우, 함수는CANTRCV_TRCVMODE_SLEEP또는CANTRCV_TRCVMODE_STANDBY로만 호출될 수 있습니다[SWS_CanTrcv_00104].
개발 오류 감지(DET)가 활성화된 경우, 함수는 초기화 전 호출을 CANTRCV_E_UNINIT으로[SWS_CanTrcv_00122], 유효하지 않은 트랜시버 번호를 CANTRCV_E_INVALID_TRANSCEIVER로[SWS_CanTrcv_00123], 허용되지 않는 작동 모드를 CANTRCV_E_PARAM_TRCV_OPMODE로 보고합니다[SWS_CanTrcv_00087]. 트랜시버가 Normal 또는 Standby 상태에 있지 않은 상태에서 Standby가 요청되면 CANTRCV_E_TRCV_NOT_NORMAL이 트리거되고[SWS_CanTrcv_00120], Standby 또는 Sleep 이외의 상태에서 Sleep이 요청되면 보고 CANTRCV_E_TRCV_NOT_STANDBY이 발생합니다[SWS_CanTrcv_00121]. DET가 비활성화된 경우 이러한 상황에서는 E_NOT_OK이 반환됩니다. 트랜시버 통신이 없거나 오류가 있는 경우, 런타임 오류 CANTRCV_E_NO_TRCV_CONTROL이 DET에 보고되고 E_NOT_OK가 반환됩니다[SWS_CanTrcv_00114].
Selective Wakeup이 하드웨어적으로 지원되는 경우, API는 상태 플래그 POR 및 SYSERR을 검사합니다[SWS_CanTrcv_00186]. 트랜시버가 요청된 모드에 도달하자마자 모듈은 콜백 CanIf_TrcvModeIndication을 통해 상위 레이어에 알립니다[SWS_CanTrcv_00158].
본 텍스트는 규격 요구사항을 바탕으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTrcv_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
함수 CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] 📄 PDF
Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
Gets the wakeup reason for the Transceiver and returns it in parameter Reason.
함수 CanTrcv_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
함수 CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] 📄 PDF
Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);
En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.
사용법 및 의미론
동기식 함수 CanTrcv_SetWakeupMode은 특정 트랜시버에 대한 웨이크업 이벤트를 활성화, 비활성화 또는 클리어하는 데 사용됩니다[SWS_CanTrcv_00009]. 이 함수에는 매개변수 Transceiver를 통해 대상 트랜시버가, TrcvWakeupMode을 통해 원하는 모드가 전달됩니다. 상태 변경이 성공하면 함수는 E_OK를 반환합니다. 상태를 변경할 수 없거나 매개변수가 유효하지 않은 경우 E_NOT_OK가 반환되고 이전 상태는 변경되지 않고 그대로 유지됩니다[SWS_CanTrcv_00009].
작동 모드 및 상호작용
TrcvWakeupMode이 CANTRCV_WUMODE_CLEAR 값으로 호출되면, 함수는 주소 지정된 트랜시버의 저장된 웨이크업 이벤트를 클리어합니다[SWS_CanTrcv_00094]. CANTRCV_WUMODE_ENABLE으로 호출될 때, 해당 버스에 대해 이미 저장된 웨이크업 이벤트가 대기 중인 경우 모듈은 웨이크업 이벤트를 “present” 상태로 업데이트합니다[SWS_CanTrcv_00111]. 해석: 웨이크업 이벤트를 비활성화하기 위한 해당 모드 값도 유사하게 존재할 것으로 보이나, 본 요구사항 발췌본에는 별도로 상세히 설명되어 있지 않습니다. 질문 Q-e0f15d1d0855db81 (열림)
오류 처리 및 동시성
이 함수는 서로 다른 트랜시버 인스턴스에 대해 재진입 가능합니다[SWS_CanTrcv_00009]. 호출 전에 트랜시버 드라이버가 완전히 초기화되어 있어야 합니다. 초기화되지 않은 상태에서의 호출은 개발 오류 감지(DET)가 활성화되어 있을 때 오류 CANTRCV_E_UNINIT을 트리거하며, 그렇지 않으면 E_NOT_OK가 반환됩니다[SWS_CanTrcv_00127]. Transceiver의 유효하지 않은 인덱스는 CANTRCV_E_INVALID_TRANSCEIVER(또는 E_NOT_OK)로 이어지며[SWS_CanTrcv_00131], TrcvWakeupMode의 허용되지 않는 모드 값은 CANTRCV_E_PARAM_TRCV_WAKEUP_MODE를 보고하거나 E_NOT_OK을 반환합니다[SWS_CanTrcv_00089]. 트랜시버와의 통신이 없거나 통신 오류가 발생한 경우, 런타임 오류 CANTRCV_E_NO_TRCV_CONTROL가 Default Error Tracer에 보고되고 E_NOT_OK이 반환됩니다[SWS_CanTrcv_00117].
이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] 📄 PDF
Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);
Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
함수 CanTrcv_ClearTrcvWufFlag [SWS_CanTrcv_00214] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);
Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
동기 함수 CanTrcv_ClearTrcvWufFlag은(는) 주소 지정된 CAN 트랜시버의 하드웨어에서 웨이크업 프레임 플래그(WUF)를 지우며, Selective Wakeup 지원이 구성된 경우에만 사용할 수 있습니다(CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. 성공적으로 지워지면 E_OK이(가) 반환되고, 그렇지 않으면 E_NOT_OK이(가) 반환됩니다 [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].
상호 작용 및 시퀀스
이 API는 상태 전이 중에 프레임 웨이크업 이벤트가 손실되지 않도록 보장하기 위해 저전력 모드로 진입할 때 모듈 CanSM에 의해 사용됩니다 [SWS_CanTrcv_00194]. WUF 플래그를 재설정한 후 CAN 트랜시버는 대기 모드(CANTRCV_STANDBY)(으)로 전환되어야 합니다 [SWS_CanTrcv_00194].
동시성 및 호출 컨텍스트
CanTrcv_ClearTrcvWufFlag 호출은 서로 다른 트랜시버 인스턴스에 대해 재진입 가능합니다(Transceiver) [SWS_CanTrcv_00214].
오류 처리
- 개발 오류(DET): 오류 감지가 활성화된 경우 드라이버가 초기화되지 않았을 때 함수는
CANTRCV_E_UNINIT[SWS_CanTrcv_00197]을(를) 보고하고, 유효하지 않은 매개변수Transceiver에 대해서는 오류CANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198]을(를) 보고합니다. DET가 비활성화된 경우 이러한 상황에서는E_NOT_OK이(가) 직접 반환됩니다 [SWS_CanTrcv_00197], [SWS_CanTrcv_00198]. - 런타임 오류: 트랜시버와의 통신이 실패하거나 결함이 있는 경우 함수는 Default Error Tracer에 런타임 오류
CANTRCV_E_NO_TRCV_CONTROL을(를) 보고하고E_NOT_OK을(를) 반환합니다 [SWS_CanTrcv_00196].
이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the tim eout flag from the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
동기식 함수 CanTrcv_ReadTrcvTimeoutFlag은 CAN 트랜시버의 하드웨어에서 타임아웃 플래그의 상태를 직접 읽어옵니다[SWS_CanTrcv_00215]. 입력 매개변수 Transceiver는 대상 트랜시버를 식별하는 데 사용되며, CanTrcv_TrcvFlagStateType* 타입의 출력 매개변수 FlagState을 통해 플래그의 상태가 반환됩니다[SWS_CanTrcv_00215]. 반환값으로 E_OK은 성공적인 읽기를 나타내며, E_NOT_OK은 타임아웃 플래그의 상태를 확인할 수 없음을 나타냅니다[SWS_CanTrcv_00215].
트랜시버 드라이버에서의 사용 및 통합을 위해 다음 경계 조건이 적용됩니다:
-
구성: API는 부분 네트워킹을 위한 하드웨어 지원이 활성화된 경우(
CanTrcvHwPnSupport = TRUE)에만 독점적으로 제공됩니다[SWS_CanTrcv_00215]. 관련 구성 컨테이너CanTrcvPartialNetwork또한 이 전제 조건 하에서만 존재합니다[SWS_CanTrcv_00175]. -
동시성: 이 함수는 비재진입(
Non Reentrant)으로 명시되어 있습니다[SWS_CanTrcv_00215].
오류 처리는 개발 오류 감지(Development Error Detection, DET)의 상태에 따라 구분됩니다:
-
유효하지 않은 트랜시버 식별자가 전달되면, 모듈은 DET가 활성화된 경우 오류
CANTRCV_E_INVALID_TRANSCEIVER을 생성하고, DET가 비활성화된 경우에는 대신E_NOT_OK이 반환됩니다[SWS_CanTrcv_00199]. -
FlagState에 널 포인터가 전달되면(FlagState = NULL), 모듈은 DET가 활성화된 경우 오류CANTRCV_E_PARAM_POINTER를 보고하고, DET가 비활성화된 경우 호출은E_NOT_OK을 반환합니다[SWS_CanTrcv_00200].
이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);
Clears the status of the timeout flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
동기식 함수 CanTrcv_ClearTrcvTimeoutFlag은 트랜시버 하드웨어의 타임아웃 플래그를 재설정하는 데 사용됩니다[SWS_CanTrcv_00216]. 이 함수는 Partial Networking에 대한 하드웨어 지원이 구성 매개변수 CanTrcvHwPnSupport = TRUE를 통해 활성화된 경우에만 독점적으로 제공됩니다[SWS_CanTrcv_00175], [SWS_CanTrcv_00216].
사용법 및 인터페이스
호출은 대상 트랜시버를 지정하여 CanTrcv.h의 인터페이스를 통해 동기식으로 수행됩니다:
- 매개변수:
Transceiver은 입력값(uint8)으로서 대상 트랜시버 채널을 결정합니다[SWS_CanTrcv_00216]. - 반환값:
Std_ReturnType은E_OK로 하드웨어 플래그의 성공적인 클리어를 나타내거나E_NOT_OK로 작업 실패를 나타냅니다[SWS_CanTrcv_00216].
오류 처리
함수에 매개변수 Transceiver에 대해 유효하지 않은 식별자가 전달되면 차별화된 오류 처리가 적용됩니다:
- 개발 오류 감지(Development Error Detection)가 활성화된 경우 오류
CANTRCV_E_INVALID_TRANSCEIVER이 DET에 보고됩니다[SWS_CanTrcv_00201]. - 개발 오류 감지가 비활성화된 경우 호출이 중단되고 호출자에게
E_NOT_OK이 반환됩니다[SWS_CanTrcv_00201].
동시성 및 시스템 통합
이 함수는 비재진입(Non Reentrant)으로 분류됩니다[SWS_CanTrcv_00216]. 따라서 호출 레이어는 동일한 하드웨어 유닛에 대한 병렬 호출을 피하거나 동기화해야 합니다. 또한 이 함수는 선택적 웨이크업 기능(Partial Networking) 범위의 일부이며, 컨테이너 CanTrcvPartialNetwork 내의 관련 구성 구조 또한 CanTrcvHwPnSupport이 설정된 경우에만 존재합니다[SWS_CanTrcv_00175].
이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.
동기식 및 비재진입 함수 CanTrcv_ReadTrcvSilenceFlag(서비스 ID 0x0d)은 CAN 트랜시버 하드웨어에서 사일런스 플래그 상태를 직접 읽어오는 데 사용됩니다[SWS_CanTrcv_00217]. 이 함수는 헤더 CanTrcv.h을 통해 제공되며, 재진입성이 없으므로 동시에 실행되어서는 안 됩니다[SWS_CanTrcv_00217].
매개변수 및 반환값
Transceiver: 식별자를 통해 각 트랜시버 인스턴스를 주소 지정하기 위한 입력 매개변수(uint8)입니다[SWS_CanTrcv_00217].FlagState: 사일런스 플래그의 읽어온 상태가 반환되는CanTrcv_TrcvFlagStateType에 대한 포인터로서의 출력 매개변수입니다[SWS_CanTrcv_00217].- 반환값(
Std_ReturnType): 사일런스 플래그의 하드웨어 상태를 성공적으로 읽은 경우E_OK을 반환하고, 그렇지 않으면E_NOT_OK를 반환합니다[SWS_CanTrcv_00217].
오류 처리
함수의 출력 매개변수로 널 포인터가 전달되는 경우(FlagState == NULL), 오류 처리는 개발 제어에 따라 달라집니다: DET가 활성화된 경우 CAN 트랜시버 드라이버는 개발 오류 CANTRCV_E_PARAM_POINTER을 보고하며, DET가 비활성화된 경우 호출은 즉시 E_NOT_OK와 함께 중단됩니다[SWS_CanTrcv_00203].
구성 및 상호 작용
이 함수는 선택적 웨이크업(Selective Wakeup)의 컨텍스트에 속합니다. 관련 구성 컨테이너 CanTrcvPartialNetwork 및 인터페이스 CanTrcv_ReadTrcvSilenceFlag은 Partial Networking에 대한 하드웨어 지원이 CanTrcvHwPnSupport = TRUE를 통해 구성된 경우에만 드라이버에서 사용할 수 있습니다[SWS_CanTrcv_00175], [SWS_CanTrcv_00217].
이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);
Service is called by underlying CANIF in case a wake up interrupt is detected.
동기식 및 재진입 가능 함수 CanTrcv_CheckWakeup은(는) 웨이크업 인터럽트가 감지되는 즉시 하위 인터페이스 CanIf에 의해 호출됩니다 [SWS_CanTrcv_00143]. 파라미터 Transceiver을(를) 통해 점검할 CAN 트랜시버가 지정됩니다 [SWS_CanTrcv_00143]. 반환값 E_OK은(는) 호출 수락을 나타내며, E_NOT_OK은(는) 수락되지 않음을 나타냅니다 [SWS_CanTrcv_00143].
하드웨어에서 지원되는 경우, 함수는 트랜시버 활동으로 인한 웨이크업 이벤트가 실제로 존재하는지 확인합니다 [SWS_CanTrcv_00146]. 해당되는 경우, CanTrcvWakeupSourceRef에 참조된 웨이크업 소스와 함께 API EcuM_SetWakeupEvent을(를) 통해 EcuM에 웨이크업 통지가 전달됩니다 [SWS_CanTrcv_00146].
개발 오류 감지(DET)가 활성화된 경우 오류 처리에 대해 다음 규정이 적용됩니다:
- CanTrcv 모듈 초기화 전에 함수가 호출되면 개발 오류
CANTRCV_E_UNINIT이(가) 보고되며, DET가 비활성화된 경우 호출은 대신E_NOT_OK을(를) 반환합니다 [SWS_CanTrcv_00144]. - 유효하지 않은 트랜시버 번호가 전달되면 함수는
CANTRCV_E_INVALID_TRANSCEIVER을(를) 보고하며, DET가 비활성화된 경우E_NOT_OK이(가) 반환됩니다 [SWS_CanTrcv_00145].
이 사용 지침은 오직 AUTOSAR Classic R20-11 명세 요구사항에만 기반합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] 📄 PDF
Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a remote wake - up pattern (standard CAN wake - up) or by the configured remote wake - up frame.
동기식 함수 CanTrcv_SetPNActivationState은 Standby 및 Sleep 모드에 대한 CAN 트랜시버의 웨이크업 동작을 구성합니다([SWS_CanTrcv_00219]). 이 함수는 트랜시버가 표준 웨이크업 패턴을 통해 깨어날지, 아니면 Partial Networking의 일환으로 구성된 원격 웨이크업 프레임을 통해 목표에 맞게 깨어날지를 결정합니다([SWS_CanTrcv_00219]).
사용법 및 매개변수
이 함수는 서비스 ID 0x0f을 갖고 CanTrcv.h을 통해 제공되며 동기식으로 실행됩니다([SWS_CanTrcv_00219]). CanTrcv_PNActivationType 타입의 전달 매개변수 ActivationState은 동작 모드를 제어합니다:
PN_ENABLED: CAN 트랜시버에서 PN 웨이크업 기능을 활성화합니다([SWS_CanTrcv_00219]).PN_DIABLED: PN 웨이크업 기능을 비활성화합니다([SWS_CanTrcv_00219]).
트랜시버가 요청된 PN 구성으로 성공적으로 전환된 경우 함수는 반환값으로 E_OK을 반환합니다. 전환이 실패하면 E_NOT_OK이 반환되며, 이 경우 이전 구성이 변경되지 않고 유지됩니다([SWS_CanTrcv_00219]).
제약 사항 및 오류 처리
이 함수는 재진입이 불가능합니다(Non Reentrant) ([SWS_CanTrcv_00219]). 필수 사전 조건으로, 호출 전에 CanTrcv 모듈이 완전히 초기화되어 있어야 합니다. 초기화 전에 호출이 발생하면 개발 오류 감지가 활성화된 경우 함수는 DET에 오류 CANTRCV_E_UNINIT을 보고합니다. DET가 비활성화된 경우 호출은 반환 값 E_NOT_OK과 함께 즉시 거부됩니다([SWS_CanTrcv_00220]).
이 사용 지침은 명세를 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
Requests to check the status of the wakeup flag from the transceiver hardware.
함수 CanTrcv_CheckWakeFlag은 트랜시버 하드웨어에 직접 웨이크업 플래그 상태 검사를 요청합니다([SWS_CanTrcv_00223]). 호출은 비동기적으로 수행되며, 입력 파라미터 Transceiver를 통해 대상 CAN 트랜시버의 해당 식별자를 참조합니다([SWS_CanTrcv_00223]).
함수는 반환 값으로 상태 Std_ReturnType을 제공합니다([SWS_CanTrcv_00223]):
E_OK: 웨이크업 플래그 검사 요청이 성공적으로 수락되었습니다([SWS_CanTrcv_00223]).E_NOT_OK: 요청이 거부되었습니다 ([SWS_CanTrcv_00223]).
동시성과 관련하여 이 함수는 재진입이 불가능한(Non Reentrant) 것으로 지정되어 있습니다([SWS_CanTrcv_00223]). 서비스가 비동기로 명시되어 있으므로 반환 값은 검사 요청의 수락 여부만을 반영하며, 실제 하드웨어 판독은 후속 작업으로 수행될 것으로 보입니다([SWS_CanTrcv_00223]). 질문 Q-f09b7ff49c24cea8 (열림) 이 서비스에는 구체적인 오류 코드나 DET 또는 DEM 메시지가 나열되어 있지 않습니다.
이 사용 지침은 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF
void CanTrcv_DeInit (void);
De - initializes the Can Trcv module.
동기식 함수 CanTrcv_DeInit은(는) CAN 트랜시버 드라이버의 초기화 해제 역할을 합니다 [SWS_CanTrcv_91001]. 파라미터를 받지 않고, 반환값을 제공하지 않으며, 재진입 불가능(Non Reentrant)으로 명시되어 있습니다 [SWS_CanTrcv_91001]. 인터페이스는 서비스 ID 0x10을(를) 가진 헤더 CanTrcv.h을(를) 통해 제공됩니다 [SWS_CanTrcv_91001].
실행 시 함수는 CAN 트랜시버 하드웨어를 NOT_ACTIVE 상태로 전환합니다 [SWS_CanTrcv_91003]. CanTrcv_DeInit은(는) 재진입이 불가능하므로 호출이 서로를 중단시키거나 동시 병행적으로 발생해서는 안 됩니다 [SWS_CanTrcv_91001].
오류 처리 및 순서 조건과 관련하여 다음이 적용됩니다:
- 해당 모듈에 대해 개발 오류 감지(Development Error Detection)가 활성화되어 있는 경우, 함수는 트랜시버의 작동 모드를 확인합니다. 호출 시 트랜시버가
CANTRCV_TRCVMODE_NORMAL모드에 있지 않으면,CanTrcv_DeInit은(는) 개발 오류CANTRCV_E_TRCV_NOT_NORMAL을(를) 보고합니다 [SWS_CanTrcv_91005]. - 따라서 호출자는 개발 모드에서 오류 보고를 방지하기 위해 초기화 해제 전에 트랜시버를
CANTRCV_TRCVMODE_NORMAL상태로 작동시켜야 하는 기능적 사전 조건이 발생합니다 [SWS_CanTrcv_91005].
이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.
함수 CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF
void CanTrcv_MainFunction (void);
Service to scan all busses for wake up events and perform these event.
함수 CanTrcv_MainFunction은(는) 연결된 모든 버스 채널에서 발생한 웨이크업 이벤트를 모니터링하고 이러한 이벤트를 실행하기 위한 CAN 트랜시버 드라이버의 핵심 드라이버 서비스 역할을 합니다 [SWS_CanTrcv_00013]. C 시그니처 void CanTrcv_MainFunction(void)을(를) 가지며, 16진수 서비스 ID 0x06(으)로 정의되고, 전달 파라미터나 반환값 없이 동기식으로 작동합니다 [SWS_CanTrcv_00013].
주기적인 모니터링을 위해 이 함수는 대기 상태 STANDBY 또는 SLEEP에 있는 모든 버스를 대상으로 스캔합니다 [SWS_CanTrcv_00112]. 드라이버가 모니터링 중인 버스 중 하나에서 웨이크업 이벤트를 감지하면, CanTrcv_MainFunction은(는) 시스템에서 이러한 이벤트의 후속 실행 및 처리를 유발하기 위해 내부 웨이크업 이벤트 플래그를 설정합니다 [SWS_CanTrcv_00112].
호출 컨텍스트와 관련하여 인터페이스는 헤더 파일 SchM_CanTrcv.h을(를) 통해 제공됩니다 [SWS_CanTrcv_00013]. 해석: 이 SchM 헤더를 통해 제공된다는 점은 비활성 상태의 버스 채널을 주기적으로 샘플링하기 위해 BSW 스케줄러에 의해 주기적 태스크 컨텍스트에서 이 함수가 호출될 가능성이 높음을 시사합니다. 질문 Q-588109b1111a0f43 (열림) 특정 오류 코드, DET 또는 DEM으로의 통지 및 재진입성 요구사항은 본 명세서 발췌본에 언급되어 있지 않습니다.
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF
void CanTrcv_MainFunctionDiagnostics (void);
Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
함수 CanTrcv_MainFunctionDiagnostics(서비스 ID 0x08)은(는) 주기적으로 트랜시버의 진단 상태를 읽고 해당 제품 및 개발 오류를 설정합니다 [SWS_CanTrcv_00218]. 이 함수는 파라미터가 없고 반환값이 없으며(void CanTrcv_MainFunctionDiagnostics(void)), 헤더 SchM_CanTrcv.h을(를) 통해 제공됩니다 [SWS_CanTrcv_00218].
호출 컨텍스트 및 동시성
SchM_CanTrcv.h을(를) 통해 제공되므로 이 메인 함수는 태스크 컨텍스트에서 BSW 스케줄러(SchM)에 의해 주기적으로 호출될 것으로 추정됩니다(해석). 질문 Q-ab1f6c55abcb8d4b (열림) 명세서에 재진입성이 명시되어 있지 않으므로 비재진입(non-reentrant) 실행으로 간주해야 합니다.
오류 처리 및 DEM과의 상호작용
진단 평가는 구성 및 하드웨어 지원 여부에 따라 수행됩니다:
- BSW에 의해 보고된
BUSERR플래그가 설정된 경우, 함수는EventId을(를)CANTRCV_E_BUS_ERROR(으)로,EventStatus을(를)DEM_EVENT_STATUS_FAILED(으)로 하는 파라미터와 함께 APIDem_SetEventStatus을(를) 호출합니다 [SWS_CanTrcv_00206]. BUSERR플래그가 리셋된 경우,CanTrcv_MainFunctionDiagnostics은(는) 동일한EventId(CANTRCV_E_BUS_ERROR) 및 상태DEM_EVENT_STATUS_PASSED을(를) 사용하여 APIDem_SetEventStatus을(를) 호출합니다 [SWS_CanTrcv_00227].
이 텍스트는 AI에 의해 작성되었습니다. 관련 AUTOSAR 명세서 검토를 대체하지는 않습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 CanTrcv_ConfigType [SWS_CanTrcv_00209] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and settings affecting all transceivers. Furthermore it contains pointers to transceiver configuration structures. The con tents of the initialization data structure are CAN transceiver hardware specific.
타입 CanTrcv_PNActivationType [SWS_CanTrcv_00210] 📄 PDF
Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.
타입 CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211] 📄 PDF
Provides the state of a flag in the transceiver hardware.
열거형 타입 CanTrcv_TrcvFlagStateType은 트랜시버 하드웨어의 단일 플래그 상태를 나타냅니다[SWS_CanTrcv_00211]. 이 선언은 적용 소프트웨어 모듈 및 드라이버를 위해 헤더 파일 CanTrcv.h를 통해 제공됩니다[SWS_CanTrcv_00211].
값 범위는 이진 구조로 되어 있으며 [SWS_CanTrcv_00211]에 따라 두 가지 불연속 상태를 구분합니다:
CANTRCV_FLAG_SET: 트랜시버 하드웨어에서 해당 플래그가 설정되었음을 나타냅니다[SWS_CanTrcv_00211].CANTRCV_FLAG_CLEARED: 트랜시버 하드웨어에서 플래그가 클리어되었거나 설정되지 않았음을 나타냅니다[SWS_CanTrcv_00211].
실제 사용과 관련하여, 이 타입은 주로 하드웨어 레지스터 상태를 표준화된 방식으로 매핑하는 데 사용된다고 볼 수 있습니다[SWS_CanTrcv_00211]. 해석: CAN 인터페이스 드라이버나 진단 모듈과 같은 호출 레이어는 오류 플래그 또는 웨이크업 플래그를 평가하기 위해 일반적으로 포인터 매개변수 또는 반환값을 통해 조회 함수로 이 타입을 읽어올 것으로 추정됩니다. 질문 Q-1b75b4baf2f4c6e3 (열림) 타입 자체에는 함수 로직, 재진입성 제한 또는 DET 메시지가 포함되어 있지 않으므로, 유효한 값 범위에 대한 검사는 이를 처리하는 인터페이스의 몫입니다.
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 구속력을 갖는 것은 AUTOSAR 사양입니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF
Operating modes of the CAN Transceiver Driver.
열거형 타입 CanTrcv_TrcvModeType은 [SWS_CanTrcv_00163]에 따라 CAN 트랜시버 드라이버(CanTrcv)를 위한 표준화된 작동 모드를 정의합니다. 이 선언은 AUTOSAR 통신 스택의 소프트웨어 전반 인터페이스를 위해 헤더 파일 Can_GeneralTypes.h를 통해 제공됩니다.
값 범위 및 의미
[SWS_CanTrcv_00163]에 따라 세 가지 열거형 값을 사용할 수 있습니다:
CANTRCV_TRCVMODE_NORMAL(값0x00): CAN 메시지 송수신을 위한 정규 트랜시버 작동 모드를 나타냅니다.CANTRCV_TRCVMODE_STANDBY: 통신이 중단되고 전력 소비가 감소된 트랜시버의 대기 모드를 나타냅니다.CANTRCV_TRCVMODE_SLEEP: 최대 에너지 절약을 위한 트랜시버의 수면 모드를 나타냅니다.
사용 및 제한사항
이 열거형은 CAN 트랜시버의 하드웨어 상태에 대한 공통 데이터 타입 표현 역할을 합니다[SWS_CanTrcv_00163]. 해석: 이 타입은 주로 CAN 인터페이스와 같은 상위 레이어가 모드 변경을 지시하거나 현재 상태를 읽어오는 트랜시버 드라이버의 제어 및 조회 인터페이스에서 매개변수 전달에 사용될 것으로 보입니다. 질문 Q-95fceb6988818621 (열림) 본 규격 발췌본에는 런타임 오류(DET/DEM), 재진입성 정보 또는 구체적인 함수 시그니처가 포함되어 있지 않으므로, 호출 컨텍스트와 동시성 규칙은 해당 드라이버 함수를 참조해야 합니다.
본 사용 지침은 [SWS_CanTrcv_00163]에 대한 AUTOSAR R20-11 규격 데이터만을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] 📄 PDF
This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.
열거형 타입 CanTrcv_TrcvWakeupModeType은 웨이크업 이벤트 및 웨이크업 알림과 관련하여 CAN 트랜시버를 제어하는 데 사용됩니다[SWS_CanTrcv_00164]. 타입 정의는 헤더 파일 Can_GeneralTypes.h를 통해 제공되므로 스택 전체에서 사용할 수 있습니다[SWS_CanTrcv_00164].
값 범위에는 주소 지정된 각 트랜시버를 위한 세 가지 제어 모드가 포함됩니다[SWS_CanTrcv_00164]:
CANTRCV_WUMODE_ENABLE(값0x00): 주소 지정된 트랜시버에서 웨이크업 이벤트에 대한 알림을 활성화합니다[SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(값0x01): 주소 지정된 트랜시버에서 웨이크업 이벤트에 대한 알림을 비활성화합니다[SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(값0x02): 주소 지정된 트랜시버에 저장된 웨이크업 이벤트를 클리어합니다[SWS_CanTrcv_00164].
해석: 이 타입은 실제 적용 시 트랜시버 드라이버의 제어 함수에서 웨이크업 알림을 동적으로 켜거나 끄고 감지된 웨이크업 이벤트를 재설정하기 위한 전달 매개변수로 주로 사용될 것으로 보입니다. 질문 Q-c53d60cdad0442ca (열림) 규격은 순수 열거형 타입으로서 함수 시그니처, 실행 시맨틱, 오류 코드 또는 동시성 규칙을 지정하지 않으므로, 이러한 측면은 호출하고 처리하는 드라이버 인터페이스에 의해 완전히 결정됩니다[SWS_CanTrcv_00164].
이 텍스트는 AI에 의해 작성되었으며 정확성을 보장할 수 없습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 CanTrcv_TrcvWakeupReasonType [SWS_CanTrcv_00165] 📄 PDF
This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTrcv- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTrcv@rel:R20-11#1decc112- Content hash
1decc112- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문