AUTOSAR

AUTOSAR BSW(Basic Software)의 핵심 모듈 정리

뱅글Vangle 2025. 6. 26. 15:00

차량 소프트웨어의 기반, BSW의 중요성

자동차 산업이 디지털화되면서 차량의 핵심 기능이 점점 더 소프트웨어 중심으로 전환되고 있다. 이러한 환경에서 소프트웨어의 구조적 품질과 효율적인 재사용은 매우 중요한 요소가 된다. 이때 핵심적인 역할을 하는 것이 바로 AUTOSAR BSW(Basic Software)다.

AUTOSAR BSW는 하드웨어와 애플리케이션 사이의 중간 계층으로서, 시스템의 기반을 제공한다. 예를 들어, CAN 통신을 처리하고, 메모리 상태를 제어하며, ECU 부팅 시 초기화를 수행하는 등 다양한 공통 기능이 이 계층에서 수행된다. BSW는 애플리케이션 개발자가 직접 신경 쓰지 않아도 되는 저수준 작업을 표준화된 방식으로 제공함으로써, 개발자는 핵심 로직 구현에 집중할 수 있도록 환경을 만들어준다. 본 글에서는 BSW의 전체 구조를 이해하고, 주요 모듈들을 계층별로 구분해 실무적인 관점에서 정리해보겠다.

AUTOSAR BSW(Basic Software)의 핵심 모듈

 

BSW의 전체 구조 및 계층별 구성 개요

AUTOSAR BSW는 세 가지 주요 계층으로 구성되어 있으며, 각각의 계층은 역할과 기능에 따라 명확하게 분리되어 있다.

✅ 1) Microcontroller Abstraction Layer (MCAL)

MCAL은 하드웨어 추상화 계층으로, 다양한 마이크로컨트롤러에 대한 드라이버 기능을 표준화하여 제공한다. 이 계층에는 다음과 같은 모듈이 포함된다:

  • ADC Driver: 아날로그-디지털 변환 기능 처리
  • DIO Driver: 디지털 입출력 제어
  • PWM Driver: 펄스 신호 생성
  • SPI, I2C, CAN Driver 등: 시리얼 통신 처리

MCAL의 목적은 ECU에서 사용하는 MCU가 바뀌더라도 상위 계층 소프트웨어가 변경 없이 동일하게 작동할 수 있도록 보장하는 것이다.

✅ 2) ECU Abstraction Layer

이 계층은 MCAL 위에 위치하여, 센서나 액추에이터 같은 외부 디바이스를 추상화한다. 주요 모듈은 다음과 같다:

  • I/O Hardware Abstraction
  • Memory Hardware Abstraction
  • Communication Hardware Abstraction

이 계층은 ECU의 물리적인 구조와 무관하게, 상위 소프트웨어가 동일한 방식으로 디바이스를 접근할 수 있게 만들어준다.

✅ 3) Services Layer

BSW의 최상위 계층이며, 시스템 전반에서 공통적으로 필요한 서비스를 제공한다. 여기에는 다음과 같은 모듈이 포함된다:

  • Operating System (OS): 태스크 스케줄링과 실행 제어
  • Communication Services (e.g. COM, PDU Router)
  • Diagnostic Services (DEM, DCM)
  • Memory Services (NvM 등)
  • ECU State Manager, Watchdog Manager 등

Services 계층은 SWC(Software Component)와 가장 가까운 위치에 있으며, 통신, 진단, 전원관리, 오류 로그 처리 등과 같은 복잡한 기능을 단순화된 API로 제공한다.

 

실무에서 중요한 BSW 핵심 모듈 상세 설명

BSW는 수많은 모듈로 구성되지만, 실무에서 자주 사용되고 프로젝트 품질에 큰 영향을 미치는 핵심 모듈들이 존재한다. 여기서는 그중 몇 가지를 구체적으로 설명하겠다.

✅ COM (Communication Module)

COM 모듈은 Application Layer에서 발생하는 데이터를 통신 가능한 형식으로 변환해 하위 계층으로 전달한다. 송수신되는 데이터는 Signal 단위로 관리되며, 주기 설정, 유효성 검증, 전송 타이밍 등 다양한 설정을 지원한다. 이 모듈은 통신 품질과 속도에 직접적인 영향을 미치는 요소이기 때문에, 설계 시 매우 중요하다.

✅ PDU Router (PduR)

PDU Router는 데이터가 실제 어느 통신 채널로 가야 할지를 결정하는 라우팅 관리자다. CAN, LIN, FlexRay 등 다양한 네트워크가 혼재된 환경에서, 이 모듈은 데이터 흐름의 중심에 위치하며, 각 PDU를 적절한 방향으로 연결한다.

✅ DCM (Diagnostic Communication Manager)

DCM은 진단 통신을 처리하는 모듈로, OBD-II, UDS 프로토콜 등을 지원한다. 진단 요청에 따라 메모리 읽기/쓰기, DTC 리포트 처리 등을 수행하며, 서비스센터에서 ECU에 접근할 수 있게 해주는 중요한 기능을 담당한다.

✅ NvM (Non-volatile Memory Manager)

비휘발성 메모리에 데이터를 저장하고, 필요할 때 복구할 수 있도록 지원하는 모듈이다. 예를 들어, 사용자의 설정 정보나 주행 이력 등은 전원이 꺼져도 유지되어야 하는데, 이때 NvM이 사용된다. NvM은 메모리 오류 감지, 백업/복구 기능도 포함하고 있다.

✅ ECUM (ECU State Manager)

ECUM은 ECU의 부팅, 절전, 재시작 등 상태 전이를 관리하는 모듈이다. 차량 시동 ON/OFF, Sleep 모드 진입 시 모든 BSW 모듈과 연동해 상태를 일관성 있게 유지하는 역할을 한다.

이 외에도 WDGM(Watchdog Manager), MemIf, Fee, Adc, CanIf, Dio 등의 모듈들이 각각의 역할을 수행하며, 전체 시스템의 신뢰성과 성능을 보장한다.

 

BSW 설정 및 통합 과정에서의 실무 포인트

AUTOSAR 프로젝트에서 BSW 설정과 통합은 매우 복잡한 작업이다. 잘못된 설정 하나가 전체 ECU 기능에 영향을 미칠 수 있기 때문에, 정확한 계층 이해와 정교한 Configuration 작업이 필수다. 실무에서는 다음과 같은 프로세스를 따라야 한다:

✅ 1) Configuration Tool 사용

BSW 설정은 수작업으로 하기엔 너무 복잡하므로, DaVinci Configurator Pro, EB tresos Studio 같은 전용 툴을 사용한다. 이 툴들은 ARXML 파일을 기반으로 설정 UI를 제공하며, 설정값에 따라 자동으로 소스 코드를 생성한다.

✅ 2) 모듈 간 Dependency 관리

BSW 모듈들은 상호 의존성이 높기 때문에, 특정 모듈을 비활성화하면 다른 모듈의 기능도 동작하지 않을 수 있다. 예를 들어, NvM을 사용하려면 반드시 MemIf와 Fee, Eep 등의 모듈이 함께 설정되어야 한다. 이를 고려한 모듈 간 Dependency 매트릭스 관리가 필요하다.

✅ 3) 테스트 및 검증

BSW는 시스템의 핵심 기반이므로, 통합 테스트 전 반드시 Unit Test와 Simulation을 통해 각 기능을 검증해야 한다. CANoe, INCA, dSPACE와 같은 툴이 활용되며, 오류 발생 시 로그 분석을 통해 어느 모듈에서 문제가 발생했는지를 파악해야 한다.

✅ 4) 업데이트와 유지보수

AUTOSAR BSW는 지속적으로 업데이트되며, 프로젝트 요구에 따라 다른 버전을 적용해야 할 수 있다. 이를 위해서는 AUTOSAR Release Version별 변경 이력을 숙지하고, Migration 시 어떤 모듈이 영향을 받는지도 분석할 수 있어야 한다.

이러한 점들을 고려해 설계하면, 성능 최적화는 물론 유지보수성과 확장성을 갖춘 차량 소프트웨어 구조를 만들 수 있다.

 

✅ 마무리 요약

AUTOSAR BSW는 차량 ECU의 핵심적인 기반으로, 통신, 메모리, 진단, 디바이스 제어 등 다양한 기능을 표준화된 방식으로 제공한다. BSW를 정확하게 이해하고 활용하면 개발자는 중복된 저수준 코드 작성에서 벗어나, 고부가가치 소프트웨어 개발에 집중할 수 있게 된다.

MCAL에서부터 Services 계층까지의 구조와 주요 모듈들의 역할, 그리고 설정 및 통합 과정의 실무 포인트까지 이해하면, 효율적이고 견고한 ECU 소프트웨어를 구현하는 데 큰 도움이 된다.
미래의 차량은 소프트웨어가 중심이 되는 만큼, AUTOSAR BSW는 그 기반을 이루는 필수 요소이며, 관련 역량은 향후 자동차 소프트웨어 전문가로 성장하는 데 있어 가장 중요한 자산이 된다.