본문 바로가기

Hacked Brain/embeddedland.net

임베디드 개발자 입문-2

 http://cafe.naver.com/devctrl/65

임베디드 개발자 입문-2
  저 자 : 박철
  출판일 : 2004년 1월호

  임베디드 시스템이란 무엇인가?
임베디드 시스템은 우리 생활에서 쓰이는 각종 전자기기, 가전제품, 제어장치 등을 말한다. 이러한 장비의 특징은 단순히 전기, 전자회로로만 구성된 것이 아니라 마이크로프로세서가 내장되어 있다는 것이다. 이렇게 내장된 마이크로프로세서는 시스템을 구동하여 그 장비가 해야 하는 특정한 기능을 수행하도록 프로그램이 내장되어 있는 시스템을 가리킨 것이다.
이러한 임베디드 시스템은 산업, 가전, 사무, 군사 등의 다양한 응용 분야를 가지고 있으며 적용 사례도 휴대폰, PDA, 사이버 아파트의 홈 관리 시스템, 홈 네트워크 게이트웨이 장치, 교통관리 시스템, 주차 관리시스템, 홈 관리 시스템, 엘리베이터 시스템, 현금지급기(ATM), 항공 관제 시스템, 우주선 제어 장치, 군사용 제어 장치 등 다양한 곳에 응용이 된다.
사용자 삽입 이미지


<그림 2> 임베디드 시스템의 구성

임베디드 시스템을 좀더 쉽게 이해하기 위해서 생활가전 제품인 밥솥을 예로 들어 임베디드 시스템을 설명하고자 한다. 다음은 밥솥의 발전 단계를 나타낸 것이다.

1. 전기 회로로만 구성된 전기밥솥(초기)
2. 간단한 4비트 또는 8비트 마이콤이 내장된 전자밥솥(현재)
3. 일반 PC 같은 기능을 가진 32비트급 프로세서가 내장된 전자밥솥(미래)

(1)은 단순히 히터라는 전기회로를 통해서 열을 가하여 밥을 짓는 장치이다. (1)은 사람이 모든 제어를 수행하며, 독립적인 기능을 수행할 수 없기 때문에 임베디드 시스템이라 할 수 없다. (2)와 (3)은 독립적으로 기능을 수행할 수 있기 때문에 임베디드 시스템이라 말할 수 있다. 이렇듯이 임베디드 시스템은 CPU가 내장되어 있어서 시스템의 기능을 제어하는 시스템이라 할 수 있다. (2)와 같은 경우는 사람이 하던 제어 기능을 4비트 또는 8비트의 마이콤이 펌웨어를 통해서 수행하도록 하도록 하였다. 여기서 펌웨어란 OS 없이 동작되는 프로그램을 말하며, 4비트 8비트 마이콤에서 사용된다. 즉 프로세스가 하나라는 의미이다. (3)은 밥을 하는 고유 기능 이외에 외부와 네트워크로 연결되어서 밥을 짓는 정보를 영상이나 음성 정보를 통해서 전달받으며 이를 사용자가 쉽게 사용할 수 있도록 GUI 환경을 제공하는 기능이 추가된 시스템을 말한다. <그림 2>와 같이 32비트를 사용하며 여러 개의 프로세스가 존재하기 때문에 펌웨어를 사용할 수 없고, OS 환경 하에 동작하는 애플리케이션이 동작되는 시스템이다. 그리고 통신 기능을 구현하여야 하기 때문에 TCP/IP와 같은 프로토콜이 구현되어 있어야 하며 그래픽 LCD 기반의 GUI 환경이 기본적인 시스템이기 때문에 시스템 규모가 (2)와는 매우 다르다. 마치 PC 하나가 밥솥에 들어가 있는 형태라고 할 수 있다.
(3)과 같이 임베디드 시스템은 2000년대로 들어서면서 트렌드의 변화가 오기 시작하였다. (2)와 같이 마이콤에 펌웨어 기반의 고유 기능을 가지고 있는 것이 기존의 임베디드 시스템이었다면 (3)은 고유 기능 이외에 부가 기능을 가지고 있으며, 이러한 부가 기능은 많은 정보량을 요구하기 때문에 단순한 8비트의 구조를 가지고 사용할 수 없으며 32비트 프로세서 기반은 여러 개의 애플리케이션을 운영하기 위한 운영체제를 필요로 하게 된다. 이러한 임베디드 시스템의 수요는 날로 커져가고 있다.
현재 임베디드 시스템의 특징은 PC가 가지고 있는 기능이 임베디드 시스템에 적용된다는 것이다. 그래서 이를 포스트 PC라고도 하고, 가전에 정보 전달 기능이 강화된 형태를 유지하기 때문에 이를 정보가전이라고도 표현하고 있다.
사용자 삽입 이미지


<그림 3> 임베디드 시스템 하드웨어 구조

임베디드 시스템 개발 과정
임베디드 개발 과정은 크게 3가지로 나눌 수 있다.

◆ 임베디드 시스템 하드웨어 개발 과정
◆ 임베디드 시스템 교차 개발환경 구축 과정
◆ 임베디드 시스템 소프트웨어 개발 과정

임베디드 시스템의 개발 과정을 일반 PC 같은 기능을 가진 32비트급 프로세서가 내장된 전자밥솥을 예로 설명하고자 한다. 개발 순서는 먼저 밥솥의 기능을 정하고 그에 맞는 하드웨어와 소프트웨어 기능을 협의한 후 각각의 기능을 구현하는 것이다. 개략적으로 하드웨어의 32비트 CPU는 XScale 기반 PXA255이고, 운영체제는 임베디드 리눅스를 사용하기로 한다.