임베디드시스템 -...
TRANSCRIPT
1
임베디드 시스템- (1) 임베디드 시스템 개요
Konkuk Univ.Dept. of Electronics
Konkuk Univ. Dept. of Electronics
2
수업 순서
• 임베디드 시스템 개요
• Linux
• C언어
• ARM 구조 및 어셈블리 언어
• PXA255 프로세서
• Memory & Peripherals
• 부팅 과정
• 교차 개발환경
• Linux Kernel
• 모듈 및 디바이스 드라이버
• 응용 프로그램 개발
Konkuk Univ. Dept. of Electronics
3
임베디드 시스템?
• 임베디드 시스템의 정의
– 사람의 간섭없이 독자적 기능을 수행할 수 있는 시스템으로 하드웨어와 소프트웨어로 구성되어 있다.
– 보통 마이크로 프로세서(또는 마이크로 컨트롤러)와 소프트웨어가들어있는 롬으로 구성되며, 전원이 켜지자 마자 특별한 목적을 가진어플리케이션이 동작하고, 이 어플리케이션은 전원을 끌때까지 멈추지 않는다.
– 인터페이스로 키보드, 모니터, 시리얼통신, 큰 저장매체 등의 장비들을 모두 포함하고 있는 것은 아니며, 이들중 시스템에 필요한 용도의 인터페이스만을 제공한다.
– 때때로 실시간(Real-time) 응답이 요구되기도 한다.
– 만일 한 시스템에서 사용자가 프로그램을 바꾸어가면서 여러가지기능을 수행할 수 있다면 그 시스템을 대부분의 사람들이 임베디드시스템이라고 분류하지 않는다(ex : PC)
Konkuk Univ. Dept. of Electronics
4
임베디드 시스템? – cont.
• 임베디드 시스템 구성요소
– 임베디드 H/W : 프로세서/컨트롤러, 메모리, I/O, 네트워크
– 임베디드 S/W : 커널, 시스템 S/W, 응용 S/W
• 임베디드 시스템 응용분야
– 리모콘, 게임기, 전화기, 계산기
– 정보가전(보일러, 디지털 TV, 냉장고), 정보단말(휴대폰, PDA, 영상전화기)
– 통신장비(라우터, 스위치, 공유기, 게이트웨이)
– 항공/군용(비행기, 미사일 제어)
– 물류/금융(바코드 발급기)
– 차량/교통(네비게이션, ITS)
– 사무, 산업/제어, 의료, …
Konkuk Univ. Dept. of Electronics
5
실시간 시스템(Real-Time System)• Real-Time System(실시간 시스템)
– 정해진 시간내에 결과를 출력하는 시스템 : 주어진 작업을 빨리 처리하는 것이 아니라 정해진 시간을 넘어서는 안된다는 의미
– 대부분의 임베디드 시스템이 실시간적인 요소가 있음 : 임베디드실시간 시스템
– 경성 실시간 시스템(Hard Real-Time System) : 정해진 시간내에작업의 결과가 절대적으로 출력되어야 하는 시스템(ex:비행제어시스템, 핵발전소의 제어 시스템, 인공위성 제어 시스템)
– 연성 실시간 시스템(Soft Real-Time System) : 정해진 시간 내에작업의 결과가 출력되지 않더라도 치명적인 결과를 초래하지는 않는 시스템
Konkuk Univ. Dept. of Electronics
6
임베디드 시스템의 OS• OS(Operating System)
– 임베디드 시스템에서 반드시 필요한 것은 아니지만 점점 많은 기능이 임베디드 시스템에서 요구되고 있는 추세에서 아주 중요한 요소임
– OS의 역할
• 하드웨어에 대한 인터페이스 제공 : 하드웨어를 추상화시켜 응용 프로그램의 설계를 용이하게 함
• 테스크들에 대한 스케쥴링 기능으로 MultiTasking을 가능하도록 하는등의 한정된 시스템 자원을 관리해줌
• 실시간 수행기능 지원
Konkuk Univ. Dept. of Electronics
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
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 필요한 장치만 사용
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
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
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
12
임베디드 시스템의 H/W 구성– 입출력장치
• 임베디드시스템의동작형태– 외부 입력에 반응하여 정해진 작업을 수행하며 지정된 출력을 발생
• 임베디드시스템의입출력장치사용방법– 폴링– 인터럽트
• 입력장치– 키보드, 마우스, 마이크, 터치스크린, 푸시버튼, 스위치등– 센서 : 외부에서 발생한 물리적인 현상, 즉 온도, 빛, 위치 등의 값
(또는 변화량) 들을 임베디드 시스템으로 읽어들이는 역할을 수행
• 출력장치– LED : 출력신호의 On/Off 상태를 표시하기 위해 사용– 7-segment display : 숫자와 알파벳– LCD(Liquid Crystal Display) : 많은 양의 정보를 표시해야 하는 경
우
Konkuk Univ. Dept. of Electronics
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
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
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
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, … 교차 개발 환경
17
임베디드 시스템의 S/W 구성 - OS
• 범용 운영체제
– 다양한 프로그램을 지원
– Linux, Microsoft 2000/XP/Vista, …• 다양한 장치와 다양한 작업을 수행
• 기본적으로 큰 메모리를 필요로 함
• 임베디드 시스템의 운영체제
– 가격 경쟁력을 갖추어야 함
– 작은 크기의 메모리에도 원활하게 동작하는 운영체제가 바람직함
– Embedded Linux, WinCE, pocket PC, Qplus, …
Konkuk Univ. Dept. of Electronics
18
임베디드 시스템의 S/W 구성 – 시스템 S/W
• 컴퓨터 하드웨어를 관리하고 응용소프트웨어를 실행하는데 필요한 프로그램들
• 운영체제, 컴파일러
• 각종 하드웨어 및 주변장치들을 구동하는데 필요한 프로그램
• TCP/IP를 비롯하여 시스템을 네트워크로 연결하는데 필요한 각종 소프트웨어
• 프로그램을 개발하는데 사용되는 여러 프로그래밍 언어(ex: C, C++, 어셈블리언어), 컴파일러, 디버거, 프로그램 개발도구 등
Konkuk Univ. Dept. of Electronics
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
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
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