개요
Sense-Compute-Control 패턴은 임베디드 시스템에서 널리 사용되는 설계 패턴이다.
시스템이 외부 환경으로부터 데이터를 수집하고, 이를 처리한 뒤 그 결과를 바탕으로 적절한 제어 동작을 수행하는 일련의 작업 흐름을 말한다. 이 패턴은 물리적인 세상과 상호작용하는 시스템을 설계할 때 주로 사용되고, 세 가지 주요 단계로 구성된다.
주요 단계
Sense (감지)
시스템이 외부 환경으로부터 데이터를 수집하는 단계이다. 이 단계에서는 다양한 센서를 사용해서 온도, 압력과 같은 물리적 매개변수를 측정한다. 이러한 데이터는 아날로그 또는 디지털 형태로 수집되고 시스템의 다른 모듈로 전달된다.
Compute (연산)
감지한 데이터를 기반으로 연산을 수행하는 단계이다. 센서로부터 수집된 데이터를 분석, 필터링, 변환하거나 데이터를 기반으로 논리적인 결정을 내린다.
Control (제어)
연산 단계에서 도출된 결과를 바탕으로 시스템이 물리적으로 환경에 영향을 미치는 제어 동작을 수행하는 단계이다. 이 단계에서는 모터, 액추에이터, 스위치 등과 같은 제어 장치가 작동한다. 이 단계의 목표는 환경에 피드백을 제공하거나 시스템의 작동 상태를 변경하는 것이다.
흐름
기본적으로 순차적인 흐름을 따른다. 즉, 반복을 통한 시퀀스로, Sense -> Compuite -> Control 과정을 수행한다.
예를 들어, Sense 과정으로 온도센서가 환경의 온도를 측정하고, Compute 과정으로 측정된 온도를 분석하여 설정된 임계값과 비교하고, Control 과정으로 온도가 임계값을 초과하면 냉각 팬을 작동시키고 그렇지 않으면 팬을 중지시킨다.
장단점
각 단계가 명확하게 구분되어 시스템 설계각 모듈화되고 유지 보수 및 테스트가 용이하다. 또 새로운 센서나 제어 장치를 추가할 때 전체 시스템을 크게 변경하지 않아도 되어 확장성이 좋고, 동일한 패턴이 다양한 어플리케이션에서 재사용될 수 있어 재사용성이 좋다.
다만, Compute 단계의 처리 로직이 복잡할 경우 실시간 성능이 떨어질 수 있다. 또, 센서 오작동으로 인해 잘못된 데이터를 제공하면 성능과 안전성에 부정적인 영향을 미칠 수 있다.
'현생 > 임베디드' 카테고리의 다른 글
임베디드SW에서 자주 쓰이는 비트 연산 및 Union (0) | 2024.08.17 |
---|---|
ARM Cortex-M3 Processor Datasheet - 디자인 (0) | 2024.08.12 |
ARM Cortex-M3 Processor Datasheet - 특징 정리 (0) | 2024.08.11 |
ARM 프로세서 - CORTEX M3 (0) | 2024.08.10 |
FreeRTOS - Message Queue (0) | 2024.08.09 |