DEENESPTFRRUARHIKOZHNL

LIN State Manager (LinSM)

ModulLinSM (LIN State Manager)
BSW-Modul-ID141
Standard-Header#include "LinSM.h"
SWS-SpezifikationAUTOSAR_SWS_LINStateManager.pdf
ClusterLIN

모듈 가이드AI 생성

각 LIN 네트워크별 통신 모드, 웨이크업, 슬립 및 스케줄 테이블 변경을 제어합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 4c8293bd0eb8 출처 열린 질문 (2)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

각 LIN 네트워크별 통신 모드, 웨이크업, 슬립 및 스케줄 테이블 변경을 제어합니다.

LIN State Manager는 각 LIN 네트워크별 ComM의 통신 요청을 LIN Interface 호출로 변환합니다. 그 결과로 발생하는 상태 LINSM_FULL_COM 및 LINSM_NO_COM을 ComM 및 BswM [SWS_LinSM_00126]에 보고합니다. 웨이크업, 슬립, 그리고 마스터의 경우에만 스케줄 테이블 변경을 직접 시작하고 LinSM_MainFunction의 타이머로 확인 응답을 모니터링합니다. 슬레이브의 경우 마스터가 슬립을 결정합니다. 즉, LinSM_GotoSleepIndication이 있어야만 LinIf_GotoSleep이 트리거됩니다 [SWS_LinSM_00231]. 전환이 실패하면 상위 계층의 일관성을 유지하기 위해 LinSM이 이전 상태를 다시 보고합니다.

LIN State Manager는 LIN을 위한 버스 상태 관리자입니다. ComM은 이를 통해 네트워크의 통신 능력을 요청합니다(SWS ComM 19쪽). 모드 요청은 LinSM_RequestComMode을 통해 수신합니다 [SWS_LinSM_00126]. LinIf를 제어하고 상태를 ComM 및 BswM에 보고합니다 [SWS_LinSM_00229]. 어떤 LIN 드라이버가 네트워크를 서비스하는지는 LinIf 뒤에 숨겨집니다(SWS LinSM 28쪽).

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det Det LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin LIN 드라이버 (하나 이상) LinIf->Lin Zuordnung Netzwerk zu Treiber

컨텍스트 다이어그램: ComM 및 BswM이 LinSM을 제어하고, LinSM이 LinIf를 제어하며, LinIf가 콜백을 통해 응답을 반환합니다. 출처: [SWS_LinSM_00229], [SWS_LinSM_00138], SWS LinSM 28쪽

LinSM_Init 이후 각 네트워크는 LINSM_NO_COM 상태가 됩니다 [SWS_LinSM_00155]. 이때 ComM 및 BswM에는 알림이 전송되지 않습니다(SWS LinSM 23쪽). 통신은 LINSM_FULL_COM에서만 허용됩니다. 진입 시 ComM 및 BswM은 메시지를 수신하고 하위 상태 LINSM_RUN_COMMUNICATION으로 진입합니다 [SWS_LinSM_00301]. BswM에는 LINSM_FULL_COM 및 LINSM_NO_COM만 표시됩니다 [SWS_LinSM_00220].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (ComM/BswM에 통지 없음) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) ComM 및 BswM으로 FULL_COM 통지 GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep이 E_OK 반환 마스터: ComM이 NO_COM 요청 슬레이브: LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (success 여부와 무관) ComM 및 BswM으로 NO_COM 통지

상태 다이어그램: 각 네트워크별로 LinSM은 웨이크업 및 슬립 확인 응답을 통해 LINSM_NO_COM과 LINSM_FULL_COM 사이를 전환합니다. 출처: [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM 20쪽

웨이크업 및 슬립은 LinSM이 호출 시 직접 시작합니다. LinIf의 확인 응답은 LinSM_MainFunction [SWS_LinSM_00156]의 타이머로 모니터링합니다(SWS LinSM 28쪽). 마스터의 경우 COMM_NO_COMMUNICATION 요청은 즉시 LinIf_GotoSleep [SWS_LinSM_00036](으)로 이어집니다. 슬레이브의 경우 요청은 저장될 뿐이며 [SWS_LinSM_00230], LinSM_GotoSleepIndication이 있어야만 슬립이 트리거됩니다 [SWS_LinSM_00231]. Silence-after-Wakeup 타이머는 재웨이크업 시도를 지연시킵니다 [SWS_LinSM_00237].

스케줄 변경은 마스터에만 존재합니다 [SWS_LinSM_00241]. LinSM은 LinSM_ScheduleRequest을 LinIf로 직접 전달하고 그 결과를 BswM_LinSM_CurrentSchedule을 통해 보고합니다(SWS LinSM 26쪽). 오류의 경우 다음이 적용됩니다.

  • 개발 오류는 [SWS_LinSM_00053]의 코드를 사용하여 LinSM이 DET에 보고합니다.
  • LinIf의 콜백 누락은 LINSM_E_CONFIRMATION_TIMEOUT으로 간주됩니다 [SWS_LinSM_00224].
  • 실패한 전환 후 LinSM은 ComM과 BswM에 일관되게 알리기 위해 이전 상태를 다시 설정합니다 [SWS_LinSM_00177].

ComM, BswM 및 LIN Interface 간의 역할

LIN State Manager(LinSM)는 LIN을 위한 버스 상태 관리자입니다. 다른 버스 상태 관리자와 마찬가지로 ComM은 이를 통해 네트워크의 통신 능력을 요청합니다(SWS ComM 19쪽). 이를 위한 중앙 입력 인터페이스는 LinSM_RequestComMode [SWS_LinSM_00126]입니다. 현재 모드는 LinSM_GetCurrentComMode [SWS_LinSM_00122]에서 제공합니다. LinSM은 전적으로 네트워크 단위로 작동합니다. 어떤 LIN 드라이버가 네트워크를 서비스하는지는 LinIf가 가려줍니다. 따라서 여러 다른 LIN 드라이버가 있는 ECU는 LinSM에 영향을 미치지 않습니다(SWS LinSM 28쪽).

필수 인터페이스에는 하위 방향의 LinIf_GotoSleep 및 LinIf_ScheduleRequest과 상위 방향의 알림 ComM_BusSM_ModeIndication, ComM_BusSM_BusSleepMode, BswM_LinSM_CurrentState 및 BswM_LinSM_CurrentSchedule가 포함됩니다 [SWS_LinSM_00229](SWS LinSM 41쪽). LinIf_Wakeup은 웨이크업 시퀀스에서 LinSM이 호출합니다(SWS LinSM 27쪽). 선택적으로 Det_ReportError 및 LinIf_SetTrcvMode을 사용합니다 [SWS_LinSM_00138]. LinIf는 다음 콜백을 통해 응답을 반환합니다.

ComM_ModeType, NetworkHandleType, LinIf_SchHandleType와 같이 가져온 타입은 [SWS_LinSM_00219]이 정의합니다.

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det Det LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin LIN 드라이버 (하나 이상) LinIf->Lin Zuordnung Netzwerk zu Treiber

컨텍스트 다이어그램: LinSM은 상위의 ComM 및 BswM과 하위의 LinIf 사이를 중재하며, LIN 드라이버는 LinIf 뒤에 숨겨진 상태로 유지됩니다. 출처: [SWS_LinSM_00126], [SWS_LinSM_00229], [SWS_LinSM_00138], [SWS_LinSM_00156], SWS LinSM 28쪽, Mode-Management-Guide 54쪽

LIN 네트워크별 상태 모델, 초기화 및 주기적 부분

시작 시 모든 API 호출 전에 모듈 전체 상태 LINSM_UNINIT가 활성화됩니다(SWS LinSM 22쪽). LinSM_Init은 동기식이며 재진입이 불가능합니다 [SWS_LinSM_00155]. 이 함수는 구현별 타입 LinSM_ConfigType [SWS_LinSM_00221]의 포스트 빌드 구성에 대한 포인터를 수신합니다. 그 후 각 네트워크는 상위 상태 LINSM_INIT의 하위 상태 LINSM_NO_COM에 있게 됩니다. 이 시점에 ComM이 아직 초기화되지 않았을 수 있으므로 LinSM_Init는 이 첫 번째 전환을 ComM이나 BswM에 보고하지 않습니다(SWS LinSM 23쪽). Mode Management Guide의 예제에서는 BswM 규칙이 Lin_Init 및 LinIf_Init 이후에 LinSM_Init(null)을 호출합니다(Mode-Management-Guide 54쪽).

LINSM_NO_COM에서는 버스가 유휴 상태를 유지합니다(SWS LinSM 23쪽). 버스에서의 통신은 LINSM_FULL_COM에서만 허용되며, 각 네트워크는 다른 네트워크와 독립적으로 이 상태에 도달합니다. 진입 시 다음이 수행됩니다(SWS LinSM 23쪽).

  • ComM은 COMM_FULL_COMMUNICATION이 포함된 메시지를 수신하고, BswM은 LINSM_FULL_COM이 포함된 메시지를 수신합니다.
  • LinSMTransceiverPassiveMode이 구성된 경우 LinSM은 LinIf_SetTrcvMode을 통해 트랜시버를 활성 상태로 전환합니다.
  • 하위 상태 LINSM_RUN_COMMUNICATION으로 진입합니다 [SWS_LinSM_00301].

임시 하위 상태 LINSM_GOTO_SLEEP은 슬립 확인 응답에 대한 대기를 브리지합니다(SWS LinSM 20쪽, SWS LinSM 21쪽). BswM에는 LinSM_ModeType의 두 가지 값만 표시됩니다: LINSM_FULL_COM (0x01) 및 LINSM_NO_COM (0x02) [SWS_LinSM_00220].

시간 모니터링은 LinSM_MainFunction에서 실행됩니다. 이 주기적 함수는 요청 타임아웃 타이머를 구동합니다 [SWS_LinSM_00156]. 웨이크업 확인 타이머도 네트워크별 고유 타이머와 함께 여기에서 실행됩니다(SWS LinSM 28쪽). 반면 LinSM은 실제 버스 동작을 다음 Main Function 주기까지 기다리지 않고 호출 시 직접 시작합니다 [SWS_LinSM_00036] [SWS_LinSM_00231].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (ComM/BswM에 통지 없음) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) ComM 및 BswM으로 FULL_COM 통지 GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep이 E_OK 반환 마스터: ComM이 NO_COM 요청 슬레이브: LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (success 여부와 무관) ComM 및 BswM으로 NO_COM 통지

상태 다이어그램: 각 네트워크별로 LinSM은 웨이크업 및 슬립 확인 응답을 통해 LINSM_NO_COM과 LINSM_FULL_COM 사이를 전환합니다. LINSM_GOTO_SLEEP은 대기 상태일 뿐입니다. 출처: [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM 20쪽, SWS LinSM 21쪽, SWS LinSM 24쪽

웨이크업: LINSM_NO_COM에서 LINSM_FULL_COM으로

LIN 네트워크는 ComM이 LinSM_RequestComMode을 통해 전체 통신을 요청할 때 웨이크업됩니다. 다른 노드가 버스를 깨우는 경우 LinSM이 아닌 EcuM이 이를 처리하며, 이 경우 역시 ComM의 요청으로 이어집니다(SWS LinSM 27쪽). 그러면 LinSM은 LinIf_Wakeup를 직접 호출하고 최대 재시도 횟수 카운터를 재설정합니다. LinIf가 이미 깨어 있는 경우 이 호출을 무시합니다. 호출 전에 LinSM은 채널에 대해 LinSMConfirmationTimeout(으)로 웨이크업 확인 타이머를 시작합니다. 이 값은 0 또는 Main Function 주기의 정수배여야 합니다(SWS LinSM 28쪽).

LinSM_WakeupConfirmation이 success = TRUE를 보고하면 네트워크는 LINSM_FULL_COM으로 전환됩니다 [SWS_LinSM_00132]. 다른 모든 경우 LinSM은 ComM과 BswM이 모드 인디케이션을 계속 수신할 수 있도록 요청 전의 상태를 다시 설정합니다(SWS LinSM 27쪽). 슬레이브의 경우 LinIf는 마스터의 첫 번째 LIN 헤더를 수신한 후에만 확인합니다. 마스터가 스케줄링을 시작하지 않으면 확인 응답이 수신되지 않으며 LinSM의 타임아웃이 적용됩니다(SWS LinIf 52쪽).

LIN 네트워크 웨이크업 (내부 웨이크업)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_FULL_COMMUNICATION)웨이크업 확인 타이머 시작(LinSMConfirmationTimeout)LinIf_Wakeup(Channel)LinSM_MainFunction 내가 아닌 직접E_OKE_OK마스터: 웨이크업 신호 전송 후 확인슬레이브: 수신된 첫 번째 LIN 헤더로 확인altsuccess = TRUELinSM_WakeupConfirmation(network, TRUE)Timer stoppenLINSM_FULL_COM / LINSM_RUN_COMMUNICATIONComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)success = FALSELinSM_WakeupConfirmation(network, FALSE)요청 전 상태 다시 설정ComM_BusSM_ModeIndication(network, bisheriger Modus)BswM_LinSM_CurrentState(network, bisheriger Zustand)확인 없음LinSM_MainFunction: Timer abgelaufenLINSM_E_CONFIRMATION_TIMEOUT

시퀀스 다이어그램: LinSM은 호출 시 네트워크를 즉시 웨이크업하지만, 상태 변경은 LinIf의 비동기 확인 응답이 있을 때 비로소 이루어집니다. 출처: [SWS_LinSM_00126], [SWS_LinSM_00132], [SWS_LinSM_00224], SWS LinSM 42쪽, SWS LinSM 27쪽

두 번째 시간 제한은 LinSMSilenceAfterWakeupTimeout [SWS_LinSM_00235]이 포함된 Silence-after-Wakeup 타이머입니다. 이 타이머가 실행되는 동안 LinSM은 ComM이 전체 통신을 요청하더라도 LinIf_Wakeup의 새 호출을 지연시킵니다 [SWS_LinSM_00237]. 만료 후 LinSM은 ComM이 계속해서 COMM_FULL_COMMUNICATION을 요청하는 한 웨이크업 프로세스를 다시 시작합니다 [SWS_LinSM_00236]. 타이머를 시작하는 조건은 여기에 제공되지 않은 요구사항에 포함되어 있으므로 설명하지 않습니다.

wakeup_entscheidung A ComM: LinSM_RequestComMode (COMM_FULL_COMMUNICATION) B Silence-after-Wakeup 타이머가 실행 중인가? A->B C 타이머 만료 시까지 LinIf_Wakeup 지연 B->C 예 D 재시도 카운터 리셋 웨이크업 확인 타이머 시작 B->D 아니요 C->D Timer abgelaufen E LinIf_Wakeup(Channel) direkt aufrufen D->E F LinIf의 피드백? E->F G LINSM_FULL_COM ComM 및 BswM으로 통지 F->G WakeupConfirmation TRUE H 요청 전 상태를 다시 설정하고 통지 F->H WakeupConfirmation FALSE I LinSM_MainFunction: Timer abgelaufen LINSM_E_CONFIRMATION_TIMEOUT F->I 확인 없음 J Silence-after-Wakeup 타임아웃 발생 및 COMM_FULL_COMMUNICATION이 계속 요청됨 J->D 웨이크업 프로세스 재시작

액티비티 다이어그램: 전체 통신 요청은 타이머 상태 및 피드백에 따라 LINSM_FULL_COM, 이전 상태 또는 확인 타임아웃으로 끝납니다. 출처: [SWS_LinSM_00237], [SWS_LinSM_00236], [SWS_LinSM_00224], SWS LinSM 27쪽, SWS LinSM 28쪽

슬립 진입: 마스터가 요청하고 슬레이브는 버스를 따름

Goto-Sleep 시퀀스는 마스터와 슬레이브 간에 차이가 있습니다. 두 경우 모두 문제가 발생하더라도 LinSM은 BswM 및 ComM에 No-Communication 모드 진입을 보고합니다(SWS LinSM 24쪽).

마스터의 경우 다음이 적용됩니다:

  • ComM이 LINSM_FULL_COM에서 COMM_NO_COMMUNICATION을 요청하면 LinSM은 Goto-Sleep 명령을 전송하는 LinIf_GotoSleep을 호출합니다 [SWS_LinSM_10208].
  • 호출은 직접 수행됩니다 [SWS_LinSM_00036]. 다른 모든 경우에는 호출되지 않습니다 [SWS_LinSM_10209].
  • 이 호출은 하위 상태 LINSM_RUN_COMMUNICATION에서만 허용됩니다(SWS LinSM 24쪽).
  • LinIf_GotoSleep이 E_NOT_OK를 반환하면 LinSM_RequestComMode도 E_NOT_OK를 반환합니다. ComM 및 BswM이 인디케이션을 수신할 수 있도록 이전 상태가 다시 설정됩니다 [SWS_LinSM_00177].

그 후 LinIf가 LinSM_GotoSleepConfirmation을 호출합니다 [SWS_LinSM_00135]. 이때 LinSM이 LINSM_FULL_COM/LINSM_GOTO_SLEEP 상태에 있으면 success 매개변수와 무관하게 LINSM_NO_COM으로 전이합니다. 다른 모든 상태에서는 확인을 무시합니다(SWS LinSM 24쪽). 사양의 다이어그램에서는 LinIf_GotoSleep 전에 타이머를 시작하고 확인 후에 이를 중지합니다(SWS LinSM 47쪽).

LIN 네트워크의 슬립 진입 (마스터)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_NO_COMMUNICATION)LINSM_FULL_COM / LINSM_RUN_COMMUNICATION에서만LinSM_MainFunction 내가 아닌 직접 호출start_timer()LinIf_GotoSleep(Channel)altLinIf_GotoSleep = E_OKE_OKUnterzustand LINSM_GOTO_SLEEPE_OKLinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COM (success 여부와 무관)ComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)LinIf_GotoSleep = E_NOT_OKE_NOT_OKbisherigen Zustand erneut setzenE_NOT_OKComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)

시퀀스 다이어그램: 마스터의 경우 ComM이 슬립 진입을 트리거합니다. LINSM_NO_COM은 슬립 확인이 있어야만 도달하며, LinIf_GotoSleep의 E_NOT_OK는 이전 상태의 재보고로 이어집니다. 출처: [SWS_LinSM_00036], [SWS_LinSM_00177], [SWS_LinSM_00135], SWS LinSM 47쪽, SWS LinSM 24쪽

슬레이브의 경우 마스터가 슬립 진입 여부를 결정합니다. ComM이 LINSM_FULL_COM에서 COMM_NO_COMMUNICATION을 요청하면 LinSM은 요청 사항을 저장하기만 하고 E_OK를 반환합니다 [SWS_LinSM_00230]. LinIf는 Goto-Sleep 명령이 수신되었거나 버스 유휴 타임아웃이 발생했을 때 LinSM_GotoSleepIndication을 보고합니다 [SWS_LinSM_91000]. 그제서야 LinSM이 LinIf_GotoSleep을 직접 호출합니다 [SWS_LinSM_00231]. 이후 진행 과정은 저장된 요청 사항에 따라 달라집니다:

  • COMM_NO_COMMUNICATION이 요청되었고 LinIf_GotoSleep이 E_OK를 반환하면, ComM은 ComM_BusSM_BusSleepMode을 통해 버스 슬립 이벤트를 전달받습니다 [SWS_LinSM_00233].
  • 전체 통신이 요청된 경우 LinSM은 슬립 확인 후 웨이크업 프로세스를 다시 시작합니다 [SWS_LinSM_00234].

LinIf에서 슬레이브 시퀀스는 컨트롤러와 지원되는 경우 트랜시버를 슬립 모드로 전환합니다(SWS LinIf 137쪽).

LIN 네트워크의 슬립 진입 (슬레이브)ComMLinSMLinIfBswMUse Case: ComM의 슬립 요청LinSM_RequestComMode(network,COMM_NO_COMMUNICATION)angeforderten Modus speichern,추가 동작 없음E_OKUse Case: BusereignisLinSM_GotoSleepIndication(Channel)Goto-Sleep-Kommando empfangen또는 버스 유휴 타임아웃start_timer()LinIf_GotoSleep(Channel)LinSM_MainFunction 내가 아닌 직접E_OKaltangefordert: COMM_NO_COMMUNICATIONComM_BusSM_BusSleepMode(Channel)LinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COMComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)angefordert: COMM_FULL_COMMUNICATIONLinSM_GotoSleepConfirmation(network, success)LINSM_NO_COM, ComM 및 BswM으로 통지kein Bus-Sleep-Ereignis an ComM웨이크업 프로세스 재시작 (LinIf_Wakeup)

시퀀스 다이어그램: 슬레이브의 경우 ComM의 슬립 요청은 저장만 되며, 슬립 진입은 LinIf의 인디케이션에 의해 트리거됩니다. 출처: [SWS_LinSM_00230], [SWS_LinSM_00231], [SWS_LinSM_00233], [SWS_LinSM_00234], SWS LinSM 48쪽, SWS LinSM 24쪽

스케줄 테이블 전환(마스터 전용)

LinSM_ScheduleRequest [SWS_LinSM_00113]은 적어도 하나의 채널이 마스터로 구성된 경우에만 존재합니다 [SWS_LinSM_00241]. 콜백 LinSM_ScheduleRequestConfirmation [SWS_LinSM_00242]에도 동일하게 적용됩니다. 비동기 함수는 Main Function을 거치지 않고 요청을 LinIf_ScheduleRequest로 직접 전달합니다. 해당 반환값은 호출자에게 반환됩니다(SWS LinSM 26쪽). 호출자는 BswM입니다. BswM은 LinSMScheduleIndex을 심볼릭 참조로 사용하며, 이 값은 LinIf의 값과 일치해야 합니다(SWS LinSM 52쪽). LIN 트랜스포트 프로토콜의 진단 스케줄 전환 또한 BswM 및 LinSM_ScheduleRequest를 통해 실행됩니다(SWS LinIf 142쪽).

LinSM은 결과를 BswM_LinSM_CurrentSchedule을 통해 보고합니다(SWS BswM 80쪽). 어떤 스케줄이 보고되는지는 진행 과정에 따라 달라집니다(SWS LinSM 26쪽):

  • 타이머가 만료되기 전에 LinSM_ScheduleRequestConfirmation이 [SWS_LinSM_00129]을 확인하면 LinSM은 새 스케줄을 보고합니다.
  • 타이머가 만료된 경우 변경되지 않은 스케줄을 보고합니다.
  • LinIf_ScheduleRequest이 E_NOT_OK를 반환하면 다음 Main-Function 호출에서 이전 스케줄을 보고합니다.
  • 또한 슬립 진입 시 LinIf가 수행하는 NULL 스케줄로의 전환과 같이 사전 요청이 없는 전환도 보고합니다.
스케줄 테이블 변경 (마스터 전용)BswMLinSMLinIfLinSM_ScheduleRequest(network, schedule)start_timer()LinIf_ScheduleRequest(Channel, schedule)LinSM_MainFunction 내가 아닌 직접altE_OK, 타이머 만료 전 확인E_OKE_OK (weitergereicht)LinSM_ScheduleRequestConfirmation(network, schedule)stop_timer()BswM_LinSM_CurrentSchedule(network, neuer Schedule)E_OK, Timer abgelaufenE_OKE_OK (weitergereicht)LinSM_MainFunction: Timer abgelaufenBswM_LinSM_CurrentSchedule(network, 변경되지 않은 스케줄)LinIf_ScheduleRequest = E_NOT_OKE_NOT_OKE_NOT_OK (weitergereicht)LinSM_MainFunction의 다음 호출BswM_LinSM_CurrentSchedule(network, alter Schedule)

시퀀스 다이어그램: 스케줄 전환은 직접 전달되고 시간 모니터링됩니다. BswM은 각 결과에서 실제로 유효한 스케줄을 전달받습니다. 출처: [SWS_LinSM_00113], [SWS_LinSM_00129], [SWS_LinSM_00156], SWS LinSM 26쪽, SWS LinSM 48쪽

노드 유형, 구성 및 이후 릴리스와의 차이점

매개변수 LinSMNodeType은 채널에 마스터 동작을 적용할지 슬레이브 동작을 적용할지 정의합니다. LinSM_ScheduleRequest, LinSM_ScheduleRequestConfirmation 및 LinSM_GotoSleepIndication의 사용 가능 여부가 이에 따라 결정됩니다 [SWS_LinSM_00241] [SWS_LinSM_00242] [SWS_LinSM_00243]. 가장 중요한 시간 매개변수는 LinSMConfirmationTimeout (SWS LinSM 28쪽) 및 LinSMSilenceAfterWakeupTimeout입니다 [SWS_LinSM_00235]. LinSMSchedule 컨테이너는 LinIf 구성의 스케줄을 참조합니다(SWS LinSM 52쪽). DET 검사는 LinSMDevErrorDetect에 연계되어 있습니다 [SWS_LinSM_00239].

문서의 많은 부분이 이후 릴리스에서 유래했습니다. R20-11의 경우 요구사항(Requirements)이 기준이 되며, 일부 부분에서 차이가 있습니다:

  • LinSM_ScheduleRequest의 두 번째 매개변수는 R20-11에서 schedule로 명명되어 있으며 타입이 LinIf_SchHandleType임에도 불구하고 “Pointer to the new Schedule table”로 설명되어 있습니다 [SWS_LinSM_00113]. R22-11에서 이름이 변경되었으며(SWS LinSM 1쪽, Release Overview 50쪽), R24-11에서는 ScheduleTableIdx으로 명명되었습니다(SWS LinSM 34쪽).
  • R20-11에서 LinSM_GetCurrentComMode은 서비스 ID 0x11을 가지고 [SWS_LinSM_00122], LinSM_RequestComMode는 서비스 ID 0x12를 가집니다 [SWS_LinSM_00126]. 이후 버전에서는 0x41 및 0x40으로 명시하며 서로 다른 네트워크에 대해서만 재진입(Reentrancy)을 허용합니다(SWS LinSM 35쪽, SWS LinSM 36쪽).
  • ComM 콜백은 R20-11에서 ComM_BusSM_… [SWS_LinSM_00233]로 불리며, R25-11에서는 ComM_<Bus>SM_…로 불립니다(SWS LinSM 41쪽).

오류가 발생한 경우의 동작

개발 오류는 [SWS_LinSM_00053]에서 정의합니다:

  • LINSM_E_UNINIT (0x00)
  • LINSM_E_NONEXISTENT_NETWORK (0x20)
  • LINSM_E_PARAMETER (0x30)
  • LINSM_E_PARAM_POINTER (0x40)
  • LINSM_E_INIT_FAILED (0x50)

LinSMDevErrorDetect이 활성화되면 콜백은 LinSM_GotoSleepIndication [SWS_LinSM_00239] [SWS_LinSM_00240]과 같이 네트워크 및 초기화를 검사합니다. 콜백에는 반환값이 없으므로 DET 보고로 처리됩니다(SWS LinSM 40쪽, SWS LinSM 39쪽). Std_ReturnType이 있는 API는 추가로 E_NOT_OK를 반환하며, 예를 들어 유효하지 않은 네트워크, 모드 또는 스케줄이거나 LINSM_UNINIT 상태인 경우가 이에 해당합니다(SWS LinSM 36쪽, SWS LinSM 34쪽). 해석: 이러한 검사는 R24-11 이후 버전에서 비롯되었으며 R20-11에도 내용상 동일하게 적용될 것으로 보입니다. 질문 Q-6b2d75dd286bdcb4 (열림) 눈에 띄는 점은 이후 버전에서 void API인 LinSM_GetVersionInfo [SWS_LinSM_00117]에 대해서도 NULL 포인터 시 E_NOT_OK를 요구한다는 것입니다(SWS LinSM 34쪽).

런타임 오류로는 LinIf의 누락된 콜백에 대해 LINSM_E_CONFIRMATION_TIMEOUT (0x00)이 정의되어 있습니다 [SWS_LinSM_00224]. 이는 이후 버전에서 필수 인터페이스로 지정된 Det_ReportRuntimeError을 통해 보고되는 것으로 추정됩니다(SWS LinSM 41쪽). 질문 Q-06b13a07d0d60152 (열림) 기능적으로 LinSM은 ComM 및 BswM이 항상 일관된 상태를 볼 수 있도록 보장합니다:

  • 웨이크업이 실패한 후에는 이전 상태를 다시 설정하고 보고합니다(SWS LinSM 27쪽).
  • LinIf_GotoSleep에서 E_NOT_OK가 반환되는 경우에도 동일하게 적용됩니다 [SWS_LinSM_00177].
  • 슬립 확인은 success = FALSE인 경우에도 LINSM_NO_COM으로 이어집니다(SWS LinSM 24쪽).
  • 스케줄 전환이 실패한 경우 BswM은 이전 스케줄 또는 변경되지 않은 스케줄을 수신합니다(SWS LinSM 26쪽).

더 자세한 증거

R20-11의 규범적 요구사항 및 일부 다른 릴리스에서 유래한 관련 문서 구절과 다이어그램을 기반으로 AI가 생성한 모듈 가이드입니다. 해석으로 표시된 진술은 규범적으로 입증되지 않았습니다. AUTOSAR 사양만이 구속력을 갖습니다.

LIN State Manager (LinSM)

Manages state transitions of LIN networks.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 LinSM_Init [SWS_LinSM_00155] 📄 PDF

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

This function initializes the Lin SM.

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

함수 LinSM_Init은(는) AUTOSAR Classic 플랫폼에서 LIN State Manager(LinSM) 소프트웨어 모듈의 초기화에 사용됩니다 [SWS_LinSM_00155].

사용법 및 인터페이스 매개변수:

  • 호출 동기화: 초기화 함수의 실행은 동기식(Synchronous)으로 명시되어 있습니다 [SWS_LinSM_00155].
  • 입력 매개변수: 유일한 매개변수로 const LinSM_ConfigType* 타입의 ConfigPtr이(가) 전달됩니다 [SWS_LinSM_00155]. 이는 LinSM의 포스트 빌드 구성 데이터에 대한 포인터 역할을 합니다 [SWS_LinSM_00155].
  • 기타 매개변수 및 반환값: 이 인터페이스는 반환값(void)을 반환하지 않습니다 [SWS_LinSM_00155]. 추가적인 입출력 매개변수나 순수 출력 매개변수는 존재하지 않습니다 [SWS_LinSM_00155].
  • 헤더 파일 및 서비스 식별자: 선언은 헤더 파일 LinSM.h을(를) 통해 제공되며 서비스 ID 0x01을(를) 갖습니다 [SWS_LinSM_00155].

동시성 및 제약 사항:

LinSM_Init의 실행에 대해 함수가 재진입 불가(Non reentrant)인 것으로 지정되어 있습니다 [SWS_LinSM_00155]. 따라서 여러 스레드를 통한 병렬 호출이나 더 높은 우선순위 컨텍스트에 의한 인터럽트 호출은 허용되지 않습니다 [SWS_LinSM_00155].

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

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

함수 LinSM_ScheduleRequest [SWS_LinSM_00113] 📄 PDF

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The upper layer requests a schedule table to be changed on one LIN network.

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

사용

함수 LinSM_ScheduleRequest은(는) 지정된 LIN 채널에서 스케줄 테이블의 전환을 요청하기 위해 상위 계층에 의해 호출됩니다 [SWS_LinSM_00113]. 인터페이스는 헤더 파일 LinSM.h에 정의되어 있으며, 서비스 ID 0x10을(를) 가지고 비동기식 및 재진입 가능하게 작동합니다 [SWS_LinSM_00113]. 호출 시 해당 채널은 매개변수 network(NetworkHandleType)을(를) 통해, 원하는 새 테이블은 schedule(LinIf_SchHandleType)을(를) 통해 전달됩니다 [SWS_LinSM_00113].

오류 처리 및 반환값

모듈이 테이블 전환 요청을 수락한 경우, 함수는 E_OK을(를) 반환합니다 [SWS_LinSM_00113]. 반면 예를 들어 모듈이 아직 초기화되지 않아 호출을 실행할 수 없는 경우, 함수는 반환값 E_NOT_OK을(를) 제공합니다 [SWS_LinSM_00113]. DET 또는 DEM에 대한 특정 오류 코드는 이 서비스에 대해 나열되어 있지 않습니다.

경계 조건 및 상호작용

함수의 제공 여부는 주로 구성 매개변수 LinSMNodeType에 따라 결정됩니다: LinSM_ScheduleRequest은(는) 모듈이 적어도 하나의 채널에서 LIN 마스터 노드로 구성된 경우에만 독점적으로 제공되며, 순수 LIN 슬레이브 구성에서는 생략됩니다 [SWS_LinSM_00241]. 동일한 방식으로 관련 확인 함수 LinSM_ScheduleRequestConfirmation 역시 마스터 노드 구성을 필요로 합니다 [SWS_LinSM_00242]. 상위 계층으로의 성공적으로 완료된 비동기 테이블 전환에 대한 피드백은 아마도 이 확인 함수를 통해 수행될 것으로 추정됩니다. 질문 Q-34c3ec02381c72ca (열림)

이 텍스트는 AI에 의해 작성되었으며, 공신력 있는 기준은 AUTOSAR 규격입니다.

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

함수 LinSM_GetCurrentComMode [SWS_LinSM_00122] 📄 PDF

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

Function to query the current communication mode.

함수 LinSM_RequestComMode [SWS_LinSM_00126] 📄 PDF

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

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

사용법 및 호출 컨텍스트

헤더 파일 LinSM.h에 선언된 함수 LinSM_RequestComMode(서비스 ID 0x12)은 전달된 LIN 네트워크에 대한 통신 모드를 비동기적으로 요청하는 역할을 합니다 [SWS_LinSM_00126]. NetworkHandleType 유형의 매개변수 network를 통해 해당 LIN 채널이 식별되며, ComM_ModeType 유형의 mode은 원하는 통신 모드를 지정합니다 [SWS_LinSM_00126]. 실제 모드 전환은 즉각적으로 발생하지 않으며, LinSM은 모드 천이가 성공적으로 완료된 후에만 호출자에게 알립니다 [SWS_LinSM_00126]. 해석: 모드 전환이 채널 수준에서 요청되고 확인되므로 ComM이 기본 호출자 역할을 할 것으로 추정됩니다. 질문 Q-0fcce16df8a29149 (열림)

반환값 및 동시성

해당 인터페이스는 재진입 가능(reentrant)한 것으로 지정되어 있으며 Std_ReturnType 유형의 상태 값을 반환합니다 [SWS_LinSM_00126]:

  • E_OK: 요청이 LinSM에 의해 성공적으로 수락되었습니다 [SWS_LinSM_00126].
  • E_NOT_OK: 예를 들어 LinSM 모듈이 아직 초기화되지 않은 경우와 같이 요청 실행이 불가능합니다 [SWS_LinSM_00126].

오류 처리 및 상호 작용

오류 처리의 일환으로 LIN 인터페이스와의 상호작용이 정의되어 있습니다. 하위의 LinIf_GotoSleep 호출이 반환 값 E_NOT_OK을 제공하는 경우, LinSM_RequestComMode는 반드시 E_NOT_OK도 반환해야 합니다 [SWS_LinSM_00177]. 함수가 E_NOT_OK를 반환하는 경우, ComM_BusSM_ModeIndication 및 BswM_LinSM_CurrentState로의 해당 피드백이 발생하도록 LinSM에서 동일한 상태가 유지되거나 설정되어야 합니다 [SWS_LinSM_00177].

이 텍스트는 자동으로 생성되었습니다. 모든 기술적 진술은 전적으로 AUTOSAR R20-11의 사양 데이터를 기반으로 합니다.

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

함수 LinSM_MainFunction [SWS_LinSM_00156] 📄 PDF

void LinSM_MainFunction (void);

Periodic function that runs the timers of different request timeouts

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

사용

함수 LinSM_MainFunction은(는) AUTOSAR Classic 아키텍처 내에서 LIN State Manager(LinSM) 모듈의 중심 주기적 메인 함수 역할을 합니다 [SWS_LinSM_00156]. 명세에 따르면 이 함수는 구문 void LinSM_MainFunction (void) 및 16진수 서비스 ID 0x30을(를) 가집니다 [SWS_LinSM_00156]. 매개변수를 받지 않고 반환값도 제공하지 않으므로 모듈 내에서 순수하게 상태 기반으로 작동합니다 [SWS_LinSM_00156]. 주요 기능적 역할은 다양한 요청 타임아웃(Request Timeouts)을 모니터링하는 내부 타이머를 지속적으로 구동하고 업데이트하는 것입니다 [SWS_LinSM_00156].

호출 컨텍스트 및 스케줄링

인터페이스의 선언은 헤더 파일 SchM_LinSm.h을(를) 통해 이루어집니다 [SWS_LinSM_00156]. 해석: Schedule Manager로의 이러한 통합으로 인해 이 함수는 OS 태스크의 컨텍스트에서 BSW 스케줄러에 의해 주기적으로 호출될 것으로 추정됩니다. 질문 Q-d83f7b3f0b251f4f (열림) 이러한 주기적인 사이클은 LIN 채널 및 상태 요청 시 발생하는 타임아웃 조건을 결정론적으로 감지하고 처리할 수 있도록 하는 데 필수적입니다. DET 오류 코드나 DEM 이벤트와 같은 특정 오류 처리 및 공식적인 재진입성 기준은 본 명세 범위에서 이 서비스에 대해 명시되어 있지 않으므로 생략됩니다.

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

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

함수 LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] 📄 PDF

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

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

사용

함수 LinSM_ScheduleRequestConfirmation은(는) LinSM 모듈의 콜백 인터페이스 역할을 하며 서비스 ID 0x20을(를) 가집니다 [SWS_LinSM_00129]. 헤더 파일 LinSM.h을(를) 통해 사용할 수 있으며, 이전에 요청된 새 스케줄 테이블이 LIN 버스에서 활성화되자마자 LIN 인터페이스(LinIf)에 의해 호출됩니다 [SWS_LinSM_00129].

이 인터페이스는 반환값을 가지지 않으며(void) LinSM에 두 개의 입력 매개변수를 전달합니다 [SWS_LinSM_00129]:

  • network(NetworkHandleType): 해당 LIN 통신 채널을 고유하게 식별하는 데 사용됩니다 [SWS_LinSM_00129].
  • schedule(LinIf_SchHandleType): 새로 활성화된 스케줄 테이블에 대한 식별자 또는 포인터를 전달합니다 [SWS_LinSM_00129].

동시성 및 상호 작용

LinSM_ScheduleRequestConfirmation의 실행은 동기식 및 재진입 가능으로 명시되어 있습니다 [SWS_LinSM_00129]. 입출력 매개변수(inout 또는 out)는 존재하지 않습니다 [SWS_LinSM_00129]. 상호작용은 LinSM에 스케줄 테이블의 상태 전환을 확인하기 위해 이 콜백 함수를 호출하는 LinIf 모듈과 밀접하게 결합되어 수행됩니다 [SWS_LinSM_00129]. 해석: LinIf가 호출자로 작동하므로, 호출 컨텍스트는 LinIf 드라이버 또는 인터페이스의 처리 흐름에 연결되어 있을 것으로 추정됩니다. 질문 Q-500d6a653bfbaac0 (열림)

본 사용 지침은 AUTOSAR 규격을 기반으로 자동 생성되었습니다.

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

함수 LinSM_GotoSleepIndication [SWS_LinSM_91000] 📄 PDF

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

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

콜백 함수 LinSM_GotoSleepIndication([SWS_LinSM_91000])은 채널을 슬립 상태로 전환하는 것에 대해 LIN State Manager에 알리는 역할을 합니다. 네트워크에서 Go-to-Sleep 명령이 수신되거나 버스 유휴 타임아웃이 발생하면 LIN Interface(LinIf)에 의해 호출이 수행됩니다.

사용법 및 호출 컨텍스트

이 함수는 동기식으로 실행되며 반환 값이 없습니다([SWS_LinSM_91000]). 헤더 LinSM.h을 통해 제공되며 서비스 ID 0x03를 가집니다. 유일한 매개변수는 채널 식별 역할을 합니다:

  • Channel (In): NetworkHandleType 유형([SWS_LinSM_91000])을 통해 해당 LIN 채널을 식별합니다.

입출력 매개변수(inout)나 출력 매개변수(out)는 지정되어 있지 않습니다([SWS_LinSM_91000]).

동시성 및 제약사항

동시성과 관련하여 이 인터페이스는 재진입 가능(reentrant)으로 정의되어 있습니다([SWS_LinSM_91000]). 주된 기능적 제한 사항은 노드 속성과 관련이 있습니다. 이 콜백은 LIN 슬레이브 노드 전용이며 슬레이브 노드에만 적용 가능합니다([SWS_LinSM_91000]).

이 사용 참고사항은 전적으로 AUTOSAR 릴리스 R20-11의 사양 데이터를 기반으로 합니다.

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

함수 LinSM_GotoSleepConfirmation [SWS_LinSM_00135] 📄 PDF

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

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

콜백 함수 LinSM_GotoSleepConfirmation은(는) [SWS_LinSM_00135]에 따라 LIN 네트워크에서 Go-to-Sleep 명령이 전송되었거나 전송이 실패했을 때 LIN Interface(LinIf)에 의해 호출됩니다.

사용법 및 매개변수

콜백은 서비스 ID 0x22을(를) 가지며, 헤더 LinSM.h을(를) 통해 선언되고 반환값을 가지지 않습니다 [SWS_LinSM_00135]. 식별 및 상태 전달을 위해 두 개의 전달 매개변수가 사용됩니다:

  • network: NetworkHandleType 타입을 통해 해당 LIN 채널을 식별합니다 [SWS_LinSM_00135].
  • success: Go-to-Sleep 명령이 버스로 성공적으로 전송될 수 있었는지(true) 아니었는지(false)를 부울 값으로 나타냅니다 [SWS_LinSM_00135].

실행 컨텍스트 및 동시성

명세는 호출을 동기식 및 재진입 가능으로 정의합니다 [SWS_LinSM_00135]. 해석: LinSM 모듈은 매개변수 success을(를) 기반으로 해당 네트워크에 대한 내부 상태를 업데이트하고 버스에서의 대기 상태로의 전환이 확인되었는지 판단할 것으로 추정됩니다. 질문 Q-b5dfd51188b9ff0b (열림) 페이로드에는 이 인터페이스에 대한 오류 처리, 반환값 또는 특정 DET나 DEM 메시지가 명시되어 있지 않습니다 [SWS_LinSM_00135].

이 텍스트는 AI에 의해 생성되었으며, AUTOSAR 명세만이 구속력을 갖습니다.

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

함수 LinSM_WakeupConfirmation [SWS_LinSM_00132] 📄 PDF

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

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

콜백 함수 LinSM_WakeupConfirmation은 LIN 상태 관리자에서 LIN 네트워크상의 웨이크업 신호 전송에 대한 확인 역할을 합니다 [SWS_LinSM_00132]. 네트워크에서 웨이크업 신호를 전송하라는 명령이 성공적으로 전송되었거나 성공적으로 전송되지 않은 즉시 LIN 인터페이스(LinIf)에 의해 호출됩니다 [SWS_LinSM_00132].

호출 컨텍스트, 동시성 및 매개변수 전달에는 다음 사양 특성이 적용됩니다 [SWS_LinSM_00132]:

  • 동기화 동작 및 재진입성: 함수의 실행은 동기식(Synchronous)으로 수행되며 재진입 가능(Reentrant)으로 분류됩니다 [SWS_LinSM_00132].
  • 채널 식별(network): 전달된 NetworkHandleType 유형의 입력 매개변수는 전송 프로세스가 발생한 각 LIN 채널을 지정합니다 [SWS_LinSM_00132].
  • 성공 상태(success): 이 불리언 매개변수는 웨이크업 신호가 성공적으로 전송될 수 있었는지(true) 또는 전송이 실패했는지(false)를 나타냅니다 [SWS_LinSM_00132].
  • 반환 값 및 입출력 매개변수: 이 함수는 반환 값(void)이 없으며 출력 매개변수나 입출력 매개변수를 모두 정의하지 않습니다 [SWS_LinSM_00132].

이 인터페이스는 서비스 ID 0x21을 가지며 헤더 파일 LinSM.h을 통해 제공됩니다 [SWS_LinSM_00132]. 특정 오류 코드와 Default Error Tracer(DET) 또는 Diagnostic Event Manager(DEM) 모듈을 통한 오류 처리 요구사항은 사양 요소에 명시되어 있지 않습니다 [SWS_LinSM_00132].

이 사용 지침은 AUTOSAR Classic Release R20-11 사양을 기반으로 합니다.

타입 LinSM_ModeType [SWS_LinSM_00220] 📄 PDF

Type used to report the current mode to the Bsw M

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

데이터 타입 LinSM_ModeType은(는) 기본 타입 uint8을(를) 기반으로 구축되고 헤더 LinSM.h을(를) 통해 제공되는 LIN State Manager의 표준 타입입니다 [SWS_LinSM_00220]. 이 타입의 주된 역할은 LIN 네트워크의 현재 통신 모드를 BSW Mode Management(BswM)에 보고하는 것입니다 [SWS_LinSM_00220].

LinSM_ModeType에 대해 값 범위 내에서 두 가지 상태가 명시되어 있습니다 [SWS_LinSM_00220]:

  • LINSM_FULL_COM(숫자 값 0x01): 무제한 완전 통신(Full communication) 상태를 알립니다 [SWS_LinSM_00220].
  • LINSM_NO_COM(숫자 값 0x02): 진행 중인 통신이 없는 상태(No communication)를 나타냅니다 [SWS_LinSM_00220].

오류 처리 및 동시성과 관련하여, 기본 타입 선언이므로 타입 정의 자체에는 별도의 오류 코드, DET 메시지 또는 DEM 이벤트가 포함되어 있지 않습니다 [SWS_LinSM_00220]. 해석: 이 타입의 값을 BswM에 전달하는 것은 LinSM의 상위 상태 전환의 일환으로 수행될 것으로 추정되며, 호출자는 정의된 상태를 벗어난 허용되지 않는 값이 전달되지 않도록 해야 합니다. 질문 Q-fe193732b8be2388 (열림)

이 사용 지침은 AI에 의해 작성되었습니다.

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

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

Record
AUTOSAR/AP/record/CP_MOD_LinSM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinSM@rel:R20-11#72900639
Content hash
72900639
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINStateManager.pdf#nameddest=SWS_LinSM_00155

초기화 및 상태

-

void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinSM_Init 함수

This function initializes the Lin SM.

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

서비스

Function to query the current communication mode.

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

The upper layer requests a schedule table to be changed on one LIN network.

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

주기적

Periodic function that runs the timers of different request timeouts

void LinSM_MainFunction (void);

타입

Data structure type for the post - build configuration parameters.

Type used to report the current mode to the Bsw M