AUTOSAR를 처음 접한 사람이라면 코드보다 먼저 낯선 파일 확장자들을 만나게 된다.
그중 가장 자주 보게 되는 파일이 바로 .arxml 이다.
프로젝트 폴더를 열어보면 여러 개의 arxml 파일이 존재하고, 설정 툴에서도 계속 저장되며,
협력사와 데이터를 주고받을 때도 arxml 파일이 전달된다.
처음에는 단순히 “설정 파일인가 보다”라고 생각할 수 있지만, 실제로는 그보다 훨씬 중요한 의미를 가진다.
AUTOSAR 프로젝트에서는 단순히 C 코드만 작성해서 개발하지 않는다.
기능 모듈 간 연결 정보, 통신 설정, 진단 데이터, ECU 자원 정보, 운영체제 설정 등 수많은 정보가 함께 관리되어야 한다.
이런 데이터를 체계적으로 저장하고, 여러 툴이 공통으로 이해할 수 있도록 만든 표준 파일이 바로 ARXML 이다.
즉, AUTOSAR를 제대로 이해하려면 코드만 볼 것이 아니라 ARXML이 무엇이고 왜 필요한지 반드시 알아야 한다.
이번 글에서는 ARXML 파일의 개념부터 구조, 실무 활용 방식, 왜 중요한지까지
처음 보는 사람도 이해할 수 있도록 자세히 설명해보겠다.
ARXML 파일이란?
AUTOSAR 에서 사용하는 표준 XML 기반 데이터 파일이다.
이름을 풀어보면 의미가 더 쉽다.
AR = AUTOSAR
XML = eXtensible Markup Language
즉, AUTOSAR 시스템 정보를 XML 형식으로 표현한 파일이라고 이해하면 된다.
파일명은 아래와 같은 형태를 가진다.
Ecuc_Com.arxml
Ecuc_Canif.arxml
Ecuc_CanTp.arxml
Ecuc_PduR.arxml
Ecuc_Dem.arxml
Ecuc_NvM.arxml
Ecuc_Os.arxml
Ecuc_EcuM.arxml
등등...
확장자가 .arxml 인 이유는 AUTOSAR 전용 XML 파일이라는 의미다.
XML은 무엇인가?
ARXML을 이해하려면 먼저 XML이 무엇인지 간단히 알아두면 좋다.
XML은 데이터를 태그 구조로 표현하는 형식이다.
예를 들어 아래처럼 정보를 저장할 수 있다.
<Signal>
<Name>VehicleSpeed</Name>
<Length>16</Length>
</Signal>
이 구조는 사람이 읽을 수도 있고, 툴이 자동으로 해석할 수도 있다.
AUTOSAR는 이런 XML 형식을 기반으로 전체 시스템 정보를 저장한다.
그래서 ARXML 파일을 열어보면 태그가 많이 보이는 이유가 여기에 있다.
왜 ARXML 파일이 필요한가?
자동차 소프트웨어는 일반 프로그램보다 훨씬 복잡하다.
기능 코드만 있다고 차량이 동작하는 것이 아니다.
그래서 AUTOSAR는 설정 정보는 파일로 관리하고, 기능 로직은 코드로 관리하는 방식을 선택했다.
그 설정 파일이 바로 ARXML이다.
ARXML 파일 안에는 어떤 내용이 들어갈까?
프로젝트마다 다르지만 대표적으로 아래 항목들이 저장된다.
1. SWC 정보
SWC(Software Component)는 AUTOSAR 기능 모듈이다.
(예: MirrorControl, LampControl, WindowControl, SeatControl, 등등...)
ARXML에는 어떤 SWC가 존재하는지, 이름은 무엇인지, 어떤 포트를 가지는지가 저장된다.
즉, 기능 모듈의 틀을 정의한다.
2. Port / Interface 정보
AUTOSAR에서는 모듈끼리 직접 변수 공유를 하지 않고 Port를 통해 통신한다.
(예: Sender Receiver Interface, Client Server Interface, NvData Interface, 등등...)
ARXML에는 아래 정보가 들어간다.
어떤 포트가 있는지
입력 포트인지 출력 포트인지
어떤 데이터 타입을 쓰는지
어떤 모듈과 연결되는지
즉, 모듈 간 통신 규칙을 저장한다.
3. Runnable 정보
Runnable은 실제 실행되는 함수 단위다.
(예: Init Runnable, 10ms Runnable, 100ms Runnable, Event Runnable, 등등...)
ARXML에는 Runnable 이름, 실행 조건, 이벤트 연결 정보 등이 들어간다.
즉, 함수 실행 구조를 정의한다.
4. Data Type 정보
데이터 타입도 ARXML에 정의된다.
(예: uint8, uint16, boolean, enum type, structure type, 등등...)
왜냐하면 서로 다른 모듈이 데이터를 주고받으려면 타입이 동일해야 하기 때문이다.
5. ECU Configuration 정보
이 부분은 실무에서 매우 중요하다.
ECU가 실제로 동작하려면 하드웨어 설정이 필요하다.
예:
- CAN 채널 수
- DIO Pin 번호
- ADC 채널
- PWM 설정
- NvM Block
- OS Task
이런 설정도 ARXML에 저장된다.
6. Diagnostic 정보
진단 기능 역시 ARXML로 관리된다.
예:
- DID
- Routine Control
- Security Access
- DTC
- Freeze Frame
- Event 설정
즉, 정비기와 통신하는 구조도 ARXML에 정의된다.
실무에서는 어떻게 사용될까?
실제 프로젝트에서는 아래와 같은 흐름으로 사용된다.
예시: 신규 ECU 개발
1단계. OEM 요구사항 전달
완성차 업체가 시스템 설계 정보를 ARXML로 전달한다.
예:
- 필요한 CAN 메시지
- 진단 사양서
- 기능 요구사항 사양서
2단계. 협력사 ECU 설정
개발사는 받은 ARXML을 툴에 Import하여 ECU 설정을 추가한다.
예:
- SWC 생성
- Port 연결
- Task 생성
- DID 추가
3단계. Generate 수행
툴이 ARXML을 읽고 자동 코드를 생성한다.
(예: Rte.c, Rte.h, Rte_Com_Cfg.c, Rte_Dcm_Cfg.c, Rte_Dem_Cfg.c, 등등..)
4단계. Application 코드 구현
개발자는 생성된 API를 사용해 기능 로직을 구현한다.
즉, ARXML은 프로젝트 전체 개발 흐름의 중심에 있다.
ARXML 파일을 직접 수정해도 될까?
Notepad++ 이나 메모장으로 열어서 수정은 가능하다.
하지만 실무에서는 일반적으로 직접 수정하지 않는다.
이유는 생각보다 위험하기 때문이다.
이유 1. 참조 관계 깨짐
- ARXML 내부는 여러 객체가 서로 참조된다.
- 이름 하나만 바꿔도 연결이 끊길 수 있다.
이유 2. Tool 구조 불일치
- 툴마다 내부 관리 방식이 있다.
- 수동 수정 후 Import하면 오류가 발생할 수 있다.
이유 3. UUID 문제
- 일부 프로젝트는 객체 식별자를 사용한다.
- 직접 수정하면 충돌 가능성이 있다.
따라서 일반적으로는:
Tool에서 수정 → 저장 → Generate
방식으로 관리한다.
개발자가 꼭 이해해야 할 핵심 포인트
ARXML을 처음 볼 때 아래 개념만 이해해도 충분히 큰 도움이 된다.
- 코드를 저장하는 파일이 아니다
- 설정 데이터를 저장하는 파일이다
- AUTOSAR 구조를 설명하는 파일이다
- Generate의 입력 데이터다
- 협업 시 주고받는 표준 파일이다
- 프로젝트 핵심 자산이다
정리
AUTOSAR에서 ARXML 파일은 단순한 설정 파일이 아니다.
프로젝트 전체 구조와 동작 방식을 담고 있는 핵심 데이터 파일이다.
코드는 기능을 구현하지만, ARXML은 그 코드가 어떤 구조 안에서 동작할지를 정의한다.
처음에는 복잡해 보일 수 있다.
하지만 아래 한 줄만 기억하면 된다.
"ARXML은 AUTOSAR 프로젝트의 설계도이며, Generate를 통해 실제 코드로 연결되는 핵심 파일이다."
ARXML을 이해하기 시작하면 AUTOSAR 툴, 코드 구조, 프로젝트 흐름이 훨씬 명확하게 보이기 시작한다.
'AUTOSAR' 카테고리의 다른 글
| ISO26262 에서 ASIL 등급이란 무엇인가? A/B/C/D 차이 완전 정리 (3) | 2026.04.17 |
|---|---|
| ISO 26262란 무엇인가? 자동차 기능 안전 완전 정리 (1) | 2026.04.17 |
| AUTOSAR 구조 쉽게 이해하기: Layer별 역할 총정리 (0) | 2026.04.16 |
| AUTOSAR란 무엇인가? (0) | 2026.04.13 |
| RTE 동작 원리 이해 (Rte_Read / Rte_Write 포함) (0) | 2026.04.11 |