Classic AUTOSAR
SWC의 sensor 값이 통신 driver까지 전달되는 구조
Application의 의미, RTE의 연결, BSW service와 MCAL의 hardware 접근은 다른 책임이다. 계층 분리는 hardware 의존성을 줄이지만 ECU별 configuration과 생성 코드가 그 연결을 구체화한다.
Classic AUTOSAR는 Application, RTE, BSW 계층을 통해 ECU software의 기능과 hardware 의존성을 분리한다.
적용 범위
정확한 규범적 요구사항은 적용 AUTOSAR 릴리스를 지정한 뒤 확인한다.
Classic AUTOSAR의 구조
Classic AUTOSAR는 Layered Architecture로 구성되어 있으며, 주요 계층은 Application Layer, Runtime Environment (RTE), Basic Software (BSW), 그리고 Microcontroller로 나눌 수 있습니다. 각 계층은 특정한 역할과 기능을 가지고 있으며, 서로 독립적으로 동작할 수 있도록 설계되어 있습니다.
BSW 영역에 마우스를 올리면 ICC2 구성이 나타나고, 각 계층 위에서는 ICC3 세부 블록을 확인할 수 있습니다. 그림 밖으로 이동하면 전체 레이어로 돌아갑니다.
ICC 표기는 기존 그림의 상세 수준을 유지합니다. 이 그림은 대표적인 기능 분류이며, 실제 모듈 구성은 AUTOSAR release와 ECU 구성에 따라 다릅니다. 터치 화면에서는 위 버튼으로 수준을 선택하세요.
Application Layer Application
Application Layer는 차량의 전자 제어 장치(ECU)의 특정 기능 구현을 담당합니다. 엔진 제어, 변속기 제어, 차량 동역학 등의 특정 작업을 실행하기 위해 하위 계층과 상호작용하는 다양한 Application Software Component(SW-C)가 포함됩니다
Application Layer에는 ASW(Application Software)로 구성되어 있다.
ASW는 SW-C(Software Component)의 집합으로 구성되어 있다.
AUTOSAR Runtime Environment RTE
RTERuntime Environment는 ASWApplication Software와 BSWBasic Software 모듈 간의 통신을 용이하게 하는 middleware 계층입니다. 구성 요소가 ECU 내의 위치에 관계없이 서로 상호작용할 수 있도록 합니다.
Basic Software BSW
BSWBasic Software 계층은 ASWApplication Software와 RTERuntime Environment에 필요한 필수 서비스와 기능을 제공합니다. 각기 다른 software 인프라의 다양한 측면을 담당하는 여러 하위 계층으로 나뉩니다.
Services Layer
서비스 계층은 ASW 및 다른 BSW 모듈에 다양한 시스템 서비스를 제공합니다. 각기 특정 서비스를 제공하는 여러 하위 모듈로 구성됩니다.
System Services
시스템 서비스는 진단 서비스, 시간 관리, ECU 상태 관리와 같은 일반 목적의 기능을 제공합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Development Error Tracer (DET) | • 개발 단계에서 발생하는 오류를 감지하고 보고 - 오류 로그 기록, 디버깅 지원 |
| Communication Manager (ComM) | • ECU의 통신 모드 관리 - network 활성화/비활성화 관리, 통신 모드 전 |
| Watchdog Manager (WdgM) | • 시스템의 시간적 오류 감지 및 대응 - Watchdog 타이머 관리, 시스템 리셋 |
| Function Inhibition Manager (FIM) | • 특정 기능의 실행 억제 또는 제한 - 시스템 상태에 따른 기능 활성화/비활성화 관리 |
| Time Services (TM) | • 시스템 내 시간 관리 - 타이머 설정 및 관리, 시간 동기화 |
| BSW Manager (BswM) | • BSW 모듈 간 상호작용 관리 - 시스템 모드 전환 제어, 이벤트 처리 |
| Synchronized Time-Base Manager (StbM) | • ECU 간 시간 동기화 - 정밀한 시간 기준 제공 |
| Diagnostic Event Manager (DEM) | • 진단 이벤트 관리 - 오류 코드 기록, 진단 데이터 수집/저장 |
| ECU States Manager (EcuM) | • ECU 상태 전환 관리 - 전원 상태, 초기화, 셧다운 제어 |
| AUTOSAR OS | • 실시간 운영체제 기능 제공 - Task 및 자원 관리, 실시간 스케줄링 |
Memory Services
메모리 서비스는 휘발성 및 비휘발성 메모리의 관리 및 접근을 처리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| NV RAM Manager (NvM) | • 비휘발성 메모리 관리 - 데이터 저장/복구, 데이터 무결성 검증 |
Crypto Services
암호화 서비스는 보안 통신을 위한 암호화 및 해독 기능을 제공합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Crypto Services Manager (CSM) | • 암호화 서비스 관리 - 키 관리, 데이터 암호화/복호화 |
Off-board Communication Services
외부 통신 서비스는 외부 장치와의 통신을 지원합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Xcp (Universal Measurement and Calibration Protocol) | • 측정 및 캘리브레이션 지원 - 데이터 수집, ECU 매개변수 조정 |
| Socket Adapter | • 소켓 interface 제공 - TCP/IP 통신 지원 |
| Diagnostic Com. Manager (DCM) | • 진단 통신 관리 - 진단 요청 처리, UDS 지원 |
| Diagnostic Log and Trace (DLT) | • 진단 로그 및 추적 - 로그 데이터 수집/저장, 디버깅 지원 |
| DoIP (Diagnostics over IP) | • IP 기반 진단 데이터 전송 - network 진단 지원 |
| TCP/IP Com. Services | • TCP/IP 통신 관리 - network 연결 및 데이터 전송 관리 |
| Service Discovery | • network 서비스 검색 - 서비스 제공자/client 자동 연결 |
| Secure Onboard Com | • 통신 보안 기능 제공 - 데이터 암호화/복호화, 인증 관리 |
Communication Services
통신 서비스는 차량 내부 network 통신을 관리합니다.
| 모듈 | 기능 |
|---|---|
| SomeIPXf (SOME/IP Transformer) | • 서비스 지향 아키텍처 통신 지원 - SOME/IP message 처리 |
| ComXf (Communication Transformer) | • 통신 데이터 변환 - protocol 간 데이터 변환 |
| E2EXf (End-to-End Transformer) | • 종단 간 데이터 보호 - 데이터 무결성 검증 |
| IpduM (IPDU Multiplexer) | • IPDU 다중화 - 데이터 전송 효율성 증가 |
| LdCom (Local Diagnostic Communication) | • 로컬 진단 통신 지원 - ECU 간 진단 데이터 송수신 |
| AUTOSAR COM | • 신호 및 PDU 관리 - 통신 스택 상위 계층 지원 |
| PDUProtocol Data Unit Router | • PDU 라우팅 - protocol 간 데이터 전송 관리 |
| J1939 TP (Transport Protocol) | • J1939 network 대용량 데이터 전송 - 데이터 분할/재조립 |
| LIN TP (Transport Protocol) | • LIN network 대용량 데이터 전송 - 데이터 분할/재조립 |
| CAN TP (Transport Protocol) | • CAN network 대용량 데이터 전송 - 데이터 분할/재조립 |
| FR TP (Transport Protocol) | • FlexRay network 대용량 데이터 전송 - 데이터 분할/재조립 |
| XxxTSyn | • 통신 동기화 지원 - 다양한 동기화 방식 지원 (모듈에 따라 다름) |
| Generic NM Interface | • network 관리 모듈 interface 제공 - 공통 interface로 다양한 network 관리 지원 |
| Flexray NM (Network Manager) | • FlexRay network 관리 - network 상태 모니터링 |
| CAN NM (Network Manager) | • CAN network 관리 - network 상태 모니터링 |
| LIN NM (Network Manager) | • LIN network 관리 - network 상태 모니터링 |
| J1939 NM (Network Manager) | • J1939 network 관리 - network 상태 모니터링 |
| UDP NM (Network Manager) | • UDP network 관리 - network 상태 모니터링 |
| CAN SM (State Manager) | • CAN network 상태 관리 - 상태 전환 제어 |
| LIN SM (State Manager) | • LIN network 상태 관리 - 상태 전환 제어 |
| FR SM (State Manager) | • FlexRay network 상태 관리 - 상태 전환 제어 |
| ETH SM (State Manager) | • Ethernet network 상태 관리 - 상태 전환 제어 |
ECU Abstraction Layer
ECU 추상화 계층은 hardware 종속성을 줄이고 상위 software 계층에 표준화된 interface를 제공하는 역할을 합니다.
On-board Device Abstraction
온보드 장치 추상화는 차량 내의 다양한 장치와의 interface를 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Watchdog Interface (WdgIf) | • Watchdog 타이머 interface 제공 - 다양한 Watchdog 타이머 지원 |
| External Watchdogs Driver | • 외부 Watchdogs 타이머 제어 - 외부 Watchdogs 타이머와의 interface |
Memory Hardware Abstraction
메모리 hardware 추상화는 메모리 장치와의 통신을 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Memory Abstraction Interface (MemIf) | • 메모리 접근 추상화 - 다양한 메모리 타입 지원 |
| EEPROM Abstraction (Ea) | • EEPROM 접근 추상화 - EEPROM 데이터 관리 |
| Flash EEPROM Emulation (Fee) | • Flash 메모리의 EEPROM 에뮬레이션 - Flash 메모리의 EEPROM 기능 제공 |
| External EEPROM Driver | • 외부 EEPROM 제어 - 외부 EEPROM interface |
| External Flash Driver | • 외부 Flash 메모리 제어 - 외부 Flash 메모리 interface |
Crypto Hardware Abstraction
암호화 hardware 추상화는 암호화 장치와의 상호작용을 처리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Crypto Interface | • 암호화 기능 interface 제공 - 데이터 암호화/복호화 지원 |
| Crypto (SW) | • software 암호화 기능 제공 - 다양한 암호화 알고리즘 제공 |
Wireless Communication Abstraction
무선 통신 추상화는 무선 통신 장치와의 interface를 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Bluetooth Interface (BT IF) | • Bluetooth 통신 interface 제공 - Bluetooth 프로파일 관리 |
| Wi-Fi Interface (Wi-Fi IF) | • Wi-Fi 통신 interface 제공 - Wi-Fi network 관리 |
| Cellular Communication Interface (Cellular IF) | • 셀룰러 통신 interface 제공 - 셀룰러 network 관리 |
| Near Field Communication Interface (NFC IF) | • NFC 통신 interface 제공 - 근거리 무선 통신 지원 |
| GNSS Interface (GNSS IF) | • GNSS 위치 정보 수신 - GPS 등 다양한 GNSS 지원 |
| V2X Communication Interface (V2X IF) | • 차량 간 및 차량-인프라 간 통신 - V2X protocol 지원 |
Communication Abstraction
통신 hardware 추상화는 통신 장치와의 interface를 처리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| LIN Interface | • LIN 통신 interface - LIN frame 송수신 |
| TT CAN IF (Time-Triggered CAN Interface) | • 시간 트리거 방식의 CAN interface - 시간 동기화 기반 통신 |
| CAN Interface | • CAN 통신 interface - CAN frame 송수신 |
| CAN Trcv Driver (CAN Transceiver Driver) | • CAN transceiver 제어 - 물리적 CAN 통신 제어 |
| Ext. CAN Driver (External CAN Driver) | • 외부 CAN 통신 제어 - 보조 CAN network interface |
| FR Interface | • FlexRay 통신 interface - FlexRay frame 송수신 |
| FR Trcv Driver (FlexRay Transceiver Driver) | • FlexRay transceiver 제어 - 물리적 FlexRay 통신 제어 |
| Ext. FR Driver (External FlexRay Driver) | • 외부 FlexRay 통신 제어 - 보조 FlexRay network interface |
| ETH Interface | • Ethernet 통신 interface - Ethernet frame 송수신 |
| ETH Switch Driver | • Ethernet switch 제어 - network 스위칭 기능 제공 |
| ETH Trcv Driver (Ethernet Transceiver Driver) | • Ethernet transceiver 제어 - 물리적 Ethernet 통신 제어 |
I/O Hardware Abstraction
입출력 hardware 추상화는 다양한 입출력 장치와의 상호작용을 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| I/O Signal Interface | • I/O 신호 interface 제공 - 디지털 및 아날로그 신호 관리 |
| Driver for ext. ADC ASIC | • 외부 ADC ASIC 제어 - 아날로그 신호 디지털 변환 |
| Driver for ext. I/O ASIC | • 외부 I/O ASIC 제어 - 다양한 I/O 신호 관리 |
Microcontroller Abstraction Layer
마이크로controller 추상화 계층은 마이크로controller와 상호작용하는 driver를 제공합니다.
Microcontroller Drivers
마이크로controller driver는 마이크로controller와의 직접적인 통신을 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Core Test (CorTst) | • 코어 테스트 기능 제공 - 시스템 진단 및 검증 |
| Watchdog Driver (Wdg) | • 감시 타이머 제어 - 시스템 오류 감지 및 복구 |
| GPT Driver (GPT) | • 범용 타이머 제어 - 타이머 설정 및 관리 |
| MCU Driver (MCU) | • 마이크로controller 제어 - MCU 초기화 및 전원 관리 |
Memory Drivers
메모리 driver는 메모리 장치와의 통신을 처리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Internal Flash Driver (Fls) | • 내장 Flash 메모리의 제어 및 관리 - Flash 메모리 읽기/쓰기, 지우기, 보호, 에러 검출 및 처 |
| Internal EEPROM Driver (Eep) | • 내장 EEPROM 메모리의 제어 및 관리 - EEPROM 읽기/쓰기, 데이터 무결성 보장, 웨어 레벨 지원, 에러 검출 및 처리 |
| RAM Test (RamTst) | • 내장 RAM 메모리 테스트 기능 제공 - 다양한 RAM 테스트 알고리즘 사용 |
| Flash Test (FlsTst) | • 내장 Flash 메모리 테스트 기능 제공 - Flash 메모리의 읽기/쓰기 및 지우기 테스트 |
Crypto Drivers
암호화 driver는 암호화 장치와의 통신을 처리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Crypto | • 암호화 기능 제공 - 데이터 암호화/복호화 연산, 암호화 알고리즘 지원 |
Wireless Communication Drivers
무선 통신 driver는 무선 통신 장치와의 interface를 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| Bluetooth Driver | • Bluetooth 통신 제어 - Bluetooth 데이터 송수신 |
| Wi-Fi Driver | • Wi-Fi 통신 제어 - Wi-Fi network 연결 |
| Cellular Driver | • 셀룰러 통신 제어 - 셀룰러 데이터 송수신 |
| NFC Driver | • NFC 통신 제어 - 근거리 무선 데이터 송수신 |
Communication Drivers
통신 driver는 통신 장치와의 상호작용을 관리합니다.
| 모듈 | 기능 및 특징 |
|---|---|
| ETH Driver (Eth) | • Ethernet 통신 제어 - Ethernet 데이터 송수신 |
| FR Driver (Fr) | • FlexRay 통신 제어 - FlexRay 데이터 송수신 |
| CAN Driver (Can) | • CAN 통신 제어 - CAN 데이터 송수신 |
| LIN Driver (Lin) | • LIN 통신 제어 - LIN 데이터 송수신 |
| LIN Comm. Stack | • LIN 통신 스택 제공 - LIN 데이터 송수신 및 protocol 관리 |
| SPI Driver (Spi) | • SPI 통신 제어 - 동기식 직렬 데이터 송수신 |
I/O Drivers
입출력 driver는 다양한 입출력 장치와의 통신을 관리합니다.
| 모듈 | 기능 및 징 |
|---|---|
| OCU Driver (Ocu) | • 출력 비교 장치 제어 - PWM 및 타이머 출력 관리 |
| PORT Driver (Port) | • 포트 제어 - GPIO 설정 및 관리 |
| DIO Driver (Dio) | • 디지털 I/O 제어 - 디지털 신호 읽기/쓰기 |
| ADC Driver (Adc) | • 아날로그-디지털 변환기 제어 - 아날로그 신호 디지털 변환 |
| ICU Driver (Icu) | • 입력 캡처 장치 제어 - 입력 신호 타이밍 측정 |
| PWM Driver (Pwm) | • PWM 신호 생성 - PWM 출력 제어 |
Complex Drivers
CDDComplex Device Driver는 ECU 추상화 계층을 통해 제공되지 않는 특정 hardware 기능을 직접 접근하는 driver입니다.
| 모듈 | 기능 및 특징 |
|---|---|
| CddOvTp | • 사용자 정의 전송 protocol - 맞춤형 데이터 전송 관리 |
| CddOsOh | • 사용자 정의 운영체제 오버헤드 관리 - OS 오버헤드 최적화 |
| CddOsPh | • 사용자 정의 운영체제 페이로드 관리 - OS 페이로드 최적화 |
| SwUpdM | • software 업데이트 관리 - 업데이트 다운로드 및 설치 |
| vMemAccM | • 가상 메모리 접근 관리 - 메모리 접근 제어 |
| vMem | • 가상 메모리 관리 - 가상 메모리 매핑 |
| Idsm | • ID 및 보안 관리 - 사용자 인증 및 권한 관리 |
| CddRouter | • 사용자 정의 데이터 라우팅 - 맞춤형 데이터 경로 설정 |
| OsekNM | • OSEK network 관리 - network 상태 모니터링 |
| Power Manager (Pm) | • 전원 관리 - 전원 상태 전환 |
| UART | • UART 통신 관리 - 직렬 데이터 송수신 |
| … | |
| CoreService (CoSvAb) | • 코어 서비스 제공 - 시스템 기본 서비스 지원 |
| CanCM | • CAN 통신 관리 - CAN 데이터 송수신 제어 |
| CtrlRam | • RAM 제어 - 메모리 관리 |
Microcontroller Hardware
마이크로controller는 ECU의 중심 처리 장치로, 모든 software 계층이 직접적으로 상호작용하는 hardware입니다.
이해를 확인하는 질문
MCAL이 바뀌면 SWC도 반드시 바뀌는가?
상위 interface와 동작 계약이 유지되면 변경 범위를 제한할 수 있다. Timing과 지원 기능이 바뀌면 상위 요구에도 영향이 생긴다.