전자공학/펌웨어

MCU의 개념 - 펌웨어가 동작하는 작은 컴퓨터

옴버터 2026. 5. 31. 06:52

안녕하세요 😊

지난 글에서는 펌웨어(Firmware)가 무엇인지에 대해 정리했습니다.

 

👉 이전 글 보러 가기
펌웨어(Firmware)의 개념 - 회로와 소프트웨어를 연결하는 제어의 시작

 

이전 글에서 펌웨어는 전자회로와 소프트웨어를 연결하는 제어 프로그램이라고 설명했습니다.

 

버튼 입력을 읽고, 센서 값을 확인하고, PWM 신호를 만들고, 조건에 따라 출력을 제어하는 프로그램이 바로 펌웨어입니다.

 

그런데 여기서 자연스럽게 이런 질문이 생길 수 있습니다.

“펌웨어는 어디에서 실행될까?”
“회로 안에서 코드는 누가 읽고 실행할까?”
“ADC, PWM, GPIO 같은 기능은 실제로 어디에 들어 있을까?”

 

이 질문과 가장 밀접하게 연결되는 부품이 바로 MCU입니다.

 

MCU는 펌웨어가 실제로 실행되는 공간입니다.
조금 쉽게 말하면, 전자제품 안에 들어가는 작은 제어용 컴퓨터라고 볼 수 있어요.

 

이번 글에서는 MCU가 무엇인지, MCU 안에는 어떤 기능들이 들어 있는지, 그리고 펌웨어와 회로 사이에서 MCU가 어떤 역할을 하는지 기초부터 차근차근 정리해보겠습니다. 🙂

 

MCU의 개념


MCU (Micro Controller Unit)

 

1. MCU란 무엇일까?

 

MCU는 Micro Controller Unit의 약자입니다.

 

단어를 나누어 보면 다음과 같습니다.

 

Micro : 아주 작은
Controller : 제어하는 장치
Unit : 하나의 장치

 

즉, MCU는 작은 제어용 컴퓨터라고 이해하면 됩니다.

 

일반적인 컴퓨터가 문서 작업, 인터넷, 영상 재생처럼 다양한 작업을 한다면, MCU는 전자제품 내부에서 특정한 제어 작업을 수행하는 데 초점을 둔 작은 컴퓨터입니다.

 

예를 들어 MCU는 다음과 같은 동작을 할 수 있습니다.

  • 버튼 입력을 읽습니다.
  • LED를 켜고 끕니다.
  • 센서 전압을 ADC로 읽습니다.
  • PWM 신호를 출력합니다.
  • 모터 속도를 제어합니다.
  • 통신으로 다른 IC와 데이터를 주고받습니다.
  • 이상 상태가 발생하면 출력을 차단합니다.
  • 정해진 시간마다 특정 동작을 반복합니다.

이처럼 MCU는 회로 안에서 입력을 읽고, 판단하고, 출력을 제어하는 중심 역할을 합니다.

 

조금 더 직관적으로 표현하면, 회로가 몸이라면 MCU는 몸을 움직이게 하는 작은 두뇌에 가깝습니다. 🧠

 

물론 MCU 혼자서는 아무것도 할 수 없습니다.

 

전원 회로, 센서, 스위치, 드라이버, MOSFET, 모터 같은 외부 회로와 연결되어야 실제 동작을 만들 수 있습니다.

 

하지만 그 회로들이 어떤 순서로, 어떤 조건에서, 어느 정도로 동작할지 결정하는 중심에는 MCU가 있습니다.

 


2. MCU와 펌웨어의 관계

 

MCU를 이해할 때 가장 먼저 알아야 할 것은 펌웨어와 MCU의 관계입니다.

 

펌웨어는 프로그램입니다.
MCU는 그 프로그램을 저장하고 실행하는 하드웨어입니다.

 

간단히 표현하면 다음과 같습니다.

 

펌웨어 = MCU 안에서 실행되는 제어 프로그램
MCU = 펌웨어를 실행하는 작은 제어용 컴퓨터

 

예를 들어 버튼을 누르면 LED가 켜지는 회로를 생각해보겠습니다.

 

회로에는 버튼과 LED가 있습니다.
하지만 버튼을 눌렀을 때 LED를 켤지 말지는 누군가 판단해야 합니다.

 

이때 MCU는 버튼 입력을 읽고, 펌웨어는 그 값을 기준으로 조건을 판단합니다.

 

간단한 코드로 표현하면 다음과 같습니다.

if (button == pressed)
{
    led = ON;
}
else
{
    led = OFF;
}

 

이 코드는 펌웨어입니다.

 

하지만 이 코드가 실제로 동작하려면 MCU가 필요합니다.
MCU가 코드를 읽고 실행하면서 실제 핀의 전압을 HIGH 또는 LOW로 바꿔야 LED가 켜지거나 꺼질 수 있습니다.

 

즉, 펌웨어는 생각과 명령에 가깝고, MCU는 그 명령을 실제 회로 신호로 바꾸는 장치라고 볼 수 있습니다.

 

MCU와 펌웨어의 관계


3. MCU 안에는 무엇이 들어 있을까?

 

MCU는 단순히 CPU 하나만 들어 있는 부품이 아닙니다.

 

MCU 안에는 제어에 필요한 여러 기능들이 함께 들어 있습니다.
그래서 MCU 하나만으로도 입력을 읽고, 계산하고, 출력을 제어하는 기본적인 제어 시스템을 만들 수 있습니다.

 

대표적인 구성 요소는 다음과 같습니다.

구성 요소 역할
CPU 명령어를 실행하는 중심 장치
Flash Memory 펌웨어 코드가 저장되는 공간
RAM 실행 중 임시 데이터가 저장되는 공간
GPIO 핀을 입력 또는 출력으로 사용하는 기능
ADC 아날로그 전압을 디지털 값으로 변환하는 기능
Timer 시간 기준을 만들고 주기적인 동작을 수행하는 기능
PWM 빠른 ON/OFF 신호로 평균 전압이나 전력을 제어하는 기능
Communication UART, I2C, SPI 같은 통신 기능
Interrupt 특정 이벤트가 발생했을 때 즉시 처리하는 기능
Watchdog Timer 펌웨어 이상 동작 시 시스템을 리셋하는 기능

 

 

이 기능들이 모두 하나의 칩 안에 들어 있기 때문에 MCU는 작은 제어 시스템처럼 동작할 수 있습니다.

 

예를 들어 센서 값을 읽어서 모터를 제어하는 시스템을 생각해보겠습니다.

 

ADC가 센서 전압을 읽고,
CPU가 그 값을 계산하고,
Timer와 PWM이 모터 구동 신호를 만들고,
GPIO가 상태 LED를 켜고,
통신 기능이 외부 장치와 데이터를 주고받을 수 있습니다.

 

이 모든 동작이 MCU 안에서 이루어질 수 있습니다.

 

그래서 MCU는 단순한 부품 하나라기보다는, 작은 제어 시스템이 하나의 칩 안에 들어간 것이라고 볼 수 있습니다. 😊

 

MCU 내부 블록도


4. CPU는 MCU의 중심이다.

 

MCU 안에서 가장 중심이 되는 부분은 CPU입니다.

 

CPU는 펌웨어 명령어를 하나씩 읽고 실행하는 역할을 합니다.

 

예를 들어 펌웨어에 다음과 같은 명령이 있다고 생각해보겠습니다.

adc_value = read_adc();
duty = calculate_pwm(adc_value);
set_pwm_duty(duty);

 

이 코드는 다음과 같은 의미를 가집니다.

  1. ADC 값을 읽습니다.
  2. 읽은 값을 기준으로 PWM 듀티를 계산합니다.
  3. 계산된 듀티를 PWM 출력에 반영합니다.

이 명령을 실제로 실행하는 장치가 CPU입니다.

 

하지만 MCU에서 CPU만 중요한 것은 아닙니다.

 

CPU가 아무리 빠르게 계산해도, ADC가 없으면 아날로그 센서 값을 읽기 어렵고, PWM 기능이 없으면 정밀한 스위칭 신호를 만들기 어렵습니다.

 

그래서 MCU를 볼 때는 CPU 성능만 보는 것이 아니라, 주변 기능까지 함께 봐야 합니다.

 

특히 전력전자나 모터 제어에서는 CPU 연산 성능뿐만 아니라 ADC 속도, PWM 해상도, Timer 구조, Interrupt 처리 속도도 매우 중요합니다. ⚡

 


5. Flash Memory와 RAM

 

MCU에는 보통 Flash MemoryRAM이 들어 있습니다.

 

먼저 Flash Memory는 펌웨어 코드가 저장되는 공간입니다.

 

MCU에 프로그램을 다운로드하면 그 코드가 Flash Memory에 저장됩니다.
전원이 꺼져도 Flash Memory 안의 코드는 사라지지 않습니다.

 

그래서 다시 전원을 켜면 MCU는 Flash Memory에 저장된 펌웨어를 읽고 실행합니다.

 

반면 RAM은 실행 중에 필요한 임시 데이터를 저장하는 공간입니다.

 

예를 들어 다음과 같은 값들이 RAM에 저장될 수 있습니다.

  • 현재 ADC 값
  • 계산 중인 변수
  • 모터 속도 값
  • 통신 수신 데이터
  • 상태 변수
  • 제어 알고리즘의 중간 계산값

RAM은 전원이 꺼지면 데이터가 사라집니다.

 

그래서 프로그램 자체는 Flash Memory에 저장되고, 실행 중에 계속 바뀌는 값은 RAM에 저장된다고 이해하면 됩니다.

 

간단히 정리하면 다음과 같습니다.

 

Flash Memory : 펌웨어 코드가 저장되는 공간
RAM : 실행 중 임시 데이터가 저장되는 공간

 

예를 들어 요리 레시피에 비유하면, Flash Memory는 레시피 책이고 RAM은 요리하면서 잠깐 올려두는 작업대에 가깝습니다. 🍳

 

레시피 책은 계속 남아 있지만, 작업대 위에 올려둔 재료와 중간 결과물은 요리가 끝나면 치워지는 것과 비슷합니다.

 


6. GPIO는 MCU의 가장 기본적인 입출력 기능이다

 

MCU를 공부할 때 가장 먼저 만나는 기능 중 하나가 GPIO입니다.

 

GPIO는 General Purpose Input Output의 약자입니다.
말 그대로 범용 입출력 핀이라는 뜻입니다.

 

MCU의 핀을 입력으로 사용할 수도 있고, 출력으로 사용할 수도 있습니다.

 

입력으로 사용할 때는 외부 신호를 읽습니다.

 

예를 들면 다음과 같습니다.

  • 버튼이 눌렸는지 확인
  • 스위치 상태 확인
  • Fault 신호 확인
  • 다른 IC의 상태 신호 확인

출력으로 사용할 때는 MCU가 외부 회로를 제어합니다.

 

예를 들면 다음과 같습니다.

  • LED 켜기
  • 릴레이 구동 신호 출력
  • 부저 ON/OFF
  • 드라이버 IC Enable 제어
  • MOSFET 게이트 드라이버 제어 신호 출력

GPIO는 가장 단순해 보이지만, MCU 제어의 출발점이라고 볼 수 있습니다.

 

버튼을 읽고 LED를 켜는 것도 GPIO이고,
Fault 신호를 읽고 출력을 차단하는 것도 GPIO와 관련이 있습니다.

 

그래서 MCU를 처음 공부할 때는 GPIO를 통해 코드가 실제 핀 전압을 바꿀 수 있다는 감각을 잡는 것이 중요합니다. 🙂

 

GPIO


7. ADC는 아날로그 신호를 숫자로 바꿔준다

 

전자회로에서는 아날로그 신호가 많이 사용됩니다.

 

온도 센서, 전압 센서, 전류 센서, 가변저항 출력 같은 신호는 보통 연속적인 전압 형태로 나타납니다.

 

하지만 MCU는 기본적으로 디지털 장치입니다.
즉, 0과 1의 세계에서 동작합니다.

 

그래서 아날로그 전압을 MCU가 이해할 수 있는 숫자로 바꿔주는 기능이 필요합니다.

 

이 역할을 하는 것이 ADC입니다.

 

ADC는 Analog to Digital Converter의 약자입니다.
아날로그 전압을 디지털 값으로 변환하는 기능입니다.

 

예를 들어 MCU의 ADC 입력 범위가 0V~5V이고, ADC 해상도가 10bit라고 생각해보겠습니다.

 

10bit ADC는 0부터 1023까지의 숫자로 전압을 표현합니다.

 

0V는 0에 가깝고,
5V는 1023에 가깝고,
2.5V는 대략 512 근처의 값으로 변환됩니다.

 

즉, ADC는 실제 회로의 전압을 MCU가 계산할 수 있는 숫자로 바꿔주는 다리 역할을 합니다.

 

전력전자 관점에서도 ADC는 매우 중요합니다.

 

예를 들어 다음과 같은 값들을 읽을 때 ADC가 사용될 수 있습니다.

  • DC Link 전압
  • 출력 전압
  • 출력 전류
  • 상전류
  • 온도 센서 전압
  • 배터리 전압
  • 보호 회로 감지 전압

MCU는 ADC로 값을 읽고, 그 값을 기준으로 제어와 보호 동작을 수행합니다.

 

그래서 ADC를 이해할 때는 단순히 “전압을 숫자로 바꾼다”에서 끝나면 안 됩니다.

 

입력 전압 범위가 적절한지, 분압 회로가 필요한지, 노이즈 필터가 필요한지, 샘플링 타이밍이 적절한지까지 함께 봐야 합니다.

 

ADC


8. PWM은 MCU가 전력을 제어하는 중요한 방법이다

 

PWM은 Pulse Width Modulation의 약자입니다.

 

우리말로는 펄스 폭 변조라고 합니다.

 

PWM은 신호를 빠르게 ON/OFF하면서 ON 시간의 비율을 조절하는 방식입니다.

 

예를 들어 5V 신호를 매우 빠르게 켰다 껐다 한다고 생각해보겠습니다.

 

ON 시간이 길면 평균적으로 높은 전압처럼 동작하고,
ON 시간이 짧으면 평균적으로 낮은 전압처럼 동작합니다.

 

여기서 ON 시간의 비율을 듀티(Duty)라고 합니다.

 

예를 들어 PWM 듀티가 50%라면 한 주기 중 절반은 ON, 절반은 OFF입니다.
PWM 듀티가 80%라면 한 주기 중 80%는 ON, 20%는 OFF입니다.

 

PWM은 다양한 곳에 사용됩니다.

  • LED 밝기 조절
  • DC 모터 속도 제어
  • SMPS 출력 전압 제어
  • 인버터 스위칭 신호 생성
  • 히터 출력 제어
  • 부저 음 출력

특히 전력전자에서는 PWM이 매우 중요합니다. ⚡

 

Buck Converter, Boost Converter, Inverter 같은 회로는 스위칭 소자를 빠르게 ON/OFF하면서 에너지를 제어합니다.

 

이때 MCU가 PWM 신호를 만들고, 펌웨어가 듀티를 계산합니다.

 

예를 들어 출력 전압이 목표보다 낮으면 PWM 듀티를 올리고,
출력 전압이 목표보다 높으면 PWM 듀티를 낮출 수 있습니다.

 

간단히 표현하면 다음과 같습니다.

출력 전압 측정
  ↓
목표 전압과 비교
  ↓
오차 계산
  ↓
PWM 듀티 조절
  ↓
출력 전압 제어

 

이처럼 PWM은 MCU가 실제 전력 흐름을 제어하는 대표적인 방법입니다.

 

PWM


9. Timer는 MCU의 시간 기준이다

 

MCU에서 시간은 매우 중요합니다.

 

버튼이 눌린 시간을 측정할 수도 있고,
1ms마다 센서 값을 읽을 수도 있고,
20kHz PWM 주기를 만들 수도 있습니다.

 

이런 시간 기준을 만들 때 사용하는 기능이 Timer입니다.

 

Timer는 일정한 속도로 증가하거나 감소하는 카운터라고 이해하면 됩니다.

 

MCU는 Timer를 이용해서 다음과 같은 동작을 할 수 있습니다.

  • 일정 시간마다 코드 실행
  • PWM 주파수 생성
  • 입력 신호의 주기 측정
  • 펄스 폭 측정
  • 통신 타이밍 생성
  • 제어 주기 생성

예를 들어 모터 제어에서 전류 제어를 10kHz로 수행한다고 생각해보겠습니다.

 

그러면 100us마다 한 번씩 전류를 측정하고, 제어 알고리즘을 계산하고, PWM 듀티를 갱신해야 합니다.

 

이때 Timer가 기준 시간을 만들어줍니다.

 

Timer가 없다면 MCU가 정확한 주기로 동작하기 어렵습니다.

 

특히 전력전자 제어에서는 Timer와 PWM이 매우 밀접하게 연결되어 있습니다.
PWM 주파수, ADC 샘플링 시점, Interrupt 발생 시점이 모두 Timer를 기준으로 맞춰질 수 있기 때문입니다.

 

그래서 MCU를 공부할 때 Timer는 단순한 시간 측정 기능이 아니라, 제어 시스템의 박자를 만드는 기능이라고 이해하면 좋습니다. ⏱️

 


10. Interrupt는 중요한 일을 즉시 처리하게 해준다

 

MCU는 기본적으로 코드를 순서대로 실행합니다.

 

하지만 실제 제어 시스템에서는 특정 이벤트가 발생했을 때 즉시 처리해야 하는 경우가 많습니다.

 

예를 들어 다음과 같은 상황이 있습니다.

  • 일정 시간이 되면 제어 알고리즘을 실행해야 한다.
  • 통신 데이터가 들어오면 바로 처리해야 한다.
  • Fault 신호가 발생하면 출력을 차단해야 한다.
  • ADC 변환이 완료되면 값을 읽어야 한다.
  • 외부 입력 신호가 바뀌면 상태를 기록해야 한다.

이때 사용하는 기능이 Interrupt입니다.

 

Interrupt는 말 그대로 현재 실행 중인 흐름을 잠시 멈추고, 더 중요한 이벤트를 먼저 처리하는 기능입니다.

 

예를 들어 MCU가 평소에는 메인 루프를 돌고 있다고 생각해보겠습니다.

while(1)
{
    check_button();
    update_display();
    communication_task();
}

 

그런데 Timer Interrupt가 발생하면 MCU는 메인 루프를 잠시 멈추고 Timer Interrupt 함수로 이동합니다.

timer_interrupt()
{
    read_adc();
    control_calculation();
    update_pwm();
}

 

이렇게 하면 정해진 주기마다 제어 알고리즘을 정확하게 실행할 수 있습니다.

 

전력전자나 인버터 제어에서는 Interrupt가 특히 중요합니다.

 

왜냐하면 제어 연산이 일정한 주기로 수행되어야 하고, 보호 동작은 늦으면 안 되기 때문입니다.

 

예를 들어 과전류가 발생했는데 MCU가 너무 늦게 반응하면 MOSFET이나 IGBT가 손상될 수 있습니다.

 

그래서 중요한 보호 신호는 하드웨어 보호 회로와 함께 Interrupt 또는 전용 Fault 입력 기능을 사용하기도 합니다.

 

즉, Interrupt는 MCU가 중요한 일을 놓치지 않도록 해주는 기능이라고 볼 수 있습니다. 🚨

 

Interrupt


11. MCU와 일반 컴퓨터는 무엇이 다를까?

 

MCU도 작은 컴퓨터라고 했지만, 우리가 흔히 사용하는 PC와는 목적이 다릅니다.

 

PC는 다양한 프로그램을 실행하기 위한 범용 컴퓨터입니다.
문서 작업, 웹 브라우징, 영상 편집, 게임 등 여러 작업을 수행할 수 있습니다.

 

반면 MCU는 특정한 장치를 제어하기 위한 임베디드 컴퓨터입니다.

 

예를 들어 전원 장치, 모터 제어기, 센서 모듈, 가전제품, 자동차 부품, 산업용 제어 장치 등에 들어갑니다.

 

차이를 간단히 정리하면 다음과 같습니다.

구분 일반 컴퓨터 MCU
주요 목적 다양한 작업 수행 특정 하드웨어 제어
사용자 인터페이스 화면, 키보드, 마우스 버튼, 센서, 통신, 제어 신호
운영체제 Windows, macOS, Linux 등 없거나 RTOS 사용
전원 비교적 큰 전력 사용 저전력 동작 가능
입출력 USB, 모니터, 네트워크 등 GPIO, ADC, PWM, UART, I2C, SPI 등
동작 방식 사용자가 프로그램 실행 전원 인가 후 자동 동작

 

MCU는 PC처럼 화려한 화면을 보여주기 위한 장치가 아닙니다.

 

대신 회로와 직접 연결되어 신호를 읽고, 판단하고, 제어하는 데 특화되어 있습니다.

 

그래서 MCU를 공부할 때는 컴퓨터 구조뿐만 아니라 실제 회로 신호와 함께 이해하는 것이 중요합니다.

 


12. MCU와 헷갈리기 쉬운 것들

 

MCU를 공부하다 보면 비슷한 단어들이 자주 나옵니다.

 

CPU, MPU, DSP, FPGA, SoC, ASIC 같은 용어들입니다.

 

처음 보면 모두 비슷하게 느껴질 수 있습니다.
어떤 것은 연산을 하고, 어떤 것은 제어를 하고, 어떤 것은 회로 안에 들어가고, 또 어떤 것은 프로그램을 실행하기 때문입니다.

 

그래서 MCU를 제대로 이해하려면 MCU와 헷갈리기 쉬운 개념들도 함께 정리해두는 것이 좋습니다. 🙂

 

결론부터 말하면 MCU는 제어 기능 중심의 작은 컴퓨터입니다.

 

센서 값을 읽고, 버튼 입력을 확인하고, PWM을 출력하고, 통신을 하면서 특정 장치를 제어하는 데 초점을 둔 부품입니다.

 

반면 CPU, MPU, DSP, FPGA, SoC, ASIC은 각각 목적과 구조가 조금씩 다릅니다.

 

 

12-1. CPU와 MCU는 어떻게 다를까?

 

먼저 CPU부터 보겠습니다.

 

CPU는 Central Processing Unit의 약자입니다.
우리말로는 중앙처리장치라고 합니다.

 

CPU는 명령어를 해석하고 실행하는 핵심 연산 장치입니다.

 

MCU 안에도 CPU가 들어 있습니다.
즉, CPU는 MCU의 구성 요소 중 하나입니다.

 

쉽게 말하면 다음과 같습니다.

 

CPU = 명령어를 실행하는 연산 중심 장치
MCU = CPU와 메모리, GPIO, ADC, PWM, Timer 등이 함께 들어 있는 제어용 칩

 

비유하면 CPU는 사람의 두뇌 중에서 계산하고 판단하는 부분에 가깝고, MCU는 두뇌뿐만 아니라 눈, 귀, 손발을 연결할 수 있는 입출력 기능까지 함께 가진 작은 제어 시스템에 가깝습니다.

 

예를 들어 CPU만 있다고 해서 바로 버튼을 읽고 LED를 켤 수 있는 것은 아닙니다.

 

버튼 입력을 받을 핀, LED를 켤 출력 핀, 프로그램을 저장할 메모리, 시간을 만들 Timer 같은 주변 기능이 필요합니다.

 

MCU는 이런 기능들이 하나의 칩 안에 같이 들어 있기 때문에 전자제품 제어에 사용하기 좋습니다.

 

즉, CPU는 MCU 안에 포함될 수 있지만, CPU 자체가 MCU는 아닙니다.

 

 

12-2. MPU와 MCU는 어떻게 다를까?

 

MPU는 Micro Processor Unit의 약자입니다.

 

MPU는 MCU와 이름이 비슷하지만 목적이 다릅니다.

 

MCU는 제어에 필요한 여러 기능이 하나의 칩 안에 들어 있는 경우가 많습니다.

 

예를 들어 CPU, Flash Memory, RAM, GPIO, ADC, Timer, PWM, UART, I2C, SPI 같은 기능들이 함께 들어 있습니다.

 

반면 MPU는 고성능 연산을 담당하는 프로세서 중심의 장치입니다.

 

일반적으로 MPU는 외부 메모리, 전원 회로, 주변 IC 등이 더 많이 필요합니다.

또한 Linux 같은 운영체제를 사용하는 경우도 많습니다.

 

쉽게 말하면 다음과 같습니다.

 

MCU : 특정 장치를 제어하기 위한 작은 제어용 컴퓨터
MPU : 복잡한 연산과 운영체제 실행에 적합한 고성능 프로세서

 

예를 들어 버튼을 읽고, 센서 전압을 측정하고, PWM을 출력하는 시스템에는 MCU가 적합합니다.

 

반면 디스플레이 화면을 띄우고, 영상 처리를 하고, 네트워크 기능을 수행하고, Linux 기반 애플리케이션을 실행해야 한다면 MPU가 적합할 수 있습니다.

 

PC나 스마트폰에 들어가는 프로세서는 MCU보다는 MPU에 가까운 개념입니다.

 

다만 실제 제품에서는 MCU와 MPU가 함께 사용되기도 합니다.

 

예를 들어 MPU가 화면, 네트워크, 고급 애플리케이션을 담당하고, MCU가 센서 입력, 모터 제어, 실시간 보호 동작을 담당하는 식입니다.

 

여기서 중요한 점은 MCU가 MPU보다 무조건 하위 개념이라는 뜻은 아니라는 것입니다.

 

MCU는 성능이 낮아서 쓰는 부품이 아니라, 실시간 제어와 하드웨어 제어에 적합하기 때문에 사용하는 부품입니다.

 

 

12-3. DSP와 MCU는 어떻게 다를까?

 

MCU와 가장 많이 헷갈릴 수 있는 것 중 하나가 DSP입니다.

 

DSP는 Digital Signal Processor의 약자입니다.
우리말로는 디지털 신호 처리 프로세서라고 합니다.

 

DSP는 이름 그대로 디지털 신호 처리에 특화된 프로세서입니다.

 

여기서 디지털 신호 처리란 센서나 신호를 숫자로 바꾼 뒤, 그 숫자를 빠르게 계산해서 원하는 정보를 얻거나 제어에 활용하는 것을 말합니다.

 

예를 들면 다음과 같은 작업들이 DSP와 관련이 깊습니다.

  • 디지털 필터 연산
  • FFT 같은 주파수 분석
  • 오디오 신호 처리
  • 영상 신호 처리
  • 모터 제어 연산
  • 전류 제어 연산
  • 좌표 변환
  • PI 제어, PID 제어
  • 실시간 제어 알고리즘 계산

DSP는 특히 곱셈과 덧셈이 반복되는 계산에 강합니다.

 

전력전자나 모터 제어에서는 전류 제어, 좌표 변환, PWM 계산, 필터 연산처럼 빠른 반복 계산이 많이 필요합니다.

 

그래서 과거에는 고성능 제어가 필요한 시스템에서 DSP가 많이 사용되었습니다. ⚡

 

예를 들어 인버터 제어를 생각해보겠습니다.

 

3상 전류를 측정하고,
좌표 변환을 수행하고,
전류 오차를 계산하고,
PI 제어기를 돌리고,
PWM 듀티를 계산해야 합니다.

 

이런 계산은 매우 짧은 시간 안에 반복적으로 수행되어야 합니다.

 

DSP는 이런 반복적인 수치 연산에 강합니다.

 

그렇다면 MCU와 DSP는 완전히 다른 부품일까요?

 

예전에는 구분이 비교적 명확했습니다.

 

MCU는 입출력 제어 중심,
DSP는 고속 신호 연산 중심이라는 느낌이 강했습니다.

 

하지만 요즘은 경계가 많이 흐려졌습니다.

 

많은 MCU가 DSP 명령어, 고속 ADC, 고해상도 PWM, 부동소수점 연산 기능을 포함하기도 합니다.

 

그래서 어떤 제품은 MCU라고 부르지만 실제로는 DSP에 가까운 연산 성능을 가지고 있습니다.

 

특히 모터 제어나 전력전자 제어용 MCU는 일반적인 단순 제어 MCU보다 훨씬 강력한 연산 기능과 PWM 기능을 가지고 있습니다.

 

정리하면 다음과 같습니다.

 

MCU : 센서 입력, GPIO, ADC, PWM, 통신 등 하드웨어 제어에 강한 제어용 칩
DSP : 빠른 수치 연산과 신호 처리에 특화된 프로세서
전력전자용 고성능 MCU : MCU의 제어 기능과 DSP의 연산 기능을 함께 가진 경우가 많음

 

그래서 인버터 제어나 모터 제어 분야에서는 MCU와 DSP를 완전히 분리해서 보기보다는, 실시간 제어 성능을 가진 MCU 또는 DSP 계열 제어기로 이해하는 것이 더 자연스럽습니다. 🙂

 

 

12-4. FPGA와 MCU는 어떻게 다를까?

 

FPGA도 MCU와 헷갈리기 쉬운 부품입니다.

 

FPGA는 Field Programmable Gate Array의 약자입니다.

 

MCU는 펌웨어 코드를 순서대로 실행하는 방식입니다.
반면 FPGA는 내부의 논리 회로 구조 자체를 사용자가 구성할 수 있는 부품입니다.

 

즉, MCU는 프로그램을 실행하는 장치이고, FPGA는 원하는 디지털 회로를 내부에 만들어 사용하는 장치에 가깝습니다.

 

쉽게 말하면 다음과 같습니다.

 

MCU : 코드를 순서대로 실행하면서 제어하는 장치
FPGA : 병렬로 동작하는 디지털 회로를 직접 구성할 수 있는 장치

 

MCU에서는 코드가 위에서 아래로 실행됩니다.

 

예를 들어 입력을 읽고, 조건을 판단하고, 출력을 바꾸는 식입니다.

 

반면 FPGA에서는 여러 논리 회로가 동시에 동작할 수 있습니다.

 

그래서 FPGA는 매우 빠른 병렬 처리가 필요한 곳에 유리합니다.

 

예를 들면 다음과 같은 분야에서 사용됩니다.

  • 고속 통신 처리
  • 영상 처리
  • 고속 데이터 수집
  • 복잡한 디지털 로직 구현
  • 빠른 보호 로직 구현
  • 프로토타입 하드웨어 검증

다만 FPGA는 MCU보다 개발 난이도가 높고, 일반적인 C 언어 펌웨어와는 다른 방식으로 설계합니다.

 

보통 Verilog나 VHDL 같은 하드웨어 기술 언어를 사용합니다.

 

따라서 일반적인 센서 입력, 버튼 제어, PWM 출력 같은 임베디드 제어에는 MCU가 더 간단하고 적합한 경우가 많습니다.

 

반면 매우 빠른 병렬 처리나 특수한 디지털 회로 구성이 필요하면 FPGA가 유리할 수 있습니다.

 

 

12-5. SoC와 MCU는 어떻게 다를까?

 

SoC는 System on Chip의 약자입니다.

 

말 그대로 하나의 칩 안에 시스템 전체에 가까운 기능을 넣은 것을 의미합니다.

 

SoC에는 CPU, GPU, 메모리 컨트롤러, 통신 기능, 영상 처리 기능, 보안 기능 등 다양한 블록이 들어갈 수 있습니다.

 

스마트폰이나 고성능 임베디드 보드에 들어가는 칩을 생각하면 이해하기 쉽습니다.

 

MCU도 넓은 의미에서는 작은 SoC처럼 볼 수 있습니다.
CPU, 메모리, 주변장치가 하나의 칩 안에 들어 있기 때문입니다.

 

하지만 일반적으로 SoC라고 하면 MCU보다 훨씬 복잡하고 고성능인 시스템 칩을 의미하는 경우가 많습니다.

 

쉽게 정리하면 다음과 같습니다.

 

MCU : 제어 중심의 작은 시스템 칩
SoC : 더 복잡하고 고성능인 시스템을 하나의 칩에 통합한 구조

 

예를 들어 단순 센서 제어나 모터 제어에는 MCU가 적합합니다.

 

반면 스마트폰, 태블릿, 고성능 카메라, AI 장치처럼 복잡한 연산과 다양한 기능이 필요한 시스템에는 SoC가 사용될 수 있습니다.

 

 

12-6. ASIC과 MCU는 어떻게 다를까?

 

ASIC은 Application Specific Integrated Circuit의 약자입니다.

 

특정 목적을 위해 전용으로 설계된 반도체입니다.

 

MCU는 펌웨어를 바꾸면 다양한 제어 동작을 수행할 수 있습니다.

 

반면 ASIC은 특정 기능을 하도록 회로가 고정되어 있는 경우가 많습니다.

 

쉽게 말하면 다음과 같습니다.

 

MCU : 펌웨어를 바꿔 다양한 제어를 할 수 있는 범용 제어 칩
ASIC : 특정 목적에 맞게 전용으로 설계된 칩

 

ASIC은 대량 생산 제품에서 성능, 크기, 전력, 비용 측면에서 유리할 수 있습니다.

 

하지만 개발 비용이 크고, 한 번 설계하면 수정이 어렵습니다.

 

반면 MCU는 비교적 유연합니다.
펌웨어 수정만으로 기능을 변경하거나 개선할 수 있기 때문입니다.

 

그래서 개발 초기 단계나 다양한 제품에 대응해야 하는 경우에는 MCU가 유리할 수 있고, 대량 생산에서 특정 기능을 최적화해야 하는 경우에는 ASIC이 유리할 수 있습니다.

 

 

12-7. 한눈에 비교해보기

 

헷갈리기 쉬운 개념들을 간단히 표로 정리하면 다음과 같습니다.

구분 핵심 역할 특징 주로 사용되는 곳
CPU 명령어 실행 연산의 중심 장치 PC, 서버, MCU 내부
MCU 하드웨어 제어 CPU, 메모리, GPIO, ADC, PWM
등이 통합
가전, 센서, 모터 제어, 전원 제어
MPU 고성능 처리 외부 메모리와 운영체제 사용이 많음 리눅스 보드, 디스플레이 장치,
고급 임베디드
DSP 디지털 신호 처리 반복 수치 연산, 필터, 제어 연산에 강함 오디오, 통신, 모터 제어, 전력전자
FPGA 디지털 회로 구성 병렬 처리와 고속 로직 구현에 강함 고속 통신, 영상 처리, 특수 로직
SoC 시스템 통합 여러 기능을 하나의 칩에 통합 스마트폰, 고성능 임베디드
ASIC 전용 회로 특정 기능에 최적화, 수정 어려움 대량 생산 전용 칩, 전용 제어 IC

 

 

이 표에서 가장 중요한 기준은 무엇을 중심으로 설계된 부품인가입니다.

 

MCU는 하드웨어 제어 중심입니다.
MPU는 고성능 애플리케이션 처리 중심입니다.
DSP는 빠른 신호 연산 중심입니다.
FPGA는 병렬 디지털 회로 구현 중심입니다.
ASIC은 특정 목적에 맞춘 전용 회로 중심입니다.

 

MCU와 헷갈리기 쉬운 개념 비교

 

 

12-8. 그래서 MCU를 어떻게 이해하면 좋을까?

 

MCU를 가장 쉽게 이해하는 방법은 다음 한 문장입니다.

 

MCU는 펌웨어를 실행해서 실제 회로를 제어하는 작은 컴퓨터입니다.

 

CPU처럼 명령어를 실행하지만, CPU만 있는 것은 아닙니다.

 

MPU처럼 프로그램을 실행하지만, 복잡한 운영체제보다 실시간 제어에 더 초점이 있습니다.

 

DSP처럼 빠른 계산을 할 수도 있지만, 핵심은 계산만이 아니라 ADC, PWM, GPIO 같은 하드웨어 제어 기능입니다.

 

FPGA처럼 디지털 동작을 만들 수 있지만, 회로를 직접 구성하는 방식이 아니라 펌웨어를 순서대로 실행하는 방식입니다.

 

SoC처럼 여러 기능이 하나의 칩에 들어 있지만, MCU는 주로 작은 제어 시스템에 적합합니다.

 

즉, MCU의 핵심은 제어입니다.

 

센서 값을 읽고,
조건을 판단하고,
출력을 제어하고,
필요하면 통신하고,
이상 상태에서는 보호 동작을 수행합니다.

 

그래서 전자공학에서 MCU를 공부한다는 것은 단순히 코딩을 배우는 것이 아닙니다.

 

회로의 입력과 출력을 어떻게 읽고 제어할 것인지 배우는 것에 가깝습니다. 😊

 


13. 전력전자 관점에서 MCU를 보면

 

전력전자에서는 전압과 전류를 원하는 형태로 변환하는 것이 중요합니다.

 

하지만 실제 전력변환 회로는 스위칭 소자를 단순히 연결한다고 해서 자동으로 동작하지 않습니다.

 

Buck Converter를 생각해보겠습니다.

 

Buck Converter에는 MOSFET, 다이오드 또는 동기정류 MOSFET, 인덕터, 커패시터가 필요합니다.

 

하지만 이 부품들만 연결한다고 원하는 출력 전압이 안정적으로 나오는 것은 아닙니다.

 

MOSFET을 어떤 주파수로 켤지,
듀티를 얼마로 줄지,
출력 전압이 변할 때 어떻게 보정할지,
과전류가 발생하면 어떻게 차단할지를 결정해야 합니다.

 

이때 MCU가 사용될 수 있습니다.

 

MCU는 출력 전압을 ADC로 읽고, 목표 전압과 비교한 뒤, PWM 듀티를 조절합니다.

 

즉, 전력회로가 에너지가 흐르는 길이라면 MCU는 그 길을 언제 얼마나 열고 닫을지 결정하는 제어 장치라고 볼 수 있습니다.

 

인버터도 마찬가지입니다.

 

3상 인버터에서는 U, V, W상에 대한 PWM 신호가 필요합니다.

 

MCU는 전류 센서 값, DC Link 전압, 위치 정보, 속도 명령 등을 읽고, 제어 알고리즘을 계산한 뒤, 3상 PWM 신호를 출력합니다.

 

간단한 흐름은 다음과 같습니다.

전류 센서 측정
  ↓
위치 또는 속도 정보 확인
  ↓
제어 알고리즘 계산
  ↓
PWM 듀티 계산
  ↓
3상 PWM 출력
  ↓
Fault 조건 감시

 

이 관점에서 보면 MCU는 단순한 보조 부품이 아닙니다.

 

전력전자 시스템에서 MCU는 제어 성능, 보호 동작, 안정성, 응답성을 결정하는 핵심 부품 중 하나입니다. ⚡

 

전력전자 제어에서 MCU의 역할


14. MCU를 볼 때 중요한 스펙

 

MCU를 선택하거나 공부할 때는 단순히 “몇 bit MCU인가?”만 보면 부족합니다.

 

실제 제어 시스템에서는 어떤 기능이 필요한지에 따라 봐야 할 항목이 달라집니다.

 

대표적으로 다음과 같은 스펙을 확인합니다.

항목 확인 내용
동작 전압 3.3V인지, 5V인지, 사용 회로와 맞는지
CPU 성능 클럭 주파수, 연산 성능이 충분한지
Flash 용량 펌웨어 코드가 들어갈 만큼 충분한지
RAM 용량 변수, 버퍼, 제어 연산에 충분한지
GPIO 개수 필요한 입출력 핀 수가 충분한지
ADC 채널 수 측정해야 할 아날로그 신호 수가 충분한지
ADC 해상도 10bit, 12bit 등 측정 정밀도가 충분한지
PWM 채널 수 필요한 PWM 출력 수가 충분한지
Timer 기능 제어 주기, PWM, 캡처 기능이 충분한지
통신 기능 UART, I2C, SPI, CAN 등
Interrupt 기능 외부 이벤트나 보호 신호 처리가 가능한지
동작 온도 제품 사용 환경에 적합한지
패키지 PCB 설계와 생산에 적합한지

 

 

예를 들어 단순 LED 제어라면 높은 성능의 MCU가 필요하지 않을 수 있습니다.

 

하지만 모터 제어나 인버터 제어처럼 빠른 주기로 ADC를 읽고, 제어 알고리즘을 계산하고, PWM을 갱신해야 하는 시스템에서는 MCU 성능과 주변장치 구성이 매우 중요합니다.

 

특히 전력전자 제어에서는 다음 항목을 더 유심히 보는 것이 좋습니다.

  • PWM 해상도
  • PWM Dead Time 설정 가능 여부
  • ADC 샘플링 속도
  • ADC Trigger 기능
  • Timer와 ADC의 연동 기능
  • 과전류 Fault 입력 기능
  • Interrupt 응답 속도
  • 연산 성능
  • 통신 기능

MCU는 단순히 코드가 돌아가는 칩이 아니라, 실제 제어 성능과 연결되는 부품입니다.

 

그래서 MCU 스펙을 볼 때는 **“이 MCU로 내가 원하는 제어 타이밍을 만들 수 있는가?”**라는 관점이 중요합니다. 🔍

 


15. MCU를 회로와 함께 봐야 하는 이유

 

MCU는 데이터시트만 보고 이해하기 어렵습니다.

 

왜냐하면 MCU는 항상 외부 회로와 연결되어 동작하기 때문입니다.

 

예를 들어 MCU의 GPIO 출력 핀 하나를 생각해보겠습니다.

 

펌웨어에서는 단순히 다음과 같이 쓸 수 있습니다.

led = ON;

 

하지만 실제 회로에서는 여러 가지를 확인해야 합니다.

  • GPIO 출력 전압은 몇 V인가?
  • LED 전류 제한 저항은 적절한가?
  • GPIO가 직접 구동할 수 있는 전류인가?
  • 트랜지스터나 드라이버가 필요한가?
  • 초기 상태에서 LED가 원치 않게 켜지지 않는가?

ADC 입력도 마찬가지입니다.

 

펌웨어에서는 단순히 다음과 같이 쓸 수 있습니다.

adc_value = read_adc();

 

하지만 회로 관점에서는 다음을 봐야 합니다.

  • ADC 입력 전압 범위 안에 들어오는가?
  • 분압 저항 값은 적절한가?
  • 입력 임피던스가 너무 높지는 않은가?
  • RC 필터가 필요한가?
  • 노이즈가 측정값에 영향을 주지는 않는가?
  • 과전압 보호가 필요한가?

PWM 출력도 마찬가지입니다.

 

펌웨어에서는 단순히 듀티를 설정하면 되지만, 실제 회로에서는 게이트 드라이버, MOSFET, 데드타임, 스위칭 손실, EMI, 보호 회로까지 함께 봐야 합니다.

 

그래서 MCU를 공부할 때는 코드만 보면 부족합니다.

 

코드가 실제 핀에서 어떤 전압과 타이밍으로 나타나는지,
그 신호가 외부 회로에서 어떤 전류와 동작으로 이어지는지를 함께 봐야 합니다.

 

이것이 MCU와 펌웨어를 전자공학 관점에서 공부할 때 가장 중요한 부분이라고 생각합니다.

 


16. 정리

 

MCU는 펌웨어가 실행되는 작은 제어용 컴퓨터입니다.

 

회로 안에서 입력을 읽고, 조건을 판단하고, 출력을 제어하는 중심 역할을 합니다.

 

이번 글의 핵심을 정리하면 다음과 같습니다.

  • MCU는 Micro Controller Unit의 약자입니다.
  • MCU는 작은 제어용 컴퓨터라고 볼 수 있습니다.
  • 펌웨어는 MCU 안에서 실행되는 제어 프로그램입니다.
  • MCU 안에는 CPU, Flash Memory, RAM, GPIO, ADC, Timer, PWM, 통신 기능 등이 들어 있습니다.
  • GPIO는 MCU 핀을 입력 또는 출력으로 사용하는 기능입니다.
  • ADC는 아날로그 전압을 디지털 값으로 변환하는 기능입니다.
  • PWM은 빠른 ON/OFF를 통해 평균 전압이나 전력을 제어하는 기능입니다.
  • Timer는 MCU의 시간 기준을 만드는 기능입니다.
  • Interrupt는 중요한 이벤트를 즉시 처리하게 해주는 기능입니다.
  • MCU는 단순한 코드 실행 장치가 아니라 실제 회로를 제어하는 중심 부품입니다.
  • 전력전자와 인버터 제어에서는 MCU의 ADC, PWM, Timer, Interrupt 기능이 특히 중요합니다.

또한 MCU와 비슷해 보이는 CPU, MPU, DSP, FPGA, SoC 같은 개념들도 함께 구분해두면 좋습니다.

 

CPU는 명령어를 실행하는 연산 장치이고,
MPU는 운영체제와 고성능 처리를 위한 프로세서에 가깝고,
DSP는 빠른 디지털 신호 처리와 반복 연산에 특화된 프로세서입니다.
FPGA는 펌웨어를 실행하는 장치라기보다 디지털 회로를 직접 구성하는 장치에 가깝습니다.

 

반면 MCU는 펌웨어를 실행하면서 GPIO, ADC, PWM, Timer 같은 기능을 이용해 실제 회로를 제어하는 장치입니다.

 

결국 MCU는 하드웨어와 펌웨어를 연결하는 핵심 장치입니다.

 

하드웨어는 전압과 전류가 실제로 흐르는 길을 만들고,
펌웨어는 그 길을 어떻게 제어할지 결정합니다.
그리고 MCU는 그 펌웨어를 실행해서 실제 회로 신호로 바꿔줍니다.

 

그래서 MCU를 이해할 때 가장 중요한 관점은 “얼마나 빠른가?”보다 “이 부품이 어떤 입력을 읽고, 어떤 출력을 제어할 수 있는가?”입니다.

 

이 관점으로 보면 MCU가 왜 펌웨어와 전자회로 사이에서 핵심 역할을 하는지 더 잘 이해할 수 있습니다. 🙂

 

앞으로는 GPIO, Pull-up/Pull-down, ADC, PWM, Timer, Interrupt 같은 개념을 하나씩 살펴보면서 MCU가 실제 회로와 어떻게 연결되는지 더 자세히 정리해보겠습니다.

 

글 읽어주셔서 감사합니다^^