9. AUTOSAR Component

윰지·2020년 10월 9일
0

ECU SW Programming

목록 보기
9/10

SW Component

  • SW Component란 부품의 개념으로 바라보고 다른 시스템을 대체할 수 있는 것이다. 3가지의 속성을 만족해야 한다.
    • Structure
    • Behavior
    • Resource and non-functional requirements

AUTOSAR에서

  • VFB : Structure, 어떤 component가 있어야 하고 그것의 structure가 뭔지만 정의하고 다른 component와 어떤식으로 연동될 수 있다라는 거까지 기술
  • IB : Behavior, Component의 behavior를 어떻게 정의할 것인지
  • System, ECU Description : Component가 돌아가는 환경과 어떻게 되야 하는지

AUTOSAR Component

  • 기능은 encapsulate
  • component 유형에는 3가지가 있다.
    • Interface가 맞으면 direction으로 communication할 수 있는 component -> port x
    • Port가 붙어있어 port로만 communication할 수 있는 component
    • 한쪽은 port가 붙어있어서 port로만 communication을 할 수 있고, 다른 component와는 direction으로 communication할 수 있는 component
  • Shipping an AUTOSAR Software Component
    • Software Component Description(component name, port, interface, IB) + Component Implementation
      -> arxml 파일로 만들어진다.
  • 3단계로 modeling
    1. Virtual Functional Bus(VFB)
      Component type을 정해준다.
      • Software components : component name, port, interface 정의
      • Compositions
      • Interface
    2. Internal Behavior(IB)
      • Runnable Entity
      • Events
      • Interaction with the Run Time Environment
    3. Implementation
      • Component implementation
      • Resource consumption of SW-Components

Port-Interfaces

  • port는 port-interface와 연결시켜야 한다.
    -> port를 정의하고 이름을 적고 port interface에 이름을 주고 종류를 설정한다. 그리고 그 interface의 data type을 정의한다.
  • port의 종류
    • P Port : Provided Port, 내부에서 외부로 제공할 때
    • R Port : Required Port, 외부로부터 받아올 때
  • port가 붙어있으면 component 내부에 있는 코드는 port하고만 communication해야한다.
  • port interface 종류
    • Client-Server : interface가 함수 형태로 규정(return 값, 함수 이름(operation name), parameter 규정)
    • Sender-Receiver : data messaging 개념, 데이터를 일방적으로 보낸다.
    • Parameter
    • Non Volatile data
    • Trigger
    • Mode Switch
  • Port Compatibility

Software Components 종류

  • 모든 component는 Atomic SW-Component이다.
  • 역할에 따라 여러가지로 분류
    1. Application Software Component
      component안에 들어가 있는 기능이 일반적인 application기능이다. (ex. 제어시스템 - 센서로부터 데이터가 들어오면 controller가 받아서 actuator로 내보내는데 거기서 controller의 기능)
      -> Application Layer에서 만들어진다.
    2. Sensor Actuator Software Component
      센서와 엑츄에이터를 handling (ex. 제어시스템 - 센서로부터 데이터를 받아들이는 기능, 제어 로직에서 actuate하기 위해 actuator에 보내는 역할)
      -> Application Layer에서 만들어진다.
      • Sensor component는 센서로부터 읽어온 데이터를 받아오는 역할을 한다. Port를 통해 Application component로 보내고 받아온 데이터로 control을 위한 기능을 만들고, actuate component로 보낸다. Actuate component는 실제 하드웨어를 동작시킨다.
    3. Parameter Software Component
      calibration(상황에 따른 초기 데이터를 가지고 있는 것) data를 handling
      -> Application Layer에서 만들어진다.
    4. Composition Software Component
      atomic component를 묶어서 하나의 component로 만들어 주는 것 -> 얘는 Composition
    5. Service Proxy Software Component
      -> Service Layer에서 만들어진다.
    6. Service Software Component
      -> Service Layer에서 만들어진다.
    7. ECU Abstration Software Component
      MCAL과 Sensor-Actuate 사이에서 data를 전달해주는 역할
      -> ECU Abstration Layer에서 만들어진다.
    8. Complex Device Driver Software Component
      Complex Driver 자체를 만들어준다.
    9. NV(Non-volatile) Block Software Component
      저장 기능 담당

Type, Prototype, Instance

  1. Component
    • Type
    • Prototype
    • Instance : Type이나 prototype으로부터 실질적으로 만들어지는 객체
  2. Data
    • Type : 무언가의 형식을 정해준다.
    • Prototype : 다른 type들의 모임으로 새로운 type을 정의할 대 사용되는 type
    • Instance : 그 type이 실질적으로 memory 상에 구현되는 것

Example

  1. 하나의 component type이다.
    SeatHeating Control : Component name
    HeatingElement, PowerManagement ... : Port name -> Prototype
    HeatingElement : C-S의 Rport
    PowerManagement : S-R의 Rport
    Setting : C-S의 Pport
    DialLED : S-R의 Pport
    ecuMode : Mode Switch의 Rport
    nv: NV data의 Rport
    Component type을 정의한다는 것은 component의 이름을 정의하고, port prototype을 규정하고, 해당 prototype의 interface까지 규정하는 것이다.
  2. SeatHeatingControlAndDrivers : Composite component type
    HeatingDial(Sensing 기능), SeatHeatingControl(Controller), SeatHeating(Actuator 기능) : prototype
    SHDial, SHC, SH : prototype name
    Composite component를 만들기 위해서는 prototype들에 대한 component type이 정의되어 있어야 한다.
  3. SeatHeatingControl, SeatHeating : Component type
    HeatingElement : C-S의 R port
    Setting : C-S의 P port
    HeatingElementControl : Interface name, HeatingElement와 Setting 연결하기 위해 interface가 정의되어 있어야 한다.
    SetPower : operation name
    그 밑은 parameter와 parameter type 정의
  4. 실제 VFB model
    Composite component는 모델링을 위해 존재하는 것이고 실제로 존재하는 것은 automic component이다.

VFB Model에서 해야하는 일

  1. Component type을 정의한다.
  2. Interface를 정의한다.
  3. Connection & Composition

0개의 댓글