AUTOSAR 아키텍처와 차량 소프트웨어 표준화의 구조
AUTOSAR의 계층형 아키텍처, RTE와 BSW의 역할, MISRA-C 준수, Classic·Adaptive Platform의 적용 범위를 정리한다.
2026-08-14 · 최초 발행 2025-05-23
ECU 소프트웨어를 공통 구조로 묶는 AUTOSAR
AUTOSAR는 자동차 전기제어장치(ECU)를 위한 개방형 표준화 임베디드 소프트웨어 아키텍처다. BMW, 보쉬, 컨티넨탈, 다임러크라이슬러, 폭스바겐 등 자동차 산업 주요 기업이 2003년 공동 개발을 시작했으며, 현재 150개 이상의 파트너사가 참여하는 글로벌 표준으로 성장했다.
이 표준의 목적은 ECU 소프트웨어 재사용성을 높이고 개발 복잡성을 줄이며 유지보수를 효율화하는 데 있다. 자동차 산업이 디지털화되고 소프트웨어 중심으로 전환되는 과정에서 AUTOSAR는 핵심 인프라 역할을 한다.
현대 자동차에는 100개 이상의 ECU와 수천만 라인의 코드가 탑재된다. ECU 간 통합과 상호작용이 복잡해질수록 제조사와 공급업체 사이의 호환성, 안전성, 보안성 요구사항도 함께 커진다. 하드웨어와 소프트웨어를 분리하고, 자율주행·커넥티드 카 같은 기능을 구현할 표준 플랫폼이 필요한 이유다.
응용 기능과 하드웨어 사이를 나누는 계층
AUTOSAR는 계층과 모듈 간 인터페이스를 명확히 정의해 하드웨어와 소프트웨어를 분리한다.
Software Component Layer에서 구현하는 차량 기능
AUTOSAR Software Component Layer는 차량의 실제 기능을 담당하는 소프트웨어 컴포넌트(SW-C) 집합이다. 이 계층은 하드웨어에 독립적으로 설계할 수 있으며, 컴포넌트는 명확한 인터페이스인 port를 통해 통신한다.
구성되는 SW-C 유형에는 제어 로직과 기능 알고리즘을 구현하는 Application SW-C, 센서와 액추에이터의 인터페이스를 담당하는 Sensor/Actuator SW-C, 캘리브레이션 파라미터를 관리하는 Parameter SW-C가 있다. 여러 SW-C를 묶어 하나의 기능으로 제공하는 Composition SW-C도 사용된다.
RTE가 연결하는 소프트웨어 경계
Runtime Environment(RTE)는 SW 컴포넌트와 기본 소프트웨어(BSW) 사이의 통신을 중계하는 핵심 가상화 계층이다. 응용 레벨이 하드웨어에 의존하지 않도록 추상화를 제공하고, Client-Server 및 Sender-Receiver 패턴을 이용한 컴포넌트 간 통신 메커니즘을 제공한다.
RTE는 동일한 ECU 내부의 통신과 다른 ECU 사이의 통신을 구분하지 않도록 추상화한다. 코드 생성기로 자동 생성되는 Virtual Function Bus(VFB)의 실제 구현체이기도 하다.
BSW가 담당하는 하드웨어 접점
Basic Software Layer(BSW)는 하드웨어와 직접 상호작용하는 표준화 소프트웨어 계층이다. OS, 메모리 관리, 통신 서비스, 진단을 포함하는 Services Layer와 장치 드라이버를 추상화하는 ECU Abstraction Layer가 여기에 속한다.
Microcontroller Abstraction Layer는 MCU를 직접 제어하며, Complex Device Drivers는 특수 하드웨어를 직접 제어한다.
설계부터 통합까지의 개발 흐름
AUTOSAR 개발은 먼저 전체 시스템 구조를 정하고 SW 컴포넌트와 인터페이스를 식별하며 ECU 간 통신 요구사항을 정의하는 단계에서 출발한다.
그다음 기능 요구사항을 SW 컴포넌트로 구현하고 단위 테스트와 인터페이스 검증을 수행한다. ECU 구성 단계에서는 RTE를 설정하고 BSW 모듈 파라미터, 메모리와 CPU 등의 리소스를 할당한다. 마지막으로 SW 컴포넌트와 BSW를 통합한 뒤 시스템 테스트, 검증 및 인증을 진행한다.
구현 과정에서는 SW 컴포넌트 설계와 메타모델 생성을 위한 AUTOSAR Authoring Tool, 명세에서 RTE 코드를 생성하는 RTE Generator가 사용된다. BSW Configuration Tool은 기본 소프트웨어 모듈을 구성하고, ECU Configuration Tool은 ECU 전체 설정을 관리한다. 이후 빌드 및 통합 도구가 컴파일, 링크, 바이너리 생성을 맡는다.
MISRA-C로 코드의 안전성 기준을 맞추기
AUTOSAR 개발에서는 코드 품질과 안전성을 확보하기 위해 MISRA-C(Motor Industry Software Reliability Association C) 가이드라인을 준수한다. MISRA-C는 1998년 처음 발표됐고, 현재 MISRA-C:2012 버전이 사용되며 2023년 최신 업데이트가 있다.
이 가이드라인은 C 언어의 위험한 기능 사용을 제한하고 모호성을 줄이는 데 초점을 둔다. 규칙은 반드시 따라야 하는 Mandatory, 특별한 상황 외에는 준수하는 Required, 가능한 한 따르도록 권고하는 Advisory로 구분된다.
대표적인 규칙으로는 malloc, free 같은 동적 메모리 할당 금지, 재귀 함수 사용 제한, 포인터 연산 제한과 널 포인터 체크 의무화가 있다. 명시적 타입 변환, 조건문과 반복문의 중첩, 가독성을 위한 코딩 스타일도 관리 대상이다.
준수 여부는 LDRA, Polyspace, QAC 같은 정적 코드 분석 도구로 확인할 수 있다. 코드 리뷰 프로세스와 CI/CD 파이프라인의 자동 검증 단계에 함께 통합하는 방식도 사용된다.
실시간 제어와 고성능 컴퓨팅을 나누는 플랫폼
AUTOSAR는 자동차 산업의 요구에 맞춰 계속 발전하고 있다.
Classic Platform의 대상
AUTOSAR Classic은 엔진 제어와 브레이크 시스템처럼 실시간성과 안전성이 중요한 임베디드 시스템을 위한 플랫폼이다. 버전은 R3.x, R4.x, R4.0.3으로 이어졌으며, R4.0.3이 가장 널리 사용된다. 결정적 동작과 높은 안전성이 이 플랫폼의 초점이다.
Adaptive Platform의 대상
AUTOSAR Adaptive는 자율주행과 인포테인먼트처럼 고성능 컴퓨팅이 필요한 시스템을 겨냥한다. 2017년 처음 발표됐으며 최신 버전으로 발전 중이다. SOA(Service-Oriented Architecture) 기반 설계, 동적 소프트웨어 업데이트, 높은 처리량, 유연한 구조를 지원하고 POSIX 운영체제와 C++14를 지원한다.
차량 기능에 적용되는 방식
파워트레인 제어 시스템에서는 엔진 제어 유닛(ECU)에 AUTOSAR 아키텍처를 적용해 연료 분사, 점화 타이밍, 배기가스 제어 컴포넌트를 모듈화할 수 있다. 여러 차종 사이의 소프트웨어 재사용성은 약 60% 코드 재사용으로 향상됐고, 개발 시간은 30% 단축됐으며 품질도 향상됐다.
첨단 운전자 보조 시스템(ADAS)은 카메라, 레이더, 라이다의 센서 데이터를 처리하고 여러 ECU 사이에서 고속 데이터를 통신해야 한다. 이 영역에서는 AUTOSAR Adaptive Platform을 활용하고 동적 소프트웨어 업데이트를 지원한다.
차량 진단 시스템은 AUTOSAR의 표준화된 진단 프로토콜을 활용해 다양한 ECU에 일관된 진단 인터페이스를 제공한다. 이를 통해 정비소와 원격 진단의 효율성을 높일 수 있다.
표준화가 남기는 과제와 확장 방향
AUTOSAR는 구성과 통합 과정 자체의 복잡성이 크고, 개발자가 익혀야 할 내용도 많다. 메모리와 처리 성능의 오버헤드, 기존 레거시 시스템과의 호환성도 도입 과정에서 다뤄야 한다.
앞으로는 자율주행차를 위한 안전성과 보안성 기능이 강화되고, 차량과 클라우드를 연결하는 표준화가 이어질 전망이다. 자동화·시각화 개발 도구의 발전과 오픈소스 구현체 확대도 AUTOSAR 채택을 가속화할 수 있다.