DEENESPTFRRUARHIKOZHNL

CAN Transceiver Driver (CanTrcv)

ModulCanTrcv (CAN Transceiver Driver)
BSW-Modul-ID70
Standard-Header#include "CanTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_CANTransceiverDriver.pdf
ClusterCAN

모듈 가이드AI 생성

외부 CAN 트랜시버를 제어합니다: 동작 모드, 웨이크업 감지 및 웨이크업 프레임을 통한 선택적 웨이크업.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 61900c5cf397 출처 열린 질문 (4)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

외부 CAN 트랜시버를 제어합니다: 동작 모드, 웨이크업 감지 및 웨이크업 프레임을 통한 선택적 웨이크업.

CanTrcv는 외부 CAN 트랜시버를 제어하고 이를 NORMAL, STANDBY, SLEEP을 갖는 일반 모드 모델로 매핑합니다. CanIf는 모드 전환을 비동기식으로 요청하며, 트랜시버는 도달한 모드를 인디케이션을 통해 다시 보고합니다 [SWS_CanTrcv_00158]. 또한 웨이크업을 감지하여 EcuM에 보고하고, 적합한 하드웨어의 경우 웨이크업 프레임을 통한 선택적 웨이크업을 지원합니다. 가장 중요한 제약 조건: SLEEP은 STANDBY에서만 도달할 수 있으며 [SWS_CanTrcv_00104], 알림이 비활성화된 동안에는 웨이크업이 유실되어서는 안 됩니다.

CAN Transceiver Driver(CanTrcv)는 일반 모드 모델 뒤로 외부 CAN 트랜시버를 캡슐화합니다. 이를 통해 ComM과 EcuM은 구체적인 하드웨어로부터 디커플링된 상태를 유지합니다 (SWS CanTrcv 19쪽). 트랜시버 하드웨어 타입마다 하나의 드라이버 인스턴스가 존재합니다 [SWS_CanTrcv_00016]. 드라이버는 CanIf를 통해 호출되며 Dio 및 Spi를 통해 하드웨어를 제어하는데, 이들은 CanTrcv_Init 이전에 초기화되어 있어야 합니다 [SWS_CanTrcv_00099]. Init 후 각 트랜시버는 채널별 구성에 따라 STANDBY 또는 SLEEP 상태가 됩니다 [SWS_CanTrcv_00148]. CanTrcv_DeInit은(는) NOT_ACTIVE로 이어집니다 [SWS_CanTrcv_91003].

CanTrcv_SetOpMode은(는) NORMAL, STANDBY, SLEEP 사이를 전환합니다 [SWS_CanTrcv_00102]. SLEEP은 STANDBY에서만 허용됩니다 [SWS_CanTrcv_00104]. 현재 모드로의 전환은 오류가 아닙니다 [SWS_CanTrcv_00161]. 이 함수는 비동기식으로 작동합니다: 대상 모드에 도달하자마자 CanTrcv는 CanIf_TrcvModeIndication을(를) 통해 이를 보고합니다 [SWS_CanTrcv_00158].

zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

상태 다이어그램: Init은 STANDBY 또는 SLEEP으로 이어지고, SLEEP은 STANDBY를 통해서만 도달할 수 있으며, DeInit은 NOT_ACTIVE로 이어집니다. 출처: SWS CanTrcv 19쪽, [SWS_CanTrcv_00148].

CanIf는 CanTrcv_CheckWakeup을(를) 통해 웨이크업을 확인합니다. 이 함수는 감지된 웨이크업을 EcuM_SetWakeupEvent(으)로 보고합니다 [SWS_CanTrcv_00146]. CanTrcv_MainFunction은(는) STANDBY 및 SLEEP 상태에서 버스를 검색합니다 [SWS_CanTrcv_00112]. CanTrcv_SetWakeupMode은(는) 알림을 차단, 활성화하거나 저장된 웨이크업을 삭제할 수 있습니다. 이 과정에서 웨이크업이 유실되어서는 안 됩니다 [SWS_CanTrcv_00095].

PN 지원 트랜시버(CanTrcvHwPnSupport)는 추가로 구성된 웨이크업 프레임을 통해 웨이크업을 수행합니다 [SWS_CanTrcv_00175]. 셧다운 시 CanSM은 먼저 WUF 플래그를 지운 다음 STANDBY로 전환합니다 [SWS_CanTrcv_00194]. 그 후 CanSM은 웨이크 플래그를 비동기식으로 확인하도록 합니다 [SWS_CanTrcv_00224].

오류 발생 시 다음이 적용됩니다:

  • DET가 활성화된 경우 개발 오류가 보고되고, DET가 비활성화된 경우 API는 E_NOT_OK을(를) 반환합니다 [SWS_CanTrcv_00050].
  • 하드웨어 통신 장애는 드라이버가 런타임 오류 CANTRCV_E_NO_TRCV_CONTROL(으)로 보고합니다 [SWS_CanTrcv_91006].
  • 버스 오류는 CanTrcv_MainFunctionDiagnostics이(가) DEM에 CANTRCV_E_BUS_ERROR(으)로 보고합니다 [SWS_CanTrcv_00206].
부분 네트워킹을 사용한 셧다운 (SPI 비동기)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: 파트 I: WUF 플래그 클리어, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: 파트 II: 컨트롤러 Sleep, Wake 플래그 검사CanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

시퀀스 다이어그램: PN 셧다운 시 WUF 플래그가 지워지고, 트랜시버가 STANDBY로 전환되며, 웨이크 플래그가 비동기식으로 확인됩니다. 출처: SWS CanTrcv 55쪽, [SWS_CanTrcv_00194]

역할: CanIf 하위의 외부 CAN 트랜시버 드라이버

CAN Transceiver Driver(CanTrcv)는 외부 CAN 트랜시버 소자를 제어합니다. 이는 해당 하드웨어 상태를 일반 동작 모드 모델로 매핑합니다. 이 모델은 사용 가능한 수많은 트랜시버를 일관되게 포괄하는 것을 목표로 합니다. 사양에 따르면, 이를 위해 특정 소자에 대해 한두 개의 과도한 상태를 감수하더라도 ComM 및 EcuM을 하드웨어로부터 분리합니다 (SWS CanTrcv 19쪽). 트랜시버 하드웨어는 이 모델로 매핑될 수 있는 인터페이스를 제공해야 합니다 [SWS_CanTrcv_00098].

상위 방향에서는 CanIf가 직접적인 파트너입니다:

  • CanIf_SetTrcvMode은(는) CanTrcv_SetOpMode을(를) 호출합니다 (SWS CanIf 95쪽).
  • CanIf_GetTrcvMode은(는) CanTrcv_GetOpMode을(를) 호출합니다 (SWS CanIf 97쪽).
  • CanIf_GetTrcvWakeupReason은(는) CanTrcv_GetBusWuReason을(를) 호출합니다 (SWS CanIf 98쪽).

피드백은 필수 인터페이스 중 하나인 CanIf_TrcvModeIndication을(를) 통해 이루어집니다 [SWS_CanTrcv_00085]. PN 인디케이션에 대해서는 추가적인 CanIf 콜백들이 나열되어 있습니다 [SWS_CanTrcv_00086]. 임포트 목록에서 볼 수 있듯이 CanTrcv는 하위 방향에서 하드웨어 제어를 위해 Dio 및 Spi를 사용하고, Icu, DEM 및 EcuM 타입을 사용합니다 [SWS_CanTrcv_00084]. 상태 전환 시의 대기 시간은 드라이버가 Tm_BusyWait1us16bit을(를) 사용하여 구현합니다 [SWS_CanTrcv_00230]. CanTrcv_MainFunction 및 CanTrcv_MainFunctionDiagnostics은(는) BSW 스케줄러가 호출합니다 (SWS CanTrcv 47쪽).

kontext EcuM EcuM / Integrationscode CanTrcv CanTrcv EcuM->CanTrcv CanTrcv_Init SchM BSW-Scheduler (SchM) SchM->CanTrcv CanTrcv_MainFunction CanTrcv_MainFunctionDiagnostics CanSM CanSM CanIf CanIf CanSM->CanIf CanIf_SetTrcvMode CanIf_ClearTrcvWufFlag CanIf_CheckTrcvWakeFlag CanIf->CanSM CanSM_TransceiverModeIndication CanIf->CanTrcv SetOpMode, GetOpMode, GetBusWuReason, SetWakeupMode, CheckWakeup, ClearTrcvWufFlag, CheckWakeFlag CanTrcv->EcuM EcuM_SetWakeupEvent CanTrcv->CanIf CanIf_TrcvModeIndication CanIf_ClearTrcvWufFlagIndication CanIf_CheckTrcvWakeFlagIndication Dio Dio CanTrcv->Dio Dio_WriteChannel Spi Spi CanTrcv->Spi SPI-Sequenzen Icu Icu CanTrcv->Icu Icu_EnableNotification Icu_DisableNotification Tm Tm CanTrcv->Tm Tm_BusyWait1us16bit Det Det CanTrcv->Det 개발 및 런타임 오류 Dem Dem CanTrcv->Dem Dem_SetEventStatus (CANTRCV_E_BUS_ERROR) HW CAN-Transceiver-Hardware Dio->HW Pins Spi->HW Register

컨텍스트 다이어그램: CanTrcv는 CanIf, EcuM 및 스케줄러에 의해 다루어지며 Dio, Spi 및 Icu를 통해 하드웨어에 접근합니다. 오류는 DET 및 DEM에 보고합니다. 출처: [SWS_CanTrcv_00084], [SWS_CanTrcv_00085], [SWS_CanTrcv_00146], SWS EcuM 35쪽

초기화, 라이프사이클 및 역초기화

CanTrcv_Init [SWS_CanTrcv_00001]을(를) 호출하기 전에 환경은 사용되는 모든 드라이버, 특히 Spi 및 Dio를 초기화해 두어야 합니다 [SWS_CanTrcv_00099]. 문서 구절에는 두 가지 시간적 요구사항이 추가되어 있습니다: 초기화는 파워업 직후 일찍 이루어져야 하며, 하위 서비스는 짧고 동기식이어야 합니다 (SWS CanTrcv 26쪽).

CanTrcv_Init은(는) 연결된 모든 트랜시버를 해당 초기화 시퀀스 및 ConfigPtr의 구성에 따라 초기화합니다 [SWS_CanTrcv_00180]. CanTrcv_ConfigType의 내용은 하드웨어마다 다릅니다 [SWS_CanTrcv_00209]. 그 후 각 트랜시버는 CANTRCV_TRCVMODE_SLEEP 또는 CANTRCV_TRCVMODE_STANDBY 상태가 되며, 이는 트랜시버별로 구성할 수 있습니다 [SWS_CanTrcv_00148].

초기화는 동시에 웨이크업 여부도 확인합니다:

  • 하드웨어가 지원하는 경우, CanTrcv_Init은(는) 트랜시버 활동으로 인해 웨이크업이 트리거되었는지 확인합니다. 그 결과는 CanTrcvWakeupSourceRef의 소스와 함께 EcuM_SetWakeupEvent을(를) 통해 보고합니다 [SWS_CanTrcv_00167].
  • PN 지원 트랜시버의 경우, POR 또는 SYSERR 플래그가 설정되어 있으면 구성 시퀀스가 추가로 다시 실행됩니다. 그렇지 않으면 트랜시버에 저장된 구성이 유효하게 유지됩니다 [SWS_CanTrcv_00182].
  • 설정된 POR 플래그는 추가로 CanTrcvPorWakeupSourceRef을(를) 통해 웨이크업으로 보고됩니다 [SWS_CanTrcv_00183].

POR 보고는 전원 공급 장치가 통합된 트랜시버에 부합합니다. 이러한 트랜시버에서는 수동적 웨이크업이 ECU에 파워온 리셋처럼 보입니다 (SWS EcuM 70쪽).

init start vor 환경에서 Spi 및 Dio를 초기화함 start->vor init CanTrcv_Init(ConfigPtr) vor->init komm 트랜시버와의 통신이 올바른가? init->komm noctrl Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL komm->noctrl 아니요 baud 보드레이트가 지원되는가? komm->baud 예 baudErr DET: CANTRCV_E_BAUDRATE_NOT_SUPPORTED baud->baudErr 아니요 seq 구성에 따라 초기화 시퀀스 실행 baud->seq 예 porsys PN 하드웨어: POR 또는 SYSERR가 설정되었는가? seq->porsys rekonf 구성 시퀀스 재실행 porsys->rekonf 예 wu 트랜시버 활동에 의한 Wake-up인가? porsys->wu 아니요 / PN 하드웨어 없음 por POR-Flag gesetzt? rekonf->por porWu EcuM_SetWakeupEvent (CanTrcvPorWakeupSourceRef) por->porWu 예 por->wu 아니요 porWu->wu wuMeld EcuM_SetWakeupEvent (CanTrcvWakeupSourceRef) wu->wuMeld 예 ziel 채널별로 구성된 상태: CANTRCV_TRCVMODE_STANDBY 또는 CANTRCV_TRCVMODE_SLEEP wu->ziel 아니요 wuMeld->ziel ende ziel->ende

액티비티 다이어그램: 초기화는 하드웨어 도달 가능성을 확인하고, POR/SYSERR을 처리하며, EcuM에 웨이크업을 보고하고 채널별로 STANDBY 또는 SLEEP으로 끝납니다. 검사 순서는 해석에 해당합니다. 출처: [SWS_CanTrcv_00180], [SWS_CanTrcv_00182], [SWS_CanTrcv_00183], [SWS_CanTrcv_00167], [SWS_CanTrcv_00148]

CanTrcv_DeInit [SWS_CanTrcv_91001]은(는) 트랜시버 하드웨어를 NOT_ACTIVE 상태로 설정합니다 [SWS_CanTrcv_91003]. 이 상태에서는 새로운 구성 시퀀스를 사용하여 하드웨어를 설정할 수 있습니다 (SWS CanTrcv 49쪽). 예상되는 시작 상태는 CANTRCV_TRCVMODE_NORMAL이며, 그렇지 않으면 개발 오류 검사가 CANTRCV_E_TRCV_NOT_NORMAL을(를) 보고합니다 [SWS_CanTrcv_91005].

동작 모드 NORMAL, STANDBY 및 SLEEP

CanTrcv_TrcvModeType은(는) 세 가지 모드를 정의합니다 [SWS_CanTrcv_00163]. CanTrcv_SetOpMode [SWS_CanTrcv_00002]은(는) 지정된 트랜시버의 내부 상태를 이러한 모드 중 하나로 전환합니다 [SWS_CanTrcv_00102]. 전환에는 다음이 적용됩니다:

  • NORMAL에서 사용자는 STANDBY 또는 NORMAL만 요청합니다 [SWS_CanTrcv_00103].
  • STANDBY에서 사용자는 SLEEP 또는 STANDBY만 요청합니다 [SWS_CanTrcv_00104].
  • 다이어그램에 따르면 NORMAL은 세 가지 모드 모두에서 도달할 수 있습니다 (SWS CanTrcv 19쪽).
  • 현재 모드로의 전환은 허용되며 오류가 아닙니다 [SWS_CanTrcv_00161].
  • 하드웨어가 요청된 모드를 지원하지 않는 경우, 함수는 E_NOT_OK을(를) 반환합니다 [SWS_CanTrcv_00105].
zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

상태 다이어그램: Init 후 트랜시버는 STANDBY 또는 SLEEP 상태가 됩니다. SLEEP은 STANDBY를 통해서만 도달할 수 있고, NORMAL은 모든 모드에서 도달할 수 있습니다. DeInit은 NOT_ACTIVE로 이어집니다. 출처: SWS CanTrcv 19쪽, [SWS_CanTrcv_00148], [SWS_CanTrcv_00103], [SWS_CanTrcv_00104], [SWS_CanTrcv_91003]

CanTrcv_SetOpMode은(는) 비동기식으로 동작합니다: E_OK은(는) 요청이 수락되었음만을 의미합니다 (SWS CanTrcv 33쪽). 대상 모드에 도달한 후에야 CanTrcv는 추상 CanIf-TransceiverId를 사용하여 CanIf_TrcvModeIndication을(를) 호출합니다 [SWS_CanTrcv_00158]. CanSM은 SLEEP에 대한 이러한 보고를 무시하는데, 이는 SLEEP이 통합 코드에 의해서만 요청되기 때문입니다 (SWS CanSM 94쪽).

PN 지원 하드웨어의 경우 CanTrcv_SetOpMode은(는) POR 및 SYSERR 플래그도 추가로 확인합니다 [SWS_CanTrcv_00186]. POR 이후에는 트랜시버를 다시 초기화합니다 [SWS_CanTrcv_00187]. CanTrcv_GetOpMode [SWS_CanTrcv_00005]은(는) 현재 상태를 동기식으로 반환합니다 [SWS_CanTrcv_00106].

트랜시버의 모드 변경CanSMCanIfCanTrcvDio / SpiCanIf_SetTrcvMode(TransceiverId, TransceiverMode)CanTrcv_SetOpMode(Transceiver, OpMode)optPN-Hardware (CanTrcvHwPnSupport = TRUE)POR/SYSERR 플래그 검사,POR 후 재초기화Dio_WriteChannel 또는 SPI 시퀀스E_OK (Anforderung angenommen)E_OK비동기: 대상 모드는나중에 도달함CanIf_TrcvModeIndication(TransceiverId, TransceiverMode)CanSM_TransceiverModeIndication(TransceiverId, TransceiverMode)CanSM은 SLEEP 알림을 무시함

시퀀스 다이어그램: 모드 전환이 동기식으로 수락되고 이후 CanIf를 통한 인디케이션으로 CanSM에 확인됩니다. 출처: SWS CanTrcv 52쪽, [SWS_CanTrcv_00158], [SWS_CanTrcv_00186]

웨이크업: 감지, 원인 및 알림 제어

웨이크업은 인터럽트 또는 폴링을 통해 감지됩니다 (SWS EcuM 179쪽). 이때 CanIf는 CanIf_CheckWakeup을(를) 통해 CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 함수를 쿼리합니다 (SWS CanIf 56쪽). 하드웨어가 지원하는 경우, 이 함수는 트랜시버 활동에 의한 웨이크업을 검증하고 EcuM_SetWakeupEvent을(를) 통해 이를 보고합니다 [SWS_CanTrcv_00146].

CanTrcv_MainFunction [SWS_CanTrcv_00013]은(는) STANDBY 및 SLEEP 상태의 모든 버스에서 웨이크업을 검색하고 웨이크업 플래그를 설정합니다 [SWS_CanTrcv_00112]. 이는 특히 폴링 구성에서 관련이 있는 것으로 추정되며, 구성 다이어그램에서는 이를 위해 CanTrcvWakeUpByPolling 값을 지정하고 있습니다 (ECUC-Parameter 185쪽). 질문 Q-6144fdedb98cea44 (열림)

CanTrcv_GetBusWuReason [SWS_CanTrcv_00007]은(는) 트랜시버가 감지한 웨이크업 원인을 반환합니다 [SWS_CanTrcv_00107]. 가능한 값은 대략 CANTRCV_WU_BY_BUS, CANTRCV_WU_INTERNALLY 또는 CANTRCV_WU_RESET 등입니다 [SWS_CanTrcv_00165]. 원인을 얼마나 세부적으로 구분할 수 있는지는 하드웨어에 따라 크게 달라집니다 (SWS CanTrcv 35쪽).

웨이크업 인터럽트를 위해 드라이버는 ICU 채널을 사용합니다. 드라이버는 CanTrcvIcuChannelRef이(가) 구성된 경우에만 Icu_EnableNotification 및 Icu_DisableNotification을(를) 호출합니다 [SWS_CanTrcv_00171]. STANDBY로 전환할 때 드라이버는 채널을 활성화합니다 [SWS_CanTrcv_00172]. R24-11 문서 구절에서는 NORMAL로 전환할 때의 비활성화도 추가로 언급하고 있습니다 (SWS CanTrcv 23쪽).

트랜시버를 통한 Wake-up 감지Transceiver-HardwareEcuM / IntegrationscodeCanIfCanTrcvaltWake-up per InterruptWake-up-Interrupt (ICU-Kanal)CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)Wake-up durch Transceiver-활동 유효성 검증EcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Wake-up per PollingCanTrcv_MainFunction: Busse inSTANDBY/SLEEP 검사, 플래그 설정CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)EcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Use Case: Ursache abfragenCanIf_GetTrcvWakeupReason(TransceiverId, TrcvWuReasonPtr)CanTrcv_GetBusWuReason(Transceiver, reason)E_OK, reason = z. B. CANTRCV_WU_BY_BUSE_OK

시퀀스 다이어그램: 웨이크업이 인터럽트 또는 폴링을 통해 CanIf를 거쳐 트랜시버에서 확인되고, EcuM에 보고되며, 나중에 그 원인이 조회됩니다. 출처: SWS EcuM 179쪽, SWS EcuM 138쪽, SWS EcuM 140쪽, [SWS_CanTrcv_00146], [SWS_CanTrcv_00112]

CanTrcv_SetWakeupMode [SWS_CanTrcv_00009]은(는) CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164]을(를) 통해 웨이크업 알림을 제어합니다:

  • CANTRCV_WUMODE_DISABLE: 웨이크업이 보고되지 않지만 내부적으로 저장됩니다 [SWS_CanTrcv_00093].
  • CANTRCV_WUMODE_ENABLE: 저장된 웨이크업이 “present”로 보고됩니다 [SWS_CanTrcv_00111].
  • CANTRCV_WUMODE_CLEAR: 저장된 웨이크업이 삭제됩니다 [SWS_CanTrcv_00094].

차단된 단계에서는 웨이크업이 유실되어서는 안 됩니다 [SWS_CanTrcv_00095]. 삭제는 알림이 차단된 상태에서 상위 계층의 제어 하에 저장된 웨이크업을 폐기하는 역할을 합니다 [SWS_CanTrcv_00150]. CanIf는 CanIf_SetTrcvWakeupMode을(를) 통해 요청을 CanTrcv로 전달합니다 (SWS CanIf 100쪽).

선택적 웨이크업 (Partial Networking)

Partial Networking에서는 사전 정의된 웨이크업 프레임(WUF)이 노드를 깨울 때까지 노드가 저전력 모드를 유지합니다. 따라서 PN 지원 트랜시버는 웨이크업 패턴(WUP)뿐만 아니라 이러한 프레임에도 반응합니다 (SWS CanTrcv 27쪽). 하드웨어가 이를 지원하는지 여부는 CanTrcvHwPnSupport이(가) 나타냅니다 [SWS_CanTrcv_00174]. 이 매개변수가 TRUE인 경우에만 CanTrcvPartialNetwork 컨테이너와 5개의 API(CanTrcv_GetTrcvSystemData, CanTrcv_ClearTrcvWufFlag, CanTrcv_ReadTrcvTimeoutFlag, CanTrcv_ClearTrcvTimeoutFlag, CanTrcv_ReadTrcvSilenceFlag)가 존재합니다 [SWS_CanTrcv_00175].

트랜시버가 어떤 프레임에 반응할지는 CanTrcvPnFrameCanId, CanTrcvPnFrameCanIdMask 및 CanTrcvPnFrameDataMask에서 정의합니다 [SWS_CanTrcv_00177]. CanTrcv_SetPNActivationState [SWS_CanTrcv_00219]은(는) PN_ENABLED(으)로 PN 웨이크업 기능을 켜고 [SWS_CanTrcv_00221], PN_DISABLED(으)로 끕니다 [SWS_CanTrcv_00222].

핵심은 셧다운 시퀀스입니다:

  1. 저전력 모드로 진입할 때 프레임 웨이크업이 유실되지 않도록 CanSM이 CanTrcv_ClearTrcvWufFlag을(를) 통해 WUF 플래그를 지웁니다. 그런 다음 트랜시버는 STANDBY 상태로 전환됩니다 [SWS_CanTrcv_00194].
  2. CanTrcv는 CanIf_ClearTrcvWufFlagIndication(으)로 삭제를 확인합니다 [SWS_CanTrcv_00195].
  3. 마지막으로 CanSM이 비동기 검사 CanTrcv_CheckWakeFlag을(를) 요청합니다 [SWS_CanTrcv_00223]. CanTrcv는 결과를 CanIf_CheckTrcvWakeFlagIndication을(를) 통해 보고합니다 [SWS_CanTrcv_00224].

SPI 연결의 경우 사양서에서는 비동기 변형(SWS CanTrcv 55쪽)과 동기 변형(SWS CanTrcv 57쪽)을 설명합니다.

부분 네트워킹을 사용한 셧다운 (SPI 비동기)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: 파트 I: WUF 플래그 클리어, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: 파트 II: 컨트롤러 Sleep, Wake 플래그 검사CanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

시퀀스 다이어그램: PN 셧다운 시 WUF 플래그가 지워지고, 트랜시버가 STANDBY로 전환되며, 컨트롤러 슬립 이후 웨이크 플래그가 비동기적으로 검사됩니다. 출처: SWS CanTrcv 55쪽, SWS CanTrcv 56쪽, SWS CanSM 36쪽, [SWS_CanTrcv_00194], [SWS_CanTrcv_00224]

진단을 위해 CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213]은(는) 트랜시버의 구성 및 상태를 uint32(으)로 읽어옵니다 [SWS_CanTrcv_00189]. 타임아웃 및 사일런스 플래그는 CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215], CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 및 CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217]을(를) 통해 각각 읽거나 지워집니다. 해당 상태는 CanTrcv_TrcvFlagStateType이(가) 나타냅니다 [SWS_CanTrcv_00211].

구성 및 인스턴스 참조

각 트랜시버 하드웨어 유형마다 해당 유형의 모든 디바이스를 처리하는 하나의 드라이버 인스턴스가 존재합니다 [SWS_CanTrcv_00016]. CanIf 다이어그램은 서로 다른 트랜시버 유형을 가진 동일한 컨트롤러의 경우를 보여주며, 이 경우 두 개의 트랜시버 드라이버가 필요합니다(SWS CanIf 34쪽). 각 채널은 컨테이너 CanTrcvChannel(다중도 1..*)에서 설명합니다. 이는 특히 CanTrcvHwPnSupport, CanTrcvInitState, CanTrcvWakeupByBusUsed 및 웨이크업 소스 참조(SWS CanTrcv 70쪽)를 포함합니다.

출처 간의 한 가지 차이점은 Init 이후의 상태와 관련이 있습니다. 구성 다이어그램에서는 CanTrcvOpModeNormal을(를) CanTrcvInitState의 기본값으로 명시합니다(ECUC-Parameter 187쪽). 그러나 R20-11에 대해 규범적인 것은 Init 이후 SLEEP 또는 STANDBY만 허용하는 [SWS_CanTrcv_00148]입니다. 지원되지 않는 파티션 할당을 가진 구성은 드라이버가 거부해야 합니다 [SWS_CanTrcv_00231].

오류가 발생한 경우의 동작

[SWS_CanTrcv_00050]의 개발 오류는 일관된 패턴을 따릅니다. DET가 활성화된 경우 API는 다음을 보고합니다:

DET가 비활성화된 경우, API는 이러한 상황에서 E_NOT_OK을(를) 반환합니다.

트랜시버와의 통신에 장애가 발생하면 드라이버는 Det_ReportRuntimeError [SWS_CanTrcv_00085]을(를) 통해 런타임 오류 CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006]을(를) 보고합니다. 이는 예를 들어 Init [SWS_CanTrcv_00113], SetOpMode [SWS_CanTrcv_00114], GetOpMode [SWS_CanTrcv_00115], SetWakeupMode [SWS_CanTrcv_00117], GetTrcvSystemData [SWS_CanTrcv_00190] 및 ClearTrcvWufFlag [SWS_CanTrcv_00196]에 적용됩니다. 한 가지 예외는 CanTrcv_GetBusWuReason입니다. [SWS_CanTrcv_00116]에 따르면 이 경우 E_OK을(를) 반환합니다. 지원되지 않는 전송률은 Init에서 CANTRCV_E_BAUDRATE_NOT_SUPPORTED [SWS_CanTrcv_00168](으)로 보고됩니다.

fehler start aufruf API-Aufruf, z. B. CanTrcv_SetOpMode start->aufruf init Modul initialisiert? aufruf->init eUninit DET: CANTRCV_E_UNINIT (DET aus: E_NOT_OK) init->eUninit 아니요 id 트랜시버 ID가 유효한가? init->id 예 eId DET: CANTRCV_E_INVALID_TRANSCEIVER (DET aus: E_NOT_OK) id->eId 아니요 ptr Zeigerparameter != NULL? id->ptr 예 ePtr DET: CANTRCV_E_PARAM_POINTER (DET aus: E_NOT_OK) ptr->ePtr 아니요 modus 모드 / 전환이 허용되는가? ptr->modus ja / kein Zeiger eModus DET: CANTRCV_E_PARAM_TRCV_OPMODE, CANTRCV_E_TRCV_NOT_NORMAL 또는 CANTRCV_E_TRCV_NOT_STANDBY (DET 비활성화 시: E_NOT_OK) modus->eModus 아니요 hw Dio / Spi를 통한 하드웨어 액세스 modus->hw 예 komm Kommunikation korrekt? hw->komm eKomm Det_ReportRuntimeError: CANTRCV_E_NO_TRCV_CONTROL 반환값 E_NOT_OK (GetBusWuReason: E_OK) komm->eKomm 아니요 ok E_OK komm->ok 예

액티비티 다이어그램: API 호출은 개발 오류 검사를 거친 후 런타임 오류 처리가 포함된 하드웨어 접근을 수행합니다. 검사 순서는 해석에 해당합니다. 출처: [SWS_CanTrcv_00050], [SWS_CanTrcv_00122], [SWS_CanTrcv_00123], [SWS_CanTrcv_00132], [SWS_CanTrcv_00114], [SWS_CanTrcv_00116]

버스 오류는 프로덕션 오류로 처리됩니다. 하드웨어가 버스 오류를 다른 오류와 구별할 수 있고 [SWS_CanTrcv_00178], CanTrcvBusErrFlag = TRUE여야 한다는 전제 조건이 있습니다 [SWS_CanTrcv_00205]. 이 경우 CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218]은(는) 주기적으로 BUSERR 플래그를 읽습니다. 이는 CANTRCV_E_BUS_ERROR을(를) DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206] 또는 DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227](으)로 DEM [SWS_CanTrcv_00228] [SWS_CanTrcv_00229]에 보고합니다. DEM 이벤트는 CanTrcvDemEventParameterRefs을(를) 통해 참조됩니다(SWS CanTrcv 78쪽).

더 자세한 증거

CanTrcv(Classic, R20-11)용 페이로드에 포함된 요구사항 및 문서 위치를 기반으로 AI가 생성한 가이드라인입니다. 다른 릴리스의 문서 위치는 보충적으로 사용되었으며, 차이가 있는 부분은 명시되어 있습니다. 해석으로 표시된 진술은 규범적이지 않습니다.

CAN Transceiver Driver (CanTrcv)

Controls physical bus transceiver states and wakeup detection on CAN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Initializes the Can Trcv module.

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

사용법 및 의미론

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

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

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

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

사용법 및 의미론

동기식 함수 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.

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

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

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

동기식 함수 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.

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

동기식 함수 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.

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

동기식 및 비재진입 함수 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.

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

동기식 및 재진입 가능 함수 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.

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

동기식 함수 CanTrcv_SetPNActivationState은 Standby 및 Sleep 모드에 대한 CAN 트랜시버의 웨이크업 동작을 구성합니다([SWS_CanTrcv_00219]). 이 함수는 트랜시버가 표준 웨이크업 패턴을 통해 깨어날지, 아니면 Partial Networking의 일환으로 구성된 원격 웨이크업 프레임을 통해 목표에 맞게 깨어날지를 결정합니다([SWS_CanTrcv_00219]).

사용법 및 매개변수

이 함수는 서비스 ID 0x0f을 갖고 CanTrcv.h을 통해 제공되며 동기식으로 실행됩니다([SWS_CanTrcv_00219]). CanTrcv_PNActivationType 타입의 전달 매개변수 ActivationState은 동작 모드를 제어합니다:

트랜시버가 요청된 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.

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

함수 CanTrcv_CheckWakeFlag은 트랜시버 하드웨어에 직접 웨이크업 플래그 상태 검사를 요청합니다([SWS_CanTrcv_00223]). 호출은 비동기적으로 수행되며, 입력 파라미터 Transceiver를 통해 대상 CAN 트랜시버의 해당 식별자를 참조합니다([SWS_CanTrcv_00223]).

함수는 반환 값으로 상태 Std_ReturnType을 제공합니다([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.

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

동기식 함수 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.

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

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

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

함수 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(으)로 하는 파라미터와 함께 API Dem_SetEventStatus을(를) 호출합니다 [SWS_CanTrcv_00206].
  • BUSERR 플래그가 리셋된 경우, CanTrcv_MainFunctionDiagnostics은(는) 동일한 EventId(CANTRCV_E_BUS_ERROR) 및 상태 DEM_EVENT_STATUS_PASSED을(를) 사용하여 API Dem_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.

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

열거형 타입 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.

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

열거형 타입 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.

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

열거형 타입 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

초기화 및 상태

De - initializes the Can Trcv module.

void CanTrcv_DeInit (void);

Gets the version of the module and returns it in Version Info.

void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);

Initializes the Can Trcv module.

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

서비스 · Get…

Gets the wakeup reason for the Transceiver and returns it in parameter Reason.

Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);

Gets the mode of the Transceiver and returns it in Op Mode.

Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);

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.

Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);

서비스 · Set…

Sets the mode of the Transceiver to the value Op Mode.

Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);

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.

Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);

En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.

Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);

서비스 · 기타

Requests to check the status of the wakeup flag from the transceiver hardware.

Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);

Service is called by underlying CANIF in case a wake up interrupt is detected.

Std_ReturnType CanTrcv_CheckWakeup (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.

Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);

Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);

Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (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.

Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);

주기적

Service to scan all busses for wake up events and perform these event.

void CanTrcv_MainFunction (void);

Reads the transceiver diagnostic status periodically and sets product/ development accordingly.

void CanTrcv_MainFunctionDiagnostics (void);

타입

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.

Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.

Provides the state of a flag in the transceiver hardware.

Operating modes of the CAN Transceiver Driver.

This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.

This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver