[IOT-002][입문] 마이크로컨트롤러와 싱글보드 컴퓨터 구분하기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[IOT-002][입문] 마이크로컨트롤러와 싱글보드 컴퓨터 구분하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 264회 작성일 26-08-30 05:35

본문

[이번 수업]

마이크로컨트롤러와 싱글보드 컴퓨터의 차이를 자원, 운영체제, 전력, 실시간 요구로 비교합니다. 실제 배선 없이 가상 프로젝트에 맞는 1차 후보를 Python으로 고릅니다.

[선수지식]

IOT-001과 OS-002를 먼저 읽고 Python 3를 준비하세요.

[학습목표]

1. 마이크로컨트롤러와 개발 보드, 싱글보드 컴퓨터를 구분한다.
2. 펌웨어·RTOS·일반 운영체제의 역할 차이를 설명한다.
3. 전력·부팅·마감시간·메모리·주변장치 요구로 후보를 좁힌다.

[핵심개념]

마이크로컨트롤러, 즉 MCU는 CPU 코어, 메모리, 타이머, GPIO와 통신 주변장치 등을 한 칩에 모은 제어용 컴퓨터입니다. MCU 개발 보드는 이 칩에 전원 회로, USB, 핀 등을 더해 실습하기 쉽게 만든 기판입니다. 제한된 RAM과 플래시에서 한 목적의 펌웨어를 직접 실행하거나 Zephyr 같은 RTOS를 사용할 수 있습니다.

싱글보드 컴퓨터, 즉 SBC는 프로세서, RAM, 저장장치 연결, 화면·USB·네트워크 같은 기능을 한 기판에 갖춘 범용 컴퓨터입니다.

실시간은 단순히 평균 속도가 빠르다는 뜻이 아니라 정해진 마감시간 안에 응답해야 한다는 뜻입니다.

배터리 센서처럼 긴 대기시간, 빠른 부팅, 일정한 핀 제어가 중요하면 MCU가 먼저 검토 대상입니다. 카메라 처리, 대형 화면, 데이터베이스, 풍부한 Linux 패키지가 필요하면 SBC가 유리할 수 있습니다. 두 장치를 함께 써 MCU가 시간 민감한 제어를 맡고 SBC가 UI·저장·네트워크를 맡는 구조도 흔합니다.

[따라하기]

board_choice.py에 다음을 저장하세요.

projects = {
    "battery_sensor": {
        "needs_full_linux": False,
        "hard_realtime": True,
        "long_battery_life": True,
        "camera_or_desktop_ui": False,
    },
    "camera_dashboard": {
        "needs_full_linux": True,
        "hard_realtime": False,
        "long_battery_life": False,
        "camera_or_desktop_ui": True,
    },
}

def choose(requirements):
    if requirements["needs_full_linux"] or requirements["camera_or_desktop_ui"]:
        return "single_board_computer"
    if requirements["hard_realtime"] or requirements["long_battery_life"]:
        return "microcontroller"
    return "prototype_both"

for name, requirements in projects.items():
    print(name, "->", choose(requirements))

Windows는 py board_choice.py, macOS·Linux는 python3 board_choice.py로 실행합니다. 예상 결과는 다음과 같습니다.

battery_sensor -> microcontroller
camera_dashboard -> single_board_computer

후보가 정해지면 실제 센서 주기, 최악 지연, 평균·최대 전류, 메모리 사용량, 부팅시간을 측정해야 합니다.

[흔한 실수]

첫째, MCU 보드를 작은 SBC라고 생각해 일반 Linux 프로그램을 그대로 실행하려 합니다. 둘째, SBC가 빠르므로 모든 실시간 제어에도 맞는다고 단정합니다. 셋째, 평균 전류만 보고 무선 송신 때의 최대 전류를 빼놓습니다. 넷째, GPIO 전압과 최대 전류를 확인하지 않습니다.

[보안 주의]

전원을 끄고 배선하며 핀 전압·전류와 극성을 데이터시트에서 확인하세요. LED에는 전류 제한 저항을 사용하고 모터·릴레이·상용전원을 GPIO에 직접 연결하지 않습니다. 펌웨어와 이미지에 Wi-Fi 비밀번호·API 키를 하드코딩하지 않고, 기본 비밀번호를 바꾸며 불필요한 네트워크 서비스를 끕니다. 업데이트의 출처와 무결성을 확인하고 복구 방법을 준비합니다.

[직접 해볼 과제]

전원 연결형 온도 수집 게이트웨이라는 세 번째 프로젝트를 추가하세요. Linux 패키지는 필요하지만 센서 읽기는 5ms 안에 끝나야 한다고 가정하고, SBC 단독·MCU 단독·두 장치 결합 중 무엇을 프로토타입할지 이유를 적으세요.

[확인문제]

1. MCU 칩과 MCU 개발 보드는 무엇이 다른가요?
2. 평균 속도가 빠른 것과 실시간 마감시간을 지키는 것은 어떻게 다른가요?
3. MCU와 SBC를 함께 사용할 때 역할을 어떻게 나눌 수 있나요?

[다음 학습]

002번 순환이 끝났습니다. 다음 글은 CORE-003 CPU·메모리·저장장치의 역할입니다. IoT 트랙에서는 IOT-003 C·C++·MicroPython 선택으로 이어집니다.

[공식 참고 자료]

Raspberry Pi Pico 데이터시트
https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf

Raspberry Pi 마이크로컨트롤러 문서
https://www.raspberrypi.com/documentation/microcontrollers/

Raspberry Pi 컴퓨터 문서
https://www.raspberrypi.com/documentation/computers/

Zephyr 소개
https://docs.zephyrproject.org/latest/introduction/index.html

Linux 실시간 이론
https://docs.kernel.org/core-api/real-time/theory.html

NIST IR 8259A IoT 보안 기준
https://csrc.nist.gov/pubs/ir/8259/a/final

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
1,964
어제
5,103
최대
16,772
전체
773,018
Copyright © 소유하신 도메인. All rights reserved.