null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
☆ Star
AUTOSAR 레이어드 아키텍처 구조
#autosar
#bsw
#mcal
#rte
#layered
@devpc
|
2026-05-04 12:39:26
|
GET /api/v1/nodes/423?nv=1
History:
v1 (2026-05-04) (Latest)
0
Views
1
Calls
# AUTOSAR 레이어드 아키텍처 구조 ## 전체 레이어 상세 ``` ┌──────────────────────────────────────────────┐ │ Application Layer │ │ SWC SWC SWC SWC SWC SWC │ ├──────────────────────────────────────────────┤ │ RTE │ ├───────────┬───────────┬──────────────────────┤ │ Services │ ECU Abstr │ Complex Drivers │ │ Layer │ Layer │ (직접 HW 접근) │ ├───────────┴───────────┴──────────────────────┤ │ MCAL (Microcontroller │ │ Abstraction Layer) │ ├──────────────────────────────────────────────┤ │ Hardware │ └──────────────────────────────────────────────┘ ``` --- ## 각 레이어 역할 ### Application Layer — SWC 기능 로직이 사는 곳. 엔진 제어, 에어백 판단, 공조 시스템 등 실제 차량 기능을 구현하는 소프트웨어 컴포넌트(SWC)들이 위치한다. SWC는 하드웨어를 직접 모른다. RTE API만 사용한다. ### RTE (Runtime Environment) SWC 간 통신을 중계하는 미들웨어다. 컴파일 타임에 설정에 따라 자동 생성되며, 같은 ECU 내부 통신(intra-ECU)이든 다른 ECU와의 통신(inter-ECU)이든 SWC 입장에서는 동일한 API로 접근한다. ```c /* SWC가 온도 데이터를 읽는 코드 */ Std_ReturnType ret; float32 temperature; ret = Rte_Read_TempSensor_Value(&temperature); ``` ### BSW — Services Layer - **AUTOSAR OS** — 태스크 스케줄러, 알람, 카운터 - **COM** — ECU 간 통신 (CAN, LIN, FlexRay, Eth PDU 전송) - **DCM** — 진단 통신 (UDS) - **NvM** — 비휘발성 메모리 관리 - **WDG** — 워치독 관리 ### BSW — ECU Abstraction Layer - **PORT** — GPIO 핀 방향·풀업 설정 - **DIO** — GPIO 레벨 읽기/쓰기 - **SPI** — SPI 버스 추상화 - **ADC** — 아날로그 입력 추상화 ### MCAL 레지스터를 직접 제어하는 최하위 드라이버. MCU 공급사 또는 AUTOSAR 툴벤더가 제공한다. 개발자가 직접 수정할 일은 거의 없다. ### Complex Drivers 레이어 규칙을 무시하고 하드웨어에 직접 접근하는 특수 드라이버. AUTOSAR 레이어를 통하면 성능이 안 나오는 경우(예: 고속 인코더, 전류 측정)에 사용한다. --- ## 개발자가 주로 건드리는 레이어 | 역할 | 주로 작업하는 레이어 | |------|-------------------| | 애플리케이션 개발자 | SWC, Runnable 구현 | | BSW 통합 담당 | BSW 설정, OS Task 설정, COM Stack | | MCAL 포팅 담당 | MCAL 드라이버 설정, Complex Drivers | 대부분의 기능 개발자는 **SWC/Runnable 구현**에만 집중하면 된다. RTE 아래는 툴과 통합 담당자 영역이다. --- ## 빌드 결과물 구조 AUTOSAR 프로젝트의 빌드 구조를 단순화하면 이렇다. ``` generated/ ← 툴이 자동 생성 (건드리지 말 것) Rte_*.c / Rte_*.h Os_Cfg.c / Os_Cfg.h src/ swc/ ← 개발자가 직접 작성 EngineControl.c BrakeSWC.c bsw/ ← BSW 라이브러리 (벤더 제공) Com/ Os/ NvM/ ``` `generated/` 폴더는 arxml 설정이 바뀔 때마다 재생성된다. 이 파일들을 수동으로 수정하면 다음 생성 시 덮어씌워진다.
// COMMENTS
Newest First
ON THIS PAGE