Appia의 IT세상

[AUTOSAR 004] AUTOSAR(오토사)의 Software Component 본문

Development/AUTOSAR

[AUTOSAR 004] AUTOSAR(오토사)의 Software Component

Appia 2020. 3. 8. 20:49
반응형

앞서 포스팅에서는 AUTOSAR VFB 대해서 간단히 이야기 해봤습니다. 과정에서 Communication 기본 조건에 대해서 살펴봤습니다. 거기에서 통신의 주체인 swc 대해서 오늘은 이야기를 해보고자 합니다.

 

AUTOSAR Software Component 대해서 이야기 , 가장 많이 나오는 이야기가 기능에 대해서 표현하는 단위라는 이야기입니다. 하지만, 기능에 대해서 정의할 매우 어려운 이야기입니다. 이유는, 기능에 대한 구별은 바로 개발자가 하는 것이기 때문입니다. 따라서 저는 기능을 바탕으로 재사용을 하는 최소 단위라고 생각합니다. 

 

 

Atomic Software Component?

Atomic Software Component라는 말을 많이 사용합니다. Atomic 말은 원자로 나누어 지지 않는 다는 이야기 입니다. 그럼 Atomic Software Component 무엇을 의미할까요? AUTOSAR에서 2가지를 빼면 모두 Atomic Software Component입니다. 저는 다음과 같은 기능을 토대로 Atomic Software Component 구별합니다. 처음 하나는 기능을 담고 있는지 여부입니다. Internal Behavior 존재하는지 여부에 따라서, Atomic Software Component인지에 대해서 있습니다.

 (, Internal Behavior 존재하는 Component Atomic Software Component라고 있습니다.)

Atomic Software Component  Non-atomic Software Component 

ApplicationSwComponentType

NvBlockSwComponentType

ComplexDeviceDriverSwComponentType

ServiceSwComponentType

EcuAbstractionSwComponentType

SensorActuatorSwComponentType

ServiceProxySwComponentType

ParameterSwComponentType

CompositionSwComponentType

그럼 각 Software Component에 대해서 간단히 야이기를 해보도록 하겠습니다. 

 

CompositionSwComponetType

CompositionSwComponentType을 흔히들 Composition이라고 많이 이야기 합니다. 그럼 과연 Composition이 무엇인지에 대해서 한번 살펴보도록 하겠습니다. 

쉽게 Composition에 대해서 간단히 이야기를 해보면, Component사이에서의 관계를 기술한 것이라고 보시면 됩니다. 즉, Component들은 한 사람을 나타낸다면, Composition은 어떤 사람끼리 대화를 주고 받는지에 대해서 명시한 부분입니다. 

 

ParameterSwComponentType

ParameterSwComponentType은 여러 Software Component에서 Parameter를 공유하기 위해 사용하는 부분입니다. 즉, 이 Component에는 어떤한 기능들을 표시하지 않습니다. 단, Parameter정의 및 초기값등은 Parameter인터페이스에 선언하여 사용합니다. 이와 같이 있으면 여러 Component에서 동일한 Parameter를 사용할 때 각각 선언없이 사용할 수 있겠죠? 

 

Sensor-AcutuatorSwComponentType

Sensor-ActuatorSwComponetType은 특수 목적을 가지고 있습니다. 즉, Sensor/Actuator의 값처리를 하기 위해서 사용 됩니다. 외부 IO(Input/Output)와 연동하여 ECU-Abstarction와 직접통신하여 그 이후에 여기 있는 값들을 Application에서 사용합니다. 물론, 여기 있는 Software Component는 필수적이지 않지만, 구획하기 위해서 매우 용이하게 사용될 수 있습니다. 

 

ServiceProxySwComponentType 

주로 Inter-ECU 사이에서 Softwarae Component사이에서 mode를 분배할 떄 사용합니다. 실제 대부분 Mode Manager는 단일 ECU내에서 존재합니다. 하지만, 타 ECU의 Mode들을 사용하기 위해서는 Proxy가 사용이 요구되고, 그렇게 하기 위해서 다음과 같은 Component를 사용합니다. 하지만, 조금 웃긴 이야기를 하나 해보겠습니다. 많은 AUTOSAR 기반의 ECU를 만드는 업체들은 주로 Tier에서 작업을 하기 때문에 이 부분에 대해서 많이 사용하지 않습니다. 

 

ServiceSwComponentType

AUTOSAR의 Basic Software의 Service들을 묘사해주는 Component라고 보시면 됩니다. 즉, AUTOSAR Standarized Interface를 기반으로 Application Software와 통신합니다. (Service 관련해서는 추후에 별도로 포스팅을 할까 합니다.) 

 

ECUAbstractionSwComponentType

ECUAbstractionSwComponentType을 IO에 Access를 제공합니다. 즉, 외부에서 들어온 GPIO라던지 전기 신호등을 MCAL을 통해서 이 ECUAbstractionSwComponent에서 처리하는 Software Component입니다. 

 

ComplexDeviceDriverSwComponentType

흔히들 CDD라고들 이야기 합니다. 실제 ComplexDeviceDriverSwComponentType는 원래 지원하지 않는 Driver들을 제작하기 위해서 만든 목적이 가장 큽니다. 하지만, 이 뿐 아니라 기존 Leagacy Code를 재사용하는 목적으로도 사용이 됩니다. 그리고, 시간에 민감하게 동작해야하는 Component에 대해서 CDD라는 이름으로 동작하게 합니다. 즉 기존 다른 SoftwareComponent와 AUTOSAR Interface로 통신을 합니다. 

 

NvBlockSwComponentType

NvBlockSwComponentType NV Data 대한 SoftwareComponent 접근을 허용하는데 목적을 두고 있습니다. SWC 결과적으로 NVRam Manager 연결이 됩니다.

 

ApplicationSwComponentType

ApplicationSwComponentType는 일반적인 제어 Software를 묘사하기 위해서 사용하는 SoftwareComponent입니다. 우리가 앞으로 가장많이 사용하고 이용하게 되는 Software Component입니다. 

 

오늘 포스팅에서는 AUTOSAR위 Software Component에 대해서 이야기를 해봤습니다. 생각보다는 복잡하거나, 많이 사용하지 않는 부분들도 있습니다. 하지만, 이부분을 토대로 이해 하는데 도움이 되기를 바랍니다. 

 

혹시 도움이 되셨다면 공감 버튼 클릭 부탁드립니다. 감사합니다.

반응형
Comments