자동차에는 수많은 ECU가 탑재되어 있다. ECU가 차량이 주행 중일 때처럼 항상 모든 기능을 수행한다면 문제가 없지만, 차량이 주차된 상태에서도 동일한 수준으로 Application과 통신 기능을 계속 실행한다면 배터리 전력 소모가 증가하게 된다.
따라서 차량이 장시간 정차해 있는 상황에서는 ECU의 불필요한 동작을 최소화하고, 필요한 기능만 유지하는 저전력(Low Power) 동작 상태가 필요하다.
이번 글에서는 AUTOSAR 기반 ECU에서 사용되는 LPA(Low Power Application) Mode의 개념과 Normal Mode와의 차이, Wakeup 동작, 그리고 실제 ECU SW를 분석할 때 어떤 부분을 확인해야 하는지 정리한다.
1. LPA Mode란?
LPA는 Low Power Application의 약자로, ECU가 정상적인 Application 동작을 최소화하여 전력 소비를 줄이는 상태를 의미한다.
쉽게 표현하면 다음과 같다.
LPA Mode = ECU가 필요한 최소 기능만 유지하면서 저전력으로 동작하는 상태
일반적인 ECU의 동작 흐름을 단순화하면 다음과 같이 볼 수 있다.

여기서 주의해야 할 부분이 있다.
LPA Mode라는 이름 자체가 AUTOSAR Classic 표준에서 모든 ECU에 동일한 방식으로 정의된 하나의 표준 Mode는 아니다.
실제 양산 프로젝트에서는 OEM/OES의 시스템 아키텍처와 ECU 설계에 따라 LPA Mode를 정의하고, 해당 Mode에서 Application과 BSW가 어떻게 동작할지를 결정한다.
따라서 프로젝트마다 다음과 같은 차이가 발생할 수 있다.
- LPA 진입 조건
- LPA에서 실행되는 Runnable
- Communication 동작 여부
- Wakeup Source
- MCU Low Power 진입 방식
- Wakeup 이후 Normal Mode 복귀 방식
즉, LPA라는 이름만 보고 정확한 동작을 판단하면 안 되고 해당 프로젝트의 Mode 설계를 확인해야 한다.
2. 왜 LPA Mode가 필요한가?
차량이 주차된 상태를 생각해보자.
차량의 IGN이 OFF되었다고 해서 ECU가 반드시 완전히 전원이 차단되는 것은 아니다. 일부 ECU는 차량 상태를 감시하거나 특정 이벤트가 발생했을 때 차량을 다시 Wakeup해야 하기 때문에 일정 부분 전원을 유지해야 한다.
예를 들어 다음과 같은 기능이 필요할 수 있다.
- CAN Wakeup 감시
- GPIO Wakeup 감시
- Ignition 상태 감시
- Timer/RTC 기반 Wakeup
- 특정 차량 상태 감시
- 저전압 상태 감시
그렇다고 ECU의 모든 Application을 계속 실행할 필요는 없다.
모든 기능을 끄는 것이 아니라, 저전력 상태에서 반드시 필요한 기능만 유지하는 것이다.
3. Normal Mode와 LPA Mode의 차이
LPA Mode에서는 모든 기능이 무조건 정지하는 것은 아니다.
프로젝트 설계에 따라 기능별로 다음과 같이 동작할 수 있다.
| 항목 | Normal Mode | LPA Mode |
| Application | 정상 동작 | 일부 기능 제한/정지 |
| Runnable | 정상 주기 실행 | 일부 비활성 또는 주기 변경 |
| CAN Communication | 정상 | 제한 또는 중지 가능 |
| Diagnostic | 정상/허용 | 제한 가능 |
| Wakeup | 가능 | 핵심 가능 |
| Timer/RTC | 사용 | Wakeup 목적 등으로 사용 |
| MCU | Normal Run | Low Power 상태 가능 |
| 소비전력 | 상대적으로 높음 | 낮음 |
여기서 "LPA에서는 CAN이 동작하지 않는다"라고 단정하면 안 된다.
정확한 표현은 다음과 같다.
LPA Mode에서는 전력 절감을 위해 CAN Communication을 제한하거나 중지하도록 구성할 수 있다.
마찬가지로 Application Runnable도 프로젝트 설계에 따라 달라질 수 있다.
4. AUTOSAR에서 LPA를 제어하는 주요 모듈
LPA Mode를 이해하려면 Application만 봐서는 부족하다.
AUTOSAR Classic에서는 Mode Management와 Communication Management, ECU State Management 등이 서로 연계되어 동작하기 때문이다.
대표적으로 다음과 같은 구조로 이해할 수 있다.

EcuM (ECU State Manager)
ECU의 Startup, Shutdown 및 Power 관련 상태를 관리하는 핵심 BSW 모듈이다.
저전력 진입과 Wakeup이라는 관점에서 EcuM의 역할을 이해하는 것이 중요하다.
BswM (Basic Software Mode Manager)
시스템의 다양한 Mode 변화를 기반으로 BSW 동작을 제어한다.
예를 들어 특정 Mode에 진입했을 때 Communication 관련 동작을 변경하거나 특정 BSW Action을 수행하도록 구성할 수 있다.
ComM (Communication Manager)
ECU의 Communication Mode를 관리한다.
LPA와 같은 저전력 상태에서는 Communication 요구 상태가 Normal Mode와 달라질 수 있다.
CanSM (CAN State Manager)
CAN Communication의 상태를 관리한다.
LPA 진입 시 CAN Communication을 어떤 상태로 변경할 것인지에 따라 CanSM 상태 변화가 발생할 수 있다.
CanIf (CAN Interface)
CAN Driver와 상위 BSW 사이의 인터페이스 역할을 한다.
CAN Communication을 실제로 사용할 수 있는 상태인지 확인할 때 함께 살펴볼 필요가 있다.
5. LPA Mode에서는 무엇이 동작하고 무엇이 멈추는가?
실무에서 LPA Mode를 처음 분석할 때 가장 많이 하는 질문이다.
예를 들어 Application에 다음 Runnable이 있다고 가정해보자.
void App_MainFunction(void)
{
ReadSensor();
ControlActuator();
CheckCommunication();
CheckWakeup();
}
Normal Mode에서는 모든 기능이 실행될 수 있다.
Normal Mode
ReadSensor() O
ControlActuator() O
CheckCommunication() O
CheckWakeup() O
하지만 LPA에서는 다음과 같이 구성할 수 있다.
LPA Mode
ReadSensor() X
ControlActuator() X
CheckCommunication() △
CheckWakeup() O
여기서 중요한 것은 Runnable 자체가 실행되지 않는 것과 Runnable은 실행되지만 내부 기능을 수행하지 않는 것은 서로 다른 문제라는 점이다.
예를 들어,
void App_MainFunction(void)
{
if (CurrentMode == LPA_MODE)
{
CheckWakeup();
}
else
{
ReadSensor();
ControlActuator();
CheckCommunication();
CheckWakeup();
}
}
처럼 구현할 수도 있고,
RTE의 Mode/Timing Event 설정을 이용해 LPA에서는 해당 Runnable 자체가 호출되지 않도록 구성할 수도 있다.
따라서 실제 디버깅에서는 이 둘을 반드시 구분해야 한다.
6. LPA Mode에서의 Wakeup
LPA Mode의 핵심 기능 중 하나가 Wakeup이다. ECU가 저전력 상태에 들어간 이후에도 CAN, LIN, GPIO, Ignition 등의 특정 이벤트가 발생하면 ECU는 다시 정상 동작 상태로 복귀해야 한다.
AUTOSAR에서는 Wakeup Source가 감지되었을 때 EcuM(E ECU State Manager) 에 Wakeup Event를 전달하는 구조를 사용한다. 대표적인 API가 다음과 같다.
EcuM_SetWakeupEvent(ECUM_WKSOURCE_POWER);
AUTOSAR Specification에서도 Wakeup Source를 감지한 Driver가 EcuM_SetWakeupEvent()를 호출하여 ECU Manager에 Wakeup Event를 전달하도록 정의하고 있다. 또한 고객사에서 제공하는 공용 Library에서 제공되는 함수도 같이 사용해야 하는 경우도 있다.
7. LPA Mode와 MCU Low Power는 같은 것인가?
여기서 하나 헷갈리기 쉬운 부분이 있다.
LPA Mode와 MCU의 Low Power Mode는 반드시 동일한 개념은 아니다.
LPA는 주로 Application/ECU SW 관점의 동작 상태를 의미하고,
MCU의 Sleep/Standby 등의 Low Power 상태는 Hardware/MCAL 관점의 실제 전력 상태에 해당한다.
따라서 프로젝트에 따라 LPA 상태이지만 MCU는 완전한 Sleep 상태가 아닐 수도 있고,
반대로 특정 조건에서 MCU Low Power 상태로 진입할 수도 있다.
8. LPA Mode에서 Application이 동작하지 않을 때 무엇을 확인해야 할까?
LPA에서 특정 기능이 동작하지 않는 문제를 분석할 때는 다음 순서로 확인하면 된다.
① ECU가 실제 LPA Mode인가?
↓
② Runnable이 호출되고 있는가?
↓
③ RTE Mode Dependency가 있는가?
↓
④ BswM이 어떤 Action을 수행했는가?
↓
⑤ EcuM Power State는 무엇인가?
↓
⑥ ComM / CanSM 상태는 무엇인가?
↓
⑦ MCAL / MCU가 Low Power 상태인가?
결국 LPA Mode를 이해한다는 것은 단순히 Application C 코드 하나를 이해하는 것이 아니라, AUTOSAR의 Mode Management부터 BSW Communication, MCU Power State까지 하나의 흐름으로 이해하는 것이라고 볼 수 있다.
마무리
LPA Mode는 차량의 배터리 전력 소비를 줄이면서 필요한 Wakeup 기능을 유지하기 위한 중요한 ECU 동작 상태다. 프로젝트마다 구현 방식에는 차이가 있기 때문에 특정 ECU의 LPA 동작을 분석할 때는 Mode 설정, RTE Runnable, BswM, EcuM, ComM/CanSM, MCAL까지 연결해서 확인해야 한다.
특히 실제 양산 ECU를 디버깅할 때는 "왜 이 함수가 동작하지 않는가?"보다 먼저 "현재 ECU가 어떤 Mode와 Power State에 있으며, 해당 Runnable이 실제로 호출되고 있는가?"를 확인하는 것이 핵심이다.
'AUTOSAR' 카테고리의 다른 글
| AUTOSAR HSM(Hardware Security Module)이란? 암호 키는 어디에 저장될까? (0) | 2026.07.01 |
|---|---|
| AUTOSAR CryIf(Crypto Interface)란? 왜 Crypto Driver 앞에 인터페이스 계층이 필요할까? (0) | 2026.07.01 |
| AUTOSAR Crypto Driver란? 실제 암호 연산은 어디에서 수행될까? (0) | 2026.07.01 |
| AUTOSAR CSM(Crypto Service Manager)이란? SecOC는 MAC을 누구에게 요청할까? (0) | 2026.07.01 |
| AUTOSAR SecOC란? 차량 ECU 통신을 안전하게 만드는 보안 기술 (0) | 2026.07.01 |