Automotive Study

Program Flow Monitoring이란? BMS 제어기 사례로 이해하는 흐름 감시 방법

AI Humanoid 2025. 4. 15. 20:00

기능안전(ISO 26262)을 적용한 제어기를 개발하다 보면,
이 루틴이 제대로 실행되고 있는지 어떻게 보장하지?” 라는 질문이 생깁니다.
바로 그 해답이 Program Flow Monitoring (PFM)입니다.

이 글에서는 Program Flow Monitoring의 개념,
AUTOSAR 적용 여부에 따른 구현 방식,
그리고 BMS 제어기를 예시로 한 적용 사례까지 모두 정리해드립니다.


🔍 Program Flow Monitoring이란?

프로그램이 정해진 흐름대로 정확히 실행되고 있는지를 감시하는 기능입니다.

PFM은 단순히 "죽었는지"만 보는 워치독이 아닙니다.
실행 순서, 주기, 응답 시간까지 감시하여 시스템이 설계대로 동작하고 있는지를 보장합니다.


📚 세 가지 감시 방식

유형 설명 감시 목적
Deadline 코드가 일정 시간 내에 끝나는가? 지연 또는 무한루프 감지
Alive 주기적으로 호출되고 있는가? 루틴 누락/정지 감지
Logical 올바른 순서로 실행되고 있는가? 점프 오류, 잘못된 흐름 감지

🛠️ AUTOSAR vs 비-AUTOSAR 시스템

항목 AUTOSAR 시스템 비 AUTOSAR 시스템
구현 주체 BSW(WdgM), RTE, ASW 협업 ASW 개발자가 직접 구현
감시 방식 WdgM_PerformCheckPoint() + 설정 변수 기반 FSM 구현
통합성 표준화됨, 도구 기반 유연하지만 개발 부담 있음

※ WdgM 모듈이 있는 경우, 주기/흐름/시간을 모두 구조적으로 감시할 수 있습니다.


🧠 BMS 제어기에서의 예시

루틴 이름감시 유형요구사항감지 사례
루틴 이름 감시 유형 요구사항 감지 사례
셀 전압 측정 루틴 Alive 10ms마다 실행 루틴 누락 시 셀 상태 미검출
SoC 계산 Deadline 50ms 내 완료 지연 시 충전 상태 오판 가능
Fault → Balancing Logical Fault 후에만 실행 순서 오류 시 과충전 발생 가능
열 폭주 감시 Alive + Deadline 20ms 내 진입 지연 시 안전 문제
VCU 송신 루틴 Alive 100ms마다 전송 누락 시 VCU 통신 오류 발생

🧩 누가 구현하나요?

구성 요소 담당자
감시 대상 정의 기능안전 엔지니어
모듈 구현 (WdgM) BSW 개발자
Checkpoint 설정 RTE or 통합 담당자
실행 코드 삽입 ASW 개발자
비-AUTOSAR 전체 구현 ASW 개발자 단독

🧾 ISO 26262 기준

  • ISO 26262-6 7.4.15: 제어 흐름 감시(Control Flow Monitoring) 요구
  • ASIL C~D 등급에서는 Watchdog과 함께 적용이 사실상 필수입니다.

✅ 마무리 정리

Program Flow Monitoring이란? 코드의 흐름·주기·응답을 감시하는 기능안전 메커니즘
세 가지 유형 Deadline / Alive / Logical
워치독과의 차이 시간 vs 논리 흐름 감시 (보완 관계)
AUTOSAR 시스템 WdgM, RTE 통해 구조적으로 구현
비-AUTOSAR 시스템 수동 FSM, 변수 기반으로 구현
적용 사례 BMS, VCU, ADAS 등 ASIL C~D 제어기