임베디드 시스템

임베디드 시스템(embedded system)은 특정 장치나 제품 안에 포함되어 미리 정한 기능을 수행하도록 설계된 컴퓨팅 시스템이다. 범용 개인용 컴퓨터와 달리 센서 측정, 모터 제어, 통신, 사용자 인터페이스 또는 장치의 안전 동작처럼 특정 목적과 하드웨어 조건이 중심이다. 일반적으...

영문명Embedded system
분류컴퓨터 공학 · 임베디드 소프트웨어
핵심 특징특정 장치와 목적에 특화된 컴퓨팅 시스템
대표 하드웨어마이크로컨트롤러 · SoC · 센서 · 액추에이터
주요 소프트웨어펌웨어 · RTOS · 임베디드 Linux
개발 언어C (프로그래밍 언어) · C++ · Rust · 어셈블리어
실행 조건저전력 · 제한된 메모리 · 실시간 응답
입출력GPIO · I²C · SPI · UART · CAN
메모리SRAM · 플래시 · EEPROM · MMIO
빌드 방식크로스 컴파일 · 링커 스크립트 · 펌웨어 이미지
시험과 진단JTAG · SWD · 직렬 로그 · 시뮬레이터
안전·보안보안 부팅 · 펌웨어 서명 · 업데이트 · 기능 안전
활용 환경가전 · 자동차 · 산업 제어 · 의료기기 · 로봇
기술 자료Arm: 임베디드 시스템

임베디드 시스템(embedded system)은 특정 장치나 제품 안에 포함되어 미리 정한 기능을 수행하도록 설계된 컴퓨팅 시스템이다. 범용 개인용 컴퓨터와 달리 센서 측정, 모터 제어, 통신, 사용자 인터페이스 또는 장치의 안전 동작처럼 특정 목적과 하드웨어 조건이 중심이다. 일반적으로 마이크로컨트롤러, SoC, 메모리, 저장 매체와 입출력 회로를 결합하며 펌웨어나 실시간 운영체제가 실행된다. 그러나 모든 임베디드 시스템이 소형·저성능이거나 실시간 운영체제를 사용하는 것은 아니다.[1]

임베디드 시스템의 발전은 전자 제어 회로와 초기 마이크로프로세서의 등장, 산업 자동화 및 통신 장비의 디지털화와 연결된다. 마이크로컨트롤러가 보급되면서 작은 단일 칩으로 입력 신호를 읽고 제어 프로그램을 실행하는 일이 가능해졌고, 이후 저장 장치와 통신 기능이 발전하면서 자동차·가전·네트워크 장비에 더 복잡한 소프트웨어가 포함되었다. 스마트 기기와 사물인터넷(IoT)의 확산은 장치 내부의 임베디드 시스템이 네트워크로 연결되어 원격으로 데이터를 전송하고 업데이트를 받도록 발전하는 계기가 되었다.

임베디드 하드웨어는 특정 기능에 필요한 연산 성능과 전력, 크기 및 비용을 고려하여 설계한다. ARM, RISC-V 등 다양한 프로세서 아키텍처가 사용되며, 마이크로컨트롤러는 CPU와 플래시·SRAM, 타이머·직렬 통신 인터페이스를 하나의 칩에 통합할 수 있다. 센서와 액추에이터는 GPIO, I²C, SPI, UART, CAN 등의 인터페이스를 통해 연결되고, DMA와 인터럽트는 CPU가 모든 데이터 전송을 직접 반복하지 않도록 도울 수 있다.

소프트웨어는 운영체제 없이 초기화 코드와 무한 반복 루프로 동작하는 베어메탈 프로그램부터 FreeRTOS와 같은 실시간 운영체제, Linux 기반의 복잡한 사용자 공간에 이르기까지 다양한 방식으로 작성된다. C (프로그래밍 언어), C++, Rust와 어셈블리어가 하드웨어와 가까운 부분에 사용될 수 있으며, 컴파일러는 대상 CPU와 ABI, 메모리 배치에 맞는 코드를 생성해야 한다. 부트로더는 전원 인가 후 장치를 초기화하고 실행할 펌웨어나 운영체제 이미지를 적재한다.

실시간 제어가 필요한 시스템은 평균 응답 속도뿐 아니라 최악의 조건에서 입력을 처리해야 하는 시간 제한이 중요하다. 스케줄링과 인터럽트 처리, 메모리 할당 방식은 지연 시간의 예측 가능성에 영향을 주며 안전과 관련된 시스템에서는 단일 장애가 위험한 동작으로 이어지지 않도록 설계한다. 개발 과정에서는 JTAG·SWD 디버거, UART 로그, 하드웨어 시뮬레이터와 실제 보드 시험을 이용하고, 제품 종류에 따라 기능 안전과 신뢰성 표준을 준수해야 한다.

인터넷에 연결되는 임베디드 장치는 원격 공격과 펌웨어 변조의 위험도 고려해야 한다. 보안 부팅, 코드 서명, 암호화된 통신, 접근 제어와 안전한 OTA 업데이트는 유지보수에서 중요한 요소다. 임베디드 시스템은 제조 현장에서 수년 동안 작동할 수 있기 때문에 장기 지원·부품 공급과 장애 복구 계획이 필요하다. 로봇공학, 산업 자동화, 의료기기, 자동차, 네트워크 장비와 가전제품은 서로 다른 제약을 갖지만 하드웨어와 소프트웨어를 함께 설계한다는 특징을 공유한다.

역사

초기 전자 제어와 마이크로프로세서

사물인터넷과 현대 임베디드

하드웨어 구성

마이크로컨트롤러와 SoC

메모리와 저장 장치

센서와 입출력

소프트웨어 구조

베어메탈과 펌웨어

실시간 운영체제

임베디드 Linux

개발과 빌드

크로스 컴파일

부팅과 링킹

실시간 처리

디버깅과 검증

보안과 업데이트

응용 분야

관련 문서

  1. Arm: 임베디드 시스템의 정의와 구성 ↩