AUTOSAR Interface — AUTOSAR Classic Platform에서 SW 컴포넌트가 서로, 또는 BSW와 통신하기 위해 사용하는 3가지 유형의 API 규약. 용어가 겹쳐 혼동되지만, 경유 경로(RTE를 지나는가, BSW를 직접 호출하는가)와 정의 주체(사용자 정의 Port인가, AUTOSAR 표준 Port인가)로 구분된다.
두 가지 축의 분류
Interface를 이야기할 때 AUTOSAR는 직교하는 두 축의 분류를 쓴다.
- 경유 경로 축 (3종) — RTE/RTE/직접 호출 (아래 3종 분류)
- 의미 역할 축 (6종) — Client-Server, Sender-Receiver, Mode Switch, Trigger, Parameter, Nv Data (아래 Port Interface 유형 (6종))
전자는 “어느 경로로 오는가”, 후자는 “어떤 통신 의미인가”. 예: “사용자 정의 Sender-Receiver Interface”는 경유 경로 = AUTOSAR Interface, 의미 역할 = Sender-Receiver.
3종 분류
| 종류 | 경유 경로 | 정의 주체 | 생성 방식 | 대표 API 예시 |
|---|---|---|---|---|
| AUTOSAR Interface | RTE | 사용자 (Port 설계) | 자동 생성 | Rte_Read_<port>_<DataElement>, Rte_Call_<port>_<operation> |
| Standardized AUTOSAR Interface | RTE | AUTOSAR 표준 | 자동 생성 (표준 Port 기반) | 표준 Port 이름으로 치환된 Rte_* API |
| Standardized Interface | 직접 (RTE 우회) | AUTOSAR 표준 (BSW 모듈) | 표준에 고정된 시그니처 | Com_SendSignal(id, data) |
앞의 둘은 RTE 경유, 마지막 하나는 BSW 내부 직접 호출이다.
AUTOSAR Interface
사용자가 SW-C 설계 시 정의한 Port로부터 도구가 자동 생성하는 API. Port 이름·Data Element 이름이 함수 이름에 치환되어 들어간다.
/* SW-C 설계 시 Port 이름이 "SpeedIn", DataElement가 "Value"라면: */
Rte_Read_SpeedIn_Value(&speed);
/* Client-Server의 Operation 호출: */
Rte_Call_DiagPort_ReadDTC(&dtc);- 이름 규칙:
Rte_<오퍼레이션>_<Port>_<DataElement|Operation> - 유연성: 시스템 설계자가 필요한 Port를 자유롭게 정의 가능
- 재사용성 한계: Port 이름이 SW-C별로 다르면 SW-C 간 직접 호환은 안 됨 — Port 매핑이 필요
Sender-Receiver·Client-Server의 구체적 API 형태는 RTE API 표 참조.
Standardized AUTOSAR Interface
AUTOSAR 표준이 미리 정의한 Port 집합을 사용한 RTE API. 구조는 AUTOSAR Interface와 동일(자동 생성, Rte_* 이름)이지만, Port 이름과 Data Element가 표준으로 고정돼 있다.
- 자주 재사용되는 공용 서비스(예: 진단 통신, NVM 접근)의 SW-C 인터페이스를 OEM·Tier 1이 공통 Port로 교환할 수 있게 함
- 결과적으로 서로 다른 공급사의 SW-C가 Port 매핑 없이 연결되는 상호운용성을 확보
AUTOSAR Interface와의 차이
| 축 | AUTOSAR Interface | Standardized AUTOSAR Interface |
|---|---|---|
| Port 정의 | 사용자가 자유 정의 | AUTOSAR 표준 명세에 고정 |
| API 형태 | Rte_* (자동 생성) | Rte_* (자동 생성, 이름 표준 반영) |
| 상호운용 | SW-C별 Port 매핑 필요 | 표준 Port로 직접 호환 |
Standardized Interface
표준 Interface와 BSW 간 직접 호출을 위한 API. RTE를 거치지 않고 BSW 모듈이 외부(또는 다른 BSW 모듈)에 노출하는 함수다.
/* Communication 스택 상위의 Signal 송신 — RTE 우회 */
Com_SendSignal(signalId, &dataBuffer);
/* NVM, Memory 모듈 등도 유사 패턴 */
NvM_ReadBlock(blockId, &dataPtr);- 표준에 함수 시그니처가 고정돼 있음 (BSW 모듈 스펙 문서에 정의)
- 사용 맥락: BSW 모듈 간 상호 호출, 또는 Complex Driver 같은 비표준 계층이 BSW 서비스에 직접 접근할 때
- SW-C는 원칙적으로 Standardized Interface를 직접 호출하지 않는다 — SW-C의 BSW 접근은 언제나 RTE를 경유해야 HW 독립성이 유지됨
Port Interface 유형 (6종)
Port가 주고받는 통신 의미에 따른 분류. Software Component Description에서 Interface를 정의할 때 선택하는 유형이다. 앞의 3종 분류와 직교하며, 6종 중 어느 것이든 경유 경로 축(AUTOSAR Interface / Standardized AUTOSAR / Standardized)에 매핑될 수 있다.
| Interface | 의미 |
|---|---|
| Client-Server Interface | Client가 Server에 서비스 수행을 요청하고 응답을 기다림. 동기적 RPC 성격 |
| Sender-Receiver Interface | 시그널(Data Element)의 단방향 송수신. P-Port로 송신, R-Port로 수신, 비동기 |
| Mode Switch Interface | 모드 전환으로 Runnable 시작/Enable/Disable. Mode Manager는 Switch, Mode User는 수신 |
| Trigger Interface | SW-C가 다른 SW-C의 실행을 작동시킴. Runnable 트리거용 |
| Parameter Interface | 상수·고정 데이터·캘리브레이션 데이터를 Component에 제공 |
| Nv Data Interface | 비휘발성 데이터 접근 제공 |
Client-Server / Sender-Receiver의 상세 의미·선택 기준은 Communication Models.
Event 타입과의 연관 — Mode Switch는 SwcModeSwitchEvent / ModeSwitchedAckEvent, Trigger는 External/InternalTriggerOccurredEvent로 이어진다. 전체 12 Event 목록은 Event (12종).