Skip to content

vECU#

Introduction#

  • 사용자의 요구 사항이 늘어감에 따라 차량의 소프트웨어의 복잡도와 크기가 커지고 이는 소프트웨어의 통합과 테스트를 어렵게 한다.
  • 초기 하드웨어의 준비는 소프트웨어에 비해 느리기 때문에 실제 하드웨어 검증 과정에서 병목이 발생한다.

  • 또한 Zonal Architecture 등의 패러다임 변화로 인한 고성능 ECU 상의 개발이 늘고 있고, 고성능 ECU의 높은 비용으로 인해 많은 하드웨어를 개발에 투입하기 어려워진다.

  • 이로 인해 virtual ECU (vECU)의 필요성이 대두돼고 있다.
  • vECU는 물리적인 하드웨어 없이 소프트웨어 환경에서 차량용 소프트웨어를 시뮬레이션 하여 ECU의 기능을 테스트하고 검증할 수 있게 한다.

Levels of vECUs#

  • vECU는 개발 및 테스트 목적에 따라 다양한 Level로 나뉜다.
  • 개발 초기에는 가볍고 빠른 테스트 환경이, 양상 직전에는 실제 ECU와 유사한 환경이 요구되므로 상황에 맞춰 적절한 레벨을 선택하는 것이 중요하다.

VECU LEVEL

  • Level 0 : 알고리즘 모델
    • 주로 C++ 코드 또는 MATLAB/Simulink 환경에서 작성된 초기 제어 모델
    • Host에서 컴파일 또는 인터프리터를 통해 실행되는 수준
    • 초기 아이더를 검증하고, 기능 로직을 설계하는데 사용됨
  • Level 1 : 애플리케이션 단위 테스트
    • 애플리케이션의 생산 코드를 중심으로 테스트
    • OS, 미들웨어 없이 기본 I/O나 런타임만 시뮬레이션된 환경
    • 단일 모듈 혹은 기능 수준의 단위 테스트에 적합
  • Level 2 : 미들웨어 포함 시뮬레이션
    • 애플리케이션 + 시뮬레이션용 미들웨어로 구성됨
    • 실제 ECU 구조에 가깝게 동작하며, 미들웨어와의 인터페이스 검증 가능
    • 다중 모듈 통합 테스트나 소프트웨어 통합 시점에 유용
  • Level 3 : 생산 미들웨어 포함
    • 전체 미들웨어까지 생산 코드로 구성됨
    • 단, 드라이버, 하드웨어 인터페이스는 시뮬레이션 코드로 대체됨
    • 디바이스 드라이버 제외한 대부분의 계층을 검증 가능
  • Level 4a : 부분 바이너리 + Host 확장 방식
    • Level 3와 유사하나, 일부 소프트웨어를 호스트 환경 하므로 바이패스하여 속도를 높임
    • Synopsys 등에서 도입한 방법으로, 성능과 속도 개선 목적
    • VIRTIO 등 가상 장치 인터페이스 활용 가능
  • Level 4b : 완전 바이너리 스택
    • 애플리케이션, 미들웨어, OS 등 전체 생산 코드로 빌드된 타겟 바이너리를 구동
    • 하드웨어만 제외하면 실제 ECU와 거의 동일한 실행 환경
    • 하드웨어 없이도 최종 ECU 동작을 사전에 검증할 수 있음

Our Research on vECU#

  • 앞으로의 차량 소프트웨어는 단일 OS 환경을 넘어 고성능 SoC와 high performance computer (HPC) 기반의 멀티 OS 및 멀티 ECU 시뮬레이션 환경으로 진화할 것이다.
  • 차량 내 급격하게 증가하는 연산량 문제를 해결하기 위해 고성능 멀티코어 프로세서와 메모리를 탑재한 HPC 기반 ECU가 도입되고 있으며, 이러한 ECU는 복수의 OS나 ECU 기능을 한 하드웨어에서 병렬로 구동할 수 있도록 하이퍼바이저 위에서 운영된다.
  • 특히 하이퍼바이저 기반의 구조에서는 여러 개의 virtual machine (VM)과 논리적 ECU를 동시에 시뮬레이션해야 하며, 이로 인해 ECU 간 통신 및 시뮬레이션 동기화에 대한 요구도 점점 커지고 있다.
  • vECU는 이제 단순히 Simulator/Emulator를 만드는 것을 넘어서, 전체 ECU 시스템 시뮬레이션을 클라우드에서 쉽게 실행할 수 있는 인프라로 진화하고 있다.
  • 각 vECU, OS, VM이 상호 통신하고 동기화되는 메커니즘이 중요해지고 있으며, CI/CD와 연계되는 자동화 테스트 환경으로도 활용이 기대된다.
  • 이러한 흐름에 따라 최근에는, 차량용 소프트웨어 개발도 클라우드 환경에서 애플리케이션을 빌드하고 테스트하며 배포하는 cloud-native 개발 방식으로 전환되고 있다.
  • 이는 각 ECU 기능을 컨테이너화하고, 오케스트레이터 (Kubernetes 등)를 통해 대규모 vECU 테스트 환경을 구성하고 관리할 수 있게 한다.
  • 이를 통해 개발 초기부터 대규모 병렬 테스트, CI/CD가 가능해질 것이며, vECU는 cloud-native 개발 환경에서 핵심 테스트 인프라이자 통합 검증 도구가 될 것이다.