DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

ModulLinTrcv (LIN Transceiver Driver)
BSW-Modul-ID64
Standard-Header#include "LinTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_LINTransceiverDriver.pdf
ClusterLIN

모듈 가이드AI 생성

LIN 트랜시버 디바이스를 제어합니다: 작동 모드 설정 및 조회, 웨이크업 감지 및 LIN 인터페이스로 보고.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 4cf0c894f837 출처 열린 질문 (4)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

LIN 트랜시버 디바이스를 제어합니다: 작동 모드 설정 및 조회, 웨이크업 감지 및 LIN 인터페이스로 보고.

LIN Transceiver Driver는 채널의 물리적 LIN 트랜시버를 제어하고 하드웨어로부터 LinIf를 분리합니다. LinTrcv_Init에 따르면 초기 모드는 SLEEP입니다. LinTrcv_SetOpMode는 NORMAL, STANDBY 및 SLEEP 간을 전환하며, 전환 실패 시 E_NOT_OK를 반환합니다 [SWS_LinTrcv_00002]. LinIf가 LinTrcv_CheckWakeup를 호출할 때 외부 웨이크업이 ICU를 통해 감지되고 보고됩니다. R20-11에서 E_OK는 “웨이크업 감지됨”을 의미합니다 [SWS_LinTrcv_00012]. 상태 변경을 위한 대기 시간은 Tm_BusyWait1us16bit를 사용하여 구현해야 합니다.

LIN Transceiver Driver는 채널의 물리적 LIN 트랜시버를 제어하고 하드웨어로부터 LIN 인터페이스를 분리합니다. LinIf는 해당 서비스를 직접 호출합니다: 예를 들어 LinIf_SetTrcvMode는 LinTrcv_SetOpMode를 호출하고 그 결과를 변경 없이 반환합니다 [SWS_LinTrcv_00002] LinIf-SWS 90쪽. 소프트웨어 상태와 하드웨어 상태는 분리되어 있습니다. 소프트웨어 모드가 어떤 하드웨어 상태를 포괄하는지는 구현에 의해 결정됩니다 LinTrcv-SWS 16쪽.

드라이버는 모드 LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY 및 LINTRCV_TRCV_MODE_SLEEP를 인식합니다 [SWS_LinTrcv_00168]. 전원이 켜진 후에는 비활성 상태입니다. LinTrcv_Init는 구성 세트 [SWS_LinTrcv_00001]로 드라이버를 활성화하며, 초기 모드는 SLEEP입니다 LinTrcv-SWS 1쪽. STANDBY는 선택 사항이며 순전히 내부 상태일 수 있습니다 LinTrcv-SWS 그림 7.1 15쪽.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (선택적, 필요시 내부 전용) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

상태 다이어그램: Power-On부터 LinTrcv_Init를 거쳐 LinTrcv_SetOpMode를 통한 모드 전환까지의 수명 주기. 선택적 전이는 재구성되었습니다(해석). 출처: LinTrcv-SWS 그림 7.1 15쪽 [SWS_LinTrcv_00168]

드라이버는 자체 ISR을 통하지 않고 ICU를 통해 외부 웨이크업을 감지합니다 LinTrcv-SWS 17쪽. LinIf는 LinTrcv_CheckWakeup를 사용하여 이를 조회합니다. R20-11에서 E_OK는 “웨이크업 감지됨”을 의미합니다 [SWS_LinTrcv_00012]. 이후 릴리스에서는 이를 다르게 정의합니다. 감지된 웨이크업은 LinIf_WakeupConfirmation를 통해 보고됩니다 [SWS_LinTrcv_91002]. LinTrcv_SetWakeupMode는 알림을 활성화, 비활성화하거나 저장된 이벤트를 지웁니다 [SWS_LinTrcv_00169].

외부 웨이크업 (R20-11에 따른 반환값)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(STANDBY로 전환 시)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegel또는 웨이크업 핀의 에지)ICU 알림부터 LinIf를 통한LinIf에 의한 처리는 LinTrcv 외부에 위치함(페이로드에 기술되지 않음)LinTrcv_CheckWakeup(LinNetwork)다음에서의 웨이크업:adressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)채널의 웨이크업 플래그 설정E_OKkein Wakeup erkanntE_NOT_OKUse Case: 웨이크업 원인 조회 (LinIf_GetTrcvWakeupReason을 통해)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

시퀀스 다이어그램: ICU 감지부터 LinTrcv_CheckWakeup 및 LinIf_WakeupConfirmation를 거쳐 원인 조회까지의 외부 웨이크업. 출처: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS 17쪽

작동을 위해 다음 경계 조건이 적용됩니다:

  • 상태 변경 시 대기 시간은 Tm_BusyWait1us16bit를 사용하여 구현해야 합니다 [SWS_LinTrcv_00171].
  • 멀티코어 시스템에서 채널의 LinTrcvChannel 및 LinChannel는 동일한 파티션을 참조해야 합니다 [SWS_LinTrcv_00177].
  • 트랜시버와의 통신에 장애가 발생하면 조회 시 E_NOT_OK가 반환됩니다 LinTrcv-SWS 26쪽.

DET 오류 코드는 이후 릴리스에서만 확인됩니다. R21-11에서 오류 코드가 정리되었으므로 R20-11에서는 해당 이름이 다를 수 있습니다 LinTrcv-SWS 1쪽.

LIN 인터페이스와 트랜시버 디바이스 사이에서의 역할

LIN Transceiver Driver(LinTrcv)는 물리적 LIN 트랜시버의 제어를 캡슐화합니다. 인터페이스는 7개의 서비스로 구성됩니다:

모든 서비스는 동기식입니다. 드라이버의 소프트웨어 상태는 디바이스의 하드웨어 상태와 분리되어 있습니다. 디바이스는 드라이버보다 더 많은 전이를 가질 수 있습니다. 소프트웨어 상태가 어떤 하드웨어 상태를 포괄하는지는 구현에 의해 결정됩니다. 그러나 구현은 설명된 기능을 완전히 제공해야 합니다 LinTrcv-SWS 16쪽.

상위 방향에서는 LIN 인터페이스(LinIf)가 페이로드에 입증된 사용자입니다. LinIf 서비스는 각각 하나의 LinTrcv 서비스를 호출합니다:

  • LinIf_SetTrcvMode는 LinTrcv_SetOpMode를 호출하고 그 반환값을 변경 없이 반환합니다 LinIf-SWS 90쪽.
  • LinIf_GetTrcvMode는 LinTrcv_GetOpMode를 호출합니다 LinIf-SWS 91쪽.
  • LinIf_GetTrcvWakeupReason는 LinTrcv_GetBusWuReason를 호출합니다 LinIf-SWS 92쪽.
  • LinIf_SetTrcvWakeupMode는 LinTrcv_SetWakeupMode를 호출합니다 LinIf-SWS 93쪽.

유형 LinTrcv_TrcvModeType 및 LinTrcv_TrcvWakeupModeType는 Lin_GeneralTypes.h를 통해 사용할 수 있습니다 [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]. LinIf는 이를 시그니처에서 직접 사용합니다. 이전에 자체 제공되던 유형 LinIf_TrcvModeType는 버전 3.1.5에서 LinTrcv_TrcvModeType로 대체되었습니다 LinIf-SWS 4쪽.

하위 방향에서 드라이버는 다음 서비스를 사용합니다:

감지된 웨이크업을 드라이버는 LinIf_WakeupConfirmation를 통해 LinIf로 보고합니다 [SWS_LinTrcv_91002]. LinIf는 이에 따라 해당 채널의 웨이크업 플래그를 설정합니다 LinIf-SWS 98쪽.

LinTrcvKontext LinIf LinIf LinTrcv LinTrcv LinIf->LinTrcv LinTrcv_SetOpMode, LinTrcv_GetOpMode, LinTrcv_GetBusWuReason, LinTrcv_SetWakeupMode, LinTrcv_CheckWakeup LinTrcv->LinIf LinIf_WakeupConfirmation Dio Dio LinTrcv->Dio Dio-Lese-/Schreibdienste (LinTrcvDioAccess) Spi Spi LinTrcv->Spi SPI-Sequenz (LinTrcvSpiSequence) Icu Icu LinTrcv->Icu Icu_EnableNotification / Icu_DisableNotification Tm Tm LinTrcv->Tm Tm_BusyWait1us16bit Det DET LinTrcv->Det Det_ReportError EcuM EcuM LinTrcv->EcuM EcuM_SetWakeupEvent HW LIN-Transceiver-Baustein Dio->HW Pins Spi->HW SPI HW->Icu Wakeup-Signal

컨텍스트 다이어그램: LinTrcv는 LinIf와 하드웨어 근접 서비스 Dio/Spi, Icu 및 Tm 사이에 위치하며 웨이크업을 LinIf로 다시 보고합니다. 출처: [SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS 17쪽 LinTrcv-SWS 그림 10.3 45쪽

Power-On부터 Sleep까지 작동 모드의 수명 주기

드라이버는 LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY 및 LINTRCV_TRCV_MODE_SLEEP의 세 가지 소프트웨어 작동 모드를 지원합니다 [SWS_LinTrcv_00168]. 규격의 그림 7.1에서는 이를 수명 주기로 분류합니다 LinTrcv-SWS 그림 7.1 15쪽:

  • 전원이 켜진 후 드라이버는 NOT_ACTIVE 상태에 있습니다.
  • LinTrcv_Init는 드라이버를 ACTIVE 상태로 전환합니다. 세 가지 모드는 ACTIVE 내에 위치합니다.
  • 전압 손실은 수명 주기를 종료합니다.

LinTrcv_Init는 선택된 구성 세트에 대한 포인터를 수신합니다 [SWS_LinTrcv_00001]. 구조체 LinTrcv_ConfigType는 구현에 따라 다릅니다 [SWS_LinTrcv_00172]. 버전 4.3.1 이후 초기화 후 초기 모드는 LINTRCV_TRCV_MODE_SLEEP로 제한됩니다 LinTrcv-SWS 1쪽.

상태 ACTIVE에서 LinTrcv_SetOpMode는 지정된 채널의 내부 상태를 전달된 모드로 전환합니다 [SWS_LinTrcv_00002] LinTrcv-SWS 25쪽. 모드 LINTRCV_TRCV_MODE_STANDBY는 선택 사항입니다. 이는 하드웨어가 전이에 사용하는 순전히 내부 상태일 수 있습니다. 특정 하드웨어는 모든 인터페이스를 필요로 하지 않을 수도 있습니다 LinTrcv-SWS 그림 7.1 15쪽. 또한 규격에는 LinTrcv_SetOpMode가 채널을 STANDBY로 전환하는 조건이 명시되어 있습니다. 이러한 조건은 현재 발췌본에서 잘려 있으므로 여기서는 자세히 설명하지 않습니다 LinTrcv-SWS 25쪽.

LinTrcv_GetOpMode는 출력 매개변수 OpMode에서 드라이버의 현재 소프트웨어 상태를 반환합니다 [SWS_LinTrcv_00005] LinTrcv-SWS 26쪽. 이것이 반드시 디바이스의 상태인 것은 아닙니다. 호출자는 이를 통해 모드 전환 전에 채널이 어떤 모드에 있는지 확인할 수 있습니다. LinIf를 통해 이 조회가 LinIf_GetTrcvMode로 제공됩니다 LinIf-SWS 91쪽.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (선택적, 필요시 내부 전용) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

상태 다이어그램: Power-On 후 드라이버는 비활성 상태입니다. LinTrcv_Init는 초기 모드 SLEEP을 갖는 활성 영역으로 이끌고, LinTrcv_SetOpMode는 모드 간 전환을 수행합니다. 선택적 전이는 그림 7.1의 캡션 텍스트에서 재구성되었습니다(해석). STANDBY로의 조건부 전환은 표시되지 않았습니다. 출처: LinTrcv-SWS 그림 7.1 15쪽 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS 1쪽

LIN 인터페이스를 통한 모드 전환 및 조회

각 서비스는 uint8 유형의 매개변수 LinNetwork를 통해 채널을 지정합니다 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]. LinIf에서 해당 매개변수는 Channel라고 불리며 NetworkHandleType 유형을 갖습니다 LinIf-SWS 90쪽.

LinTrcv_SetOpMode는 동기식이며 재진입 불가능하고, 서비스 ID는 0x01입니다. 반환값의 의미는 다음과 같습니다 [SWS_LinTrcv_00002]:

  • E_OK: 트랜시버 상태가 요청된 모드로 전환되었습니다.
  • E_NOT_OK: 전환이 수락되지 않았거나 실패했거나, 매개변수가 허용 범위를 벗어났습니다.

하드웨어가 특정 모드를 지원하지 않더라도 LinIf는 모든 트랜시버 및 모든 모드에 대해 호출을 허용해야 합니다 LinIf-SWS 90쪽. 따라서 하드웨어에 대한 매핑은 LinTrcv의 역할로 남습니다.

상태 변경 시 대기 시간은 드라이버가 Tm_BusyWait1us16bit를 사용하여 구현합니다 [SWS_LinTrcv_00171]. LinTrcv_SetOpMode가 동기식으로 작동하므로 [SWS_LinTrcv_00002], 이 활성 대기 시간은 호출 내부에서 발생하여 실행 시간을 연장시킬 것으로 추정됩니다(해석). 질문 Q-54fe21bbe7c737d9 (열림) 또한 Standby 모드로 전환할 때 드라이버는 웨이크업 감지를 위한 ICU 채널을 활성화합니다 LinTrcv-SWS 17쪽.

조회 서비스는 재진입 가능합니다. LinTrcv_GetBusWuReason는 감지된 웨이크업 원인을 LinTrcv_TrcvWakeupReasonType 유형으로 반환합니다 [SWS_LinTrcv_00007]. 해당 값에는 LINTRCV_WU_ERROR, LINTRCV_WU_NOT_SUPPORTED, LINTRCV_WU_BY_BUS 및 LINTRCV_WU_BY_PIN가 포함됩니다 [SWS_LinTrcv_00170]. 웨이크업 원인을 얼마나 정확하게 구분할 수 있는지는 트랜시버 하드웨어에 크게 좌우됩니다 LinTrcv-SWS 28쪽. LinTrcv_GetVersionInfo는 버전 정보를 Std_VersionInfoType로 반환합니다 [SWS_LinTrcv_00008] LinTrcv-SWS 29쪽.

LinIf_SetTrcvMode를 통한 모드 변경Aufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)Channel 확인(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:DIO 핀 또는 SPI 시퀀스)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)Wartezeit abgelaufenoptOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(웨이크업을 위한 ICU 채널 활성화)E_OK / E_NOT_OK다음의 반환값:LinTrcv_SetOpMode

시퀀스 다이어그램: 모드 전환이 LinIf에서 LinTrcv로 진행됩니다. LinTrcv는 Tm을 통해 대기하고, STANDBY로 전환 시 ICU 알림을 활성화하며, 결과를 LinIf를 통해 변경 없이 반환합니다. Dio/Spi를 통한 제어 및 호출 내 대기 시간의 위치는 해석입니다. 출처: [SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS 90쪽 LinTrcv-SWS 17쪽

웨이크업 감지, 보고 및 제어

드라이버는 두 가지 웨이크업 유형을 구분합니다 LinTrcv-SWS 17쪽:

  • 내부 웨이크업: LinTrcv_Init 또는 LinTrcv_SetOpMode 등을 통해 상위 계층이 이를 트리거합니다.
  • 외부 웨이크업: 드라이버가 LIN 채널에서 이를 감지합니다. 웨이크업이 상위로 보고되려면 LinIf가 LinTrcv_CheckWakeup을 호출해야 합니다.

드라이버는 웨이크업을 위한 자체 ISR을 제공하지 않습니다. 감지는 Icu_EnableNotification 및 Icu_DisableNotification과 함께 ICU를 통해 실행됩니다. 웨이크업 유형은 구성 파라미터 LinTrcvWakeUpSupport를 통해 선택됩니다. LinTrcvWakeupByBusUsed을 사용하여 채널별 웨이크업 지원을 켜고 끌 수 있습니다 LinTrcv-SWS 17쪽.

LinTrcv_CheckWakeup은 어드레싱된 네트워크에서 웨이크업(예: 우성 버스 레벨 또는 웨이크업 핀의 네거티브 에지)을 평가합니다 LinTrcv-SWS 30쪽. R20-11에서 반환값의 의미는 다음과 같습니다 [SWS_LinTrcv_00012]:

  • E_OK: 웨이크업이 감지되었습니다.
  • E_NOT_OK: 웨이크업이 감지되지 않았습니다.

이후 릴리스의 문서 위치에서는 값을 “호출 수락됨/수락되지 않음”과 같이 다르게 정의합니다. 이 변경 사항은 R22-11에서 도입되었으며 R20-11에는 적용되지 않습니다 LinTrcv-SWS 1쪽 LinTrcv-SWS 30쪽. 감지가 성공하면 드라이버는 LinIf_WakeupConfirmation [SWS_LinTrcv_91002]을 통해 웨이크업 소스를 보고합니다. LinTrcv는 자체 콜백 알림을 제공하지 않습니다 LinTrcv-SWS 32쪽. 따라서 LinTrcv_CheckWakeup를 능동적으로 호출해야 합니다.

LinTrcv_SetWakeupMode은 동기식이며 재진입이 불가능합니다. 이는 LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]을 통해 네트워크별 웨이크업 알림을 제어합니다:

  • LINTRCV_WUMODE_ENABLE은 알림을 활성화합니다.
  • LINTRCV_WUMODE_DISABLE은 알림을 비활성화합니다.
  • LINTRCV_WUMODE_CLEAR은 저장된 웨이크업 이벤트를 지웁니다.

활성화 시 이미 저장된 이벤트가 있는 경우, 드라이버는 호출 내에서 또는 호출 직후에 알림을 실행합니다 LinTrcv-SWS 31쪽. LinIf는 이 제어를 LinIf_SetTrcvWakeupMode로 제공합니다 LinIf-SWS 93쪽.

외부 웨이크업 (R20-11에 따른 반환값)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(STANDBY로 전환 시)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegel또는 웨이크업 핀의 에지)ICU 알림부터 LinIf를 통한LinIf에 의한 처리는 LinTrcv 외부에 위치함(페이로드에 기술되지 않음)LinTrcv_CheckWakeup(LinNetwork)다음에서의 웨이크업:adressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)채널의 웨이크업 플래그 설정E_OKkein Wakeup erkanntE_NOT_OKUse Case: 웨이크업 원인 조회 (LinIf_GetTrcvWakeupReason을 통해)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

시퀀스 다이어그램: 외부 웨이크업이 ICU를 통해 감지됩니다. LinIf가 LinTrcv_CheckWakeup으로 이를 확인하고, LinTrcv가 LinIf_WakeupConfirmation을 통해 이를 확인하며, 그 후 원인을 조회할 수 있습니다(R20-11 기준 반환값). 출처: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS 17쪽 LinIf-SWS 98쪽

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt 웨이크업 이벤트에 대한 알림 비활성화됨 Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht 저장된 웨이크업 이벤트 삭제됨 Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort 호출 내 또는 그 직후 알림 Gespeichert->Sofort 예 Frei 웨이크업 이벤트에 대한 알림 활성화됨 Gespeichert->Frei 아니요 Ende E_OK 반환 (모드가 설정되지 않은 경우 E_NOT_OK) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

액티비티 다이어그램: LinTrcv_SetWakeupMode이 요청된 모드에 따라 분기합니다. 저장된 이벤트가 있는 ENABLE의 경우에만 즉시 알림이 이어집니다. 출처: [SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS 31쪽

하드웨어 액세스, 채널 구성 및 파티셔닝

드라이버가 디바이스에 액세스하는 방식은 선택 컨테이너 LinTrcvAccess에 의해 정의됩니다 LinTrcv-SWS 그림 10.3 45쪽. 두 가지 변형 중 정확히 하나를 선택해야 합니다:

  • LinTrcvDioAccess: 트랜시버 핀이 DIO 채널에 매핑됩니다.
  • LinTrcvSpiSequence: SPI 지원 디바이스가 SPI 시퀀스를 통해 처리됩니다.

다이어그램은 R23-11 및 이후 릴리스에서 가져온 것입니다. 그러나 DIO 읽기 및 쓰기 서비스와 SPI 유형은 이미 R20-11에 사용 인터페이스 또는 임포트된 유형으로 나열되어 있습니다 [SWS_LinTrcv_91003] [SWS_LinTrcv_91001].

멀티코어 시스템의 경우 R20-11에서 다음 규칙이 적용됩니다:

  • 드라이버는 지원되지 않는 파티션 할당이 포함된 구성을 거부해야 합니다 [SWS_LinTrcv_00174].
  • LinTrcvChannelEcucPartitionRef을 통해 참조되는 파티션은 LinTrcvEcucPartitionRef을 통해 참조되는 파티션의 하위 집합이어야 합니다. 모듈이 파티션을 참조하는 경우, 각 채널은 그중 정확히 하나를 참조해야 합니다 [SWS_LinTrcv_00176].
  • 동일한 통신 채널의 LinTrcvChannel 및 LinChannel은 동일한 파티션을 참조해야 합니다 [SWS_LinTrcv_00177].

멀티코어 배포는 R19-11에서 추가되었으며 R24-11에서 명확화되었습니다 LinTrcv-SWS 1쪽.

오류가 발생한 경우의 동작

런타임 오류는 반환값에 나타납니다:

  • 트랜시버와의 통신이 없거나 장애가 발생한 경우 LinTrcv_GetOpMode LinTrcv-SWS 26쪽 및 LinTrcv_GetBusWuReason는 LinTrcv-SWS 28쪽 E_NOT_OK를 반환합니다.
  • 전환이 수락되지 않았거나 실패한 경우 LinTrcv_SetOpMode은 E_NOT_OK을 반환합니다 [SWS_LinTrcv_00002].
  • 웨이크업 모드를 설정할 수 없는 경우 LinTrcv_SetWakeupMode은 E_NOT_OK을 반환합니다 LinTrcv-SWS 31쪽.
  • 오류로 인해 웨이크업 이유를 확인할 수 없는 경우 이를 위해 값 LINTRCV_WU_ERROR이 제공됩니다 [SWS_LinTrcv_00170].

개발 오류는 드라이버가 Det_ReportError [SWS_LinTrcv_91003]을 통해 보고합니다. R20-11에서는 LinTrcv_GetOpMode 및 LinTrcv_GetBusWuReason의 경우 E_NOT_OK [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]을 초래합니다. 이후 릴리스의 문서 위치에서는 구체적인 검사를 명시합니다 LinTrcv-SWS 26쪽 LinTrcv-SWS 30쪽 LinTrcv-SWS 29쪽:

  • 초기화 전 호출: LINTRCV_E_UNINIT
  • 잘못된 네트워크 번호: LINTRCV_E_INVALID_LIN_NETWORK
  • LinTrcv_GetVersionInfo에서 널 포인터: LINTRCV_E_PARAM_POINTER

내용상 이러한 검사는 R20-11에도 유효할 것으로 보입니다(해석). 질문 Q-58e3d310b525b810 (열림) 그러나 R20-11에서는 오류 분류가 정리되었고 R21-11에서는 오류 코드가 정리되었습니다. 따라서 식별자는 R20-11에서 다를 수 있습니다 LinTrcv-SWS 1쪽.

오조작의 일부는 이미 LinIf가 가로챕니다. Channel이 유효하지 않은 경우 LinIf_SetTrcvMode 및 LinIf_GetTrcvMode는 오류 LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS 90쪽를 보고합니다. 또한 LinIf_GetTrcvMode는 유효하지 않은 채널 또는 널 포인터의 경우 E_NOT_OK LinIf-SWS 91쪽을 반환합니다. LinIf_WakeupConfirmation이 유효하지 않은 웨이크업 소스를 수신하면 오류 감지가 활성화된 경우 LINIF_E_PARAM_WAKEUPSOURCE를 트리거합니다 LinIf-SWS 98쪽.

더 자세한 증거

AI 생성 가이드라인. 기반은 R20-11의 규범적 요구사항 및 일부 R23-11부터 R25-11까지의 연계된 문서 위치입니다. 릴리스 간의 편차는 본문에 명시되어 있습니다. 사양만이 구속력을 갖습니다.

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

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

함수 LinTrcv_Init은 [SWS_LinTrcv_00001]의 명세에 따라 LIN 트랜시버 드라이버 모듈의 기본 초기화를 수행하는 데 사용됩니다. 이 인터페이스는 헤더 파일 LinTrcv.h를 통해 선언되며 숫자 서비스 ID 0x00을 갖습니다[SWS_LinTrcv_00001].

사용법 및 매개변수

LinTrcv_Init의 호출은 동기식으로 실행되며 반환값이 없습니다(void) [SWS_LinTrcv_00001]. 유일한 전달 매개변수로 const LinTrcv_ConfigType* 타입의 입력 포인터 ConfigPtr이 전달되며, 이는 LIN 트랜시버의 선택된 구성 데이터 레코드를 가리킵니다[SWS_LinTrcv_00001]. 이 루틴에는 입출력 매개변수나 순수 출력 매개변수와 같은 추가 매개변수가 존재하지 않습니다[SWS_LinTrcv_00001].

동시성 및 제약사항

동시성 동작과 관련하여 LinTrcv_Init은 비재진입(Non Reentrant)으로 구속력 있게 분류됩니다[SWS_LinTrcv_00001]. 따라서 시스템에서 이 함수의 병렬 호출이나 인터럽트 호출은 배제되어야 합니다. 또한 초기화 중에는 경쟁 접근이 발생해서는 안 됩니다. 해석: 초기화 함수의 실행은 일반적으로 다른 LIN 트랜시버 드라이버 서비스가 호출되기 전인 시스템 시작 단계에서 중앙 집중식으로 수행될 것으로 보입니다. 질문 Q-9845a0c76e3146fa (열림)

이 텍스트는 AI에 의해 작성되었으며, 모든 내용은 AUTOSAR 표준의 요구사항을 기반으로 합니다.

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

함수 LinTrcv_SetOpMode [SWS_LinTrcv_00002] 📄 PDF

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

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

함수 LinTrcv_SetOpMode은 [SWS_LinTrcv_00002]에 따라 LIN 트랜시버 드라이버의 내부 상태를 전달된 작동 모드로 전환하는 역할을 합니다.

사용법 및 의미론

  • 호출 컨텍스트 및 매개변수: 호출은 매개변수 LinNetwork을 통해 각 LIN 네트워크를 지정하는 반면, OpMode(LinTrcv_TrcvModeType 유형)은 목표 작동 모드를 지정합니다([SWS_LinTrcv_00002]). 이 인터페이스는 LinTrcv.h를 통해 사용할 수 있습니다.
  • 반환 값: 트랜시버의 상태가 요청된 모드로 성공적으로 변경되는 즉시 함수는 E_OK을 반환합니다. 상태 변경이 실패하거나 수락되지 않거나 매개변수가 허용 범위를 벗어난 경우 E_NOT_OK이 반환됩니다([SWS_LinTrcv_00002]).
  • 동기식 실행: 서비스는 서비스 ID 0x01([SWS_LinTrcv_00002])으로 동기식(Sync/Async: Synchronous)으로 작동합니다.

동시성 및 제약사항

이 인터페이스는 재진입 불가(Non Reentrant)로 지정되어 있습니다([SWS_LinTrcv_00002]). 따라서 호출자는 동일한 모듈 또는 네트워크에 대해 병렬 호출이 발생하지 않도록 해야 합니다.

이 텍스트는 AI에 의해 작성되었습니다. 관련 AUTOSAR 명세서 검토를 대체하지는 않습니다.

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

함수 LinTrcv_GetBusWuReason [SWS_LinTrcv_00007] 📄 PDF

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

함수 LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

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

동기 함수 LinTrcv_CheckWakeup은 주소 지정된 LIN 네트워크에서 웨이크업 이벤트가 감지되었는지 확인하는 데 사용됩니다[SWS_LinTrcv_00012]. 이 함수는 호출자에게 해당 웨이크업 조건의 존재 여부를 직접 알립니다[SWS_LinTrcv_00012].

호출 및 매개변수

이 함수는 서비스 ID 0x07을 가지며 헤더 파일 LinTrcv.h을 통해 제공됩니다[SWS_LinTrcv_00012]:

  • LinNetwork (입력 매개변수, uint8): API 호출이 적용될 LIN 네트워크를 지정합니다[SWS_LinTrcv_00012].

반환값

Std_ReturnType 타입의 반환값은 웨이크업 확인 결과를 알립니다[SWS_LinTrcv_00012]:

  • E_OK: 지정된 LIN 네트워크에서 웨이크업 이벤트가 성공적으로 감지되었습니다[SWS_LinTrcv_00012].
  • E_NOT_OK: 지정된 LIN 네트워크에서 웨이크업 이벤트가 감지되지 않았습니다[SWS_LinTrcv_00012].

동시성

LinTrcv_CheckWakeup의 실행은 완전히 동기식으로 이루어지며 재진입 가능한 것으로 명세되어 있습니다[SWS_LinTrcv_00012]. 동기식 흐름은 함수 복귀 시 결과가 즉시 제공되도록 보장합니다.

이 사용 지침은 AUTOSAR CP R20-11의 LIN Transceiver Driver 명세를 기반으로 AI에 의해 생성되었습니다.

함수 LinTrcv_SetWakeupMode [SWS_LinTrcv_00009] 📄 PDF

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

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

동기 함수 LinTrcv_SetWakeupMode은 주소 지정된 LIN 네트워크에서 웨이크업 이벤트에 대한 알림을 활성화, 비활성화 및 지우는 데 사용됩니다[SWS_LinTrcv_00009]. 이 함수는 헤더 파일 LinTrcv.h를 통해 선언되며 서비스 ID 0x05을 갖습니다[SWS_LinTrcv_00009].

매개변수 및 반환값

이 함수는 두 개의 입력 매개변수를 필요로 합니다 [SWS_LinTrcv_00009]:

  • LINNetwork (uint8): API가 적용될 구체적인 LIN 네트워크를 지정합니다[SWS_LinTrcv_00009].
  • TrcvWakupMode (LinTrcv_TrcvWakeupModeType): 트랜시버에 대해 요청된 웨이크업 모드 또는 이유를 전달합니다[SWS_LinTrcv_00009].

반환값으로 Std_ReturnType 타입의 상태가 반환됩니다[SWS_LinTrcv_00009]:

  • E_OK: 트랜시버의 상태가 요청된 모드로 성공적으로 전환되었음을 나타냅니다[SWS_LinTrcv_00009].
  • E_NOT_OK: 개발 오류로 인해 호출이 실패했거나 원하는 웨이크업 모드를 설정할 수 없었음을 알립니다[SWS_LinTrcv_00009].

동시성 및 제약사항

이 인터페이스는 비재진입(non Reentrant)으로 명세되어 있으며 상태 변경을 동기식으로 수행합니다[SWS_LinTrcv_00009]. 따라서 호출 컴포넌트는 동일한 인터페이스에 대해 병렬 호출이 발생하지 않도록 보장해야 합니다.

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

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

타입 LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

타입 LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

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

열거형 LinTrcv_TrcvModeType은 [SWS_LinTrcv_00168]에 따라 LIN 트랜시버 드라이버의 작동 모드를 정의합니다. 이 타입 정의는 헤더 파일 Lin_GeneralTypes.h에 저장되어 상위 소프트웨어 계층에서 사용할 수 있습니다[SWS_LinTrcv_00168].

값 범위에는 트랜시버를 위한 세 가지 표준화된 상태가 포함됩니다[SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL: LIN 트랜시버의 정규 작동 모드(Transceiver mode NORMAL)를 나타냅니다[SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_STANDBY: 트랜시버의 대기 모드(Transceiver mode STANDBY)를 나타냅니다[SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_SLEEP: LIN 트랜시버의 절전 모드(Transceiver mode SLEEP)를 설명합니다[SWS_LinTrcv_00168].

사용 및 기능적 상호 작용 측면에서 이 열거형 타입은 트랜시버 상태를 일관되게 모델링하는 데 사용됩니다[SWS_LinTrcv_00168]. 이 타입은 정상 작동, 대기 및 절전 상태 간의 의도적인 상태 전환을 요청하거나 쿼리하기 위해 드라이버 함수에서 매개변수 또는 반환값으로 사용될 것으로 추정됩니다. 질문 Q-8966f1299f224eff (열림) 특정 호출 컨텍스트, 오류 코드, 동시성 및 재진입 속성은 이 데이터 타입 자체에 고정되어 있지 않고 트랜시버 드라이버의 각 API에 따라 달라집니다[SWS_LinTrcv_00168].

이 텍스트는 AI에 의해 생성되었으며 기술적 오리엔테이션을 목적으로 합니다.

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

타입 LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

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

사용 및 값 범위

타입 LinTrcv_TrcvWakeupModeType은 LIN 트랜시버 드라이버의 웨이크업 이벤트에 대한 작동 모드를 정의하는 열거형입니다[SWS_LinTrcv_00169]. 이는 헤더 파일 Lin_GeneralTypes.h를 통해 제공됩니다[SWS_LinTrcv_00169].

열거형에는 주소 지정된 네트워크를 제어하기 위한 다음 값들이 포함됩니다[SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE: 주소 지정된 네트워크에서 웨이크업 이벤트에 대한 알림을 활성화합니다[SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_DISABLE: 주소 지정된 네트워크에서 웨이크업 이벤트에 대한 알림을 비활성화합니다[SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_CLEAR: 주소 지정된 네트워크에서 이전에 저장된 웨이크업 이벤트를 지웁니다[SWS_LinTrcv_00169].

오류 처리 및 제약 조건

이 타입 자체에 대해서는 명세에 특정 오류 코드, 반환값 또는 DET/DEM 오류 메시지가 정의되어 있지 않습니다[SWS_LinTrcv_00169]. 데이터 타입으로서 직접적인 재진입 또는 실행 제한을 받지 않습니다.

상호 작용

해석: 이 타입은 네트워크별로 웨이크업 감지를 켜거나 끄고 또는 웨이크업 상태를 재설정하기 위해 LIN 트랜시버 드라이버의 API 함수에서 전달 매개변수로 사용될 것으로 보입니다[SWS_LinTrcv_00169]. 질문 Q-cfb3e28d7baefc72 (열림)

이 텍스트는 AI에 의해 작성되었습니다. 이는 오직 SWS_LinTrcv_00169의 명세 데이터만을 기반으로 합니다.

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

타입 LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00170] 📄 PDF

This type denotes the wake up reason detected by the LIN transceiver in detail.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_LinTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinTrcv@rel:R20-11#ab61bd87
Content hash
ab61bd87
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINTransceiverDriver.pdf#nameddest=SWS_LinTrcv_00001

초기화 및 상태

This service provides the version information of this module through the parameter "versioninfo".

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

서비스

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

API detects the actual software state of LIN transceiver driv er.

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

타입

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

This type denotes the wake up reason detected by the LIN transceiver in detail.