DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

ModulLin (LIN Driver)
BSW-Modul-ID82
Standard-Header#include "Lin.h"
SWS-SpezifikationAUTOSAR_SWS_LINDriver.pdf
ClusterLIN

모듈 가이드AI 생성

LIN 하드웨어를 제어하고 LIN Interface에 채널별 프레임, 슬립 상태 및 웨이크업 서비스를 제공합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: ea366bb8619c 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

LIN 하드웨어를 제어하고 LIN Interface에 채널별 프레임, 슬립 상태 및 웨이크업 서비스를 제공합니다.

LIN 드라이버는 마이크로컨트롤러의 LIN 하드웨어를 캡슐화하고 LIN Interface에 채널별 프레임, 슬립 상태 및 웨이크업 서비스를 제공합니다. 마스터 채널은 Lin_SendFrame을(를) 통해 비동기식으로 프레임을 트리거하고 Lin_GetStatus을(를) 통해 평가합니다. 슬레이브 채널은 수신된 각 헤더에 대해 LIN Interface에 인디케이션으로 응답한 후 응답을 전송, 수신 또는 무시합니다 ([SWS_Lin_00280]). 사용 가능한 서비스는 구성된 노드 유형에 따라 달라지며, 마스터 서비스는 최소 하나의 마스터 채널이 있는 경우에만 제공됩니다 ([SWS_Lin_00287]).

LIN 드라이버 Lin은(는) LIN 스택의 하드웨어 드라이버입니다. 이는 LIN 컨트롤러 또는 SCI/UART(SWS LIN Driver 9쪽)를 캡슐화하고 LIN Interface에 채널별 프레임, 슬립 상태 및 웨이크업 서비스를 제공합니다. 필수적으로 Dem_SetEventStatus, EcuM_SetWakeupEvent 및 LinIf_WakeupConfirmation이(가) 필요합니다 ([SWS_Lin_00234]). 선택적으로 DET, Icu 및 LinIf의 슬레이브 콜백을 사용합니다 ([SWS_Lin_00235]).

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

컨텍스트 다이어그램: Lin은(는) LinIf과(와) LIN 하드웨어 사이에 위치하며 EcuM, LinIf, DEM 및 DET에 웨이크업과 오류를 보고합니다. 출처: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init은(는) 모듈을 LIN_UNINIT에서 LIN_INIT(으)로 전환합니다 ([SWS_Lin_00006], SWS LIN Driver 24쪽). 그 후 각 채널은 LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING(마스터 전용) 및 LIN_CH_SLEEP 사이를 전환합니다. 이를 위해 Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup 및 Lin_WakeupInternal이(가) 제공됩니다 ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal 채널별 채널 상태 (LIN_INIT에서만) Reset Reset LIN_UNINIT LIN_UNINIT (사용 불가) Reset->LIN_UNINIT 리셋 후 LIN_INIT LIN_INIT (채널 서비스 준비 완료) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (클러스터에 참여 중) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (마스터 전용) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (웨이크업 펄스 포함) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (웨이크업 펄스 미포함)

상태 다이어그램: 모듈 상태 및 채널 상태와 그 전이. Lin_GetStatus이(가) LIN_CH_SLEEP(으)로의 단계를 완료한다는 것은 다이어그램에 대한 해석입니다. 출처: SWS LIN Driver 24쪽, [SWS_Lin_00166]

마스터 채널과 슬레이브 채널은 근본적으로 다르게 작동합니다. 마스터는 Lin_SendFrame을(를) 통해 비동기식으로 프레임을 트리거하고 나중에 Lin_GetStatus을(를) 통해 결과를 쿼리합니다 ([SWS_Lin_00191], [SWS_Lin_00168]). 이러한 서비스는 최소 하나의 채널이 마스터로 구성된 경우에만 제공됩니다 ([SWS_Lin_00287]). 슬레이브는 LinIf_HeaderIndication을(를) 통해 각 헤더를 보고합니다 ([SWS_Lin_00280]). 그런 다음 Drc에 따라 응답을 전송, 수신 또는 무시하고 LinIf_TxConfirmation 또는 LinIf_RxIndication(으)로 완료합니다 ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

버스에서의 웨이크업은 Lin_CheckWakeup이(가) 확인하고 EcuM 및 LinIf에 보고합니다 ([SWS_Lin_00160]). 오류 발생 시 오사용은 DET로 전달되며, 예를 들어 LIN_E_UNINIT이(가) 있습니다 ([SWS_Lin_00258]). 하드웨어 타임아웃은 LIN_E_TIMEOUT(으)로 DEM에 보고됩니다 ([SWS_Lin_00290]). 버스 오류는 마스터 채널의 경우 상태로 반환되고, 슬레이브 채널은 LinIf_LinErrorIndication을(를) 통해 보고합니다 ([SWS_Lin_00233], [SWS_Lin_00277]).

LIN 드라이버의 역할, 시스템 경계 및 인스턴스 관계

LIN 드라이버 Lin은(는) 마이크로컨트롤러의 LIN 하드웨어를 캡슐화합니다. LIN Interface(LinIf)에 채널 관련 서비스를 제공합니다: 프레임 송수신, 채널 슬립 및 웨이크업 전환, 웨이크업 확인. 모든 서비스는 Lin.h을(를) 통해 사용할 수 있습니다 ([SWS_Lin_00191], [SWS_Lin_00160]). 하드웨어와 관련하여 명세에서는 완전한 LIN 컨트롤러, 단순 SCI/UART 및 확장 SCI/UART의 세 가지 유형의 LIN 하드웨어 유닛을 언급합니다. 이들은 각각 트랜시버 IC를 통해 LIN 클러스터에 연결됩니다 (SWS LIN Driver 9쪽). 드라이버 자체는 콜백 함수를 제공하지 않습니다 (SWS LIN Driver 49쪽). 대신 주변 환경의 함수를 호출합니다.

외부에 대한 필수 인터페이스는 Dem_SetEventStatus, EcuM_SetWakeupEvent 및 LinIf_WakeupConfirmation입니다 ([SWS_Lin_00234]). 선택적으로 드라이버는 다음 등을 사용합니다:

  • Det_ReportError 및 EcuM_CheckWakeup,
  • Icu_EnableNotification 및 Icu_DisableNotification,
  • 슬레이브 채널의 경우 콜백 LinIf_HeaderIndication, LinIf_RxIndication 및 LinIf_LinErrorIndication ([SWS_Lin_00235]).

NetworkHandleType, EcuM_WakeupSourceType 또는 Std_ReturnType과(와) 같은 임포트된 유형은 [SWS_Lin_00226]에 나열되어 있습니다.

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

컨텍스트 다이어그램: Lin은(는) LinIf과(와) LIN 하드웨어 유닛 사이에 있습니다. 드라이버는 웨이크업을 EcuM 및 LinIf에 보고하고, 오류를 DEM 및 DET에 보고합니다. 출처: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver 9쪽

드라이버는 파티셔닝이 가능합니다. 각 파티션에서 독립된 인스턴스로 작동하며, API 호출은 해당 호출이 발생한 파티션에만 영향을 미칩니다 ([SWS_Lin_CONSTR_00270]). LinEcucPartitionRef이(가) 파티션을 참조하는 경우, LinChannelEcucPartitionRef은(는) 그중 정확히 하나를 참조해야 합니다 ([SWS_Lin_CONSTR_00291]). 통신 채널의 LinChannel 및 LinTrcvChannel은(는) 동일한 파티션을 참조해야 합니다 ([SWS_Lin_CONSTR_00279]). 구현에서 지원하지 않는 파티션 할당은 모듈에 의해 거부됩니다 ([SWS_Lin_00269]). 채널별로 전송 속도, 채널 ID, LinChannelWakeupSupport 및 노드 유형 LinNodeType 등이 구성됩니다. 이 컨테이너 설명은 이후 릴리스에서 가져온 것입니다 (SWS LIN Driver 60쪽).

Lin_Init부터 슬립 상태까지의 모듈 및 채널 상태

리셋 후 모듈은 LIN_UNINIT 상태가 되며 사용할 수 없습니다. Lin_Init은(는) 모듈을 LIN_INIT(으)로 이끌며, 여기서 사용 가능한 모든 채널이 서비스 준비를 마칩니다 (SWS LIN Driver 24쪽). Lin_Init은(는) Lin_ConfigType 구조체에 대한 포인터를 받습니다. 그 내용은 하드웨어마다 다르며 드라이버, 하드웨어 유닛 및 채널을 위한 초기화 데이터를 포함합니다 ([SWS_Lin_00006], [SWS_Lin_00227]). 주변 환경은 런타임 중에 Lin_Init을(를) 한 번만 호출해야 합니다 (SWS LIN Driver 24쪽).

LIN_INIT 내에서 각 채널은 자체 상태를 갖습니다:

  • LIN_CH_OPERATIONAL: 채널이 클러스터에 참여합니다.
  • LIN_CH_SLEEP: 웨이크업 감지가 활성화되어 있으며, 하드웨어는 필요한 경우 저전력 모드에 있습니다.
  • LIN_CH_SLEEP_PENDING: 마스터 채널 전용, Lin_GoToSleep 이후.

근거: SWS LIN Driver 24쪽, [SWS_Lin_00166]. Lin_GoToSleepInternal은(는) 채널을 즉시 LIN_CH_SLEEP(으)로 설정합니다 ([SWS_Lin_00167]). Lin_Wakeup은(는) 웨이크업 펄스와 함께 LIN_CH_OPERATIONAL(으)로 되돌아가고, Lin_WakeupInternal은(는) 펄스 없이 되돌아갑니다 ([SWS_Lin_00169], [SWS_Lin_00256]).

해석: LIN_CH_SLEEP_PENDING에서 LIN_CH_SLEEP(으)로의 전이는 Lin_GetStatus이(가) 완료할 것으로 추정됩니다. 질문 Q-bb592e1d2ab668f0 (열림) 다이어그램에서는 Lin_GetStatus을(를) 마스터 파트의 전이로 표시하며, LIN Interface는 Go-to-sleep 명령 검사 시 반환값 LIN_CH_SLEEP을(를) 기대합니다 (SWS LIN Interface 56쪽).

LinZustaende cluster_kanal 채널별 채널 상태 (LIN_INIT에서만) Reset Reset LIN_UNINIT LIN_UNINIT (사용 불가) Reset->LIN_UNINIT 리셋 후 LIN_INIT LIN_INIT (채널 서비스 준비 완료) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (클러스터에 참여 중) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (마스터 전용) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (웨이크업 펄스 포함) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (웨이크업 펄스 미포함)

상태 다이어그램: Lin_Init은(는) 모듈을 LIN_UNINIT에서 LIN_INIT(으)로 전환합니다. 그 안에서 각 채널은 슬립 및 웨이크업 서비스를 통해 작동과 슬립 사이를 전환합니다. Lin_GetStatus을(를) 통한 전이는 해석입니다. 출처: SWS LIN Driver 24쪽, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Lin_PduType을 통한 프레임 설명 및 데이터 매핑

LinIf과(와) 드라이버 사이에서 Lin_PduType은(는) 프레임을 설명합니다. 이 구조체는 Pid, 체크섬 모델 Cs, 응답 방향 Drc, 데이터 길이 Dl 및 데이터 포인터 SduPtr을(를) 포함합니다 ([SWS_Lin_00232]). 요소 유형:

  • Lin_FramePidType: 2개의 패리티 비트를 포함한 식별자 0…0x3F, 값 범위 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: 1…8 데이터 바이트 ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS 또는 LIN_CLASSIC_CS ([SWS_Lin_00229]). 드라이버는 두 체크섬을 모두 계산할 수 있어야 합니다 ([SWS_Lin_00019]).

Lin_FrameResponseType은(는) 노드가 응답을 처리하는 방법을 정의합니다 ([SWS_Lin_00230]): 노드 자체가 응답을 전송하거나(LIN_FRAMERESPONSE_TX), 관련 있는 외부 응답을 수신하거나(LIN_FRAMERESPONSE_RX), 응답을 무시합니다(LIN_FRAMERESPONSE_IGNORE). 메모리에서 가장 먼저 전송되는 바이트는 요소 0에 위치하고, 가장 마지막에 전송되는 바이트는 요소 n-1에 위치합니다 (SWS LIN Driver 30쪽). 단순 UART와 같이 하드웨어가 바이트를 버퍼링할 수 없는 경우, 드라이버는 임시 버퍼를 제공합니다. 리드백 검사를 포함한 전송 및 수신은 논블로킹 방식으로 실행됩니다 (SWS LIN Driver 28쪽).

마스터 채널: Lin_SendFrame 및 상태 쿼리

마스터 채널에서 LinIf은(는) 비동기식 Lin_SendFrame을(를) 통해 각 프레임을 트리거합니다. 이 서비스는 LIN 헤더와 필요한 경우 응답을 전송합니다 ([SWS_Lin_00191]). 이는 스케줄의 수신, 전송 및 Slave-to-Slave 항목에 적용됩니다 (SWS LIN Interface 34쪽, SWS LIN Interface 37쪽, SWS LIN Interface 40쪽).

LinIf은(는) 동기식 Lin_GetStatus을(를) 사용하여 결과를 쿼리합니다. 가장 이르게는 최대 프레임 길이 이후, 늦어도 다음 스케줄 항목이 도래할 때 수행합니다 (SWS LIN Interface 35쪽, [SWS_Lin_00168]). 이 서비스는 LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY 또는 LIN_RX_NO_RESPONSE과(와) 같은 Lin_StatusType을(를) 반환합니다. Lin_SduPtr을(를) 통해 섀도 또는 하드웨어 수신 버퍼에 대한 포인터도 추가로 반환합니다 ([SWS_Lin_00233]).

수신된 데이터는 다음 프레임이 성공적으로 수신되거나 채널 상태가 변경될 때까지 일관성을 유지합니다. 전체 수신 처리는 Lin_GetStatus에 포함될 수 있습니다 (SWS LIN Driver 30쪽). Event-triggered 프레임의 경우 다음이 적용됩니다 (SWS LIN Interface 127쪽, SWS LIN Interface 129쪽):

  • LIN_RX_NO_RESPONSE은(는) LinIf을(를) 오류로 평가하지 않습니다.
  • LIN_RX_ERROR은(는) 충돌로 간주되며 충돌 해결 스케줄로의 전환을 유발합니다.

Lin_SendFrame, Lin_GoToSleep 및 Lin_GetStatus은(는) LinNodeType을(를) 통해 최소 하나의 채널이 마스터로 구성된 경우에만 제공됩니다 ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). R20-11에서 이러한 서비스는 재진입 불가능(non-reentrant)으로 명세되어 있습니다 ([SWS_Lin_00168]). 이후 버전에서는 서로 다른 채널에 대한 재진입을 허용하지만(SWS LIN Driver 48쪽), R20-11의 경우 해당 요구사항이 적용됩니다.

마스터 채널에서의 프레임 처리BSW-Task (zyklisch)LinIfLinObere SchichtUse Case: 스케줄 엔트리 만료LinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OK비동기: 헤더 및 응답비차단 방식으로 실행됨Use Case: 최대 프레임 길이 이후부터 상태 확인loop프레임이 계속 실행되는 동안 MainFunction 호출마다LinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKLin_SduPtr을 통해 데이터 수신 (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,동작 없음LIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

시퀀스 다이어그램: 마스터는 Lin_SendFrame을(를) 통해 비동기식으로 프레임을 트리거하고 이후의 MainFunction 호출에서 Lin_GetStatus을(를) 통해 결과를 평가합니다. 출처: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface 128쪽, SWS LIN Interface 129쪽, SWS LIN Interface 40쪽

슬레이브 채널: 헤더 기반 응답 처리

슬레이브 채널은 LIN_CH_OPERATIONAL에서 언제든지 헤더를 수신할 수 있어야 합니다 ([SWS_Lin_00272]). 드라이버는 각 헤더에 대해 LinIf_HeaderIndication을(를) 호출합니다. 이때 PduPtr->Pid은(는) 수신된 PID를 포함하고 PduPtr->SduPtr은(는) 해당 하드웨어 또는 섀도 버퍼를 가리킵니다 ([SWS_Lin_00280]). 하드웨어가 유효하지 않은 PID를 감지하지 못하면, 드라이버는 PID를 검사 없이 그대로 전달합니다 ([SWS_Lin_00271]). 반환값 E_OK 이후 드라이버는 PduPtr->Drc을(를) 평가합니다 ([SWS_Lin_00282]):

  • LIN_FRAMERESPONSE_TX의 경우 Cs, Dl 및 SduPtr을(를) 사용하여 응답을 전송합니다 ([SWS_Lin_00283]).
  • LIN_FRAMERESPONSE_RX의 경우 Cs 및 Dl을(를) 사용하여 수신을 구성합니다 ([SWS_Lin_00284]).

LinIf_HeaderIndication이(가) E_NOT_OK을(를) 반환하거나 Drc이(가) LIN_FRAMERESPONSE_IGNORE과(와) 같으면 드라이버는 응답을 무시합니다 ([SWS_Lin_00286]). 그런 다음 다음 헤더가 올 때까지 아무것도 보고하지 않습니다 ([SWS_Lin_00276]). 성공적으로 수신된 응답은 LinIf_RxIndication을(를) 통해 직접 전달되고, 전송된 응답은 LinIf_TxConfirmation을(를) 통해 확인됩니다 ([SWS_Lin_00274], [SWS_Lin_00275]). 다음 헤더가 보고되기 전에 관련 있는 모든 응답은 이러한 콜백 중 하나 또는 LinIf_LinErrorIndication(으)로 완료되어야 합니다 ([SWS_Lin_00285]). 수신 다이어그램은 두 가지 하드웨어 변형을 구분합니다: 하드웨어 LIN 컨트롤러와, 드라이버가 인터럽트를 통해 각 바이트를 버퍼로 복사하는 단순 UART입니다 (SWS LIN Driver 57쪽).

슬레이브 채널에서의 헤더 및 Response 처리LinController/UARTLinLinIfObere SchichtUse Case: Header-Empfang in LIN_CH_OPERATIONALInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)PduPtr->Pid, PduPtr->SduPtr gesetztEvaluatePID()optSende-FrameTriggerTransmit (Daten in SduPtr-Puffer)SetPduPtrValues() (Drc, Cs, Dl)E_OK / E_NOT_OKPduPtr->Drc auswertenaltE_OK 및 Drc = LIN_FRAMERESPONSE_TXCs, Dl, SduPtr을 사용하여 Response 전송Interrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK 및 Drc = LIN_FRAMERESPONSE_RXCs, Dl을 사용하여 수신 구성Interrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK 또는 Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;다음 헤더까지 메시지 없음전송/수신 중 버스 오류: 중단 및LinIf_LinErrorIndication(Channel, ErrorStatus)

시퀀스 다이어그램: 슬레이브 채널에서 각 헤더는 LinIf에 대한 인디케이션을 트리거합니다. 드라이버는 Drc에 따라 응답을 전송, 수신 또는 무시합니다. 출처: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface 121쪽, SWS LIN Interface 132쪽

슬립, 웨이크업 및 웨이크업 감지

마스터만이 Go-to-sleep 명령을 보낼 수 있습니다. Lin_GoToSleep은(는) LIN 2.1에 따라 이를 비동기식으로 전송하며, 전송 오류가 발생하더라도 채널을 LIN_CH_SLEEP_PENDING(으)로 설정합니다. LinChannelWakeupSupport이(가) 구성된 경우 이 서비스는 버스 모니터링도 활성화합니다 ([SWS_Lin_00166], SWS LIN Driver 43쪽). 슬레이브에는 Lin_GoToSleep을(를) 적용할 수 없으며, 대신 Lin_GoToSleepInternal을(를) 사용합니다 (SWS LIN Driver 31쪽). 이 서비스는 동기식으로 LIN_CH_SLEEP을(를) 설정하고, 웨이크업 감지를 활성화하며, 선택적으로 하드웨어를 절전 모드로 전환합니다 ([SWS_Lin_00167], SWS LIN Driver 44쪽). 각 채널은 다른 채널과 독립적으로 슬립 요청을 수락합니다 (SWS LIN Driver 31쪽).

웨이크업을 위해 두 가지 서비스가 제공됩니다. Lin_Wakeup은(는) 버스에 웨이크업 펄스를 전송하고, Lin_WakeupInternal은(는) 펄스 없이 채널을 작동 상태로 설정합니다 ([SWS_Lin_00169], [SWS_Lin_00262]). 버스에서의 웨이크업은 Lin_CheckWakeup이(가) 확인합니다. 서비스가 지속적인 Low RxD 레벨과 같은 이벤트를 감지하면, 즉시 EcuM_SetWakeupEvent을(를) 통해 EcuM에 보고하고 LinIf_WakeupConfirmation을(를) 통해 LinIf에 보고합니다 ([SWS_Lin_00160], SWS LIN Driver 42쪽). LinIf_CheckWakeup은(는) 웨이크업 소스를 기반으로 Lin_CheckWakeup을(를) 호출할지 또는 LinTrcv_CheckWakeup을(를) 호출할지 결정합니다 (SWS LIN Interface 112쪽). LIN은 웨이크업 유효성 검증을 필요로 하지 않습니다 (SWS EcuM 173쪽).

LIN 버스로부터의 웨이크업 확인LIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,버스 모니터링 활성 (LinChannelWakeupSupport)웨이크업 이벤트 (인터럽트 또는 폴링)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(소스 LIN 컨트롤러; 그 외에는 LinTrcv_CheckWakeup)Wake-up auswerten(z. B. RxD dauerhaft low)optWake-up erkanntEcuM_SetWakeupEvent()LinIf_WakeupConfirmation()E_OK / E_NOT_OKE_OK / E_NOT_OKLIN은 웨이크업 유효성 검증을 필요로 하지 않음

시퀀스 다이어그램: 버스에서의 웨이크업은 EcuM 및 LinIf_CheckWakeup을(를) 통해 Lin_CheckWakeup(으)로 전달됩니다. 드라이버는 감지된 이벤트를 EcuM 및 LinIf에 보고합니다. 출처: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver 42쪽, SWS LIN Interface 112쪽, SWS EcuM 147쪽

오류가 발생한 경우의 동작

개발 오류 감지가 활성화된 경우 서비스는 오사용을 DET에 보고합니다 ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; Lin_Wakeup의 경우 SWS LIN Driver 45쪽와(과) 유사):

  • 초기화 전 호출 시 LIN_E_UNINIT,
  • 유효하지 않거나 비활성 상태인 채널의 경우 LIN_E_INVALID_CHANNEL,
  • LIN_CH_SLEEP 외부에서 웨이크업 발생 시 LIN_E_STATE_TRANSITION.

Lin_GetVersionInfo은(는) LIN_E_PARAM_POINTER을(를) 통해 NULL 포인터를 보고합니다([SWS_Lin_00161], SWS LIN Driver 41쪽). DET가 비활성화된 경우 유효하지 않은 채널에 대해 Lin_CheckWakeup은(는) E_NOT_OK을(를) 반환합니다(SWS LIN Driver 42쪽). 일반적으로 E_NOT_OK 및 LIN_NOT_OK은(는) 개발 또는 프로덕션 오류가 발생했음을 나타냅니다([SWS_Lin_00191], [SWS_Lin_00233]).

프로덕션 오류로 LIN_E_TIMEOUT이(가) 명시되어 있습니다. 하드웨어 제어 레지스터 변경 후 상태 전환을 대기해야 하는 경우, 구성 가능한 타임아웃이 이 대기 시간을 보호합니다. 타임아웃이 만료되면 오류가 보고됩니다([SWS_Lin_00290]). 이 보고는 Dem_SetEventStatus([SWS_Lin_00234])을(를) 거쳐 LinDemEventParameterRefs에서 참조된 이벤트로 전달됩니다(SWS LIN Driver 65쪽).

드라이버는 노드 유형에 따라 통신 오류를 서로 다르게 보고합니다. 마스터 채널은 이를 Lin_GetStatus의 상태로 전달합니다([SWS_Lin_00233]):

  • 헤더의 리드백, 패리티 또는 버스 오류 시 LIN_TX_HEADER_ERROR,
  • 응답 전송 오류 시 LIN_TX_ERROR,
  • 프레이밍, 오버런 또는 체크섬 오류 및 응답이 너무 짧은 경우 LIN_RX_ERROR.

슬레이브 채널은 프레임 처리를 중단하고 Lin_SlaveErrorType을(를) 동반하여 LinIf_LinErrorIndication을(를) 호출합니다([SWS_Lin_00277], [SWS_Lin_91140]). 헤더를 대기하는 동안 발생하는 유효하지 않은 버스 이벤트는 LIN_ERR_HEADER(으)로 보고합니다([SWS_Lin_00281]).

LinFehlerpfade start LIN 드라이버 내 오류 이벤트 art 오류 유형? start->art dev 개발 오류 (DET 감지가 활성화된 경우에만) art->dev API 오용 hw 하드웨어 제어 레지스터 변경 후 대기 시 타임아웃 art->hw Hardwarefehler com 버스 상의 통신 오류 art->com Busfehler det Det_ReportError: LIN_E_UNINIT / LIN_E_INVALID_CHANNEL / LIN_E_STATE_TRANSITION / LIN_E_PARAM_POINTER dev->det ret 반환값 E_NOT_OK 또는 LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ 채널의 노드 유형? com->typ master 마스터: Lin_GetStatus 호출 시 오류 상태 (LIN_TX_HEADER_ERROR, LIN_TX_ERROR, LIN_RX_ERROR) typ->master Master slave Slave: aktuelle Frame-Bearbeitung abbrechen typ->slave Slave sind LinIf_LinErrorIndication(Channel, Lin_SlaveErrorType) z. B. LIN_ERR_HEADER, LIN_ERR_RESP_CHKSUM, LIN_ERR_NO_RESP slave->sind

액티비티 다이어그램: 개발 오류는 DET로, 하드웨어 타임아웃은 DEM으로 전달됩니다. 버스 통신 오류는 마스터 채널에서는 상태로, 슬레이브 채널에서는 오류 인디케이션으로 보고됩니다. 출처: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

더 자세한 증거

AI 생성 가이드. 제공된 증거 자료에만 근거하며, 개별 문서 구절은 이후 릴리스에서 발췌되었습니다. 규범적인 것은 R20-11의 요구사항입니다. 해석으로 표시된 진술은 직접적으로 입증된 것은 아닙니다.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

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

동기 함수 Lin_Init은 명세 [SWS_Lin_00006]에 따라 AUTOSAR Classic Platform의 LIN 드라이버 모듈을 초기화하는 데 사용됩니다. 이 인터페이스는 헤더 Lin.h를 통해 제공되며 내부적으로 서비스 ID 0x00을 통해 주소 지정됩니다[SWS_Lin_00006].

함수의 사용 및 호출에는 다음 매개변수 및 인터페이스 조건이 적용됩니다:

  • 입력 매개변수: 유일한 전달 매개변수로 Config이 기대됩니다[SWS_Lin_00006]. 이는 const Lin_ConfigType* 타입의 LIN 드라이버 구성 데이터 레코드에 대한 포인터입니다[SWS_Lin_00006]. 이 인터페이스에는 입출력 매개변수나 순수 출력 매개변수가 모두 정의되어 있지 않습니다[SWS_Lin_00006].
  • 반환값: 이 함수는 반환값을 반환하지 않습니다(void) [SWS_Lin_00006].
  • 실행 시맨틱: 처리는 완전히 동기식(Synchronous)으로 수행되므로 드라이버의 초기화 단계가 함수 호출 중에 직접 처리됩니다[SWS_Lin_00006].

호출 컨텍스트 및 동시성과 관련하여 Lin_Init은 비재진입(Non Reentrant)으로 정의되어 있습니다[SWS_Lin_00006]. 해석: 이 함수는 LIN 드라이버 모듈을 기본적으로 초기화하고 비재진입으로 설계되었으므로, 일반적으로 LIN 드라이버의 다른 서비스가 사용되기 전인 전체 시스템의 시작 단계에서 호출될 것으로 보입니다. 질문 Q-d535602a0d4708ce (열림) 서로 다른 실행 컨텍스트에서의 동시 호출이나 다중 호출은 허용되지 않을 것으로 추정됩니다.

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

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

함수 Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

This function checks if a wakeup has occurred on the addressed LIN channel.

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

동기 함수 Lin_CheckWakeup은 주소 지정된 LIN 채널에서 웨이크업 이벤트가 발생했는지 확인하는 데 사용됩니다[SWS_Lin_00160]. 이 인터페이스는 헤더 파일 Lin.h를 통해 사용 가능하며 서비스 ID 0x0a을 갖습니다[SWS_Lin_00160]. 채널을 식별하기 위해 함수는 데이터 타입 uint8의 매개변수 Channel를 받습니다[SWS_Lin_00160]. 이 인터페이스에는 추가적인 입력 또는 출력 매개변수가 정의되어 있지 않습니다[SWS_Lin_00160].

실행 결과는 반환 타입 Std_ReturnType을 통해 동기식으로 반환됩니다[SWS_Lin_00160]. 상태 값 E_OK는 API 호출 실행 중에 오류가 발생하지 않았음을 나타냅니다[SWS_Lin_00160]. 반면 실행 중에 오류가 발생하면 서비스는 반환값 E_NOT_OK를 반환합니다[SWS_Lin_00160]. 이 요소에 대한 특정 오류 코드 및 DET 또는 DEM 알림은 소스에 명세되어 있지 않습니다.

동시성 동작과 관련하여 Lin_CheckWakeup은 비재진입(Non Reentrant)으로 정의되어 있습니다[SWS_Lin_00160]. 따라서 호출자는 호출이 순차적으로 이루어지고 동시 실행이 발생하지 않도록 해야 합니다. 명세에 정확한 호출 컨텍스트가 상세히 정의되어 있지 않으므로, 호출은 웨이크업 관리 또는 ECU State Manager와 같은 상위 계층에 의해 시작될 것으로 추정됩니다. 질문 Q-40221056a2e2c042 (열림)

이 텍스트는 AI에 의해 작성되었으며, 모든 진술은 AUTOSAR 표준의 요구사항에서 비롯되었습니다.

함수 Lin_SendFrame [SWS_Lin_00191] 📄 PDF

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

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

함수 Lin_SendFrame은 LIN 헤더 및 필요한 경우 해당 LIN 응답을 전송하는 데 사용되며, LIN 마스터 노드 전용입니다[SWS_Lin_00191]. 포인터 PduInfoPtr를 통해 마스터 응답, 슬레이브 응답 또는 슬레이브 간 통신을 나타낼 수 있는 프레임 응답의 전송 방향이 결정됩니다[SWS_Lin_00191].

호출 및 매개변수: 함수의 실행은 비동기식으로 이루어집니다[SWS_Lin_00191]. 호출 시 다음 입력 매개변수가 전달됩니다:

  • Channel: 대상 LIN 채널을 uint8로 지정합니다[SWS_Lin_00191].
  • PduInfoPtr: 보호 식별자(PID), 체크섬 모델(Checksum Model), 응답 타입, 데이터 길이(Dl) 및 SDU에 대한 데이터 포인터를 포함하는 Lin_PduType 타입의 구조체에 대한 포인터입니다[SWS_Lin_00191].

반환값 및 오류 동작: 이 함수는 반환 타입 Std_ReturnType을 제공합니다[SWS_Lin_00191]:

  • E_OK: 전송 요청이 성공적으로 수신되었으며 비동기 실행을 위해 수락되었습니다[SWS_Lin_00191].
  • E_NOT_OK: 개발 오류(Development Error) 또는 생산 오류(Production Error)가 존재하여 전송 요청이 거부되었습니다[SWS_Lin_00191].

동시성 및 통합: 인터페이스는 비재진입(Non Reentrant)으로 명세되어 있으므로 동일한 채널에서의 병렬 호출은 피해야 합니다[SWS_Lin_00191]. 이 함수는 서비스 ID 0x04을 가지며 헤더 파일 Lin.h를 통해 포함됩니다[SWS_Lin_00191].

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

함수 Lin_GoToSleep [SWS_Lin_00166] 📄 PDF

Std_ReturnType Lin_GoToSleep (uint8 Channel);

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

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

기능 및 호출 컨텍스트

함수 Lin_GoToSleep은 지정된 LIN 채널로 Go-to-Sleep 명령을 전송하도록 LIN 드라이버에 지시합니다 [SWS_Lin_00166]. 이 드라이버 서비스는 서비스 ID 0x06를 가지며 헤더 파일 Lin.h을 통해 제공됩니다 [SWS_Lin_00166]. 서비스 실행은 호출자에게 비동기식으로 수행됩니다 [SWS_Lin_00166]. 함수 선언은 Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166]입니다.

매개변수 및 반환값

유일한 전달 매개변수로 uint8 유형의 Channel이 전달되며, 이는 액세스할 LIN 채널을 식별합니다 [SWS_Lin_00166]. 추가적인 입력 또는 출력 매개변수는 존재하지 않습니다 [SWS_Lin_00166].

Std_ReturnType 유형의 반환 값은 요청 수락에 대한 정보를 제공합니다 [SWS_Lin_00166]:

  • E_OK: Go-to-Sleep 명령이 드라이버에 의해 성공적으로 수락되었습니다 [SWS_Lin_00166].
  • E_NOT_OK: 개발 오류 또는 프로덕션 오류가 발생하여 명령이 수락되지 않았습니다 [SWS_Lin_00166].

제약 사항 및 동시성

동시성과 관련하여 함수는 재진입 불가(Non Reentrant)로 선언되어 있습니다 [SWS_Lin_00166]. 중요한 기능적 제한 사항으로 Lin_GoToSleep는 LIN 마스터 노드 전용입니다 [SWS_Lin_00166].

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

함수 Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

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

동기 함수 Lin_GoToSleepInternal은 지정된 LIN 채널의 상태를 LIN_CH_SLEEP로 설정하고, 웨이크업 감지를 활성화하며, 하드웨어에서 지원되는 경우 LIN 하드웨어 유닛을 선택적으로 감소된 에너지 절약 모드로 전환합니다 [SWS_Lin_00167]. 원하는 LIN 채널의 지정은 uint8 유형의 입력 매개변수 Channel을 통해 수행되며, 다른 입력 또는 출력 매개변수는 없습니다 [SWS_Lin_00167].

실행 결과는 Std_ReturnType 유형의 반환 값을 통해 동기식으로 신호됩니다 [SWS_Lin_00167]:

  • E_OK: 슬립 모드로 전환하기 위한 명령이 성공적으로 수락되었습니다 [SWS_Lin_00167].
  • E_NOT_OK: 개발 오류 또는 프로덕션 오류가 발생하여 명령이 거부되었습니다 [SWS_Lin_00167].

동시성 및 호출 컨텍스트와 관련하여 Lin_GoToSleepInternal은 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_Lin_00167]. 따라서 호출 소프트웨어 엔티티는 호출이 순차적으로 이루어지고 동시에 중첩되지 않도록 보장해야 합니다. 이 함수는 서비스 ID 0x09 아래에 정의되어 있으며 헤더 파일 Lin.h를 통해 사용할 수 있습니다 [SWS_Lin_00167].

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

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

함수 Lin_Wakeup [SWS_Lin_00169] 📄 PDF

Std_ReturnType Lin_Wakeup (uint8 Channel);

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

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

사용법 및 호출 컨텍스트

함수 Lin_Wakeup은 AUTOSAR Classic 플랫폼의 드라이버 모듈 Lin에 속합니다 [SWS_Lin_00169]. 그 목적은 지정된 버스 채널에서 웨이크업 펄스(Wake-up Pulse)를 생성하고 채널 상태를 즉시 LIN_CH_OPERATIONAL으로 전환하는 것입니다 [SWS_Lin_00169]. 인터페이스는 서비스 ID 0x07 및 시그니처 Std_ReturnType Lin_Wakeup (uint8 Channel)을 포함하여 헤더 파일 Lin.h를 통해 제공됩니다 [SWS_Lin_00169].

입력 매개변수로 함수는 제어할 LIN 채널을 지정하는 uint8 유형의 Channel을 받습니다 [SWS_Lin_00169]. 입출력 매개변수나 순수 출력 매개변수는 존재하지 않습니다 [SWS_Lin_00169]. 실행 동작은 비동기식(Asynchronous)입니다. 따라서 함수에서의 복귀는 작업 수락만을 확인할 뿐이며, 물리적 웨이크업 펄스는 버스에서 나중에 생성됩니다 [SWS_Lin_00169].

반환값 및 오류 처리

반환 유형 Std_ReturnType을 통해 작업 수락 결과가 보고됩니다 [SWS_Lin_00169]:

  • E_OK: 웨이크업 요청이 LIN 드라이버에 의해 수락되었으며 처리됩니다 [SWS_Lin_00169].
  • E_NOT_OK: 개발 오류 또는 프로덕션 오류가 발생하여 요청이 거부되었습니다 [SWS_Lin_00169].

동시성 및 제약사항

이 함수는 사양에 따라 재진입 불가(Non Reentrant)로 분류되어 있습니다 [SWS_Lin_00169]. 따라서 동일한 드라이버 인스턴스에 대해 서로 다른 실행 컨텍스트로부터 중단되거나 동시에 호출되어서는 안 됩니다. 호출 컴포넌트는 적절한 동기화를 보장해야 합니다.

이 사용 참고사항은 AUTOSAR Classic R20-11 사양을 기반으로 자동 생성되었습니다.

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

함수 Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

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

헤더 Lin.h을 통해 제공되는 함수 Lin_WakeupInternal은 물리적 LIN 버스에 웨이크업 펄스를 출력하지 않고 LIN 채널을 비동기식으로 작동 상태로 전환합니다LIN_CH_OPERATIONAL, [SWS_Lin_00256]. 이 함수는 버스 웨이크업 신호를 전송해서는 안 되는 상위 LIN 인터페이스의 내부 웨이크업 요청을 처리합니다[SWS_Lin_00262]. 호출은 uint8 타입의 매개변수 Channel를 통해 이루어집니다. 이 함수는 웨이크업 요청이 수락된 경우 E_OK을 반환하고, 요청이 거부되었거나 개발 또는 생산 오류가 있는 경우 E_NOT_OK을 반환합니다[SWS_Lin_00256].

호출 컨텍스트 및 동시성에 대해 Lin_WakeupInternal은 비재진입(Non Reentrant)입니다[SWS_Lin_00256]. 엄격한 순서 조건으로서 주소 지정된 채널의 상태 머신은 호출 시점에 유휴 상태 LIN_CH_SLEEP에 있어야 합니다[SWS_Lin_00260].

개발 오류 감지가 활성화된 경우 모듈은 다음 오류 조건을 모니터링하고 해당 개발 오류를 보고합니다:

  • LIN_E_UNINIT: LIN 드라이버 모듈 초기화 전 함수 호출[SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: 전달된 채널 매개변수가 유효하지 않거나 주소 지정된 채널이 비활성 상태임[SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: LIN 채널이 LIN_CH_SLEEP 상태에 있지 않아 잘못된 상태 전환이 발생함[SWS_Lin_00260].

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

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

타입 Lin_ConfigType [SWS_Lin_00227] 📄 PDF

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

타입 Lin_FramePidType [SWS_Lin_00228] 📄 PDF

Represents all valid protected identifier used by Lin_ Send Frame().

타입 Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

This type is used to specify the Checksum model to be used for the LIN Frame.

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

열거형 타입 Lin_FrameCsModelType은 [SWS_Lin_00229]에 따라 개별 LIN 프레임에 사용되는 체크섬 모델을 정의하는 데 사용됩니다. 이 타입 정의는 기본적으로 헤더 Lin_GeneralTypes.h를 통해 제공됩니다[SWS_Lin_00229].

[SWS_Lin_00229]에 따르면 구성을 위해 두 가지 값을 사용할 수 있습니다:

  • LIN_ENHANCED_CS: 향상된 체크섬 모델(Enhanced checksum model)을 선택합니다[SWS_Lin_00229].
  • LIN_CLASSIC_CS: 클래식 체크섬 모델(Classic checksum model)을 선택합니다[SWS_Lin_00229].

순수 데이터 타입으로서 Lin_FrameCsModelType 자체는 함수 인터페이스, 반환값 또는 DET/DEM 오류 메시지를 정의하지 않습니다[SWS_Lin_00229]. 사용은 주로 모듈 Lin의 구성 및 프레임 디스크립터 내에서 매개변수 또는 요소로서 이루어질 것으로 보이며(해석), 이는 드라이버에 전송 또는 수신 시 어떤 알고리즘에 따라 프레임 체크섬이 검증되는지 알려주기 위함입니다. 질문 Q-6d3354059d0641df (열림) 따라서 유효하지 않은 값에 대한 오류 처리는 이를 처리하는 드라이버 API 또는 모듈 구성 수준에서 가로채 처리해야 할 것으로 추정됩니다(해석). 질문 Q-06e26f4bcff1e520 (열림)

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

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

타입 Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

타입 Lin_PduType [SWS_Lin_00232] 📄 PDF

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

타입 Lin_StatusType [SWS_Lin_00233] 📄 PDF

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().

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

열거형 Lin_StatusType은 Lin_GeneralTypes.h을 통해 제공되며, API 서비스 Lin_GetStatus()의 반환 값으로 보고되는 LIN 채널 및 LIN 프레임의 작동 및 전송 상태를 정의합니다 [SWS_Lin_00233].

상태 값은 채널 상태와 프레임 작동 값으로 구분됩니다 [SWS_Lin_00233]:

  • 채널 상태: LIN_OPERATIONAL은 LIN 채널이 다음 헤더를 전송할 준비가 되었고 이전 프레임의 데이터가 없는 정상 작동을 나타냅니다(예: 초기화 후). 이와 대조적으로 LIN_CH_SLEEP은 슬레이브 노드에 대해 웨이크업 감지가 활성화된 채널의 슬립 상태를 나타냅니다 [SWS_Lin_00233].
  • 진행 중인 전송: LIN_TX_BUSY은 헤더 또는 응답의 진행 중인 송신을 나타냅니다. LIN_RX_BUSY은 이미 하나 이상의 응답 바이트가 도착했지만 최종 체크섬 바이트는 아직 도착하지 않은 진행 중인 수신 프로세스를 신호합니다 [SWS_Lin_00233].
  • 성공적인 완료: LIN_TX_OK은 성공적인 전송을 확인하는 반면, LIN_RX_OK은 완전한 응답의 오류 없는 수신을 나타냅니다 [SWS_Lin_00233].
  • 오류 상태 및 타임아웃: LIN_NOT_OK은 개발 오류 또는 프로덕션 오류를 나타냅니다. 송신 작업 시 이 유형은 LIN_TX_HEADER_ERROR(데이터 불일치, 식별자 패리티 오류 또는 물리적 버스 오류로 인한 헤더 전송 오류)과 LIN_TX_ERROR(데이터 불일치 또는 버스 오류로 인한 응답 전송 오류)를 구분합니다. 수신 측에서 LIN_RX_ERROR은 프레이밍, 오버런, 체크섬 오류 또는 불완전한 응답과 같은 수신 오류를 나타내고, LIN_RX_NO_RESPONSE는 응답 바이트가 전혀 수신되지 않았음을 보고합니다 [SWS_Lin_00233].

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

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

타입 Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

This type represents the slave error types that are detected during header reception and response transmission / reception.

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

열거형 Lin_SlaveErrorType은 헤더를 수신하는 동안 및 응답을 전송하거나 수신하는 동안 감지되는 LIN 슬레이브의 특정 오류 유형을 나타냅니다 [SWS_Lin_91140]. 유형 정의는 헤더 파일 Lin_GeneralTypes.h를 통해 제공됩니다 [SWS_Lin_91140].

오류 상태 및 값 범위

이 열거형은 LIN 통신의 다양한 단계에서 발생하는 오류를 다룹니다 [SWS_Lin_91140]:

  • LIN_ERR_HEADER: LIN 헤더 수신 시 오류를 신호합니다 [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: 응답의 프레이밍 오류 또는 정지 비트 오류를 나타냅니다 [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: 수신된 응답의 체크섬 오류를 나타냅니다 [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: 응답에서 전송된 데이터 비트의 비트 모니터링 오류를 보고합니다 [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: 헤더에 대한 응답이 수신되지 않았음을 나타냅니다 [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: 불완전한 응답이 수신되거나 전송되었을 때 발생합니다 [SWS_Lin_91140].

사용 및 제한사항

해석: 본 사양 발췌문에는 구체적인 함수 시그니처가 포함되어 있지 않으므로, 이 유형은 LIN 인터페이스와 같은 상위 모듈에 대한 알림에서 반환 값 또는 상태 매개변수 역할을 할 것으로 추정됩니다. 질문 Q-6a9c54976345ca2b (열림) 재진입성, 호출 컨텍스트, 또는 동기식/비동기식 실행에 대한 추가 세부사항은 발췌문에 포함되어 있지 않습니다.

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

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

Record
AUTOSAR/AP/record/CP_MOD_Lin
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#6eb3632b
Content hash
6eb3632b
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

초기화 및 상태

Service Lin_GetStatus.

Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);

Returns the version information of this module.

void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Lin_Init 함수

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

서비스

This function checks if a wakeup has occurred on the addressed LIN channel.

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

Std_ReturnType Lin_GoToSleep (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Lin_Wakeup 함수

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

Std_ReturnType Lin_Wakeup (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

타입

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

This type is used to specify the Checksum model to be used for the LIN Frame.

This type is used to specify the number of SDU data bytes to copy.

Represents all valid protected identifier used by Lin_ Send Frame().

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

This type represents the slave error types that are detected during header reception and response transmission / reception.

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().