AUTOSAR

AUTOSAR Software Architeture

기록해연 2025. 7. 10. 10:10

https://www.autosar.org/fileadmin/standards/R22-11/CP/AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

이미지는 위의 링크 참조

 

  • ASW(Application SW) : OEM이나 부품사 고유 핵심기능 구현 부분.
    • 제품을 컨트롤하기 위한 실질적 로직 구현 영역.
    • 하드웨어로부터 독립적(MCU가 바껴도 재사용 가능).
    • Software Component(SWC) 로 구성됨.
      • SWC가 포함해야 하는 정보:
        SWC명, Runnable(소프트웨어 컴포넌트 내부에 정의된 함수. 하나의 SWC안에 여러 개의 러너블 추가 가능), Port(외부와 소통하기 위한 인터페이스 등)
        → 이런 내용들이 전부 arxml 형태로 정의.
  • RTE : ASW와 BSW를 연결하기 위한 영역(직접구현X, Tool에서 코드 제너레이션으로 제공).
  • BSW : 여러 제어기들이 공통적으로 사용하는 기능 표준화해서 모아둔 영역.
    • 하드웨어에 의존적인 부분을 담당하여 Application SW를 하드웨어에서 분리.

SWC 개발

1. SWC 생성(+ Runnable 설계)

2. Port 생성

3. 상호작용이 필요한 다른 SWC 또는 BSW 영역을 포트를 통해 연결

=> Autosar Authoring Tool 로 작업. 작업산출물은 arxml 파일.

  • Authoring Tool : App SWC, Port, Port 연결 등을 설계하는 툴
  • BSW Configuration Tool : BSW 영역을 작업하는 툴 

Runnable

: SWC의 동작을 정의하는 함수(유저가 SWC를 통해서 구현하려는 기능을 러너블 내부에 구현해서 사용)

 

1. 러너블 추가

  • Runnable 속은 비어있으므로 내부코드 구현은 개발자가 직접 해야 함.

2. 이벤트 세팅 (러너블이 호출될 조건)

  • 러너블 내부의 기능 구현은 사용자가 하지만, 러너블을 호출하는 코드를 사용자가 직접 구현X(툴을 통해 생성된 RTE코드와 OS에 의해 구현되기 때문)
    Authoring 툴로 러너블 설계시 각 러너블이 실행될 조건도 설계 필요(Event)
    ex) Init, Timing, Data Recevied, AsynchronousServerCallReturnsEvent 등

3. OS Task 생성 및 기타 설정

  • OS모듈: 러너블들을 호출해서 소프트웨어 실행을 전체적으로 통제하는 역할

4. Task 매핑

  • Runnable에 이벤트를 세팅된 이벤트들을 OS와 연결해주는 Configuration(설정) 작업을 추가로 해줘야 함.
    ※ OS는 BSW 모듈이라 Authoring툴이 아니라 BSW Configuration 툴을 이용해야 함.

 

Port

: 외부의 SWC와 소통하기 위한 통로 역할 (AUTOSAR에서는 포트를 통해서만 다른 SWC와 소통하도록 정의되어 있음)

→ 포트를 만드어서 Code Generation시 RTE API가 생성.

 

1. 포트 설계

  • 포트에 대한 각종 세부사항 설계

2. SWC에 포트 추가

3. 컴포지션 상에서 포트 연결

  • 컴포넌트들을 컴포지션에 올려두고 컴포지션 상에서 포트 연결.

SWC Type 

: 아직 컴포지션 상에 올라가지 않은 상태의 SWC.(≈건물 설계도)

 

SWC ProtoType

: 실제로 SWC를 프로젝트에서 사용하기 위해 컴포지션 상에 올려놓은 SWC. (≈설계도를 이용해 지은 건물)

 

※ SWC Type의 내용이 변경되면, SWC Prototype에도 자동으로 적용.