"임베디드"의 두 판 사이의 차이
wlgns12244 (토론 | 기여) (→소프트웨어) |
wlgns12244 (토론 | 기여) (→소프트웨어) |
||
27번째 줄: | 27번째 줄: | ||
임베디드 시스템은 하드웨어만으로도 구성이 가능하지만 하드웨어와 소프트웨어를 병행하여 개발하면 추가 기능 개발이나 유지보수에 드는 비용을 줄일 수 있다. 일반적으로 하드웨어란 수동 부품, 프린트 기판 등과 같이 물리적으로 존재하는 요소이다. 반면에 소프트웨어는 하드웨어를 제어하기 위해 내장되는 명령어 집합이라고 볼 수 있다. | 임베디드 시스템은 하드웨어만으로도 구성이 가능하지만 하드웨어와 소프트웨어를 병행하여 개발하면 추가 기능 개발이나 유지보수에 드는 비용을 줄일 수 있다. 일반적으로 하드웨어란 수동 부품, 프린트 기판 등과 같이 물리적으로 존재하는 요소이다. 반면에 소프트웨어는 하드웨어를 제어하기 위해 내장되는 명령어 집합이라고 볼 수 있다. | ||
===소프트웨어=== | ===소프트웨어=== | ||
− | 임베디드 시스템의 소프트웨어는 OS(운영체제)와 응용프로그램으로 크게 나눌 수 | + | 임베디드 소프트웨어(Embedded Software)란 PC 이외의 전자 기기에 내장되어 제품에 요구되는 특정한 기능을 구현할 수 있도록 하는 소프트웨어를 말한다. 그 종류로는 RTOS(Real-Time Operating System), 미들웨어, 응용 S/W 등이 있는데, 최근 전자제품의 디지털화/지능화/네트워크화가 심화되어 감에 따라 그 사용 범위가 점차 확대되어 가는 추세이다. 일례로 BMW 7시리즈 자동차에 설치되는 텔레매틱스 단말기에 Windows CE for Automotive가 내장되어 네비게이션, 차량 내 온도 제어, 엔터테인먼트 등의 기능 구현을 용이하게 하고 있다. 이외에도 게임기, DVD 레코더, 디지털 카메라 등 다양한 제품에 임베디드 소프트웨어가 장착되어 필요한 기능들을 수행하고 있다. |
+ | 임베디드 소프트웨어는 비행제어 시스템이나 항법 시스템과 같은 시스템에서 고도의 신뢰성과 실시간 처리를 지원해야 하며, 상대적으로 부족한 자원을 사용하는 하드웨어상에서 동작하기 위해 최적화된 기술을 지원하여야 한다. 그리고 일반적으로 사용되는 범용 데스크탑이나 서버에서 실행되는 패키지와는 다른 특정 시스템 전용 목적을 가지고 개발되어야 하며 단독형 시스템뿐만 아니라 유무선 네트워크를 통해 연결될 수 있어야 하고, 멀티미디어 정보를 처리하는 기술이 필요한 디지털 TV, PDA 및 스마트 폰 등과 같은 임베디드 시스템을 지원해야 한다. 임베디드 시스템으로 제공되는 플랫폼은 다양한 기종과 규격의 마이크로프로세서로 구성되어 있다. 따라서 각각의 프로세서에 최적화된 별도의 솔루션이 동시에 제공되어야 하며, 고난도의 임베디드 소프트웨어 애플리케이션을 빠르고 안정되게 개발하기 위해 사용하기 쉬운 개발 도구가 필요하다. | ||
+ | 임베디드 시스템의 소프트웨어는 OS(운영체제)와 응용프로그램으로 크게 나눌 수 있다. OS는 기본 소프트웨어라고도 하며 시스템의 전체적인 운영을 담당하는 소프트웨어로 하드웨어와 응용프로그램을 중재하고 주로 다음과 같은 역할을 수행한다. | ||
# 하드웨어 사양의 차이를 흡수 | # 하드웨어 사양의 차이를 흡수 | ||
# 연산 기능 및 메모리 등의 리소스(자원) 관리 | # 연산 기능 및 메모리 등의 리소스(자원) 관리 |
2019년 8월 9일 (금) 11:14 판
임베디드시스템(embedded system, 내장형 시스템)은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템이다.
목차
개요
PC로는 프로그래밍, 문서작업, 멀티미디어 관련 작업 등 소프트웨어를 설치하면 사용자가 원하는 작업을 할 수 있다. 즉 PC는 범용 목적의 시스템이다. 하지만 임베디드 시스템은 특정 제품이나 솔루션에서 주어진 작업을 수행하도록 특정한 목적을 가지고 설계된다. 예를 들어 전자레인지는 음식을 데우고, 찜, 구이 등의 요리를 할 수 있도록 설계된 시스템 이고 핸드폰은 통신기능에 특화된 시스템이며 게임기는 게임기능에 특화하여 개발되었다. 이런 기능적인 요소들을 제공하기 위해 하드웨어를 제어하고 정보를 사용자에게 보여준다. 이처럼 범용 목적이 아닌 정해진 용도에 국한되어 특수 목적을 제어하기 위해 제작되는 시스템을 임베디드 시스템이라고 한다. 임베디드 시스템의 구성은 정해진 기능에 필요한 하드웨어와 소프트웨어로 이루어진다. [1]
역사
특징
임베디드 시스템은 범용으로 만들어진 것이 아니라 특수목적으로 만들어진다. 특수 목적이라는 것은 PC와 같이 모든 작업이 가능한 시스템이 아닌, 한두 종류의 기능에 특화되도록 시스템을 설계한다는 의미이다. 따라서 입출력장치가 제한되어 있어 임베디드 시스템에서 직접 개발한다는 것은 거의 불가능 하며, 이러한 문제를 해결해 줄 수 있는 개발환경을 구축해야 한다. PC용 소프트웨어를 개발할 때는 개발환경과 실행환경이 같습니다. 이를 네이티브 개발환경이라고 한다. 하지만 임베디드 소프트웨어 개발환경은 개발하는 시스템의 프로세서와 실행될 시스템의 프로세서가 같지 않으며 이를 크로스 개발환경이라고 한다. 이 말은 일반 응용프로그램을 개발할 때 사용하는 컴파일러와는 다른 컴파일러를 사용해야 한다는 뜻이 된다. 임베디드 소프트웨어를 개발하려면 개발환경과 다른 프로세서용 기계 코드를 생성해주는 컴파일러가 필요하며 이를 크로스컴파일러라고 한다. 크로스 개발에서 소프트웨어를 개발하는 환경을 호스트 시스템, 소프트웨어가 실행되는 시스템을 타깃 시스템이라고 한다. 쉽게 말해 프로그램 개발작업을 하는 PC가 호스트 시스템이 되고 임베디드 프로세서와 메모리 및 주변기기로 이루어진 임베디드 시스템이 바로 타깃 시스템이 되는 것이다.
- 기능이 제한적-특정 기능에 특화된 시스템이로서 지정된 기능 외의 기능은 제공하지 않는다.
- 크기의 제약-모바일 제품이 많고 작은 제품들에서도 사용할 수 있어야 하기 때문에 작고 가벼워야 한다.
- 자전력-배터리 용량의 한계로 전력 사용이 제한적이다.
- 다양한 프로세스와 운영체제-임베디드는 임베디드전용의 다양한 운영체제와 프로세스가 존제하며, pc용 프로세스와 운영체제는 사용이 불가하다.
- 실시간성 제공-의료기기,공장 자동화 시스템,군용에서는 한정된 시간이 필수적이다.
- 하드디스크-임베디드는 하드디스크(HDD)가 없고 대신 ROM,RAM,Flash메모리로 구성되어있다.
임베디드 시스템의 소프트웨어와 하드웨어
기본적으로 임베디드 시스템의 구성은 S/W의 경우 응용소프트웨어+임베디드OS+디바이스 드라이버로 이루어지고H/W의 경우 임베디드 프로세서+기억장치+주변기기로 이루어진다. 임베디드 시스템은 하드웨어만으로도 구성이 가능하지만 하드웨어와 소프트웨어를 병행하여 개발하면 추가 기능 개발이나 유지보수에 드는 비용을 줄일 수 있다. 일반적으로 하드웨어란 수동 부품, 프린트 기판 등과 같이 물리적으로 존재하는 요소이다. 반면에 소프트웨어는 하드웨어를 제어하기 위해 내장되는 명령어 집합이라고 볼 수 있다.
소프트웨어
임베디드 소프트웨어(Embedded Software)란 PC 이외의 전자 기기에 내장되어 제품에 요구되는 특정한 기능을 구현할 수 있도록 하는 소프트웨어를 말한다. 그 종류로는 RTOS(Real-Time Operating System), 미들웨어, 응용 S/W 등이 있는데, 최근 전자제품의 디지털화/지능화/네트워크화가 심화되어 감에 따라 그 사용 범위가 점차 확대되어 가는 추세이다. 일례로 BMW 7시리즈 자동차에 설치되는 텔레매틱스 단말기에 Windows CE for Automotive가 내장되어 네비게이션, 차량 내 온도 제어, 엔터테인먼트 등의 기능 구현을 용이하게 하고 있다. 이외에도 게임기, DVD 레코더, 디지털 카메라 등 다양한 제품에 임베디드 소프트웨어가 장착되어 필요한 기능들을 수행하고 있다. 임베디드 소프트웨어는 비행제어 시스템이나 항법 시스템과 같은 시스템에서 고도의 신뢰성과 실시간 처리를 지원해야 하며, 상대적으로 부족한 자원을 사용하는 하드웨어상에서 동작하기 위해 최적화된 기술을 지원하여야 한다. 그리고 일반적으로 사용되는 범용 데스크탑이나 서버에서 실행되는 패키지와는 다른 특정 시스템 전용 목적을 가지고 개발되어야 하며 단독형 시스템뿐만 아니라 유무선 네트워크를 통해 연결될 수 있어야 하고, 멀티미디어 정보를 처리하는 기술이 필요한 디지털 TV, PDA 및 스마트 폰 등과 같은 임베디드 시스템을 지원해야 한다. 임베디드 시스템으로 제공되는 플랫폼은 다양한 기종과 규격의 마이크로프로세서로 구성되어 있다. 따라서 각각의 프로세서에 최적화된 별도의 솔루션이 동시에 제공되어야 하며, 고난도의 임베디드 소프트웨어 애플리케이션을 빠르고 안정되게 개발하기 위해 사용하기 쉬운 개발 도구가 필요하다. 임베디드 시스템의 소프트웨어는 OS(운영체제)와 응용프로그램으로 크게 나눌 수 있다. OS는 기본 소프트웨어라고도 하며 시스템의 전체적인 운영을 담당하는 소프트웨어로 하드웨어와 응용프로그램을 중재하고 주로 다음과 같은 역할을 수행한다.
- 하드웨어 사양의 차이를 흡수
- 연산 기능 및 메모리 등의 리소스(자원) 관리
- 시스템 이용 효율의 최적화
- 입출력 기능과 네트워크 기능의 관리
App(응용 프로그램)은 응용 소프트웨어라고도 하며 어떤 특정한 기능을 수행하는 소프트웨어이다. 입출력 장치를 포함한 특수 용도의 작업 실행함으로써 사용자와 대면하는 소프트웨어로 대 부분은 OS에서 동작하며 App의 대표적인 예로는 휴대전화의 메일 소프트웨어, 자동차 네비게이션의 지도 표시 소프트웨어 등이 있다.
임베디드 소프트웨어의 구조
- 운영체제 : 시스템의 자원을 효율적으로 관리하고 운영
- 디바이스 드라이버 : 다양한 하드웨어 장치를 관리
- 미들웨어 : 응용 프로그램과 운영체제간에 원만한 통신을 도움
- 응용 프로그램 : 사용자가 직접 접하는 최상의 프로그램
임베디드 소프트웨어의 개발언어
- 기계어 : CPU가 이해하는 0과 1로 이루어진 디지털 신호, CPU의 제조회사 및 종류에 따라 모두 다름
- 어셈블리어 : 기계어 작성의 불편함을 극복하고 보다 사람이 이해하기 쉽도록 개발한 일종의 기호 언어임
- 어셈블리어의 장점 : 처리 속도 빠름, 용량 적음, 하드웨어 직접 제어래 걸림
- 어셈블리어의 단점 : CPU에 따라 문법이 다름, 가독성 낮음, 프로그래밍 시간 오래 걸림
임베디드 소프트웨어의 동작원리
- 시스템 구성 : 중앙처리 장치(CPU) + 메모리 + 주변장치
- CPU : 프로그램을 수행하기 위해 메모리에 저장되어 있는 명령어들을 실행함으로써 시스템의 핵심적인 역할 수행
- CPU의 명령 처리 순서 : > Fetch(해석) > Decode(해석) > Excute(처리) > Save(저장) >
임베디드 소프트웨어 개발 도구
- 호스트와 타겟 시스템
- 호스트에는 크로스 컴파일러와 디버깅 도구를 비롯한 개발 도구가 설치 되어있어야 한다.
- 롬 라이터, 롬 프로그래머를 이용
- 시리얼 통신이나 네트워크 통신을 통한 이미지 다운로드
- JTAG/BDM 인터페이스를 통한 이미지 다운로드
- 디버깅: 리모트 디버거, ICE, JTAG/BDM 인터페이스를 이용하는 방법이 있고 하드웨어 디버깅 툴에는 멀티미터와 오실로스코프, 로직애널라이져가 있다.
하드웨어
임베디드 시스템의 하드웨어는 마이크로 프로세서, 메모리, 입출력 장치, 센서 등으로 구성되어 있으며 각 장치는 다음과 같은 역할을 한다.
- 마이크로프로세서: 정해진 명령어(산술연산, 논리 연산, 입출력, 수행제어 등)을 수행하는 하드웨어 장치
- 메모리: 마이크로프로세서가 수행할 명령어 및 데이터를 저장하는 장치
- 입출력 장치: 시스템 외부와 내부 사이에 데이터를 전달하는 장치
- 센서: 시스템 외부에서 정보(온도, 압력, 습도 등)를 수집하는 장치
임베디드 시스템의 응용 분야
- 정보가전
- 제어분야
- 정보기기
- 네트워크 기기
- 게임기기
- 항공/군용
- 물류/금융
- 차량/교통
- 사무/의료
종류
각주
- ↑ 슈어소프트테크,〈임베디드 시스템의 개요〉, 《네이버 블로그》, 2018-08-14
참고자료
- 슈어소프트테크,〈임베디드 시스템의 개요〉, 《네이버 블로그》, 2018-08-14
- 김정출,〈임베디드 시스템의 이해〉, 《티스토리》, 2015-12-18
- 류명운,〈임베디드 시스템 공부 정리〉, 《티스토리》, 2017-11-08