포스트

AUTOSAR

AUTOSAR

AUTOSAR

태스킹 컴파일러 임피니온 그린 뭐시기

  • 소프트웨어 플랫폼의 필요성
    • 소프트웨어 플랫폼이란?
      • 응용 SW와 HW를 연결하는 중간 계층
    • 왜 필요한가?
      • 차량 내 제어기 수량 증가 -> 제어기 통합 필요
      • SW 복잡성 증가 -> 플랫폼 공용화 및 표준화 필요
      • HW 변경마다 모든 기반 SW, 연결 SW, 응용 SW 전체를 ISO 26262를 적용하며 개발해야 함 -> 응용 SW는 HW에 구애받지 않고 사용/개발 가능
  • AUTOSAR 정의
    • AUTOmotive Open System ARchitecture의 약자
    • “Cooperate on standards, compete on implementation”
  • AUTOSAR 운영 조직
    • Core partner
    • Premium Partner Plus
    • Premium Partner
    • Associate Partner
    • Attendee
  • AUTOSAR 종류
    • Classic
      • 기본 컨트롤러 제어 SW
      • 운영체제를 가짐
    • Adaptive
      • 자율 주행 관련
      • 운영체제 따로 없어서 리눅스 또는 상용 운영체제 사용
  • AUTOSAR 개발 과정
      1. Configure System
        • 시스템 설정 단계
        • 컴포넌트의 구성/연결 등을 정의
      1. Implement Component
        • 구성한 컴포넌트에 대한 코드 구현 등을 진행
      1. Extract ECU-Specific Information
        • 시스템 구성 정보로부터 특정 제어기 SW 구현을 위한 정보만을 추출
  • benefit
    • OEM 측면
      • 다양한 부품사에서 기능 제공받아 간단한 통합
    • Supply(Tier1) 측면
      • 다양한 OEM에 공급 가능
  • Real Time
    • Hard
      • 데드라인 안에 수행 못할 경우 심각한 문제를 일으키는 Time critical system에서 사용
    • Soft
      • 영상 시청 등과 같이 성능 저하를 일으키는 시스템
구분HardSoft
정의시스템이 정해진 시간 내에
반드시 작업을 완료해야 하는 실시간 시스템
기한을 초과해도 실행되지만,
성능 저하가 발생할 수 있는 실시간 시스템
시간 제약엄격한 시간 제약
(Deadlines Must Be Met)
시간 초과 시 성능 저하 가능하지만 허용됨
(Deadlines Can Be Missed)
예시자동차 ECU, 항공기 제어 시스템, 방산 무기 시스템영상 스트리밍, 온라인 게임
지연 허용 여부절대 허용 불가일부 지연 허용
우선순위정해진 기한 내 무조건 완료해야 함기한 초과 시 가능하면 빠르게 처리
스케줄링주로 고정 우선순위 방식일반적인 우선순위 기반 또는 공정성을 고려한 스케줄링
미스(기한 초과) 발생 시치명적인 결과 발생
(예: 자동차 제어 실패로 사고 발생)
성능 저하 발생 가능하지만 시스템은 계속 동작

AUTOSAR 소프트웨어 개발 순서

AUTOSAR 애플리케이션 개발 단계 이미지

  • 1. Configure System
    • 시스템 설정 단계로 컴포넌트의 구성/연결 등을 정의
    • = Software Component Description을 개발
  • 2. Implement Component
    • 위에서 구성한 컴포넌트들에 대한 코드 구현 등을 진행
  • 3. Extract ECU -Specific Information
    • 시스템 구성 정보로부터 특정 제어기 소프트웨어를 구현하기 위한 정보만을 추출
  • 4. Configure ECU
    • 제어기 관련 설정 진행
    • = ECU Configuration Description 개발
  • 5. Generate Executable
    • 제어기에서 동작하는 실행 파일(.elf)을 생성

1. Configure System

시스템 구성 단계에서 설계한 애플리케이션은 다음과 같은 과정을 통해 제어기 내에서 동작

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

Software Component Description 개발 단계

  • 1. VFB level
    • 컴포넌트의 통신 속성 및 서로의 관계 표현
    • 구성요소
      | 1 | 2 | 3 | 4 | 5 | | :——-: | :———: | :—: | :——-: | :—————————: | | Component | Composition | Port | Interface | Assembly/Delegation Connector |
  • 2. RTE level
    • 컴포넌트의 행동(Internal Behavior) 기술
    • 구성요소
      | 1 | 2 | 3 | | :——: | :—: | :———-: | | Runnable | Event | Access Point |
  • 3. Implementation level
    • Runnable 코드 작성
    • 구성요소 : Code

VFB level

  • Component
    • VFB 수준 시스템 중심 구성 요소
    • Port로 컴포넌트 간 상호작용
  • Component-type vs Component-prototype
    • Component-type : 컴포넌트의 속성 정의 (ex : 특정 기능의 포트 소유)
    • Component-prototype : Component-type에 대한 인스턴스 (메모리 할당)
    • 하나의 Component-type으로부터 여러 Component-prototype 생성 Component-type vs Component-prototype 이미지
  • Composition
    • 다른 컴포넌트를 포함하는 컴포넌트
    • 내부의 컴포넌트는 Component-prototype으로 존재
    • Component-type에 대한 Component-prototype, Port, Connector 소유
    • Composition 자체는 Component-type
    • Root Composition에서 Root Composition Prototype으로 최종적으로 Prototype화 Composition 이미지
  • Port
    • 컴포넌트 간의 상호작용(통신)을 위한 입구
    • P-port와 R-port
    • P-port : Interface에 정의된 요소 제공 provide
    • R-port : Interface에 정의된 요소 요청 require
  • Interface
    • Port가 제공하거나 요구하는 타입 정의 Port 이미지
  • Assembly Connector
    • P-Port와 R-Port가 통신하기 위해 연결
  • Delegation Connector
    • Composition을 구성할 때 내부 Port를 외부에서 사용하기 위해 연결
    • P-Port는 P-Port, R-Port는 R-Port와 연결 Connector 이미지
  • Runnable
    • 컴포는트의 실제 구현을 구성하는 가장 작은 단위
    • RTE를 통해 시작되는 Instruction Sequence
    • 하나의 컴포넌트에 여러 Runnable 포함 가능

RTE-level

  • Event
    • Runnable을 실행시키는 Event를 지정
  • Access Point
    • Runnable 내에서 사용하려는 API를 지정

Implementatin level

  • Runnable 코드 개발
    • 1) Include Header File : RTE가 제공하기 위한 API 사용하기 위해
    • 2) Runnable body