차량의 전자제어장치(ECU)를 구성하는 소프트웨어 계층 중, 가장 핵심적인 기초를 이루는 부분이 바로 BSW(Basic Software) Layer입니다. 오늘은 BSW Layer의 개념과 구성요소, 그리고 AUTOSAR를 적용한 BSW + 비AUTOSAR ASW 조합 시스템에서 MCU를 어떻게 제어하고 통합할 수 있는지까지 함께 정리해보겠습니다.
✅ BSW(Basic Software) Layer란?
BSW는 하드웨어와 상위 애플리케이션 계층 사이에서 동작하며, ECU 내부의 운영체제(OS), 메모리, I/O, 통신, 진단 등 기본 기능을 수행하는 소프트웨어 계층입니다.
AUTOSAR 구조에서는 BSW가 다음과 같이 구성됩니다:
- MCAL (Microcontroller Abstraction Layer): 하드웨어 레지스터를 직접 제어하는 가장 하단의 계층
- ECU Abstraction Layer: 센서, 액추에이터 등 외부 장치를 추상화
- Services Layer: 진단, 통신, 메모리 관리, 전원 관리 등을 수행
BSW는 MCU를 포함한 하드웨어와 직접 연결되는 유일한 소프트웨어 계층으로, 기능안전(ISO 26262)에서도 가장 중요한 부분 중 하나입니다.
일부 프로젝트에서는 BSW는 AUTOSAR 기반으로 구성되어 있으나, ASW는 AUTOSAR를 사용하지 않는 비AUTOSAR 구조로 구성되어 있다는 점이 특징입니다.
✅ BSW (AUTOSAR) + ASW (비AUTOSAR) 구조의 실제 예
[ Application Layer (main.c 등) ] ← 비AUTOSAR 코드
↓ API 직접 호출 또는 Wrapper
[ BSW Layer (AUTOSAR 구조) ] ← Services, ECU Abstraction, MCAL 포함
↓
[ MCU (TC3xx, RH850 등) ]
- BSW는 AUTOSAR 구조를 그대로 따르지만, 애플리케이션이 RTE를 사용하지 않기 때문에 API를 직접 호출합니다.
- 따라서 Can_Write(), Adc_ReadGroup() 등의 AUTOSAR BSW API를 직접 사용하거나 래핑(Wrapping)하여 사용합니다.
✅ MCU를 제어하기 위한 소프트웨어 계층별 역할
MCU는 하드웨어 레벨에서 다음과 같은 주요 모듈로 구성되어 있습니다:
- CPU Core (TriCore 등): 연산 수행, Lockstep 구조로 기능안전 대응
- Memory (Flash, RAM): ECC 적용으로 무결성 보호
- SMU, WDG, EVR, SCU 등: 안전 메커니즘 내장 (Reset, Voltage, Clock, Fault 대응)
이 MCU를 제어하기 위해 소프트웨어는 다음 계층을 거칩니다:
🔹 1. MCAL (Microcontroller Abstraction Layer)
- AUTOSAR BSW의 가장 하단 계층
- MCU 레지스터를 직접 제어 (예: Adc_Init(), Port_SetPinDirection())
- 벤더 제공 드라이버로 구성 (Infineon, Renesas 등)
🔹 2. BSW Service Layer
- 메모리 관리, 진단 이벤트, WDG, 통신 스택 등을 담당
- API 예: Wdg_SetMode(), Dem_ReportErrorStatus()
🔹 3. API 직접 호출 (비오토사 ASW)
- RTE를 거치지 않고 BSW API를 직접 호출
Can_Write(...);
Adc_ReadGroup(...);
Wdg_SetTriggerCondition(...);
🔹 4. Wrapper Layer (선택)
- API 포맷을 통일하기 위한 중간 계층
// adc_wrapper.c
uint16 Get_BatteryVoltage(void) {
return Adc_ReadGroup(ADC_GROUP_0);
}
✅ 시각화 구조도: MCU 제어를 위한 전체 계층 연결
┌────────────────────────────┐
│ Application Layer │ ← main.c, fault_diag.c 등 (비AUTOSAR)
└────────────┬────────────┘
│ API 직접 호출
┌────────▼────────┐
│ BSW Layer (AUTOSAR) │
│ - Services Layer │
│ - ECU Abstraction Layer │
│ - MCAL (Driver) │
└────────┬────────┘
│
┌────────▼────────┐
│ Hardware (MCU) │ ← TC387, RH850, SPC58 등
└────────────────────┘
✅ 하드웨어 레이어(MCU)의 주요 제어 예시
메모리 오류 검출 | ECC Flash/RAM | 내부 ECC, Dem_ReportError |
연산 오류 대비 | Lockstep CPU | Trap ISR 등록 |
시스템 무응답 감지 | Watchdog Timer | Wdg_SetMode(), Wdg_Trigger |
전압 이상 감지 | EVR, PMIC | SMU 연결, Voltage Monitor API |
클럭 손실 감지 | SCU Clock Monitor | SCU 설정 + Clock Fail ISR |
오류 통합 대응 | SMU | Fault 라우팅 + Reset Trigger |
✅ SM(Safety Mechanism)은 어디에 있고 누가 쓰는가?
ASW (Application SW) | ❌ 직접 사용 X | SM에 직접 접근하지 않고, 진단 결과만 참조하거나 상태만 확인 |
BSW – Service Layer | ⭕ 일부 기능 감시 (ex. Watchdog, Dem) | WDT, SMU Fault 상태 등은 API로 확인 가능 |
BSW – ECU Abstraction Layer | ⭕ 일부 I/O 모듈 감시 | CAN 오류 검출, SPI 패리티 등 사용 |
BSW – MCAL Layer | ✅ 직접 SM과 연동 | ECC, WDT, Clock Monitor, SMU 등 하드웨어 기능을 직접 제어 |
Hardware Layer (MCU) | ✅ SM 존재 위치 | ECC, Trap, Lockstep, SMU, WDT, FCE 등 물리적 메커니즘 포함 |
🔧 구체 예시: 어떤 SM을 MCAL에서 사용하는가?
ECC (RAM/Flash) | RAM Controller, Flash | MemIf, Fls, RamTst |
Watchdog Timer | WDT 블록 | Wdg (Watchdog Driver) |
SMU (Safety Mgmt Unit) | SMU | EcuM, Dem, WdgIf와 연계 |
Clock Monitor | SCU 내부 Clock Block | Mcu (Clock Control Driver) |
CRC Engine | FCE (Fast CRC Engine) | Crc Driver |
Trap Handling | CPU Trap Vector | Startup or Error Handling (Reset cause 분석 등) |
🧭 흐름 구조 요약 (예: WDT 동작 예시)
- MCAL - Wdg 모듈이 Wdg_SetTriggerCondition()을 통해 하드웨어 WDT 설정
- 설정된 WDT는 일정 시간 내 kick이 없으면 하드웨어 레벨에서 리셋 트리거
- 이 리셋 원인은 SCU Reset Register에 기록됨
- MCAL - Mcu 모듈이 부팅 시 해당 리셋 사유를 확인
- Service Layer – EcuM, Dem이 이를 진단 로그로 기록
✅ 마무리
현재처럼 BSW는 AUTOSAR 구조를 사용하면서도 ASW는 비AUTOSAR 코드로 구성된 시스템에서는, RTE 없이 API 기반으로 BSW 기능을 직접 제어하게 되며, MCU의 안전 기능들도 이를 통해 활성화됩니다.
MCAL과 BSW는 MCU를 하드웨어 레벨까지 완벽하게 제어할 수 있도록 도와주는 핵심 계층입니다. 이를 충분히 이해하고 구성하면 비AUTOSAR 시스템에서도 기능안전 대응과 하드웨어 통합을 성공적으로 수행할 수 있습니다.
'Automotive Study' 카테고리의 다른 글
제어기에서의 ASW Layer란? AUTOSAR 없이도 안전하게 설계하는 방법 (0) | 2025.04.16 |
---|---|
Program Flow Monitoring이란? BMS 제어기 사례로 이해하는 흐름 감시 방법 (1) | 2025.04.15 |
차량용 MCU의 핵심 구조, 하드웨어 레이어란? (1) | 2025.04.13 |
ECU 소프트웨어 구조와 계층별 기능, 차량 통합 사례(가정)까지 (2) | 2025.04.12 |
자동차 소프트웨어, 어떻게 설계될까? ECU부터 반도체까지 한눈에 보기 (0) | 2025.04.12 |