본문 바로가기

카테고리 없음

[AUTOSAR_4] AUTOSAR RTE

RTE를 알아보기 전에, 위의 그림을 통해 개발 방법 첫번째 단계인 Configure System 단계에 대해서 상세히 알아보자

 

 - Configure System Concept

 

  (1) 애플리케이션 개발
   - 서로 연결된 컴포넌트(SW-C)들의 집합을 통해 어플리케이션을 설계한다.
   - 이 때, 제어기를 고려하지는 않는다.


  (2) Virtual Functional Bus (VFB) Design
   - 연결된 컴포넌트들이 교류하는 가상의 통신 구조(통로)를 의미한다. 

   - VFB 상에서 SWC를 설계한다. SWC간 Data이동은 Port와  Interface로 정의해서 디자인한다.

 

  (3) 제어기 할당
   - 제어기를 고려하여, 컴포넌트를 특정 제어기에 배치한다.
   => 가상의 컴포넌트 간의 연결이 실제 연결로 분류된다. 즉, 가상의 컴포넌트 간의 연결이, 제어기 내의 연결이라던가, (CAN, FlexRay 등 통신 수단을 통한) 제어기 간 연결이라던가 결정되게 된다.


  (4) Run-Time Environment (RTE)
   - 컴포넌트-컴포넌트 또는 컴포넌트-BSW(Basic Software)간 구체적인(실제) 인터페이스이다.
   - VFB 수준에서 설계한 컴포넌트들 및 컴포넌트 간의 관계를 제어기 상에서 동작할 수 있도록 코드화한다.

 

   => RTE는 VFB를 코드 레벨로 구현한 것이라고 볼 수 있다.


 - Configure System 개발 과정(= Software Component Description 작성 과정

 

(1) VFB(Virtual Functional Bus) level
   - 최상위 (가장 추상화된) 단계
   - 컴포넌트 및 컴포넌트 간의 연결을 기술 (포트, 인터페이스)
   - 컴포넌트의 통신 속성 및 서로의 관계를 표현
   - 구성 요소 : Component / Composition / Port / Interface / Assembly / Delegation Connector
(2) RTE(Run-Time Environment) level
   - 중간 단계
   - 컴포넌트의 행동(Internal Behavior)을 기술
   - Runnable, Event, Access Point
   - 구성 요소 : Runnable / Event / Access Point
(3) Implementation level
   - 최하위 단계
   - Internal Behavior를 구현 (Runnable 코드 작성)
   - 구성 요소 : Code


VFB(Virtual Functional Bus) level 구성요소

 

1. Component

- VFB 수준에서 시스템을 구성할 때 사용되는 중심 구성 요소

- 컴포넌트 간의 상호 작용을 위해 "Port"를 소유

- Port는 정확히 하나의 Component에 속하며, Component와 다른 Component 간의 상호 작용을 하는 지점

 

2. Component Type과 Component Prototype

- Component Type : Component의 속성을 정의(Ex : 특정 기능을 하는 포트를 소유) - 설계도

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

- Component type의 종류[대표적인 것만]

Component - Type Description
Application Software Component - 애블리케이션을 구성하는 소프트웨어 컴포넌트
- AUTOSAR의 모든 통신 방법과 서비스를 사용 가능하면서 ECU 하드웨어와 독립적
Composition Software Component - SWC간의 집합을 캡슐화 하여, 내부는 숨기고 상위레벨의 작업 생성
- SWC를 모으는 역할과 연결하는 정보를 갖고 있음, 동작에 관련된 정보는 가지고 있지 않음.
Sensor - Actuator Software Component - 센서나 엑츄에이터를 제어하는 SWC
- Application SWC와 ECU-Abstraction Layer(IO) 사이에서 통신

3. Composition

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

4. Port => Portprototype

- 컴포넌트 간의 상호 작용(통신)을 위한 지점
  (1) P-Port (Provide) 
   - Interface에서 정의된 요소를 제공
  (2) R-Port (Require)

- Interface에서 정의된 요소를 요청

 

5. Interface => Port Interface(Port Type)

- 기능 : 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의 실행을 작동시킨다.

6. Assembly Connector 와 Delegation Connector

- 어셈블리 커넥터(Assembly Connector)
   - 컴포넌트의 P-Port와 R-Port가 통신하기 위해 연결
   - 일반적으로 Assembly Connector로 연결되는 두 Port는 같은 Interface 속성을 가진다.

 - 딜리게이션 커넥터(Delegation Connector)
   - Composition을 구성할 때 내부의 Port를 외부에서 사용하기 위해 연결
   - P-Port는 P-Port와 R-Port는 R-Port와 연결


RTE(Run-Time Environment) level 구성요소

1. Runnable(= Runnable Entity)

- 컴포넌트의 실제 구현을 구성하는 가장 작은 단위

- Run-Time Environment(RTE)를 통해 시작되는 Intruction Sequence

- 하나의 컴포넌트에 여러 Runnable 포함 가능

- 간단한 알고리즘 이거나 복잡한 프로그램을 실행하는 코드 단위

- Runnable = 함수 = Operation

 

2. Event(= RTE Event)

- 실질적으로  함수 호출과 같다.

- Runnable은 RTE에 의해서 실행되며, Runnable이 특정 방식으로 실행될 수 있도록 Event를 지정한다.

- Event의 종류

Event
설명
Timing Event
Runnable를 정의된 간격으로 주기적으로 실행된다.
Background Event
백그라운드 동작을 반복적으로 수행한다.
주기적으로 실행되는 이벤트가 아니며, 가장 낮은 우선순위를 갖는다.
Data Send Completed Event
특정 데이터가 송신이 완료 되었거나 에러 발생
Data Write Completed Event
Implicit 데이터에 대한 접근 완료 또는 에러 발생
Data Received Event
특정 데이터 수신 완료
Data Receive Error Event
네트워크에서 특정 데이터 수신에 에러 발생
Operation Invoked Event
클라이언트의 Operation 실행 요청을 서버에서 수신
Asynchronous Server Call Returns Event
Asynchronous Server Call의 완료
Swc Mode Switch Event
모드의 전환에 따른 Runnable의 실행
Mode Switched Ack Event
특정 모드를 수신하였거나 에러가 발생
External Trigger Occurred Event
특정 트리거의 발생
Internal Trigger Occurred Event
특정 내부 트리거의 발생

3. 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> ()

주요 Point

 

SRI, CSI

- Sender와 Client Interface에서 흐름이 시작되지만 (Event / Point) 서로 다른 P / R 포트이다.

  P Port R Port
Sender Receiver Interface
=> Data를 보내고 받음
Sender
(행동의 주체)
Receiver
Client Server Interface
=> Opertation을 제공하거나 요청함
Server
(서비스 제공)
Client
(행동의 주체)

 

Type과 Prototype

- Prototype은 한 단계 더 큰 개념의 Type에 추가될 수 있다.

  Type - 설계도 Prototype - 실제(Instance)
Data Data Type Data Prototype
Port 구두로 부르는 이름 : Interface
원래 이름이여야 할 이름 : Port Type
공식적인 이름 : Port Interface
구두로 부르는 이름 : Port
실제 이름 : Port Prototype
SWC SWC Type SWC Prototype
Component SWC CSWC Type CSWC Prototype
Component SWC CSWC Type CSWC Prototype
..... ... ...