Embedded 시스템의 개요
- Embedded 시스템의 개요-
임베디드 시스템 개요
▣ 임베디드 시스템
◈ 정의 : 마이크로프로세서 혹은 마이크로컨트롤러를 내장하여 원래 제작자가 지정한 기능만을 수행하는 장치
만일 한 시스템에서 사용자가 프로그램을 바꿔가면서 그에 따라 여러 가지 기능들을 수행할 수 있다면 그 시스템은 대부분의 사람들이 임베디드 시스템이라고 분류하지 않는다.
Example) PC is NOT an embedded system.
▣ 구성 :
◈ 임베디드 H/W : 프로세서/컨트롤러, 메모리, I/O, 네트워크
◈ 임베디드 S/W : 커널, 시스템 S/W, 응용 S/W
▣ 응용분야 :
◈ 정보가전, 정보단말, 통신장비, 항공/군용, 물류/금융, 차량/교통, 사무, 산업/제어, 의료, 게임, 로봇
임베디드 S/W 특징
임베디드 시스템 동향
▣ 미국
◈ 프로세서, OS, 프로토콜 등 전 분야를 점유
◈ 미국은 군사/과학용 임베디드 S/W를 21세기 핵심 분야로 선정하고 매년 4천억 달러 이상을 연구개발에 투자
▣ 유럽
◈ 개발도구, 브라우저 등의 일부 업체가 존재
◈ 군사/교통용 임베디드 S/W에 '99년부터 7년간 3조8천억을 투자
▣ 일본
◈ 총무성 주도로 Ubiquitous 네트워크 개발을 추진 중
◈ ‘84년부터 TRON 협회에서 표준 임베디드 OS를 개발;일본 내 가전제품에 적용 중
▣ 임베디드 OS:
◈ Real-time Operating System 중심
◈ MS의 WinCE 및 임베디드 리눅스 진입 시작
◈ 미들웨어, 각종 서비스를 포괄하는 플랫폼 기술이 중요하게 대두
임베디드 시스템의 요구사항
▣ 실시간 + 임베디드 : Must provide correct results at required time deadline
◈ For examples
Security system that checks ID badges
Robot that welds sheet metal
Automated teller machine
▣ Most of control system is real-time embedded systems
▣ An embedded system is implemented by hardware function itself, but not SW, to ensure real-time response
▣ Embedded software must work with hardware, so it should have real-time characteristics - real-time software
▣ How to implement real-time applications
◈ Using hardware functionality
◈ Interrupt mechanism of microprocessor
Polling is slow
◈ Complex multiprocessing program based on RTOS
▣ Designing real-time embedded systems is different
임베디드 시스템의 활용 분야
임베디드 시스템의 활용 분야
임베디드 시스템 시장 현황 및 전망
▣ 2002년 임베디드 시스템 세계시장
◈ 약 1,000억 달러 규모
◈ 임베디드S/W 분야 : 약 200억달러 규모
◈ 매년 평균 20%의 성장률
◈ 2007년 약 500억달러 수준으로 성장 전망(RCW Mirus, 2001)
▣ 2002년 국내 시장규모
◈ 약7천8백억원 규모
▣ 2007년
◈ 1조 9천5백억원 규로로 성장 전망 (정보통신연구진흥원, 2002)
임베디드 리눅스 Open 플랫폼의 보급
▣ 비영리 임베디드 시스템 협의회로 임베디드 리눅스 콘소시엄(ELC)
▣ 최소 플랫폼
전형적인 1개 이상의 특정서비스의 지원 목적. 최소한의 요구사항으로서 사용자와 interaction이 필요 없는 경우다. 이 경우는 파일시스템과 같은 대용량의 저장장치를 필요로 하지 않는다. 보통 1개의 프로세서만이 있게 되는데 1 개 이상의 쓰레드 (리눅스 태스크 또는 POSIX 쓰레드)만이 있을 수도 있다.
▣ 중간 플랫폼
최소 크기의 개발 플랫폼에 파일시스템과 같은 대용량 저장장치, 비동기 I/O, 객체들(예: 라이브러리)의 동적 연결기능들을 추가로 지원한다. 복수의 프로세스와 주소공간이 가능하다. 하드웨어 요구사항은 대용량 저장장치가 실제적으로 필요하지는 않아도 RAM 이나 ROM 같은 것에 파일시스템이 구현된다.
▣ 풀(최대) 플랫폼
다목적이며 최대(full) 리눅스 환경을 말한다. 리눅스의 전체 기능이 포함된다. 하드웨어는 1 개 이상의 다수 프로세서, 메모리, 대용량 저장장치, 네트워크 지원, 사용자 인터페이스 지원 등이 포함된다.
임베디드 소프트웨어 정의
▣ 임베디드 운영체제
▣ 특정 응용에 적용하기 위한 미들웨어
▣ 서비스 개발을 위한 라이브러리
▣ 응용 소프트웨어를 개발하기 위한 개발도구
▣ 응용 소프트웨어/서비스 동작시 시스템을 분석하기 위한 도구
▣ 임베디드 시스템을 구성하기 위한 구성환경
하드웨어의 요구사항
▣ 임베디드 시스템의 하드웨어 구성 및 요구사항 :
임베디드 시스템의 하드웨어 요구사항은 사용 용도에 따라 크게 변한다.
임베디드 시스템의 구성 - H/W
▣ 직렬포트(serial port)
◈ RS232C규격, 몇 m 떨어진 곳의 주변장치대상
◈ 특징: 저속, 간단
▣ 병렬 포트(parallel port)
◈ 시리얼보다 더 근접한 위치의 주변장치 용; 프린터 인터페이스
▣ USB (Universal Serial Bus) 및 IEEE 1394
◈ 최근에는 주변장치에서 많은 멀티미디어 데이터를 처리해야 하기 때문에 직렬이나 병렬 인터페이스로는 부족한 성능을 개선
◈ USB :
최대 12 Mbps까지 전송속도
최대 127개의 주변 장치들을 연결
프린터, 스캐너, 키보드, 조이스틱, MP3 Player 등의 제품에서 사용
◈ IEEE 1394: Apple의 Firewire
400 Mbps까지의 전송속도
최대 63개의 주변장치
하드디스크, CD/CD-RW 및 비디오카메라 등의 제품에서 사용
임베디드 시스템의 구성 - H/W
▣ 입출력 장치
◈ 임베디드 시스템의 동작형태
외부 입력에 반응하여 정해진 작업을 실행하며 지정된 출력을 발생
◈ 임베디드 시스템의 사용방법
폴링 (Polling) : Simple Implementations
인터럽트 (Interrupt) : Efficient Implementations
◈ 입력장치
키보드, 마우스, 마이크 등
센서(Sensor)를 많이 활용
– 외부에서 발생한 물리적인 현상, 즉 온도, 빛, 위치 등의 값 (또는 변화량)들을 임베디드 시스템으로 읽어 들이는 역할을 수행
▣ 네트워크 장치
◈ 멀리 떨어진 곳의 주변장치 제어
◈ 유선 네트워크: 이더넷(Ethernet)이 널리 사용
IEEE 802.3 표준
◈ 무선 네트워크 방식
802.11a, 802.11b 규격
임베디드 시스템의 구성 - S/W
▣ 임베디드 시스템 소프트웨어의 구성
◈ OS : RTOS, Embedded Linux
◈ 시스템 S/W: OS API, Network API, …
◈ 응용 S/W: 각 분야/용도 별
▣ PC S/W vs. 임베디드 시스템 S/W
임베디드 시스템의 구성 - S/W
▣ 운영체제 (Operating System)
◈ 범용 운영체제
다양한 프로그램을 지원 but 덜 매력적
Linux, Microsoft XP 혹은 2000pro 등의 데스크 탑 운영체제
◈ 임베디드 시스템 운영체제
가격 경쟁력을 갖추어야 함
응답 속도, 인터럽터, Efficiency, Scalability, Portability
RTOS는 실시간적 요소를 충족시키기 위해서 모듈화, 선점형 멀티 태스킹, 스케쥴링, 통합 개발 환경 지원
embedded Linux, pocket PC, Nucleus PLUS
Xinu, uC/OS, pSOS, VxWORKs , eCOS , QNX, VRTX , Qplus
임베디드 시스템의 구성 - S/W
▣ 시스템 S/W
◈ 컴퓨터 하드웨어를 관리하고 응용 소프트웨어를 실행하는데 필요한 프로그램들
◈ 미들웨어
◈ 각종 하드웨어 및 주변 장치들을 구동하는 데 필요한 드라이버 프로그램
◈ 서비스 개발을 위항 라이브러리
◈ 응용 소프트웨어를 개발하기 위한 개발도구 (예를 들면 C, C++, 어셈블리 언어, 컴파일러, 디버거, 프로그램 개발도구( Visual studio, Qplus ESTO) )등
임베디드 시스템의 구성 - S/W
▣ 응용 S/W
◈ 임베디드 시스템의 응용소프트웨어
운영체제와 시스템소프트웨어를 이용하여 사용자에게 유익한 작업을 수행하는 소프트웨어들
일반적으로 RAM에 올려져서 동작
많은 경우에 작은 크기의 임베디드 시스템에서는 시스템의 전원이 꺼지더라도 다시 전원을 인가하면 바로 동작이 실행될 수 있도록 만들기 위하여 응용 프로그램을 ROM 혹은 플래시메모리에 저장하기도 함
사용자 작업환경
▣ 타겟보드에서 응용프로그램 작성 및 실행을 위한 환경
▣ 운영체제, 파일시스템, 및 쉘 설치
▣ PC에서 사용자가 당연하다고 여겼던 특징을 임베디드 리눅스 환경에서도 가능하도록 개발자가 고려
▣ 즉 사용자에게 어떤 환경, 파일시스템, 부트로더, 및 응용프로그램 실행서비스를 제공할 것인가를 고려
임베디드 소프트웨어 개발 환경
< 개발 지원 호스트 와 타겟 시스템의 관계 >
크로스 컴파일이후의 처리
▣ 타겟보드에 이미지를 적재하는 방법
▣ 이미지를 적재할 메모리 상의 주소
▣ 프로그램을 실행하는 방법
▣ 프로그램이 원하는 결과를 출력하는 방법
부트 로더 (Boot Loader)
▣ 부트 로더란?
리눅스 커널 부팅 이전에 미리 실행되면서 커널이 올바르게 부팅되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 리눅스 커널을 부팅시키기 위한 목적으로 짜여진 프로그램을 말한다
▣ 부트 로더의 기능
◈ 하드웨어 초기화
◈ 커널의 적재 및 부팅
◈ 디버깅
◈ 플래시 메모리
1-ROM의 코드와 RAM의 데이터
2-ROM으로부터 이미지 전달 후 RAM에서 실행
3-호스트에서 이미지 전달 후에 RAM에서 실행
리눅스 커널 부팅과정
임베디드 소프트웨어 설계
▣ 임베디드 리눅스는 모든 경우에 적합한 것인가?
▣ 과연 리눅스가 개발프로젝트에 대하여 부적절하다고 생각되는 경우는 없을까? 분명히 어떤 운영체제도 모든 경우에 완벽한 경우는 없다.
▣ 커널의 크기 결정 : 개발시스템의 커널 크기와 메모리
▣ 정적/동적 응용프로그램 구성 방법의 결정
▣ 임베디드 리눅스 응용프로그램은 모두 3개의 소프트웨어 계층(커널, C 라이브러리, 응용)으로 구성되는데, 커널로더, 커널, 및 몇 개의 응용프로그램의 정적/동적 연결 방안
시스템의 최적화 위한 하부소프트웨어 결정
▣ Shell
리눅스에는 기본적으로 2 가지의 쉘(Bourne 쉘과 C 쉘). 임베디드 응용에서는 ash를 사용하면 커널의 크기를 크게 절약할 수 있다. ash 쉘은 표준 bash 쉘의 1/3 정도보다 작은 100KB 정도의 크기에 불과하다.
▣ C 라이브러리 결정
응용프로그램의 소프트웨어 요소 중에서 가장 큰 것 중의 하나가 동적 라이브러리이다.
대체 라이브러리가 있는데 dietlibc, Newlib, 및 uClibc 등
▣ 유틸리티 결정
쉘 유틸리티로 grep , awk, 및 expr 등이 있는데 임베디드 시스템을 개발하고자 할 때는 Busybox 가 가장 추천됨
리눅스 커널의 구조
임베디드 환경의 파일 시스템
1. 램 디스크
램의 일부분을 파일 시스템으로 구성하여 디스크 파일 시스템 처럼 읽고 쓸 수 있도록 활용하는 방법
2. Busybox
“multi-call binary” 파일로 시스템 운용에 필요한 여러 필수 유틸리티들을 하나의 실행 파일로 압축, 통합시켜 적은 용량의 램 디스크를 극복하기 위해 활용된다.
3. NFS
호스트 등의 네트워크를 이용하여 외부의 디스크 공간을 루트 디스크로써 활용
디바이스 드라이버 -모듈 프로그래밍
▣ 모듈 프로그래밍의 필요성
◈ 리눅스 커널은 모노리딕 커널; 마이크로 커널 방식이 아님
◈ Monolithic Kernel
An integrated kernel, whole OS functions to itself
Traditional UNIX, SVR4, Solaris, Linux
◈ Micro Kernel
Has the basis kernel with functional servers
VxWorks, pSOS, VRTX, QNX, SROS
▣ 모듈 프로그래밍의 역할
◈ 모듈 프로그래밍으로 모노리딕의 단점을 해결함.
◈ 커널 영역에서 프로그래밍 방법 제공
◈ 디바이스 드라이버를 작성하는 방법
모듈 프로그램의 출력을 오브젝트 모듈 (디바이스 드라이버)
'myPPT' 카테고리의 다른 글
동양 근대의 체육 (0) | 2015.02.27 |
---|---|
봉숭아 꽃의 색깔 및 부위에 따른 색소 침착 정도 (0) | 2015.02.12 |
시설아동을 위한 아동복지실천(시설보호) (3) | 2015.01.30 |
JIT(Just-In-Time) - 기업사례 : TOYOTA자동차 (0) | 2015.01.24 |
장학 행정이란? (0) | 2015.01.19 |