상세 컨텐츠

본문 제목

[공부] AUTOSAR - RTE

공부/자동차 산업 & RnD

by industrosnack 2023. 12. 24. 10:33

본문

728x90
반응형

AUTOSAR - RTE

AUTOSAR Methodology : AUTOSAR에서 정의한 시스템 개발의 공통된 순서

1. Configuring the System : 시스템 설정 단계로 컴포넌트의 구성/연결 등을 정의한다. (System Description을 개발)
2. Realize Software Component : "Configuring the System" 단계에서 구성한 컴포넌트들에 대한 코드 구현 등을 진행한다.
3. Channel out ECU-specific information : 시스템 구성 정보로부터 특정 제어기 소프트웨어를 구현하기 위한 정보만을 추출한다.
4. Configuring the ECU : 제어기 관련 설정을 진행한다. (ECU Configuration Description을 개발)
5. Generate Executable Code : 제어기에서 동작하는 실행 파일을 생성한다. (컴파일 및 링크를 통해 실행 이미지를 생성)

 

Configuring the System : 시스템 구성 단계에서의 설계한 애플리케이션은 아래와 같은 과정으로 제어기 내에서 동작

1. 애플리케이션 개발 : 서로 연결된 컴포넌트(SW-C)의 집합을 통해 설계(제어기를 고려하지 않음)
2. VFB(Virtual Functional Bus) : 연결된 컴포넌트들이 교류하는 가상의 통신 구조(통로)
3. 제어기 할당 : 컴포넌트를 특정 제어기에 배치(제어기 고려함) --> 가상 컴포넌트 간 연결이 실제 연결로 분류 : 제어기 내의 연결 / 통신 수단(CAN/LIN 등)을 통한 제어기 간 연결
4. RTE(Real Time Environment) : 제어기 할당을 통해 분류된 연결에 대해 컴포넌트 간 또는 컴포넌트와 BSW(Basic Software)간의 구체적인(실제) 인터페이스. VFB 수준에서 설계한 컴포넌트들 및 컴포넌트 간의 관계를 제어기 상에서 동작할 수 있도록 코드화(VFB의 구현)

System Description

System Description : 소프트웨어 컴포넌트를 구성하고 설계한 정보를 담고 있는 문서

System Description 개발 단계

1. VFB level : 최상위 단계. 컴포넌트  컴포넌트 간의 연결을 기술(포트, 인터페이스), 컴포넌트의 통신 속성  서로의 관계를 표현. 구성 요소;Component, Composition, Port, Interface, Assembly/Delegation Connector

2. RTE level : 중간 단계. 컴포넌트의 행동(Internal Behavior) 기술. 구성 요소;Runnable, Event, Access Point

3. Implementation level : 최하위 단계. Internal Behavior 구현 (Runnable 코드 작성). 구성 요소;Code

VFB-level

Component : VFB 수준에서 시스템을 구성할 때 사용되는 중심 구성 요소. 컴포넌트 간의 상호 작용을 위해 "Port"를 소유. Port는 정확히 하나의 컴포넌트에 속하며, 컴포넌트와 다른 컴포넌트 간의 상호 작용을 하는 지점.

Component-type : 컴포넌트의 속성을 정의( : 특정 기능을 하는 포트를 소유)

Component-Prototype : Component-type에 대한 인스턴스 (메모리 할당)

Component-type 설명
Application Software Component 애플리케이션을 구성하는 소프트웨어 컴포넌트
AUTOSAR 모든 통신 방법과 서비스를 사용 가능하면 ECU 하드웨어와 독립
Composition Software Component SW-C간의 집합을 캡슐화 하여, 내부는 숨기고 상위 레벨의 작업 생성
Service Software Component 표준화된 서비스를 표준화된 인터페이스를 통해 제공
BSW 모듈과 통신
Sensor-Actuator Software Component 센서나 액츄에이터를 제어하는 소프트웨어 컴포넌트
애플리케이션 SW-C ECU-Abstraction(IO) 사이에서 통신
Parameter Software Component 파라미터 (고정 데이터, 상수, 변수) 제공
고정 데이터나 캘리브레이션 데이터에 대한 접근을 허용
Service Proxy Software Component 모드를 시스템 전체에 분포
모든 ECU  SW-C 인스턴스에 대한 복사본을 소유
ECU-Abstraction Software Component ECU 특정 IO 기능에 접근
Client-Server 통신의 P-Port 제공하고, Sensor-Actuator SW-C 통신
NV Block Software Component 비휘발성 데이터에 대한 접근
비휘발성 데이터와 데이터 블록을 할당하고, NvM 모듈(BSW) 통신

Composition : 다른 컴포넌트를 포함하는 컴포넌트. 컴포넌트는 Composition 내에서 Component-prototype으로 존재. Component-type 대한 Component-prototype, Port, Connector 소유. Composition Component-type이기 때문에 다른 Composition내에 Component-prototype으로 속할  있다. Root Composition에서 Root Composition Prototype으로 최종적으로 Prototype

Port : 컴포넌트 간의 상호 작용(통신) 위한 지점. P-Port R-Port 있다.

Interface : Port 제공하거나 요구하는 타입을 정의

Interface 설명
Client-Server Interface 클라이언트는 서버에게 서비스 수행을 요청하는 것으로 통신을 시작한다. (필요한 경우 파라미터를 보낸다.)
서버는 클라이언트로부터 요청을 대기하다 요청된 서비스를 수행하고,  결과를 클라이언트에게 응답한다.
서비스를 개시하는 방향으로 SW-C 클라이언트인지 서버인지 결정된다.
Sender-Receiver Interface 컴포넌트  시그널(Data Element) 송신과 수신으로 구성된다.
단방향이다.
R-Port 통해 데이터를 받고, P-Port 통해 데이터를 보낸다.
Mode Switch Interface 모드 간의 전환을 통해 Runnable 시작한다.
Runnable 시작 방법에 대해 특정 모드에서 Disable/Enable한다.
모드 매니저는 모드 스위치를 통해 모드를 조정, 모드 유저는 해당 모드를 수신한다.
Trigger Interface SW-C 다른 SW-C 실행을 작동시킨다.
Parameter Interface 상수 데이터, 고정 데이터, 캘리브레이션 데이터를 Component에서 사용할  있도록 제공한다.
Nv Data Interface 비휘발성 데이터에 대한 접근을 제공한다.

Assembly Connector : 컴포넌트의 P-Port R-Port 통신하기 위해 연결. 일반적으로 Assembly Connector 연결되는  Port 같은 Interface 속성을 가진다.

Delegation Connector : Composition 구성할  내부의 Port 외부에서 사용하기 위해 연결. P-Port P-Port R-Port R-Port 연결

RTE-level

Runnable : 컴포넌트의 실제 구현을 구성하는 가장 작은 단위. RTE 통해 시작되는 Instruction Sequence. 하나의 컴포넌트에 여러 Runnable 포함 가능. 간단한 알고리즘이거나 복잡한 프로그램을 실행하는 코드 단위.

Access Point : Runnable에서는 RTE 제공하는 API 사용하며, Runnable 내에서 사용하려는 API Access Point 통해 지정한다. Access Point 기능과 역할에 따라 다음과 같은 종류가 있다.

Access Point API
Data Send Point Rte_Write_<PPortPrototype>_<DataElement> (<data>)
Rte_Send_<PPortPrototype>_<DataElement> (<data>)
Data Receive Point By Argument Rte_Read_<RPortPrototype>_<DataElement> (<data>)
Rte_Receive_<RPortPrototype>_<DataElement> (<data>)
Data Receive Point By Values data = Rte_DRead_<RPortPrototype>_<DataElement> ()
Synchronous Server Call Point Rte_Call_<RPortPrototype>_<Operation> (<data>…<data>)
Asynchronous Server Call Point Rte_Call_<RPortPrototype>_<Operation> (<data>…<data>)
Asynchronous Server Call Result Point Rte_Result_<RPortPrototype>_<Operation> (<data>…<data>)
Mode Switch Point Rte_Switch_<PPortPrototype>_<ModeDeclarationGroup> (<mode>)
Mode Access Point mode = Rte_Mode_<P/RPortPrototype>_<ModeDeclarationGroup> ()
Data Write Access Rte_IWrite_<RunnableEntity>_<PPortPrototype>_<DataElement> (data)
Data Read Access Rte_IRead_<RunnableEntity>_<PPortPrototype>_<DataElement> ()
Internal Triggering Point Rte_IrTrigger_<RunnableEntity>_<InternalTriggeringPoint> ()
External Triggering Point Rte_Trigger_<PPortPrototype>_<Trigger> ()

Implementation-level

코드 개발 : Runnable 코드를 개발하는 단계로 코드 구현  다음과 같은 규칙으로 작성한다.

#include "Rte_<Swc>.h" //Include Header File

void run_1(void) // Runnable Body

{

    Rte_Write_<PPortPrototype>_<DataElement>(<data>); // RTE API

    

}

ECU Configuration Description

ECU Configuration Description : 제어기에 대한 설정 정보를 담고 있는 문서

RTE ECU Configuration Description : ECU Configuration Description  하나로 소프트웨어 컴포넌트가 제어기에서 동작할  있도록 RTE 코드 생성을 위해 필요한 제어기 관련 설정을 담고 있는 문서

RTE ECU Configuration Description 주요 구성 요소 : RteSwComponentInstance, Rte EventToTaskMapping

RteSwComponentInstance : 제어기에 할당된 컴포넌트에 대해 제어기 관련 설정을 하기 위해 해당 컴포넌트를 명시화

RteEventToTaskMapping : Runnable 실행하는 Event 대해 RTE 실제 코드 구현을   있도록 자원을 할당. RTE Task 코드 안에 Runnable 호출 코드를 배치하기 위해 Runnable 실행될 OsTask, OsAlarm 등을 할당

 

'공부 > 자동차 산업 & RnD' 카테고리의 다른 글

[공부] stateflow 3. chart 만들기  (2) 2024.01.02
[공부] Stateflow 2. 상태 머신  (0) 2023.12.30
[공부] AUTOSAR  (0) 2023.12.19
[공부] state flow 교육 과정개요  (0) 2023.12.18
[공부]리튬이온전지 기술  (0) 2023.07.23

관련글 더보기