Software Defined Vehicle/OS 운영체제

RTOS, SDV 이전 자동차의 운영체제

aim ho 2024. 10. 7. 08:30

 

전통적인 자동차에서 사용된 OS

전통적인 자동차에서 사용되었던 운영체제(OS)는 오늘날의 소프트웨어 정의 차량(SDV)처럼 복잡하지 않았습니다. 그러나 전자 제어 장치(ECU)를 제어하기 위해 다양한 임베디드 운영체제들이 사용되었습니다. 이 운영체제들은 주로 특정 기능을 제어하고 관리하기 위한 실시간 처리가 필요한 RTOS(Real-Time Operating System)였으며, 각 ECU에서 독립적으로 운영되었습니다.

자동차의 RTOS 종류

  1. QNX Neutrino RTOS
    • QNX는 실시간 운영체제(RTOS)로, 고신뢰성이 요구되는 시스템에서 주로 사용되었습니다. QNX는 특히 자동차의 인포테인먼트 시스템디지털 계기판과 같은 인터페이스 기반 시스템에서 많이 사용되었습니다.
    • 특징: 마이크로커널 아키텍처를 사용하여 각 기능을 독립적으로 관리하며, 시스템 충돌이 발생하더라도 다른 기능에 영향을 미치지 않도록 설계되었습니다. 높은 안정성과 실시간 성능을 제공하여 많은 자동차 제조사들이 인포테인먼트 시스템에 채택했습니다.
    • 주요 사용처: 인포테인먼트 시스템, 차량 디스플레이, 디지털 계기판, ADAS(고급 운전자 보조 시스템) 등.
  2. VxWorks
    • VxWorksWind River Systems에서 개발한 실시간 운영체제로, 항공우주, 군사 시스템 등에서 신뢰성이 높은 소프트웨어로 자리 잡았습니다. 자동차 시스템에서도 일부 사용되었으며, 특히 안전성이 중요한 시스템에 적용되었습니다.
    • 특징: 실시간 처리 능력이 뛰어나며, 안전성이 중요한 자동차의 핵심 시스템(예: 안전 제어 시스템)에서 사용되었습니다.
    • 주요 사용처: 안전 제어 시스템, 운전자 보조 시스템 등.
  3. FreeRTOS
    • FreeRTOS는 경량화된 오픈 소스 실시간 운영체제로, 임베디드 시스템에서 널리 사용되었습니다. 자동차에서는 주로 저사양 ECU나 간단한 기능을 처리하는 소프트웨어에 사용되었습니다.
    • 특징: 작고 가벼운 메모리 사용량 덕분에 간단한 ECU에서 자주 사용되었으며, 오픈 소스 특성 덕분에 다양한 맞춤형 개발이 가능했습니다.
    • 주요 사용처: 작은 ECU, 간단한 차량 제어 시스템 등.
  4. Windows Embedded Automotive
    • 마이크로소프트에서 개발한 Windows Embedded Automotive는 차량용 인포테인먼트 시스템을 지원하는 운영체제로, 일부 자동차 제조사들이 채택했습니다. 예를 들어, 포드의 SYNC 시스템은 이 운영체제를 기반으로 개발되었습니다.
    • 특징: 네트워크 연결, 음성 인식, 멀티미디어 기능 등 다양한 인터페이스와 멀티태스킹 기능을 제공했습니다.
    • 주요 사용처: 포드 SYNC와 같은 인포테인먼트 시스템, 내비게이션 시스템 등.

자동차에 적용된 RTOS의 주요 특징

  1. 단일 목적 운영:
    • 전통적인 자동차 운영체제는 단일 목적을 위해 설계된 소프트웨어였습니다. 예를 들어, 엔진 제어용 ECU는 오직 엔진의 성능을 최적화하는 데 필요한 기능만을 담당했습니다. 각 ECU는 독립적으로 동작하며, 통합된 운영체제가 없었습니다.
  2. 실시간 처리:
    • 실시간 처리가 필수적인 시스템에서 RTOS가 널리 사용되었습니다. 엔진 제어, 브레이크 시스템, 에어백 시스템 등은 즉각적인 반응이 요구되기 때문에 RTOS가 주로 적용되었습니다.
  3. ECU 기반 분산 아키텍처:
    • 전통적인 자동차에서는 각 ECU가 각각의 기능을 담당하는 분산 아키텍처를 사용했습니다. 즉, 차량 내 여러 ECU가 각각 독립된 운영체제를 사용하여 작동하고, 차량 내 네트워크(CAN, LIN)를 통해 상호작용했습니다. 이를 통해 차량의 복잡한 시스템이 분리되어 제어되었습니다.
  4. 통신 표준:
    • CAN, LIN, FlexRay와 같은 통신 프로토콜이 ECU 간 데이터를 주고받는 데 사용되었습니다. 이러한 프로토콜은 실시간 데이터를 처리하고, 우선순위를 바탕으로 시스템의 충돌을 방지했습니다.
  5. 제한적인 기능과 업데이트:
    • 전통적인 자동차 운영체제는 주로 고정된 기능을 제공하며, 현재처럼 OTA(Over-The-Air) 업데이트를 통해 소프트웨어를 개선하는 방식이 없었습니다. 소프트웨어를 개선하려면 물리적인 ECU 교체나, 서비스 센터에서의 직접 업데이트가 필요했습니다.

이때까지 RTOS면 충분했었지

전통적인 자동차에 사용된 운영체제는 실시간 처리안전성을 강조하는 RTOS를 중심으로 개발되었습니다. QNX, VxWorks와 같은 운영체제들은 자동차의 엔진 제어, 브레이크 시스템, 인포테인먼트 시스템, 안전 시스템 등 각기 다른 기능을 제어하는 데 사용되었습니다. 전통적인 차량 운영체제는 주로 ECU별로 분산되어 각 기능을 관리했으며, 오늘날의 SDV처럼 통합된 운영체제는 아니었습니다.

과거 자동차에서는 각 기능이 독립적으로 운영되었고, 이를 지원하는 운영체제도 특정 기능에 집중한 구조였으면 괜찮았습니다. 하지만 현대의 SDV는 다양한 시스템을 통합하여 소프트웨어로 제어할 필요가 생기죠.