Automotive Study

자동차 전장 시스템의 심장, AUTOSAR BSW 모듈 완전 해부! (기능별 핵심 정리)

AI Humanoid 2025. 4. 23. 21:54

안녕하세요, 임베디드 개발자 여러분! 자동차 전장 시스템 개발의 핵심 프레임워크인 AUTOSAR (Automotive Open System Architecture)의 든든한 기반, BSW (Basic Software) 모듈에 대해 깊이 파고들어 보겠습니다. 방대한 BSW 모듈들을 기능 그룹별로 명확하게 정리하여, 여러분의 이해를 돕고 개발 역량을 한 단계 끌어올리는 데 기여하고자 합니다.

BSW는 하드웨어와 애플리케이션 소프트웨어 (ASW) 사이에서 중요한 매개체 역할을 수행하며, 다양한 표준화된 모듈들을 통해 시스템의 기본적인 기능들을 제공합니다. 자, 그럼 함께 BSW의 세계로 떠나볼까요?

1. 시스템 서비스 (System Services): ECU의 두뇌

  • EcuM (ECU State Manager): ECU의 생명 주기를 관리합니다. 시동부터 종료, 다양한 작동 모드 전환까지 ECU 전체의 상태를 책임집니다.
  • BswM (BSW Mode Manager): BSW 모듈들의 동작 모드를 중앙에서 관리하여 시스템의 일관성을 유지합니다.
  • Os (Operating System): 실시간성을 요구하는 자동차 시스템을 위한 핵심! 태스크 관리, 스케줄링 등 운영체제의 기본 기능을 제공합니다.
  • SchM (Schedule Manager): 태스크 실행 순서 및 타이밍을 관리합니다. (AUTOSAR 4.x부터 RTE의 일부로 통합되는 추세입니다.)
  • WdgM (Watchdog Manager): 시스템의 안정성을 감시하는 파수꾼! 소프트웨어 및 하드웨어 워치독을 통합 관리하여 오류 발생 시 적절한 조치를 취합니다.
  • Det (Development Error Tracer): 개발 단계에서 발생하는 오류 정보를 상세하게 로깅하고 추적하여 디버깅 효율성을 높입니다.
  • Dem (Diagnostic Event Manager): 시스템 내에서 발생하는 다양한 진단 이벤트 및 오류 코드를 체계적으로 관리합니다.
  • FiM (Function Inhibition Manager): 특정 조건 하에서 기능의 실행을 억제하거나 비활성화하는 메커니즘을 제공하여 안전성을 확보합니다.
  • NvM (Non-Volatile Memory Manager): 전원이 꺼져도 데이터를 안전하게 보존하는 비휘발성 메모리 (EEPROM, Flash)를 효율적으로 관리합니다.
  • Rte (Runtime Environment): ASW 컴포넌트 간, 그리고 ASW와 BSW 간의 원활한 통신을 위한 기반 환경을 제공합니다. (BSW의 중요한 부분을 차지합니다.)
  • ComM (Communication Manager): 네트워크 통신 채널의 활성화 및 비활성화를 관리하여 효율적인 통신을 지원합니다.

2. 메모리 서비스 (Memory Services): 데이터 저장 및 관리의 핵심

  • MemIf (Memory Abstraction Interface): 다양한 물리적 메모리 하드웨어를 추상화하여 상위 계층에 일관된 접근 방식을 제공합니다.
  • Fee (Flash EEPROM Emulation): 플래시 메모리의 특성을 활용하여 EEPROM과 유사한 쓰기/소거 기능을 에뮬레이션합니다.
  • Ea (EEPROM Abstraction): EEPROM 하드웨어에 대한 추상화 계층을 제공합니다.
  • Fls (Flash Driver): 플래시 메모리 하드웨어를 직접 제어하는 드라이버입니다.
  • Eep (EEPROM Driver): EEPROM 하드웨어를 직접 제어하는 드라이버입니다.

3. 통신 서비스 (Communication Services): 차량 내외부 연결을 책임지는 통로

  • CanIf (CAN Interface): CAN (Controller Area Network) 통신을 위한 인터페이스를 제공합니다.
  • CanDrv (CAN Driver): CAN 컨트롤러 하드웨어를 직접 제어합니다.
  • LinIf (LIN Interface): LIN (Local Interconnect Network) 통신을 위한 인터페이스를 제공합니다.
  • LinDrv (LIN Driver): LIN 컨트롤러 하드웨어를 직접 제어합니다.
  • EthIf (Ethernet Interface): 이더넷 통신을 위한 인터페이스를 제공합니다.
  • EthDrv (Ethernet Driver): 이더넷 컨트롤러 하드웨어를 직접 제어합니다.
  • FrIf (FlexRay Interface): FlexRay 통신을 위한 인터페이스를 제공합니다.
  • FrDrv (FlexRay Driver): FlexRay 컨트롤러 하드웨어를 직접 제어합니다.
  • Com (Communication): 시그널 및 PDU (Protocol Data Unit) 기반의 통신을 관리합니다.
  • PduR (PDU Router): 다양한 통신 프로토콜 간의 PDU 라우팅을 담당합니다.
  • SoAd (Socket Adapter): 소켓 기반 통신을 위한 어댑터 역할을 수행합니다.
  • TcpIp (TCP/IP Stack): TCP/IP 네트워크 프로토콜 스택을 제공합니다.
  • DoIP (Diagnostic over IP): IP 네트워크를 통한 진단 프로토콜을 지원합니다.

4. 입출력 (I/O) 하드웨어 추상화 (I/O Hardware Abstraction): 센서와 액추에이터를 연결하는 손발

  • Dio (Digital Input/Output): 디지털 신호의 입출력을 제어합니다.
  • Port: 마이크로컨트롤러 핀의 기능 및 동작 모드를 설정합니다.
  • Adc (Analog Digital Converter): 아날로그 신호를 디지털 값으로 변환하는 ADC를 제어합니다.
  • Pwm (Pulse Width Modulation): 펄스 폭 변조 신호를 생성하여 액추에이터 등을 제어합니다.
  • Spi (Serial Peripheral Interface): 직렬 통신 인터페이스인 SPI를 제어합니다.
  • I2c (Inter-Integrated Circuit): 직렬 통신 인터페이스인 I2C를 제어합니다.

5. 마이크로컨트롤러 추상화 계층 (MCAL): 하드웨어 제어의 최전선

  • MCAL은 BSW의 가장 낮은 계층으로, 특정 마이크로컨트롤러의 하드웨어 (타이머, 인터럽트, 통신, 메모리 등)를 직접 제어하는 드라이버들의 집합입니다. 칩 제조사 (예: 인피니언)에서 제공하며, 상위 BSW 모듈들이 하드웨어에 독립적으로 동작할 수 있도록 추상화된 인터페이스를 제공합니다.

6. 복합 장치 드라이버 (Complex Device Drivers - CDD): 유연성을 더하는 맞춤형 솔루션

  • 표준화되지 않은 특수한 하드웨어나 복잡한 기능을 제어하기 위해 개발자가 직접 구현하는 드라이버입니다.

7. 보안 관련 모듈 (Security-related Modules): 안전한 통신과 데이터 보호 (최신 AUTOSAR)

  • SecOC (Secure Onboard Communication): 차량 내부 통신의 보안을 강화합니다.
  • Crypto (Cryptographic Service Manager): 암호화 및 복호화 서비스를 제공합니다.
  • KeyMgmt (Key Management): 암호화 키를 안전하게 관리합니다.
  •  

다음은 주요 AUTOSAR BSW 모듈들을 리스트화하고, 각 모듈이 직접적으로 관련될 수 있는 안전 메커니즘 (SM(HW), SM(SW), SMC(SW), ESM(HW), ESM(SW))을 함께 명시한 것입니다.

시스템 서비스 (System Services):

  • EcuM (ECU State Manager): SMC(SW) (시스템 안전 상태 전환 관리)
  • BswM (BSW Mode Manager): SMC(SW) (BSW 모듈의 안전 관련 모드 관리)
  • Os (Operating System): SM(SW) (태스크 감시, 스케줄링 관련 안전 메커니즘 구현 기반)
  • WdgM (Watchdog Manager): SM(SW) (소프트웨어 워치독), ESM(HW) (외부 워치독 연동), SMC(SW) (워치독 설정 관리)
  • Det (Development Error Tracer): SM(SW), ESM(SW) (오류 발생 시 정보 로깅)
  • Dem (Diagnostic Event Manager): SM(SW), ESM(SW) (오류 이벤트 관리 및 외부 보고)
  • FiM (Function Inhibition Manager): SMC(SW) (안전 관련 기능 억제 관리)
  • NvM (Non-Volatile Memory Manager): SM(SW) (안전 관련 설정 저장 및 무결성 검증), SMC(SW) (안전 관련 파라미터 관리)
  • Rte (Runtime Environment): SM(SW), ESM(SW) (안전 관련 ASW 컴포넌트와 BSW 간 통신 지원)
  • ComM (Communication Manager): SM(SW) (통신 오류 감지 및 관리)

메모리 서비스 (Memory Services):

  • MemIf (Memory Abstraction Interface): SM(HW) (메모리 오류 감지 및 처리 기반), ESM(HW) (외부 메모리 보호 관련)
  • Fee (Flash EEPROM Emulation): SM(HW) (ECC 관련), SM(SW) (데이터 무결성 검사)
  • Ea (EEPROM Abstraction): SM(HW) (ECC 관련), SM(SW) (데이터 무결성 검사)
  • Fls (Flash Driver): SM(HW) (ECC 관련), ESM(HW) (외부 플래시 제어 관련)
  • Eep (EEPROM Driver): SM(HW) (ECC 관련), ESM(HW) (외부 EEPROM 제어 관련)

통신 서비스 (Communication Services):

  • CanIf / CanDrv: SM(SW) (통신 오류 감지 및 처리), ESM(HW) (외부 통신 컨트롤러 관련)
  • LinIf / LinDrv: SM(SW) (통신 오류 감지 및 처리), ESM(HW) (외부 통신 컨트롤러 관련)
  • EthIf / EthDrv: SM(SW) (통신 오류 감지 및 처리), ESM(HW) (외부 통신 컨트롤러 관련)
  • FrIf / FrDrv: SM(SW) (통신 오류 감지 및 처리), ESM(HW) (외부 통신 컨트롤러 관련)
  • Com: SM(SW) (통신 시 데이터 무결성 검사)

입출력 (I/O) 하드웨어 추상화 (I/O Hardware Abstraction):

  • Dio: ESM(HW) (안전 관련 디지털 입력 상태 감시, 안전 출력 제어)
  • Port: ESM(HW) (안전 관련 핀 설정)
  • Adc: ESM(HW) (안전 관련 센서 값 모니터링)
  • Pwm: ESM(HW) (안전 관련 액추에이터 제어)
  • Spi / I2c: ESM(HW) (안전 관련 외부 센서/액추에이터 통신)

마이크로컨트롤러 추상화 계층 (MCAL):

  • Cpu: SM(HW) (CPU 자가 진단, Lock-Step 제어), SMC(SW) (CPU 관련 안전 설정)
  • Mpu: SM(HW) (메모리 보호 설정), SMC(SW) (MPU 설정 관리)
  • IntCtrl (Interrupt Controller): SM(HW), ESM(HW) (안전 관련 인터럽트 관리)
  • WdgDrv (Watchdog Driver): ESM(HW) (하드웨어 워치독 제어), SMC(SW) (하드웨어 워치독 설정)
  • Clock: SM(HW) (클럭 감시 설정), SMC(SW) (클럭 관련 안전 설정)
  • Timer: SM(HW), ESM(HW) (안전 관련 시간 기반 감시 기능 구현 기반)
  • ADC Driver: ESM(HW) (ADC 하드웨어 제어 및 오류 상태 보고)
  • Communication Drivers (CanDrv, LinDrv, EthDrv, FrDrv): ESM(HW) (통신 컨트롤러 하드웨어 제어 및 오류 상태 보고)
  • Memory Drivers (Fls, Eep): SM(HW) (메모리 하드웨어 제어 및 오류 상태 보고, ECC 관련)

복합 장치 드라이버 (Complex Device Drivers - CDD):

  • SM(HW), SM(SW), ESM(HW), ESM(SW) (개발자가 구현하는 안전 관련 기능에 따라 다름)

보안 관련 모듈 (Security-related Modules):

  • SM(SW), ESM(SW) (보안 기능 관련 오류 처리 및 상태 관리)