MCU

혹시 마블 시네마틱 유니버스을(를) 찾아오셨나요?

Micro Controller Unit

1 개요

집적 회로 안에 프로세서와 메모리, 입출력 버스 등의 최소한의 컴퓨팅 요소를 내장한 초소형 컨트롤러. 보통 자동제어에 사용되기 위한 저성능/저전력 연산 장치를 뜻하나, 경우에 따라서는 ARM Cortex-A 시리즈와 같이 스마트폰 등에 사용되는 고성능/저전력 프로세서 제품도 MCU라 표현하기도 한다.[1] 그러나, 당연히 저성능 자체를 추구하는 것은 아니므로 구조의 개선이 이루어지며 점점 성능 향상이 이루어지고 있다.

PC에서의 CPU와 비슷하나, 이와 다른 가장 큰 특징은 저성능/저전력에 저렴한 가격으로 제작된다는 점과, 자동제어에 이용되기 위한 많은 주변장치[2]를 포함하고 있다는 점이다. 고성능의 처리 능력을 가지는 비싼 MCU를 DSP라 하며, 현재 MCU와 CPU의 구분은 그 프로세서의 사용 목적에 따라 정해지는 편이다. 고성능의 OS를 설치하여 PC나 서버, 슈퍼컴퓨터 등에 사용하는 경우에는 보통 CPU라 하며, 저성능의 OS를 설치하여 사용하거나[3] OS 없이 펌웨어 만 사용하여 자동제어에 사용되는 경우에는 MCU라 부르는 편이다. 그러나 상술했듯, 그 경계가 모호해 지는 경우도 있다.

보통 임베디드 시스템에 적합하게 디자인된 물건이 많은지라 성능 자체는 뛰어나다고 볼 수 없지만[4][5] 단순하고 신뢰성있으며 전력소모가 적으며 저렴하다는 장점이 있으며 현재도 여러 분야에 걸쳐서 널리 쓰이는 장치들이다.

이 분야에서 주로 사용되는 언어는 어셈블리어, C이다.[6]

2 사용 분야

민간 분야 쪽에서는 대부분의 가전제품 등에 들어가 있으며 산업 분야에서는 단순 제어 분야에 많이 사용된다.

또한 최근 이슈가 되고 있는 드론의 컨트롤러로 많이 쓰이고 있다. 또한 Fitbit등 웨어러블 기기에 대부분 들어간다.

또한 스마트폰에서도 AP와 함께 로직보드애 MCU가 들어가는 경우도 많은데, 그 예시로는 아이폰 6에 들어가는 모션 프로세서인 M8. ARM Cortex-M3 마이크로컨트롤러에 자이로스코프, 가속도계등의 센서가 연결되어있는데, 하는 일은 센서의 값을 읽어들여 데이터 처리를 한 후 AP에 처리된 데이터를 보내는 것.

이외에 초보적인 하드웨어 프로그래밍을 배우는 용도로도 많이 쓰인다. 대표적인 게 Arduino,Basic Stamp[7]

3 관련 항목

  1. ARM Cortex-A 시리즈와 같은 고성능/저전력 프로세서의 경우 CPU와 MCU의 경계선에 있다고 봐도 된다. 이러한 경우 일반적인 PC에 비해 저성능/저전력이지만 나름대로 GUI를 탑재한 OS를 설치하여 PC처럼 사용할 수 있기 때문이다.
  2. 예를 들어 많은 수의 타이머와 PWM 출력, 많은 수의 GPIO, 각종 시리얼 통신 장치들, 프로그램을 저장하기 위한 플래시 메모리나 ROM 등이 있다.
  3. ARM Cortex-M 시리즈의 경우 FreeRTOS와 같은 저성능 OS 설치가 가능하다.
  4. 이쪽에서 주로 쓰이는 AVR이나 Cortex-M을 보면 알 수 있듯이 매우 제한된 용량,연산성능을 가지고 있다.
  5. 극단적인 예로 가면 마이크로칩사의 PIC12C508A 같은 모델은 프로그래밍 가능한 용량이 512바이트인 경우도 있다. 이칩의 가격은 약 900원.
  6. 물론 실제 업무용이 아니라면 범위가 넓어져서 BASIC,C#,파이썬 등등으로 넓어지기는 한다. 이쪽은 주로 교육용이다.
  7. 아두이노 이전부터 쓰여오던 이분야의 선배격 디바이스로 우표크기에 DIP배열을 가진 형태의 기판에 베이직으로 프로그래밍을 했다.