임베디드 시스템
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
임베디드 시스템은 특정 기능을 수행하도록 설계된 컴퓨터 시스템으로, 아폴로 가이던스 컴퓨터와 미니트맨 미사일의 D-17 가이던스 컴퓨터와 같은 초기 사례를 거쳐 1980년대 이후 마이크로프로세서의 발달로 가전제품을 비롯한 다양한 분야에 널리 사용되고 있다. 이러한 시스템은 일반적으로 제한된 자원과 특정 목적에 맞는 하드웨어 및 소프트웨어 구성을 가지며, 펌웨어 형태로 내장된 소프트웨어는 오랜 기간 안정적으로 작동하도록 설계된다. 임베디드 시스템은 CPU 아키텍처, 시스템 온 칩(SoC) 기술, 다양한 주변 장치를 활용하며, 운영 체제, 개발 도구 및 디버깅 기술을 통해 개발된다. 응용 분야는 소비자 가전, 산업용 기기, 의료 기기, 자동차, 항공우주 등 광범위하며, 시스템의 신뢰성을 확보하기 위해 워치독 타이머, TCB 아키텍처, 하이퍼바이저, 코딩 규칙 등 다양한 기법이 활용된다.
더 읽어볼만한 페이지
- 컴퓨터 시스템 - 마이크로프로세서
마이크로프로세서는 CPU 기능을 단일 IC에 통합한 것으로, 무어의 법칙에 따라 성능이 향상되어 왔으며 다양한 아키텍처와 기술 발전을 거쳐 현재 광범위한 분야에서 사용된다. - 컴퓨터 시스템 - 아두이노
아두이노는 Atmel AVR 마이크로컨트롤러 기반의 오픈 소스 하드웨어 플랫폼으로, C 언어와 유사한 스케치를 통해 프로그래밍이 가능하며, 다양한 플러그인 쉴드를 이용해 기능을 확장할 수 있어 교육, 시제품 제작, IoT 개발 등에 활용된다. - 컴퓨터의 유형 - 데스크톱 컴퓨터
데스크톱 컴퓨터는 독립된 디스플레이, 키보드, 마우스 등을 연결하여 책상 위에 놓고 사용하는 개인용 컴퓨터로, 1970년대 후반 등장 이후 다양한 폼 팩터와 용도로 발전해왔으며, 노트북과 스마트 기기의 등장으로 성장세가 둔화되었으나 고성능을 요구하는 분야에서 중요한 위치를 차지하며 게이밍 데스크톱 시장의 성장과 함께 재조명받고 있다. - 컴퓨터의 유형 - 양자 컴퓨터
양자 컴퓨터는 양자역학적 현상을 이용하여 정보를 처리하는 컴퓨터로, 큐비트를 통해 0과 1을 동시에 표현하여 특정 연산에서 기존 컴퓨터보다 빠른 속도를 보이며 암호 해독, 신약 개발 등 다양한 분야에 혁신을 가져올 것으로 기대된다. - 임베디드 시스템 - 로봇공학
로봇공학은 기계적 구조, 전기적 부품, 소프트웨어로 이뤄진 로봇의 설계, 제작, 운용 및 응용에 관한 학문 분야로, 산업, 의료, 우주 탐사 등 다양한 분야에서 활용되며 인간-로봇 상호작용 및 로봇의 자율성 향상 연구가 진행 중이다. - 임베디드 시스템 - 허니웰
허니웰은 1885년 설립된 기업으로, 항공우주, 빌딩 자동화, 안전 및 생산성 솔루션, 성능 소재 및 기술 분야에서 사업을 영위하며, 군사 기술 개발 및 펜탁스 카메라 수입업체로 활동했고, 환경 문제 관련 비판을 받기도 한다.
임베디드 시스템 | |
---|---|
개요 | |
![]() | |
정의 | 특정 기능을 수행하도록 설계된 컴퓨터 시스템 |
특징 | 실시간 운영 제한된 자원 (메모리, 처리 능력) 특정 목적에 최적화 높은 신뢰성 낮은 전력 소비 |
구조 | |
하드웨어 | 마이크로프로세서 또는 마이크로컨트롤러 메모리 (RAM, ROM, 플래시 메모리) 입출력 인터페이스 센서 및 액추에이터 |
소프트웨어 | 실시간 운영 체제 (RTOS) 또는 임베디드 운영 체제 장치 드라이버 응용 프로그램 펌웨어 |
응용 분야 | |
산업 자동화 | 로봇 PLC (Programmable Logic Controller) HMI (Human Machine Interface) |
자동차 | ABS (Anti-lock Braking System) 에어백 제어 시스템 엔진 제어 시스템 내비게이션 시스템 첨단 운전자 보조 시스템 (ADAS) |
가전제품 | 세탁기 냉장고 전자레인지 스마트 TV 에어컨 |
의료기기 | 심박 조율기 인공호흡기 의료 영상 장비 |
통신 장비 | 라우터 스위치 휴대 전화 무선 통신 모듈 |
기타 | 항공우주 시스템 군사 시스템 스마트 카드 POS (Point of Sale) 시스템 게임 콘솔 IoT (사물 인터넷) 장치 |
개발 과정 | |
요구사항 분석 | 시스템의 기능 및 제약 사항 정의 |
설계 | 하드웨어 및 소프트웨어 아키텍처 설계 |
구현 | 하드웨어 제작 및 소프트웨어 코딩 |
테스트 및 디버깅 | 시스템 오류 검출 및 수정 |
배포 | 실제 시스템에 적용 및 운영 |
개발 도구 | |
컴파일러 | C, C++, Java 등 프로그래밍 언어를 기계어로 변환 |
디버거 | 프로그램 오류를 찾고 수정 |
에뮬레이터 및 시뮬레이터 | 하드웨어 없이 소프트웨어 테스트 |
통합 개발 환경 (IDE) | 코드 편집, 컴파일, 디버깅 등 통합 제공 |
프로그래밍 언어 | |
주로 사용되는 언어 | C C++ |
기타 사용 언어 | Java Python Assembly |
특징 및 고려 사항 | |
실시간성 | 예측 가능한 시간 내에 작업을 완료하는 능력 |
저전력 설계 | 배터리 수명 연장 및 에너지 효율성 고려 |
신뢰성 및 안전성 | 고장 없이 안정적으로 작동하는 능력 |
제한된 자원 | 메모리, 처리 능력 등 제약 고려 |
임베디드 운영체제 | 특정 하드웨어에 최적화된 운영체제 |
참고 자료 | |
관련 자료 | Micro controller.com – Embedded Systems supersite |
2. 역사
임베디드 시스템은 PID 제어처럼 주로 전기·전자 회로나 기계적인 기구의 조합으로 구현되던 장치 제어 방식을 대체하였다. 전용 컴퓨터 시스템과 소프트웨어를 통해 장치의 정확한 상태 감시, 판단, 복잡한 명령 조합, 기능 추가 및 변경을 용이하게 수행할 수 있게 되었다.
최근 마이크로프로세서의 가격 하락과 성능 향상으로 임베디드 시스템 도입이 확산되고 있다. 소프트웨어 변경만으로 기능을 추가하거나 변경할 수 있어, 전자 회로 변경을 최소화하고 비용을 절감할 수 있다는 장점 때문에 광범위한 제품에 탑재되고 있다. 임베디드 시스템 발달 이전에는 아날로그 회로, 프로그램 제어를 받지 않는 디지털 회로, 자동인형과 같은 기계적 기구 등 하드웨어로 장치를 제어했다. 그러나 새로운 기능을 추가하거나 변경하려면 회로나 기구 자체를 변경해야 해서 비용과 시간이 많이 소요되는 문제가 있었다.
2. 1. 초기 역사
최초의 현대적인 임베디드 시스템 중 하나는 MIT 인스트루멘테이션 연구소의 찰스 스타크 드레이퍼가 개발한 아폴로 가이던스 컴퓨터였다. 당시에는 크기와 무게를 줄이기 위해 새로 개발된 모놀리딕 집적 회로를 도입했기 때문에 아폴로 프로젝트에서 가장 위험한 요소로 여겨지기도 했다.[5] 1961년에는 미니트맨 미사일용 오토네틱스 D-17 가이던스 컴퓨터가 대량 생산된 초기 임베디드 시스템으로 출시되었다. 1966년 미니트맨 II가 생산을 시작했을 때, D-17은 최초의 고용량 이용 집적 회로였던 새로운 컴퓨터로 교체되었다.[6]2. 2. 발전 과정
MOS 집적 회로는 집적 회로 칩으로 MOSFET(금속-산화물-반도체 전계 효과 트랜지스터)로 제작되었으며 1960년대 초에 개발되었다. 1964년까지 MOS 칩은 양극성 칩보다 더 높은 트랜지스터 밀도와 더 낮은 제조 비용에 도달했다. MOS 칩은 무어의 법칙에 의해 예측된 비율로 복잡성이 더욱 증가하여 1960년대 후반에는 단일 MOS 칩에 수백 개의 트랜지스터가 있는 대규모 집적 회로(LSI)로 이어졌다. 컴퓨팅에 MOS LSI 칩을 적용한 것이 최초의 마이크로프로세서의 기반이 되었는데, 엔지니어들은 완전한 컴퓨터 프로세서 시스템을 여러 개의 MOS LSI 칩에 포함할 수 있다는 것을 인식하기 시작했다.[5]최초의 멀티칩 마이크로프로세서인 1969년의 Four-Phase Systems AL1과 1970년의 Garrett AiResearch MP944는 여러 개의 MOS LSI 칩으로 개발되었다. 최초의 단일 칩 마이크로프로세서는 1971년에 출시된 Intel 4004였다. 이는 Federico Faggin이 자신의 실리콘 게이트 MOS 기술을 사용하여 인텔 엔지니어 Marcian Hoff와 Stan Mazor, 그리고 Busicom 엔지니어 Masatoshi Shima와 함께 개발했다.[6]
1980년대 이후 마이크로프로세서의 발달로 컴퓨터를 이용한 제어 방식을 도입함으로써 전자 기기의 회로를 변경하지 않고 소프트웨어 부분만 변경하여 기능을 추가할 수 있게 되었고, 기능 추가에 필요한 비용이 절감되었다. 이 때문에 대부분의 가전제품에 임베디드 시스템이 탑재하게 되었고, 그 결과 제품의 부가가치가 되는 새로운 기능을 비교적 쉽게 추가할 수 있게 되어 고기능화·다기능화가 진행되었다.
3. 특징
임베디드 시스템은 특정 임무를 수행하도록 설계되어, 범용 컴퓨터와 비교했을 때 다음과 같은 특징을 가진다.
- 제한된 자원: 임베디드 시스템은 보통 저가의 부품을 사용하여 제한된 기능만을 수행하도록 설계된다. 따라서 하드웨어가 단순하며, (상대적으로) 느린 프로세서와 작은 크기의 메모리를 탑재하여 비용을 절감한다.[9] 예를 들어, 주변 장치 제어에는 개인용 컴퓨터에서 쓰이는 주변장치 인터페이스보다 1024배 정도 느린 직렬 버스 방식을 사용하기도 한다.
- 실시간 제어: 많은 임베디드 시스템은 실시간 제약 조건을 가지고 동작한다. 특히 기계 제어를 하는 경우 실시간 제어가 중요해진다.[22]
- 펌웨어: 임베디드 시스템 상의 프로그램은 펌웨어라고 불리며, 롬이나 플래시 메모리에 내장된다.[9] 펌웨어는 오랜 기간 오류 없이 안정적으로 작동하도록 설계되며, 개인용 컴퓨터의 소프트웨어보다 더 신중한 개발 및 테스트 과정을 거친다.
- 안정성: 임베디드 시스템은 오랜 기간 동안 오류 없이 안정적으로 작동해야 한다. 따라서 기계적 손상에 취약한 부품 대신 플래시 메모리와 같은 안정적인 칩을 사용한다.[9] 또한, 스스로 응급 복구를 할 수 있도록 왓치독 타이머와 같은 전자 부품을 사용하기도 한다.
- 소형화, 경량화, 저전력: 임베디드 시스템은 특정 기능을 위해 기기 내부에 "내장"되기 때문에, 소형, 경량, 저전력으로 설계되는 경우가 많다.
임베디드 시스템은 대량 생산되어 규모의 경제 효과를 얻기도 한다.[9] 대량 생산되는 제품의 경우, 비용이 매우 중요하므로 최소한의 메모리와 저렴한 CPU를 사용한다. 소규모 시스템에서는 1칩 마이컴을 사용하기도 한다.
4. 하드웨어
하드웨어 구성은 범용 구성, 독자적 구성, 그리고 두 가지를 조합한 구성이 있다. 하드웨어와 소프트웨어의 기능을 서로 고려하여 설계하는 '''협조 설계'''(co-design영어)라는 설계 기법도 있다.
임베디드 시스템에는 ARM, MIPS, 콜드파이어/68K, PowerPC, x86, PIC 마이크로컨트롤러, 8051 등 다양한 CPU 아키텍처가 사용된다. 임베디드 시스템에 사용되는 프로세서는 일반적인 범용 프로세서와 비교했을 때 저전력 소비, 소형 크기, 견고한 작동 범위, 그리고 단위당 저렴한 비용이 특징이지만, 제한된 처리 자원이라는 단점을 감수해야 한다.
시스템 온 칩(SoC)은 특정 응용 분야에 적합한 IC들을 하나의 CPU 칩에 통합하여 별도의 주변 장치용 칩 없이도 시스템을 구성할 수 있게 한다. SoC는 주문형 집적 회로(ASIC) 또는 재구성이 가능한 프로그래머블 게이트 어레이(FPGA)를 사용하여 구현할 수 있다.
임베디드 시스템은 외부 세계와 통신하기 위해 다음과 같은 주변 장치(Peripheral)를 사용한다.
- 직렬 통신 인터페이스: RS-232, RS-422, RS-485 등
- 동기식 직렬 인터페이스: I2C, SPI, SSC, ESSI(Enhanced Synchronous Serial Interface)
- USB
- 미디어 카드(SD 카드, 콤팩트플래시 등)
- 네트워크 인터페이스 컨트롤러: 이더넷, WiFi 등
- 필드버스: CAN 버스, LIN-Bus(Local Interconnect Network), PROFIBUS 등
- 타이머: 위상 고정 루프(PLL), 프로그래머블 간격 타이머
- GPIO(General Purpose Input/Output)
- 아날로그-디지털 변환기(ADC) 및 디지털-아날로그 변환기(DAC)
- 디버깅: JTAG, 시스템 내 프로그래밍(ISP), BDM(Background Debug Mode) 포트, BITP, DB9 포트
4. 1. CPU 아키텍처
임베디드 시스템에는 ARM, MIPS, 콜드파이어/68K, PowerPC, x86, PIC 마이크로컨트롤러, 8051 등 다양한 CPU 아키텍처가 사용된다. 이는 개인용 컴퓨터 시장과는 다른 점이다.[25]2006년을 기준으로, CPU 아키텍처에서는 ARM 코어가 가장 많이 사용되었다. 이 밖에도 400여 개 이상의 임베디드 시스템에 쓰이는 코어가 있다. 인텔 8051, PIC 마이크로컨트롤러, AVR(ARM 코어 사용) 등 8비트 CPU가 시장에서 가장 많이 사용되는 종류이다.[25] ARM은 보통 8비트에 비해 고성능을 요구하는 곳에 많이 사용되며, 리눅스 커널을 포팅하여 많이 사용한다. OS를 탑재하기 위해 ARM 칩 외부에 RAM이나 FLASH를 PCB 상에 장착한다. 리눅스 개발에 필요한 요소와 ARM을 결합하여 소프트웨어 및 하드웨어가 개발되는 경우가 일반적이다.[25]
ARM 코어, FLASH, RAM을 한 칩에 만들면 리눅스 포팅이 힘들어져 OS 없이 전체 시스템을 C언어 등으로 코딩하여 시스템을 구성한다. 이러한 ARM은 8비트 MCU와 OS를 갖는 임베디드의 중간 성능과 기능을 발휘한다.[25]
임베디드 시스템에 사용되는 프로세서는 일반적인 범용 프로세서와 비교했을 때 저전력 소비, 소형 크기, 견고한 작동 범위, 그리고 단위당 저렴한 비용이 특징이다. 하지만 이러한 장점은 제한된 처리 자원이라는 단점을 감수해야 얻을 수 있다.[25]
주요 임베디드 시스템용 CPU는 다음과 같다.[27]
CPU 종류 |
---|
인텔 8049 |
인텔 8051 |
인텔 8085 |
Z80 |
모토로라 68000 |
V30, V850 |
PIC 마이크로컨트롤러 |
애트멜 AVR |
H8/300 |
슈퍼H |
파워PC |
르네사스 M16C |
르네사스 R8C/Tiny |
MIPS 아키텍처 |
ARM 아키텍처 |
4. 2. 시스템 온 칩 (SoC)
임베디드 시스템의 주요 흐름 중 하나는 특정 응용 분야에 적합한 IC들을 하나의 CPU 칩에 통합하는 시스템 온 칩(SoC, System On Chip) 기술이다. 이를 통해 별도의 주변 장치용 칩 없이도 시스템을 구성할 수 있다.[25] SoC는 프로세서, 곱셈기, 캐시, 다양한 유형의 메모리, 유/무선 통신 인터페이스 등을 단일 칩에 포함하며,[25] 그래픽 처리 장치(GPU)와 DSP도 종종 포함된다.[25]SoC는 주문형 집적 회로(ASIC) 또는 재구성이 가능한 프로그래머블 게이트 어레이(FPGA)를 사용하여 구현할 수 있다.[25] 휴대 전화, 스마트폰과 같이 대량 생산되는 임베디드 시스템에는 주로 ASIC 구현이 사용되며,[25] 항공 전자 장비처럼 특수한 신호 처리, 인터페이스, 안정성이 요구되는 경우에는 ASIC 또는 FPGA 구현이 사용될 수 있다.[25]
4. 3. 주변 장치
임베디드 시스템은 외부 세계와 통신하기 위해 다음과 같은 주변 장치(Peripheral)를 사용한다.- 직렬 통신 인터페이스(SCI): RS-232, RS-422, RS-485 등
- 동기식 직렬 인터페이스: I2C, SPI, SSC, ESSI(Enhanced Synchronous Serial Interface)
- USB
- 미디어 카드(SD 카드, 콤팩트플래시 등)
- 네트워크 인터페이스 컨트롤러: 이더넷, WiFi 등
- 필드버스: CAN 버스, LIN-Bus(Local Interconnect Network), PROFIBUS 등
- 타이머: 위상 고정 루프(PLL), 프로그래머블 간격 타이머
- GPIO(General Purpose Input/Output)
- 아날로그-디지털 변환기(ADC) 및 디지털-아날로그 변환기(DAC)
- 디버깅: JTAG, 시스템 내 프로그래밍(ISP), BDM(Background Debug Mode) 포트, BITP, DB9 포트
5. 소프트웨어
임베디드 시스템의 소프트웨어는 주로 C언어로 작성된다. 32비트 이상의 마이컴과 같이 하드웨어 자원이 풍부한 환경에서는 C++이나 자바가 사용되기도 하지만, 4비트 마이컴처럼 자원이 부족하거나 고속 처리가 필요한 경우에는 어셈블리어가 필수적이다.[28]
최근에는 UML과 같은 객체 지향적 방법이 개발에 도입되지만, 임베디드 시스템 개발에서는 신뢰성이 보장된 모듈로 프로그램을 구성하는 것이 일반적이다. 디버깅은 ICE라는 장비를 사용하여 PC를 CPU에 연결하여 원격으로 수행하는데, 최근에는 ICE 대신 JTAG 에뮬레이터나 ROM 에뮬레이터 등의 에뮬레이터 또는 PC에서 CPU 기능을 시뮬레이션하는 시뮬레이터도 사용된다.
과거에는 소프트웨어가 EPROM에 기록된 상태로 출하되어 제품 결함이 발견되면 제조사가 제품을 회수하고 교환해야 했기 때문에 많은 비용이 소요되었다. 그러나 최근에는 플래시 메모리를 채용하여 사용자가 직접 재기록할 수 있게 되면서 제조사의 부담이 경감되었다. 하지만 시스템 분석의 복잡성으로 인해 결함 발견부터 수정까지 상당한 시간이 걸리는 경우가 있어 시장에 큰 영향을 미치는 것은 변함없다. 수정 소프트웨어는 이동식 저장 매체를 통해 설치하거나, 방송 전파를 통해 배포하거나, 인터넷을 통해 자동으로 업데이트하는 방식으로 제공된다.
PC 본체의 BIOS는 마더보드 기종별로 내장된 임베디드 시스템 소프트웨어이며, 주로 마더보드 상의 칩셋에 대한 펌웨어이다. BIOS 설정 항목은 대용량 콘덴서나 버튼 전지 등(CMOS 백업 전지)으로 백업된 ROM에 저장된다.
5. 1. 운영 체제 (OS)
임베디드 시스템은 운영 체제를 사용하지 않는 경우도 많지만, 사용하는 경우에는 윈도우 CE나 리눅스 등 임베디드 환경에 맞춰진 운영 체제나 RTOS를 사용한다. 이는 임베디드 시스템이 CPU나 메모리 자원 등에 한계가 있어 일반 PC용 운영 체제를 사용할 수 없기 때문이다.단일 커널(monolithic kernel)은 임베디드 환경에 맞게 조정된 크고 정교한 기능을 갖춘 커널이다. 리눅스(Linux)나 마이크로소프트 윈도우(Microsoft Windows)와 같은 데스크톱 운영 체제와 유사한 환경을 제공하여 개발 생산성을 높이지만, 많은 하드웨어 자원을 필요로 하고 비싸며, 커널의 복잡성 때문에 예측 가능성과 안정성이 떨어질 수 있다는 단점이 있다.
임베디드 단일 커널의 일반적인 예로는 임베디드 리눅스(embedded Linux), VXWorks, 윈도우 CE(Windows CE)가 있다. 하드웨어 비용 증가에도 불구하고, 이러한 유형의 임베디드 시스템은 무선 공유기(wireless router)와 GPS 내비게이션 시스템과 같이 성능이 더 강력한 임베디드 장치에서 인기를 얻고 있다.
임베디드 시스템에 사용되는 OS로는 일본에서 μITRON 사양 OS가 많이 채택된다. VxWorks, OS-9, QNX 등도 널리 사용되고 있으며, 최근에는 NetBSD, OpenBSD, FreeBSD 등의 Unix 계열 OS도 주목받고 있다.
대부분의 임베디드 시스템에서는 사용자가 프로그램을 교체하거나 업데이트하는 것을 상정하지 않으므로, 범용 컴퓨터보다 자유롭게 운영 체제와 시스템 구성을 선택할 수 있다.
최근에는 PC 기반 하드웨어의 저가격화에 따라 PC 기반 하드웨어를 사용하고, OS도 임베디드용으로 사용자 정의한 Windows CE나 Linux 등도 채택되고 있다. 윈도우 PC용 응용 프로그램이나 장치 드라이버 등을 활용할 수 있을 뿐만 아니라, 윈도우 PC 감각으로 개발, 사용, 유지보수를 할 수 있고, 서비스 수준 협약을 체결함으로써 제조물책임법 대책도 가능하기 때문에, Windows Embedded는 항공권 체크인 시스템부터 편의점 POS 레지, 심지어 은행 ATM까지 폭넓게 채택되고 있다.
5. 2. 개발 도구 및 디버깅
임베디드 시스템 개발에는 일반적인 소프트웨어 개발 도구(컴파일러, 어셈블러, 디버거 등) 외에 특수한 도구들이 사용된다.리눅스 기반 개발 환경에서는 GNU gcc가 주로 사용되며, 목적 CPU에 맞게 크로스 컴파일러를 생성할 수 있다. 개발 환경으로는 이클립스 (IDE)나 make 방식이 사용된다. 윈도우 CE 환경에서는 비주얼 스튜디오가 사용되며, 커널과 응용 프로그램 개발이 통합되어 있다.
디버깅을 위해 인서킷 에뮬레이터(ICE)나 JTAG 디버거와 같은 특수한 도구들이 사용된다. 이러한 도구들은 마이크로프로세서의 동작을 제어하고 상태를 확인하는 데 사용된다.
소프트웨어 개발 도구에는 다음이 포함된다.
- 회로 내 디버거 또는 에뮬레이터.[11]
- 프로그램에 체크섬 또는 CRC를 추가하는 유틸리티.[12]
- 디지털 신호 처리를 위한 수치 계산 노트북.
- 시스템 레벨 모델링 및 시뮬레이션 도구.
- 모델 기반 개발 도구.
- 특수 하드웨어를 최적화하기 위한 사용자 정의 컴파일러 및 링커.
- 자체 특수 언어 또는 설계 도구, 혹은 포스나 베이직과 같은 기존 언어의 확장.
- RTOS 또는 임베디드 운영 체제.
- 도구를 모델링하고 코드를 생성.
소프트웨어 도구는 임베디드 시장 전문 소프트웨어 회사, GNU 소프트웨어 개발 도구, 또는 개인용 컴퓨터용 개발 도구 등에서 제공될 수 있다.
임베디드 시스템 디버깅은 여러 수준에서 수행될 수 있다.
6. 응용 분야
임베디드 시스템은 소비자, 산업, 자동차, 가전제품, 의료, 통신, 상업, 항공우주 및 군사 분야 등 매우 다양한 분야에서 활용된다.[7]
- 통신 시스템: 네트워크의 전화 교환기에서 최종 사용자의 휴대전화에 이르기까지 수많은 임베디드 시스템이 사용된다. 컴퓨터 네트워킹에는 데이터를 라우팅하는 전용 라우터와 네트워크 브리지가 활용된다.
- 운송 시스템: 항공기부터 자동차까지 점점 더 많은 임베디드 시스템을 사용하고 있다. 새로운 비행기에는 관성 항법 시스템 및 GPS 수신기와 같은 고급 항공 전자 장비가 포함되어 있으며, 다양한 전기 모터는 전자 모터 컨트롤러를 사용한다.
- 항공 우주 및 방위 산업: 안전 중요 시스템에 사용된다. 유선 또는 무선 네트워크에 연결되지 않는 한, 해킹으로부터 격리될 수 있으므로 더 안전하다. 화재 안전을 위해 고온에서도 작동할 수 있도록 설계된다.
- 모트 (무선 센서): 무선 센서 네트워크는 고급 집적 회로(IC) 설계를 통해 소형화된 무선 하위 시스템과 정교한 센서를 결합하여, 물리적 세계를 측정하고 모니터링 및 제어 시스템을 통해 정보를 활용할 수 있게 한다.

전자 제어가 필요한 제품에 널리 사용되는 임베디드 시스템의 활용 예시는 다음과 같다.
- 가정용 전기 기계 기구: 백색 가전(전기밥솥, 세탁기, 에어컨, 로봇 청소기 등), 통신 기기(휴대전화, 모뎀, 라우터 등), 디지털 기기(디지털카메라, 캠코더, PC용 주변기기(프린터, 스캐너 등), 오디오·비주얼 기기(텔레비전, 하드디스크 레코더 등), 가정용 보안 기기, 가정용 게임기 등
- 일반 산업용 기기 및 기계 설비류: 사무 기기 (복사기, 프린터 등), 통신 기기 (법인용 휴대전화, 팩시밀리, 모뎀, 라우터 등), 업무용 공조 설비, 생산용 기기·설비, 판매용 기기 (자판기, 자동매표기, POS 레지스터), 현금자동입출금기(ATM), 광고·전시용 장치, 경비·감시용 장치, 오락 산업용 기기, 교통 신호등, 엘리베이터 부분 제어 등
- 탈것 및 탑재 기기: 자동차, 오토바이의 엔진 제어 장치, 내비게이션 시스템, 철도 차량의 블록 제어, 선박, 항공기, 우주선, 인공위성 등
- 의료 기기: 바이탈 사인용 기기 (자동혈압계, 심전계 등), 제세동기, 임상 검사용 기기·분석 장치 등
- 재해 대책용 기기: 구조 로봇, 원자력 발전소의 사고 처리용/폐로용 로봇 등
- 기타: 경기용 로봇 (예: 로봇 경진대회) 등
6. 1. 가전제품
스마트폰, TV, 냉장고, 세탁기, 에어컨 등 가전제품에는 유연성, 효율성, 기능성을 제공하는 임베디드 시스템이 포함되어 있다.[7] 고급 냉난방 공조 시스템(HVAC)은 네트워크에 연결된 온도 조절기를 사용하여 시간대와 계절에 따라 변할 수 있는 온도를 보다 정확하고 효율적으로 제어한다. 홈 오토메이션은 유선 및 무선 네트워킹을 사용하여 조명, 기후, 보안, 시청각, 감시 등을 제어하며, 이 모든 작업에는 감지 및 제어를 위한 임베디드 장치가 사용된다.[7]6. 2. 산업용 기기
산업 현장에서는 다양한 임베디드 시스템이 활용된다. 산업용 로봇은 제조 공정 자동화를, 공작 기계는 정밀 부품 가공을, 측정 기기는 제품 품질 검사 및 관리를 담당한다.[7] 이들은 생산 효율성과 품질 향상에 기여한다.종류 | 설명 |
---|---|
생산용 기기·설비 | 산업용 로봇, 공작 기계, 측정 기기 등 |
판매용 기기 | 자판기, 자동매표기, POS 레지스터 |
기타 | 현금자동입출금기(ATM), 광고·전시용 장치, 경비·감시용 장치, 오락 산업용 기기, 교통 신호등, 엘리베이터 제어 |
6. 3. 의료 기기
의료 장비는 모니터링과 다양한 의료 영상(양전자 방출 단층 촬영(PET), 단일 광자 방출 컴퓨터 단층 촬영(SPECT), 컴퓨터 단층 촬영(CT), 자기 공명 영상(MRI))을 이용한 비침습적 내부 검사에 임베디드 시스템을 사용한다.[8] 의료 장비 내의 임베디드 시스템은 종종 산업용 컴퓨터로 구동된다.[8]6. 4. 자동차
자동차는 효율성을 극대화하고 오염을 줄이기 위해 다양한 임베디드 시스템을 사용한다. 엔진 제어 장치(ECU)는 연료 분사 장치를 포함한 엔진 관리를 담당하며, 자동 변속기, 에어컨 등의 제어에도 사용된다. 잠금 방지 브레이크 시스템(ABS), 전자식 안정성 제어 장치(ESC/ESP), 구동력 제어 장치(TCS), 자동 4륜 구동과 같은 자동차 안전 시스템도 임베디드 시스템을 활용한다. 내비게이션 시스템도 자동차에 탑재되는 대표적인 임베디드 시스템 중 하나이다.6. 5. 항공우주
새로운 비행기에는 상당한 안전 요구 사항을 가진 관성 항법 시스템 및 GPS 수신기와 같은 고급 항공 전자 장비가 포함되어 있다.[7] 우주선은 궤적 수정을 위해 우주 항공 전자 장비 시스템에 의존한다.6. 6. 기타
임베디드 시스템은 소비자, 산업, 자동차, 가전제품, 의료, 통신, 상업, 항공우주 및 군사 분야 등 매우 다양한 분야에서 활용된다.- 통신 시스템: 전화 교환기에서 휴대전화에 이르기까지 수많은 임베디드 시스템이 사용된다. 컴퓨터 네트워킹에는 데이터를 라우팅하는 전용 라우터와 네트워크 브리지가 활용된다.
- 소비자 가전: MP3 플레이어, 텔레비전, 휴대전화, 비디오 게임 콘솔, 디지털 카메라, GPS 수신기, 컴퓨터 프린터 등이 해당된다. 전자레인지, 세탁기, 식기세척기와 같은 가정용 기기에도 임베디드 시스템이 포함되어 유연성, 효율성, 기능성을 높인다. 고급 냉난방 공조 시스템(HVAC)은 네트워크에 연결된 온도 조절기를 통해 시간대와 계절에 따라 온도를 효율적으로 제어한다. 홈 오토메이션은 유/무선 네트워킹을 활용하여 조명, 기후, 보안, 시청각, 감시 등을 제어하며, 여기에도 임베디드 장치가 사용된다.
- 운송 시스템: 항공기부터 자동차까지 임베디드 시스템 사용이 증가하고 있다. 최신 비행기에는 관성 항법 시스템 및 GPS 수신기와 같은 고급 항공 전자 장비가 포함된다. 우주선은 궤적 수정을 위해 우주 항공 전자 장비 시스템을 사용한다. 블러시리스 DC 모터, 유도 모터, DC 모터 등 다양한 전기 모터는 전자 모터 컨트롤러를 사용한다. 자동차, 전기 자동차, 하이브리드 자동차는 효율성을 높이고 오염을 줄이기 위해 임베디드 시스템을 활용한다. 잠금 방지 브레이크 시스템(ABS), 전자식 안정성 제어 장치(ESC/ESP), 구동력 제어 장치(TCS), 자동 4륜 구동 등도 임베디드 시스템을 사용하는 자동차 안전 시스템이다.
- 의료 장비: 모니터링 및 다양한 의료 영상(양전자 방출 단층 촬영(PET), 단일 광자 방출 컴퓨터 단층 촬영(SPECT), 컴퓨터 단층 촬영(CT), 자기 공명 영상(MRI))을 통한 비침습적 내부 검사에 임베디드 시스템이 사용된다. 의료 장비 내 임베디드 시스템은 주로 산업용 컴퓨터로 구동된다.[8]
- 항공 우주 및 방위 산업: 안전 중요 시스템에 사용된다. 유선 또는 무선 네트워크에 연결되지 않는 한, 해킹으로부터 격리되어 안전성이 높다. 화재 안전을 위해 고온에서도 작동할 수 있도록 설계된다. 임베디드 시스템은 자급자족이 가능하여 전기 및 통신 시스템이 끊긴 상황도 처리할 수 있다.
- 모트 (무선 센서): 무선 센서 네트워크는 집적 회로(IC) 설계를 통해 소형화된 무선 하위 시스템과 정교한 센서를 결합하여, 물리적 세계를 측정하고 모니터링 및 제어 시스템을 통해 정보를 활용할 수 있게 한다. 모트는 독립적으로 작동하며 배터리로 구동되어 수년간 작동한다.
가정용 및 산업용을 막론하고 전자 제어가 필요한 다양한 제품에 널리 사용된다. 다음은 그 예시이다.
- 가정용 전기 기계 기구 (일반 가전제품, 디지털 가전):
- 백색 가전 (전기밥솥, 세탁기, 에어컨, 로봇 청소기 등)
- 통신 기기 (휴대전화, 기능전화, 모뎀, 라우터 등)
- 디지털 기기 (디지털카메라, 캠코더, PC용 주변기기(프린터, 스캐너 등))
- 오디오·비주얼 기기 (텔레비전, 하드디스크 레코더, DVD 레코더 등)
- 가정용 보안 기기
- 가정용 게임기
- 고기능 장난감 (애완용 동물형 로봇 등)
- 고기능 교육용 기기
- 일반 산업용 기기 및 기계 설비류:
- 사무 기기 (복사기, 프린터 등)
- 통신 기기 (법인용 휴대전화, 기능전화기, 팩시밀리, 모뎀, 터미널 어댑터, 라우터, LAN용 기기 등)
- 업무용 공조 설비, 업무용 에어컨
- 생산용 기기·설비 (산업용 로봇, 공작 기계, 측정 기기 등)
- 판매용 기기 (자판기, 자동매표기, POS 레지스터)
- 현금자동입출금기(ATM)
- 광고·전시용 장치 (전시용 장치)
- 경비·감시용 장치 (기계 경비, 중앙감시 장치 등)
- 오락 산업용 기기 (파칭코 기기, 파치슬롯 기기, 슬롯머신 등)
- 교통 신호등
- 엘리베이터의 부분 제어 (기본적인 운전 제어는 제어반 내의 프로그래머블 로직 컨트롤러 등으로 안전하게 구성)
- 탈것 및 탑재 기기:
- 자동차, 오토바이의 엔진 제어 장치(연료 분사 장치를 포함한 엔진 관리, 자동 변속기, 에어컨 등의 제어)
- 내비게이션 시스템
- 철도 차량(전기 기관차, 전동차, 디젤 기관차, 기관차 등)의 블록 제어
- 선박, 항공기, 우주선, 인공위성
- 의료 기기:
- 바이탈 사인용 (자동혈압계, 심전계, 전자 체온계 등)
- 제세동기(자동 제세동기 등)
- 임상 검사용 기기·분석 장치
- 재해 대책용 기기:
- 구조 로봇
- 원자력 발전소의 사고 처리용, 폐로용 로봇
- 기타: 경기용 로봇 (예: 로봇 경진대회)
7. 임베디드 시스템과 한국
1980년대 이후 마이크로프로세서가 발달하면서 한국에서도 컴퓨터를 이용한 제어 방식을 도입하게 되었다. 전자 기기의 회로를 변경하지 않고 소프트웨어만 변경하여 기능을 추가할 수 있게 되면서, 기능 추가에 필요한 비용이 절감되었다.
이러한 변화는 한국의 가전제품 산업에 큰 영향을 미쳤다. 대부분의 가전제품에 임베디드 시스템이 탑재되면서, 제품의 부가가치를 높이는 새로운 기능을 비교적 쉽게 추가할 수 있게 되었다. 그 결과, 한국 기업들은 고기능화·다기능화된 제품을 선보이며 세계 시장에서 경쟁력을 확보할 수 있었다.
8. 신뢰성
임베디드 시스템은 수년 간 오류 없이 지속적으로 작동해야 하는 기계에 주로 사용되며, 오류 발생 시 자체 복구가 가능해야 한다. 따라서 소프트웨어는 개인용 컴퓨터보다 더 신중하게 개발 및 테스트되며, 디스크 드라이브, 스위치, 버튼과 같이 신뢰성이 낮은 기계적인 부품은 사용하지 않는다.
일반적으로 다음과 같은 신뢰성 문제가 발생할 수 있다.
문제 유형 | 설명 |
---|---|
접근 불가 | 우주 시스템, 해저 케이블, 항해용 등대, 시추공 시스템, 자동차와 같이 시스템을 안전하게 종료하여 수리하기 어렵거나 접근이 불가능한 경우 |
안전 문제 | 항공기 항법 장치, 원자로 제어 시스템, 안전이 중요한 화학 공장 제어 장치, 열차 신호 시스템과 같이 안전상의 이유로 시스템을 계속 작동해야 하는 경우 |
경제적 손실 | 전화 교환기, 공장 제어 장치, 교량 및 엘리베이터 제어 장치, 자금 이체 및 시장 조성, 자동 판매 및 서비스와 같이 시스템 종료 시 큰 금전적 손실이 발생하는 경우 |
이러한 문제 해결을 위해 다음과 같은 다양한 기법들이 사용된다.
- 워치독 타이머: 소프트웨어가 주기적으로 워치독 하위 시스템에 신호를 보내지 않으면 시스템을 재설정하고 다시 시작한다.
- 신뢰할 수 있는 컴퓨팅 기반(TCB) 아키텍처: 매우 안전하고 안정적인 시스템 환경을 보장한다.[15]
- 임베디드 시스템용으로 설계된 하이퍼바이저: 각 하위 시스템 구성 요소를 안전하게 캡슐화하여 오류가 다른 하위 시스템으로 전파되는 것을 방지한다.[16] 오류 감지 시 하위 시스템을 자동으로 종료하고 다시 시작할 수 있다.
- 면역 인식 프로그래밍: 안정적인 임베디드 시스템 코드를 생성하는 데 도움을 준다.[17][18]
- MISRA C/C++와 같은 지침 및 코딩 규칙: 런타임 오류를 방지하고, 코드 정적 검사 및 모델 검증을 통해 기능적 검증 및 코드 타이밍 특성을 결정하는 데 도움을 준다.[17]
참조
[1]
웹사이트
Embedded Systems Glossary
http://www.netrino.c[...]
2007-04-21
[2]
서적
Embedded systems design
https://archive.org/[...]
Newnes
[3]
서적
Programming embedded systems: with C and GNU development tools
O'Reilly
[4]
웹사이트
Real men program in C
http://www.embedded.[...]
TechInsights (United Business Media)
2009-08-01
[5]
논문
The Surprising Story of the First Microprocessors
https://spectrum.iee[...]
Institute of Electrical and Electronics Engineers
2016-08-30
[6]
웹사이트
1971: Microprocessor Integrates CPU Function onto a Single Chip
https://www.computer[...]
Computer History Museum
[7]
웹사이트
Electronic Frontier Foundation
https://www.eff.org/
[8]
웹사이트
Embedded Systems Dell OEM Solutions | Dell
http://content.dell.[...]
2013-02-06
[9]
잡지
Under the Hood: Robot Guitar embeds autotuning
http://www.embedded.[...]
2008-04-22
[10]
문서
MicroVGA
http://www.microvga.[...]
[11]
논문
TARDIS
ACM
2015
[12]
논문
Aveksha
ACM
2011
[13]
웹사이트
Tektronix Shakes Up Prototyping, Embedded Instrumentation Boosts Boards to Emulator Status
http://www.eejournal[...]
Electronic Engineering Journal
2012-10-30
[14]
논문
Trace Recording for Embedded Systems: Lessons Learned from Five Industrial Projects
http://link.springer[...]
Springer Berlin Heidelberg
2010
[15]
논문
Your System is secure? Prove it!
http://c59951.r51.cf[...]
2007-12
[16]
논문
Embedded virtualization for the design of secure IoT applications
2016
[17]
논문
Development guidelines for dependable real-time embedded systems
https://figshare.com[...]
2008-03
[18]
웹사이트
MISRA C:2012 Third Edition, First Revision
https://www.misra.or[...]
[19]
웹사이트
FAQs: Programmable Controllers
https://www.nema.org[...]
[20]
웹사이트
Working across Multiple Embedded Platforms
http://www.clarinox.[...]
clarinox
[21]
웹사이트
組み込みシステム
https://www.sophia-i[...]
[22]
서적
よくわかる組み込みシステムの基本と仕組み
[23]
서적
よくわかる組み込みシステムの基本と仕組み
[24]
웹사이트
https://www.viatech.[...]
[25]
서적
よく分る組み込みシステムの基本と仕組み
[26]
서적
よく分る組み込みシステムの基本と仕組み
[27]
서적
よく分る組み込みシステムの基本と仕組み
[28]
서적
よく分る組み込みシステムの基本と仕組み
[29]
간행물
2007年版 組込みソフトウエア産業実態調査
経済産業省
[30]
서적
Programming embedded systems: with C and GNU development tools
http://books.google.[...]
O'Reilly
[31]
웹인용
Embedded Systems Glossary
http://www.netrino.c[...]
[32]
서적
Embedded systems design
http://books.google.[...]
Newnes
[33]
웹인용
Micro controller.com – Embedded Systems supersite
http://www.microcont[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com