본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/컴퓨터 이야기
  3. 임베디드 시스템이 뭐에요?

임베디드 시스템이 뭐에요?

· 댓글개 · 바다야크

임베디드 시스템이 뭐에요?


처음 뵙는 분께 "임베디드 시스템을 개발합니다."라고 말씀 드리면 대부분 "임베디드가 뭡니까?" 되물어 옵니다. ERP나 공장 자동화, 웹 서비스를 개발한다고 하면 자세히 몰라도 대충 알겠다 하는데, "임베디드"하면 아직은 낯설게 생각되나 봅니다. 이럴 때 "특정 기능만 처리하는 작은 컴퓨터 시스템입니다" 라고 말씀 드립니다만, 설명이 매우 짧지요.

그러나 말이 생소해서 그렇지 주위에서 흔하게 볼 수 있는 것이 임베디드입니다. 가령 밥통만 보아도 예전에 비해 다양한 기능을 가지고 있습니다. 저 어렸을 적 밥통은 버튼을 꾹 눌러주면 타이머에 의해 일정 시간 동안 밥을 지었다면 요즘은 쌀밥이나 잡곡에 따라서 취사 방법을 달리하여 맛있는 밥을 만들어 줍니다. 이렇게 똑똑한 밥통이 될 수 있는 것은 밥통 안에 내장(embedded)되어 있는 임베디드 시스템 덕분입니다.

냉장고도 전력 효율을 높이면서 냉동과 냉장 효과를 높이기 위해 복잡한 제어 시스템이 들어 있는데 이 부분 역시 임베디드 시스템이 담당합니다. 냉장고 안에 남아 있는 재료를 가지고 만들 수 있는 요리 방법을 제공하는 제품이 있다는 얘기를 들은 적이 있는데 상품으로 나왔는지 모르겠네요.

로봇청소기도 똑똑해야 합니다. 한쪽 구석만 뱅뱅 돌기만 하면 뭐에다 쓰겠습니까? 최근에는 집 안을 돌아 다닐 수 있는 유일한 가전 제품이라 카메라를 장착해서 방범으로도 사용되고 있습니다. 회사에서 집에 있는 청소기를 원격 조정해서 걱정되는 곳을 보는 것이죠. 가스 끄고 나왔는지 걱정될 때 사용하면 매우 편하겠지요. 이 역시 임베디드 시스템이 담당하고 있습니다.

임베디드 리눅스 시스템

그렇다면 임베디드 시스템은 밥통이나 청소기처럼 작은 시스템에만 사용될까요? 아닙니다. 임베디드 시스템은 만드는 방법에 따라 밥통보다 더 작은 자동차 제어 장치에서 고층 빌딩, 발전소, 공장 등의 조명 제어, 화재 감시, 엘리베이터 제어, 출입 통제 등 기능 별로 충실하게 만들어져서 전체적으로 큰 시스템을 이룹니다.

저는 임베디드 시스템을 만드는 여러 방법 중에서 리눅스를 이용하는 "임베디드 리눅스 시스템"을 개발하고 있습니다. 리눅스. 친근한 이름이죠? 리눅스를 운영해야 하므로 컴퓨터를 사용합니다. 대신에 보통 집에서 사용하는 컴퓨터보다도 훨씬 작은 크기의 컴퓨터를 사용하며 리눅스도 작은 컴퓨터에서 실행할 수 있도록 최적화된 작은 리눅스를 사용합니다. 이렇게 작은 리눅스를 일반 리눅스와 비교하여 "임베디드 리눅스"라고 합니다.

모습도 바꾸는 임베디드 리눅스 컴퓨터

임베디드 리눅스가 실행되는 컴퓨터는 크기만 작은 것이 아니라 기능과 하는 일에 따라서 모양까지 바꿉니다. 일반 PC를 사용한다면, 예를 들어 랜 포트가 하나 더 필요하다면 슬롯에 랜 카드를 장착합니다. 카메라를 연결해야 한다면 USB를 이용하여 PC에 연결합니다. 시리얼 포트가 필요하다면 USB를 이용하거나 역시 슬롯에 꽂는 카드를 이용합니다. 즉, PC 모양의 변형 없이 카드나 USB를 이용하여 하드웨어를 추가합니다. 그래서 PC와 함께 몸집이 커지거나 더 집어넣고 싶어도 공간의 한계에 부딪히면 PC를 하나 더 추가하기도 합니다.

그러나 임베디드 시스템은 아예 그 모양부터 변경합니다. LAN 포트가 4개가 필요하다면 추가 배치하여 새로운 모습으로 만들어 냅니다. 비디오 카메라가 필요하다면 보드 내에 카메라 컨트롤러를 내장합니다. 통신 포트가 16개가 필요하다면 16개를 몸체에 모두 붙여 버립니다.

저희 회사 제품 중에 ESP-NS라는 임베디드 리눅스 보드입니다. 시리얼 포트를 4개나 가지고 있는데 설정에 따라 233, 485, 422로 전환하여 사용할 수 있습니다. 시리얼 포트 외에도 이더넷 포트가 2개 있고 DI와 DO 출력도 있어서 웬만한 일은 모두 처리할 수 있습니다.

제가 좋아하는 제품 중에 ESP-MMI 보드입니다. 이 제품은 임베디드보드 이면서도 하드디스크를 사용할 수 있고 VGA출력 단자를 이용하여 일반 모니터로 화면 출력할 수 있습니다. 232뿐만 아니라 422/485 시리얼 포트까지 있어서 교육용으로도 좋습니다.

 

CPU와 메모리 부분만 따로 모듈로 하고 변화무쌍한 인터페이스 부분을 따로 구성하는 제품도 있습니다. 보드 개발 중에 가장 어려운 부분이 CPU와 메모리 부분이라고 하더군요. 이 부분만 따로 모듈화한 것이죠. 이렇게 모듈화하면 개발 비용이 저렴해 지고 개발 기간을 단출할 수 있습니다. 예로 EZ-PXA270 은 INTEL PXA270 (XScale Core 520MHz) 을 탑재한 보드로서 커널 2.6을 채택하여 일반 사용자들도 쉽게 접할 수 있게 설계 개발된 제품입니다.

이 외에도 저희 회사 쇼핑몰에 오시면 더욱 다양한 제품을 보실 수 있습니다.

이렇게 기능에 맞추어 자유자재로 새롭게 구성하기 때문에 소프트웨어뿐만 아니라 하드웨어부터 최적화된 시스템을 만들어 낼 수 있습니다.

처리할 수 있는 일이 매우 다양

리눅스를 이용하기 때문에 리눅스 OS가 제공하는 막강한 기능을 이용할 수 있다는 강점이 있습니다. 리눅스 하면 멀티태스킹 이 탁월하고 무엇보다도 통신에 강하기 때문에 서로 다른 시스템 간의 네트워크를 중계한다든지, 아니면 상위 시스템에서 전달해 오는 제어 명령을 다른 시스템으로 전송하고 항상 주변 장치를 감시하면서 수집한 데이터를 가공해서 다시 상위 시스템으로 전송하는 등의 시스템에 적합합니다. 그래서 복잡한 시스템을 하나의 시스템으로 어렵게 만들기 보다는 임베디드 시스템으로 분산하여 전체적인 시스템 구조를 기능별로 단순화 시킬 수 있는 것은 물론 안정성도 높일 수 있습니다.

더욱 높아져 가는 사양

최근에는 기술의 발전으로 임베디드 시스템에 대한 요구도 높아져 가고 있습니다. 덕분에 일이 점점 힘들어 집니다. 일도 많이 어려워 졌고요. 그러나 어디 임베디드 시스템만 그런 가요. 요즘 프로그램을 보면서 예전 기억을 떠올리면 놀랍기만 합니다. 제 직업에 대한 얘기이다 보니 글이 다소 길어 졌네요. 앞서 말씀 드렸지만, 임베디드 시스템에 대해 생소하시고 PC로만 개발하는데 어려움을 겪는 분이 있을 것 같아서 정리해 보았습니다. 임베디드 시스템처럼 기능에 최적화되고 더욱 전문적인 개발 분야가 있다는 것을 알아 주세요. ^^

SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.