본문 바로가기

기술/개발 지식

AUTOSAR - RTE

Overview

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 등을 할당

'기술 > 개발 지식' 카테고리의 다른 글

SOTIF와 자율주행  (0) 2020.08.19
AUTOSAR - MEMORY  (0) 2020.03.16
AUTOSAR - OS  (0) 2020.03.16
AUTOSAR - Overview  (0) 2020.03.16
Medini Analyze를 활용한 기능안전(ISO26262) 세미나 - Part 4~6  (0) 2020.02.26