AUTOSAR란 무엇인가?

영선·2024년 12월 1일

자동차 소프트웨어 복잡성 증가와 이에 따른 개발 시간 및 비용 부담이 증가하면서, 이를 해결하기 위한 표준화된 소프트웨어 아키텍처의 필요성이 대두되었습니다. 이 과정에서 등장한 것이 AUTOSAR(AUTomotive Open System ARchitecture)입니다. 이번 글에서는 AUTOSAR의 개념, 구조, 주요 기술적 특징에 대해 알아보겠습니다.

1. AUTOSAR란 무엇인가?

AUTOSAR는 자동차 제조사, 부품 공급업체, 소프트웨어 개발 업체들이 협력하여 만든 자동차 소프트웨어 표준화 플랫폼입니다. 2003년 설립된 이후, 자동차 전자제어장치(ECU)의 소프트웨어 개발을 효율적으로 진행하기 위한 산업 표준으로 자리 잡았습니다.

주요 목적

  • 소프트웨어 개발 편의성
  • 소프트웨어 재사용성 : 같은 모듈을 여러 프로젝트에 활용하는 것
  • 소프트웨어 모듈화 : 이를 가능하게 하기 위한 구조적 설계

2. AUTOSAR의 구조 알아보기

AUTOSAR는 크게 4가지 구조로 Application / RTE / BSW / Microcontroller(MCU)로 구성됩니다.

각 계층을 들여다보면 다음과 같습니다.

  • Application : 각 기능에 대해 소프트웨어 구성 요소 SWCs로 구성된 최상위 계층입니다. SWCs는 Software Component로 독립적인 기능을 갖는 모듈을 의미합니다. AUTOSAR의 정의에 따르면 아랫단과는 의존성이 없습니다.
  • RTE(Real Time Environment) : 직역하면 런타임 환경으로 프로그램이 실행되는 동안 필요한 기능을 제공하는 환경입니다.
    • 필요한 기능이란?
    1. SWC 간의 통신 지원
    2. BSW와 통신(MCU 제어 또는 접근이 필요할 때)
  • BSW
    • Services Layer : OS와 그에 관련된 service 기능을 모아둔 Layer입니다.
    • ECU Abstraction Layer : ECU 관련 추상화 계층으로 여기서 추상화란 QA에서의 블랙박스입니다.
    • MCAL : Microcontroller H/W 주변 장치들과 소통하는 계층으로 여기서 주변 장치란 ADC, PWM 등이 있습니다. 칩사에서 제공하는 것으로 MCAL을 사용하므로써 호환성을 지킬 수 있습니다.
  • Complex Drivers : MCU와 직접적으로 소통하는 창구입니다.

3. AUTOSAR의 종류

AUTOSAR Platform은 Classic과 Adaptive, 두 종류로 나눠집니다. 각각의 플랫폼은 여러 차이점들을 갖고있는데 이에 대해 알아보겠습니다.

- Classic Platform

MCU 기반의 임베디드 시스템에 적합한 실시간 플랫폼으로 전통적인 ECU 개발을 위해 만들어졌으며 실시간 성능이 중요한 시스템(ex. 엔진 제어, 브레이크 시스템, 에어백 등)에 적합합니다.

  • 사용 언어 : C
  • 운영체제 : RTOS기반으로 정밀한 타이밍 제어가 필요한 하드 실시간 시스템(예: 엔진 제어, 브레이크 제어)에 최적화되어 있습니다. 멀티테스킹 및 메모리 제한 환경에 최적화되어있습니다.
  • 설계 기반 : 정적설계를 기반으로 사전에 정의된 구성과 고정된 소프트웨어 구조를 갖고있습니다. 주로 차량 생산 전에 완전히 검증되고 통합합니다.
  • 통신 : CAN, LIN 등 전통적인 버스 통신 프로토콜을 사용합니다.
  • 재사용 및 유지 보수 : 재사용 가능성이 제한적이고, ECU 설계가 정적이므로 유지 보수 시 하드웨어와 소프트웨어를 동시 수정해야 하는 경우가 많습니다.

- Adaptive Platform

AP 기반의 임베디드 시스템에 적합한 실시간 플랫폼으로 고성능 데이터 처리 및 연결성을 요구하는 새로운 응용 분야(자율주행, 차량 내 네트워크 통신, 클라우드 연결)에 적합합니다. 이를 통해 자율주행 및 ADAS(Advanced Driver Assistance System)과 같은 고성능 소프트웨어를 지원합니다.

  • 사용 언어 : C++
  • 운영체제 : POSIX API를 지원하는 운영체제를 기반으로 하며, 동적 소프트웨어 환경과 복잡한 데이터 처리를 지원하는 Linux와 같은 고급 운영체제를 사용합니다. 비교적 시간 민감도가 덜 중요한 작업에서도 안정적으로 동작할 수 있으며 복잡한 데이터 처리 및 멀티코어 프로세서를 활용할 수 있습니다.
  • 설계 기반 : 동적설계를 기반으로 유연하게 변경이 가능한 소프트웨어 구조를 갖고있습니다.
  • 통신 : Ethernet 기반 통신을 지원하며 차량 내 외부의 연결성이 높습니다.
  • 재사용 및 유지 보수 : 모듈화와 동적 구성을 통해 재사용 가능성이 높으며 유지 보수와 업데이트가 용이합니다.

0개의 댓글