임베디드시스템 -...

21
1 임베디드 시스템 - (1) 임베디드 시스템 개요 Konkuk Univ. Dept. of Electronics Konkuk Univ. Dept. of Electronics

Transcript of 임베디드시스템 -...

Page 1: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

1

임베디드 시스템- (1) 임베디드 시스템 개요

Konkuk Univ.Dept. of Electronics

Konkuk Univ. Dept. of Electronics

Page 2: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

2

수업 순서

• 임베디드 시스템 개요

• Linux

• C언어

• ARM 구조 및 어셈블리 언어

• PXA255 프로세서

• Memory & Peripherals

• 부팅 과정

• 교차 개발환경

• Linux Kernel

• 모듈 및 디바이스 드라이버

• 응용 프로그램 개발

Konkuk Univ. Dept. of Electronics

Page 3: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

3

임베디드 시스템?

• 임베디드 시스템의 정의

– 사람의 간섭없이 독자적 기능을 수행할 수 있는 시스템으로 하드웨어와 소프트웨어로 구성되어 있다.

– 보통 마이크로 프로세서(또는 마이크로 컨트롤러)와 소프트웨어가들어있는 롬으로 구성되며, 전원이 켜지자 마자 특별한 목적을 가진어플리케이션이 동작하고, 이 어플리케이션은 전원을 끌때까지 멈추지 않는다.

– 인터페이스로 키보드, 모니터, 시리얼통신, 큰 저장매체 등의 장비들을 모두 포함하고 있는 것은 아니며, 이들중 시스템에 필요한 용도의 인터페이스만을 제공한다.

– 때때로 실시간(Real-time) 응답이 요구되기도 한다.

– 만일 한 시스템에서 사용자가 프로그램을 바꾸어가면서 여러가지기능을 수행할 수 있다면 그 시스템을 대부분의 사람들이 임베디드시스템이라고 분류하지 않는다(ex : PC)

Konkuk Univ. Dept. of Electronics

Page 4: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

4

임베디드 시스템? – cont.

• 임베디드 시스템 구성요소

– 임베디드 H/W : 프로세서/컨트롤러, 메모리, I/O, 네트워크

– 임베디드 S/W : 커널, 시스템 S/W, 응용 S/W

• 임베디드 시스템 응용분야

– 리모콘, 게임기, 전화기, 계산기

– 정보가전(보일러, 디지털 TV, 냉장고), 정보단말(휴대폰, PDA, 영상전화기)

– 통신장비(라우터, 스위치, 공유기, 게이트웨이)

– 항공/군용(비행기, 미사일 제어)

– 물류/금융(바코드 발급기)

– 차량/교통(네비게이션, ITS)

– 사무, 산업/제어, 의료, …

Konkuk Univ. Dept. of Electronics

Page 5: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

5

실시간 시스템(Real-Time System)• Real-Time System(실시간 시스템)

– 정해진 시간내에 결과를 출력하는 시스템 : 주어진 작업을 빨리 처리하는 것이 아니라 정해진 시간을 넘어서는 안된다는 의미

– 대부분의 임베디드 시스템이 실시간적인 요소가 있음 : 임베디드실시간 시스템

– 경성 실시간 시스템(Hard Real-Time System) : 정해진 시간내에작업의 결과가 절대적으로 출력되어야 하는 시스템(ex:비행제어시스템, 핵발전소의 제어 시스템, 인공위성 제어 시스템)

– 연성 실시간 시스템(Soft Real-Time System) : 정해진 시간 내에작업의 결과가 출력되지 않더라도 치명적인 결과를 초래하지는 않는 시스템

Konkuk Univ. Dept. of Electronics

Page 6: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

6

임베디드 시스템의 OS• OS(Operating System)

– 임베디드 시스템에서 반드시 필요한 것은 아니지만 점점 많은 기능이 임베디드 시스템에서 요구되고 있는 추세에서 아주 중요한 요소임

– OS의 역할

• 하드웨어에 대한 인터페이스 제공 : 하드웨어를 추상화시켜 응용 프로그램의 설계를 용이하게 함

• 테스크들에 대한 스케쥴링 기능으로 MultiTasking을 가능하도록 하는등의 한정된 시스템 자원을 관리해줌

• 실시간 수행기능 지원

Konkuk Univ. Dept. of Electronics

Page 7: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

7

임베디드 시스템의 OS – cont.

• RTOS

– Real-Time OS : 실시간 운영체제

– 상용 RTOS : VRTX, pSOS, OS-9, QNX, Nucleus, VxWorks, Qplus, …

– 무료 RTOS : uCOS, RTEMS, GNU, eCOS, …• 임베디드 OS

– 실시간적 요소를 충족시키지는 못하지만, 개발의 용이성을 가짐

– 실시간 요소가 절대적으로 필요하지 않은 임베디드 시스템에 탑재

– WinCE, Embedded-Linux, RT-Linux, Embedded-Jaba

Konkuk Univ. Dept. of Electronics

Page 8: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

8

임베디드 시스템의 H/W 구성

• 임베디드 시스템 H/W의 특징

– 프로세서 : 프로그램의 명령어 처리

– 메모리 : 프로그램과 데이터의 저장

– 주변장치 : 시스템과 외부장치(External Device)들을 연결

• PC H/W vs 임베디드 시스템 H/W

Konkuk Univ. Dept. of Electronics

H/W 항목 PC 임베디드 시스템

프로세서 고성능 탑재 최소한의 성능 탑재

메모리 대용량 메모리 최소한의 메모리 사용

보조기억장치 다양함 : HDD, ODD, DVD 거의 사용 안함

주변장치 다양함 : KBD, MOUSE, SPK 필요한 장치만 사용

Page 9: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

9

임베디드 시스템의 H/W 구성 – 프로세서

• 프로세서

– 여러 반도체 회사에서 각각 많은 종류의 제품들을 시판

** 마이크로 프로세서 : 컴퓨터의 중앙 처리장치를 단일 IC 칩에 집적시켜 만든 반도체 소자로서, 1971년에 Intel에 의하여 세계최초로 만들어졌으며, 이를 흔히MPU라고 부르기도 한다.

** 마이크로 컨트롤러 : 마이크로 프로세서 중에서, 1개의 칩 내에 CPU 기능에 추가하여 일정한 용량의 메모리(ROM, RAM 등)와 입출력 제어 인터페이스 회로까지를 내장한 것을 특별히 마이크로 컨트롤러라고 부른다. MCU라고 부른다.

• 프로세서의 속도

– 수 MHz ~ 수백 MHz

– 8bit, 16bit, 32bit, 64bit : 데이터 버스의 크기와 기본 연산의 단위에 따라서 선택

• 많은 종류의 MPU, MCU 중에서 용도에 맞는 가격대비 성능이성능이 최적인 제품을 찾아내는 것은 매우 어려운 일

Konkuk Univ. Dept. of Electronics

Page 10: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

10

임베디드 시스템의 H/W 구성 – 메모리(1)

• 임베디드 시스템의 메모리 선택– 운영체제와 응용 소프트웨어가 사용하는 메모리의 종류 및 크기

• 메모리의 주요 역할– 프로그램과 데이터의 저장

• ROM(Read Only Memory)– 전원이 차단된 경우에도 메모리의 프로그램 또는 데이터가 없어지

면 안되는 경우

– ROM, PROM(Programmable ROM), EPROM(Erasable PROM)

– FLASH Memory

– PC : BIOS(Basic Input Output System)가 EPROM에 상주• 전원이 처음 공급될 때 시작되어 각종 입출력 장치등의 주변기기 초기

• 그 이후 운영체제를 디스크나 하드디스크에서 읽어 RAM에 저장하고그 이후에는 운영체제가 RAM에서 실행을 시작

• 부팅이 되고 난 후에 PC는 운영체제가 시작되고 각종 응용 프로그램이실행되어 사용자의 입력을 기다리는 상태가 됨

Konkuk Univ. Dept. of Electronics

Page 11: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

11

임베디드 시스템의 H/W 구성 – 메모리(2)

• RAM(Random Access Memory)

** Random Access : 기억장치의 주소를 CD나 HDD 처럼 순서대로읽지 않고 원하는 주소를 마음대로 읽을 수 있기 때문에 유래됨

– 메모리의 내용이 수정될 수 있다.

– DRAM(Dynamic Random Access Memory)

• DRAM은 대용량이 필요한 경우에 많이 사용

• Refresh 필요

– SRAM(Static Random Access Memory)

• 일반적으로 SRAM은 소용량

• 고속으로 읽고 써야 하는 경우에 주로 사용 : ex) 캐쉬 메모리

Konkuk Univ. Dept. of Electronics

Page 12: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

12

임베디드 시스템의 H/W 구성– 입출력장치

• 임베디드시스템의동작형태– 외부 입력에 반응하여 정해진 작업을 수행하며 지정된 출력을 발생

• 임베디드시스템의입출력장치사용방법– 폴링– 인터럽트

• 입력장치– 키보드, 마우스, 마이크, 터치스크린, 푸시버튼, 스위치등– 센서 : 외부에서 발생한 물리적인 현상, 즉 온도, 빛, 위치 등의 값

(또는 변화량) 들을 임베디드 시스템으로 읽어들이는 역할을 수행

• 출력장치– LED : 출력신호의 On/Off 상태를 표시하기 위해 사용– 7-segment display : 숫자와 알파벳– LCD(Liquid Crystal Display) : 많은 양의 정보를 표시해야 하는 경

Konkuk Univ. Dept. of Electronics

Page 13: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

13

임베디드 시스템의 H/W 구성– 네트워크 장치(1)

• 네트워크 장치의 용도– 멀리 떨어진 곳의 주변장치 제어– 원격지로부터 동작명령 수용 및 상태표시– 다운로드를 통한 응용프로그램의 Upgrade

• 유선네트워크: 이더넷(Ethernet) 이 널리 사용– IEEE 802.3 표준– 현재시점에서 가장 많이 사용되는 근거리통신망(LAN : Local Area

Network)– 10 Base-T : 10 Mbps 의 전송속도– CSMA/CD (Carrier Sense Multiple Access/ Collision Detect) 프

로토콜 구현– 10/100 이더넷 : 100 Mbps 까지 겸용으로 낼 수 있는 고속 이더넷– Gigabit 이더넷을 지원하는 제품들도 사용하기 시작– 10 Gigabit 이더넷 개발완료

Konkuk Univ. Dept. of Electronics

Page 14: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

14

임베디드 시스템의 H/W 구성– 네트워크 장치(2)

• 무선네트워크방식– 802.11a :

• 5 GHz 대역에서 OFDM(Orthogonal Frequency Division Multiplexing) 변조방식 사용

• 54 Mbps 의 전송속도

– 802.11b :

• 2.4 GHz 대역에서 Direct Sequence Spread Spectrum 변조방식 사용

• 11Mbps 의 전송속도

• 현재는802.11b 가 낮은 전송속도에도 불고하고 낮은 대역으로인한 넓은 지역(~300feet : 802.11a는 ~60feet)에서 사용할수 있기 때문에 더 많이 사용

Konkuk Univ. Dept. of Electronics

Page 15: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

15

임베디드 시스템의 H/W 구성– 입출력 장치

• 직렬포트(Serial Port)– RS 232C 규격, 몇 M 떨어진 곳의 주변장치 대상– Minicom 혹은hyper-terminal 을 통해 임베디드 시스템의 콘

솔로 사용– 특징: 저속, 간단

• 병렬포트(Parallel Port)– Serial 보다 더 근접한 위치의 주변장치용 : 프린터인터페이

스– JTAG 을 이용하여 Flash Fusing 에도 사용

• USB(Universal Serial Bus)– 최대 12Mbps 까지 전송속도– 최대 127개의 주변장치들을 연결– 프린터, 스캐너, 키보드, 조이스틱, mp3 플레이어 등의 제품

에서 사용– 호스트와 USB 를 통하여 가상 인터넷 프로토콜 구현

Konkuk Univ. Dept. of Electronics

Page 16: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

16

임베디드 시스템의 S/W 구성

• 임베디드 시스템 소프트웨어의 구성– OS : RTOS, Embedded OS, …– 시스템 S/W : OS API, Network API, …– 응용 S/W : 각 분야/용도 별

• PC S/W vs 임베디드 시스템 S/W

Konkuk Univ. Dept. of Electronics

H/W 항목 PC 임베디드 시스템

프로세서 Windows, LINUX, … RTOS, Embedded Linux, …

시스템 S/W Windows API RTOS, Linux API

메모리 대용량 메모리 메모리에서 읽어온다

개발환경 Visual Studio, … 교차 개발 환경

Page 17: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

17

임베디드 시스템의 S/W 구성 - OS

• 범용 운영체제

– 다양한 프로그램을 지원

– Linux, Microsoft 2000/XP/Vista, …• 다양한 장치와 다양한 작업을 수행

• 기본적으로 큰 메모리를 필요로 함

• 임베디드 시스템의 운영체제

– 가격 경쟁력을 갖추어야 함

– 작은 크기의 메모리에도 원활하게 동작하는 운영체제가 바람직함

– Embedded Linux, WinCE, pocket PC, Qplus, …

Konkuk Univ. Dept. of Electronics

Page 18: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

18

임베디드 시스템의 S/W 구성 – 시스템 S/W

• 컴퓨터 하드웨어를 관리하고 응용소프트웨어를 실행하는데 필요한 프로그램들

• 운영체제, 컴파일러

• 각종 하드웨어 및 주변장치들을 구동하는데 필요한 프로그램

• TCP/IP를 비롯하여 시스템을 네트워크로 연결하는데 필요한 각종 소프트웨어

• 프로그램을 개발하는데 사용되는 여러 프로그래밍 언어(ex: C, C++, 어셈블리언어), 컴파일러, 디버거, 프로그램 개발도구 등

Konkuk Univ. Dept. of Electronics

Page 19: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

19

임베디드 시스템의 S/W 구성 – 응용 S/W

• 임베디드 시스템의 응용 소프트웨어– 운영체제와 시스템 소프트웨어를 이용하여 사용자에게 유익한 작

업을 수행하는 소프트웨어들• DTP(Desk Top Publishing)

• PIM(Personal Information Management)

• CAD(Computer Aided Design)

• 과학계산용 소프트웨어(ex: Matlab)

• 웹 브라우저

• 멀티미디어 재생기 등

– 일반적으로 RAM 에 올려져서 동작

– 많은 경우에 작은 크기의 임베디드 시스템에서는 시스템의 전원이꺼지더라도 다시 전원을 인가하면 바로 동작이 실행될 수 있도록ROM, 혹은 FLASH 메모리에 저장하기도 함.

Konkuk Univ. Dept. of Electronics

Page 20: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

20

임베디드 시스템의 전망 – H/W

• 컴퓨터 하드웨어 기술 : 무어의 법칙에 따라서 계속 발전• 프로세서

– 데이터 처리용량 증가 : 32비트 코어=> 64비트 코어로 발전– 고성능 파이프라인, DSP, 자바처리전용H/W 추가

• 메모리– 대용량화 DRAM– FLASH 메모리의 사용증가

• 네트워크– 유무선 네트워크의 계속적인 증가

• SOC (System On a Chip)– CPU, 메모리, DSP, 주변장치 등을 한 칩으로 만드는 기술

• 이전에 한 PCB 보드에 CPU, 메모리, 주변장치 칩을 따로 설계• 각 칩에 해당하는 회로를 각각의IP(Intellectual Property)로 대치

– Post PC 시대의 하드웨어 기술의 핵심• 고성능, 저전력, 저가격, 안정성, 내구성, 혁신적 디자인 등이 가능

Konkuk Univ. Dept. of Electronics

Page 21: 임베디드시스템 - home.konkuk.ac.krhome.konkuk.ac.kr/~halite/d4_1/01_임베디드시스템개요.pdf · 어와소프트웨어로구성되어있다. –보통마이크로프로세서(또는마이크로컨트롤러)

21

임베디드 시스템의 전망 – S/W

• OS– Plug-and-play RTOS– Linux will be there– Windows 시장진입노력: CE, .NET

• System S/W– 새로운 장치와 고성능화 하는 장치에 맞는 API 계속 개발– Device Driver 자동생성 도구 발전 : MS Platform Builder– Middle ware의 등장

• Application S/W– Component based Design : PNP 응용 소프트웨어 개발이 가속화– S/W Modeling CAD Tool

• Development Tool– CAD Tools for Rapid S/W development

• Automatic source code generation tool : Objecttime, RoseRT

Konkuk Univ. Dept. of Electronics