Professional Documents
Culture Documents
Ch 3 (1) - Embedded System HW & SW의 구성 요소 (한양대)
Ch 3 (1) - Embedded System HW & SW의 구성 요소 (한양대)
Embedded System HW 및 SW 의 구성 요소
Embedded System HW 및 SW 의 구성 요소
Embedded System 이란 ?
하드웨어 구성 요소
소프트웨어 구성 요소
Embedded System 의 실례
Embedded System 의 산업 구조
Copyrightⓒ2004 1
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System HW 및 SW 의 구성 요소
Embedded System 이란 ?
하드웨어 구성 요소
소프트웨어 구성 요소
Embedded System 의 실례
Embedded System 의 산업 구조
Copyrightⓒ2004 2
3 장 . Embedded System HW 및 SW 의 구성 요소
정의 및 필요성
정의
마이크로프로세서가 내장되어 있고 , 마이크로 시스템을
구동하여 특정한 작업을 처리하기 위하여 프로그램이 내장되어
있는 시스템
' 내장형 시스템‘
소형화 & 저전력 구현
필요성
특정한 업무를 효과적으로 수행
가격대 성능비의 최대화
Copyrightⓒ2004 3
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 의 구성 요소
일반적으로 하드웨어 (hardware) 부분과 소프트웨어 (software)
부분으로 구분
구성 요소
Embedded H/W : 프로세서 / 컨트롤러 , 메모리 , I/O, 네트워크
Embedded S/W : 커널 , 시스템 S/W, 응용 S/W
Memory Application
H/W S/W
Embedded System
Copyrightⓒ2004 4
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 의 특징
Embedded system 의 등장 초기
낮은 연산능력 (4/8/16 bit microprocessor)
언어 : assembly language
순차적으로 동작하는 응용소프트웨어
Embedded system 의 현재
높은 연산능력 (32/64 bit microprocessor)
언어 : C/C++ language
운영체제 (operating system) 사용
멀티태스킹
네트워킹
Copyrightⓒ2004 5
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 6
3 장 . Embedded System HW 및 SW 의 구성 요소
실시간 시스템의 분류
Hard Real-Time system : 제어작업이 deadline 을 어기는 경우 시스템에 심각한
영향을 주는 time-critical 속성을 지닌 시스템
예 ) 항공기 , 우주 왕복선 , 자동차 등
Soft Real-Time system : Deadline 을 넘는 시간 지연이 발생하더라도 시스템의
에러가 되지 않는 시스템
예 ) 컴퓨터 , 정보기기 , 네트워크 관련기기 등
Copyrightⓒ2004 7
3 장 . Embedded System HW 및 SW 의 구성 요소
Safe, Reliable
Embedded 운영체제는 안정성 있고 , 신뢰할 수 있게 설계되어야 함 .
Harsh Environment
불안정한 환경에서도 오류 없이 안정적으로 동작되도록 설계되어야
함.
Cost Sensitivity
저가의 비용으로 효율적인 시스템을 설계하여야 함 .
Copyrightⓒ2004 8
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 9
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 10
3 장 . Embedded System HW 및 SW 의 구성 요소
하드웨어 구성도
하드웨어 부분
Copyrightⓒ2004 11
3 장 . Embedded System HW 및 SW 의 구성 요소
Microprocessor
Embedded system 의 핵심
PC 에 비해 저전력이 요구됨
RISC Vs. CISC
RISC 구조가 CISC 구조에 비해 명령어 구조가 간단함
Pipeline 의 적용이 쉬운 RISC 구조가 저전력 , 고성능
ARM core
강력한 성능 , 저전력을 위한 구조
Pipeline, Dynamic voltage scaling, RISC
고성능 ARM core 전용 bus : AHB, ASB, AHB
net-list 형태로도 제공함
현재 임베디드 시스템에서 주로 사용되는 CPU
DSP 의 이용
디지털 신호처리가 많이 사용되는 임베디드 시스템
디지털 신호처리 시 뛰어난 성능
Teak DSP
Copyrightⓒ2004 12
3 장 . Embedded System HW 및 SW 의 구성 요소
Memory
Embedded System 에서 메모리의 선택
운영체제와 응용 소프트웨어의 중요도와 크기에 따라 선택
메모리의 주요 역할 : 프로그램과 데이터 저장
메모리의 종류
비휘발성 메모리
ROM (Read Only Memory)
PROM (Programmable Read Only Memory)
EPROM (Erasable Programmable Read Only Memory)
FLASH 메모리
휘발성 메모리 (RAM)
SRAM
DRAM
SDRAM, DDR-RAM
Copyrightⓒ2004 13
3 장 . Embedded System HW 및 SW 의 구성 요소
Communication Network
Embedded system 에서의 communication network
Heterogeneous/Homogeneous components 간의 통신
표준 on-chip network 규격을 사용하면 embedded processors 들과
CPU/signal processors 들 및 여러 개의 peripherals 들로 구성된 SoC
design 개발을 쉽고 저렴하게 구축할 수 있음
일반적인 On-chip-network 종류
Point-to-Point
2D-Mesh
Crossbar
BUS
Copyrightⓒ2004 14
3 장 . Embedded System HW 및 SW 의 구성 요소
Bus : Example
AMBA Bus
ARM 사에서 공개한 표준 on-chip bus 규격으로 SoC design 을 구성하는 기능
블럭들의 연결 방법과 운영 방식들을 상세히 설명함
ARM core 에 최적화
임베디드 시스템에서 주로 사용되는 ARM core 와 pair 로 많이 사용된다 .
AHB, ASB, APB
Copyrightⓒ2004 15
3 장 . Embedded System HW 및 SW 의 구성 요소
입출력장치
Embedded system 의 입출력 형태
외부 입력에 반응하여 정해진 작업을 실행하며 지정된 출력을 발생
Embedded system 의 입력방법
폴링 (Polling) : 명령어를 사용하여 입력 핀 또는 값을 계속 읽어서 변화를 알아내는 것
인터럽트 (Interrupt) : CPU 자체가 하드웨어적으로 그 변화를 체크하여 변화시 일정한
대처를 하는 것
마우스
키보드 입출력장치 병렬포트
시리얼보다 더 근접한 위치의 주변장치들과 입출력 함
Copyrightⓒ2004 16
3 장 . Embedded System HW 및 SW 의 구성 요소
MB-OFDM
3 4 5 6 7 8 9 10 11
MB-OFDM Alliance (Intel, TI, Time-Domain) 주도함
Multi-Band OFDM 기반함
Modulation : 128-point IFFT
Support 4 Piconets on Multi-Band Hopping
MultiBand-OFDM vs WLAN
IEEE 802.15.3a MB-OFDM UWB IEEE 802.11a WLAN
Madatory 55, 110, 200 Mbps 6, 12, 24 Mbps
Data-Rate
Optional 80, 160, 320, 480 Mbps 9, 18, 36, 48, 54 Mbps
BPSK OFDM (for 6, 9 Mbps)
Constellation QPSK OFDM (for 12, 18 Mbps)
QPSK OFDM
/Modulation 16-QAM OFDM (for 24, 36 Mbps)
64-QAM OFDM (for 48, 54 Mbps)
IFFT/FFT Size 128 (= 27) 64 (= 26)
Data 100 48
Number of
Subcarriers 12 (Dedicated Tones) + 10 (Guard
Pilot 4
Tones)
Total Bandwidth (Minimum Sampling Rate) 528 MHz X 3 (528 Msps) 20 MHz (20 Msps)
Bandwidth of Subcarrier (∆F) 4.125 MHz (= 528MHz / 128) 0.3125 MHz (= 20MHz / 64)
Copyrightⓒ2004 18
3 장 . Embedded System HW 및 SW 의 구성 요소
입출력장치
Wireless LAN
사용주파수 : 2.4 - 2.48GHz
IEEE 802.11a
IEEE 802.11b
IEEE 802.11g
UWB
IEEE 802.15.3a
저전력 ( 수백 mW)
초고속 (~1Gbps) 통신 가능
근거리 무선 통신 (WPAN)
간섭을 일으킬 확률이 매우 낮다는 것
대용량의 데이터를 고속으로 전송
Copyrightⓒ2004 19
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 20
3 장 . Embedded System HW 및 SW 의 구성 요소
소프트웨어 구성도
Embedded software 의 계층화된 구조
Diagnostic and application layer
Error Memory
MMI/GUI
Handling Allocation
Host Application Diagnostics
Message Task State
Manager Controller Machine
Device Drivers
RTOS layer
Hardware
Copyrightⓒ2004 21
3 장 . Embedded System HW 및 SW 의 구성 요소
상용 RTOS Embedded OS
WindRiver 사 - VxWorks Windows CE
Qplus
Copyrightⓒ2004 22
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded OS 의 기본 요소
Kernel, 멀티 태스킹 , Scheduler, 선점 (Preemptive), Semaphore,
Deadlock, Priority Inversion, Interrupt service, Mutual exclusion
…
임베디드 리눅스 커널 구조
메모리에 상주하여 시스템 구동에 필요한 환경을 만들고
관리하는 소프트웨어
작은 의미의 OS 자체
시스템 내의 모든 리소스 (H/W, S/W) 관리
응용 프로그램에게 서비스제공
Copyrightⓒ2004 23
3 장 . Embedded System HW 및 SW 의 구성 요소
커널의 역할 및 구조
Copyrightⓒ2004 24
3 장 . Embedded System HW 및 SW 의 구성 요소
커널 모듈 프로그램의 기본 구조
#include <linux/kernel.h> /* 커널에서 수행될 때 필요한 헤더 파일 */
Int init_module()
{
/* 모듈이 설치될 때 초기화를 수행하는 코드 */
…………..
}
Void cleanup_module()
{
/* 모듈이 제거될 때 반한 작업을 수행하는 코드 */
………..
}
Copyrightⓒ2004 25
3 장 . Embedded System HW 및 SW 의 구성 요소
Device Driver
디바이스 드라이버 정의
물리적인 하드웨어 장치를 다루고 관리하는 소프트웨어
커널의 일부분
주번호 (major number)
디바이스에 고유하게 주어지는 번호로 장치와 연관된 driver 를 찾는데 사용
부번호 (minor number)
같은 메이저 번호를 공유하는 장치에서 특정 장치를 나타내는 숫자
디바이스 드라이버의 용도
응용프로그램에서 하드웨어장치를 이용해서 데이터를 직접 읽고 쓰거나
제어해야 하는 경우에 디바이스 드라이버를 이용
디바이스 드라이버의 구성
함수와 자료구조의 집합
Copyrightⓒ2004 26
3 장 . Embedded System HW 및 SW 의 구성 요소
Device Driver
디바이스 드라이버 구성도
User Program
User Level
File System
Network
Buffer Cache
Subsystem
BSD socket
Kernel level
Character Block Network Transport (TCP,UDP)
Network(IP)
Device Drivers
Device Interface
Copyrightⓒ2004 27
3 장 . Embedded System HW 및 SW 의 구성 요소
Boot
Bootcode
code blkdevs[] chrdevs[]
blkdevs[] chrdevs[]
int
intcode
code Y_open()
Y_open() Z_open()
Z_open()
Q_open()
Q_open() O_open()
O_open()
Y_release()
Y_release() Z_release()
Z_release()
Q_read()
Q_read() O_read()
O_read()
Y_read()
Y_read() Z_readl()
Z_readl()
Q_ioctl()
Q_ioctl() O_ioctl()
O_ioctl()
X_open() Y_write()
Y_write() Z_write()
Z_write()
X_open() Q_write()
Q_write() O_write()
O_write()
X_release() Y_ioctl()
Y_ioctl() Z_ioctl()
Z_ioctl()
X_release() Q_close()
Q_close() O_close()
O_close()
X_read() Y_int()
Y_int() Z_int()
Z_int()
X_read()
X_write() Y_init()
Y_init() Z_init()
Z_init()
X_write()
X_ioctl()
X_ioctl()
X_int()
X_int() Interrupt X_controller
X_init()
X_init() Set
Setof
ofRegisters
Registers
dev1
dev1 dev2
dev2 dev3
dev3
Copyrightⓒ2004 28
3 장 . Embedded System HW 및 SW 의 구성 요소
드라이버
설명
종류
디바이스를 파일처럼 취급하고 접근하여 직접 읽기 / 쓰기를 수행
문자
데이터 형태는 스트림 방식으로 전송
드라이버
EX) 콘솔 , 키보드 , 시리얼 포트 드라이버등
Copyrightⓒ2004 29
3 장 . Embedded System HW 및 SW 의 구성 요소
커널 내 모듈 적재
5. call
디바이스 닫기 디바이스 닫기
6.
return
커널 내 모듈 제거
종료
Copyrightⓒ2004 30
3 장 . Embedded System HW 및 SW 의 구성 요소
디바이스 드라이버 코드
init_module( )
커널 모듈이 적재될 때 호출되는 함수 insmod
cleanup_module( )
커널 모듈이 제거될 때 호출되는 함수 rmmod
file_operation
operation 및 연관된 함수 정의
Keypad 의 경우는 open, release, ioctl, read 사용
open
디바이스를 사용하기 위해 해당 디바이스를 여는 함수
디바이스를 사용하는 응용 프로그램의 수를 저장
release
해당 디바이스가 응용 프로그램에 의해서 더 이상 사용되지 않을 때 호출
디바이스를 사용하는 응용 프로그램의 개수를 감소
ioctl
디바이스에 종속적인 명령을 만들 수 있도록 하는 함수
read
keypad 로부터 읽혀진 데이터 값을 커널 메모리 영역으로부터 사용자 영역으로
복사하는 역할을 수행 copy_to_user( ) 이용
Write 의 경우는 copy_from_user( ) 이용
Copyrightⓒ2004 31
3 장 . Embedded System HW 및 SW 의 구성 요소
디바이스 드라이버 모듈 동작 원리
register_chrdev(major, *name, *fops)
init_module()
{
{
insmod my_drv.o MAJOR == 0; chrdevs[] 자동할당
register_chrdev()
MAJOR != 0; chrdevs[major];
}
}
my_drv_open()
{ device_struct
request_irq()
} chrdevs[]
my_drv_fops
my_drv_fops 0
1
my_drv_release() my_drv_open
{ 2
free_irq() my_drv_release 3
}
my_drv_read .
.
my_drv_read() my_drv_write .
{ .
copy_to_user() 255
}
my_drv_write()
{
copy_from_user()
}
cleanup_module()
register_chrdev(major, *name)
{
{
unregister_chrdev()
rmmod my_drv }
}
Copyrightⓒ2004 32
3 장 . Embedded System HW 및 SW 의 구성 요소
key_init( )
1. static int __init key_init(void)
2. {
3. int result;
4. int ret;
5. unsigned long immr;
6. printk(KERN_WARNING "key: key module is loading...\n");
7. result = register_chrdev(key_major, "key_dd", &key_fops); device driver 등록
20. if(ret) {
21. printk(KERN_WARNING "Cannot request IRQ 0\n");
22. result = -EFAULT;
23. }
24. keyport = (unsigned char *)ioremap(0x20000000, sizeof(char)); Memory Address 지정
25. inter = (unsigned short *) keyport;
Copyrightⓒ2004 33
3 장 . Embedded System HW 및 SW 의 구성 요소
key_cleanup()
1. static void __exit key_cleanup(void)
2. {
3. free_irq(keypad_irq,NULL); IRQ 해제
4. iounmap(keyport); memory 해제
6. }
Copyrightⓒ2004 34
3 장 . Embedded System HW 및 SW 의 구성 요소
key_fops
1. struct file_operations key_fops = {
2. ioctl : key_ioctl,
3. open : key_open,
4. read : key_read,
5. release : key_release,
6. };
Copyrightⓒ2004 35
3 장 . Embedded System HW 및 SW 의 구성 요소
key_release
1. int key_release(struct inode *inode, struct file *filp)
2. {
3. MOD_DEC_USE_COUNT;
4. return 0;
5. }
Copyrightⓒ2004 36
3 장 . Embedded System HW 및 SW 의 구성 요소
key_read
1. static ssize_t key_read(struct file *file, char *buffer, size_t count, loff_t *offset){
2. int i,size,tmp;
읽어 들일 배열의 개수
3. printk(" count is %d\n",count);
4. size = strlen(key_buff); 현재 메모리의 입력된 개수
5. printk(" size is %d\n",size);
6. if(size < count){
7. copy_to_user(buffer,&key_buff, size); 사용자 메모리 영역으로 복사
8. for(i=0; i<size; i++) 초기화
9. key_buff[i] = '\0';
10. loc = 0;
11. return size;
12. }
13. else {
14. copy_to_user(buffer,&key_buff, count); 사용자 메모리 영역으로 복사
15. for(i=0; i< (size - count);i++){
16. key_buff[i]= key_buff[i+count]; 남은 데이터 앞으로 이동
17. key_buff[i+count] = '\0';
18. }
19. loc = tmp = size - count; 요청된 개수를 읽고 남은 개수 표시
Copyrightⓒ2004 37
3 장 . Embedded System HW 및 SW 의 구성 요소
Keypad 응용 프로그램
1. int main()
2. {
3. int fd, i, retval;
4. char value[256];
5. unsigned short buf, buf1, buf2;
6. fd = open(“/dev/key_dd”, O_RDWR);
7. if(fd < 0)
8. {
9. printf(“fd error()\n”);
10. exit(1);
11. }
12. retval = read(fd, &value, 5);
13. for(i=0 ; i<retval; i++)
14. {
15. operation
16. }
17. }
Copyrightⓒ2004 38
3 장 . Embedded System HW 및 SW 의 구성 요소
응용 프로그램
라이브러리
소켓 Pthread 시스템
라이브러리 라이브러리 설정
및
시스템 콜 인터페이스
구축
프로세스 관리 메 네 입 툴킷
모 트 출
실시간 처리 리 웍 력 (Target
관 관 관 builder)
저전력 관리모듈 리 리 리
하드웨어 디바이스
Fast Boot
관리 드라이버
하드웨어
Copyrightⓒ2004 39
3 장 . Embedded System HW 및 SW 의 구성 요소
미들웨어
일반적으로 미들웨어란 두개 이상의 시스템 혹은 프로그램 사이에서
둘 사이를 중재하는 프로그래밍 서비스를 의미
응용 논리 DB Service
API
SQL SQL
IPC
미들웨어 NPS 미들웨어
미들웨어
LAN
클라이언트 서버
Copyrightⓒ2004 40
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 41
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 42
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 43
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 의 활용
Copyrightⓒ2004 44
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 의 실례
정보가전
정보를 이용해서 TV, 냉장고 , 세탁기 , 청소기 등의 가전용품을 인터넷 등에
연동
Digital TV
Digital 영상 및 음성 정보 + 부가적인 Digital 데이터
데이터 : 프로그램에 관련된 정보 및 다른 부가서비스 관련 정보
VOD(Video On Demand), 양방향 TV 등이 가능
인터넷 냉장고
15.1 인 치 액 정 화 면 (TFT LCD) 과
LAN 포트를 장착
인터넷에서 쇼핑 , 양방향 화상통신 ,
TV 방송 수신 및 e 메일 송수신
게임기
소니 PlayStation2 Computer Entertainment System
Emotion Engine™ 이라는 multimedia processor
MIPS 프로세서를 탑재
Copyrightⓒ2004 45
3 장 . Embedded System HW 및 SW 의 구성 요소
Ubiquitous
넓은 의미
“Ubiquitous” 는「편재:어디에나 있다」
“Ubiquitous Computing” 을 단순하게 「언제든、어디에서든 컴퓨터를 사용할 수 있는 것
」
Copyrightⓒ2004 46
3 장 . Embedded System HW 및 SW 의 구성 요소
Copyrightⓒ2004 47
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 시장
제 1 강자는 없다
Embedded System 하드웨어
모토롤라반도체 사업부
32 비트 시장 중심 가장 다양한 제품군 보유 (MC683XX, MPC8260,…)
썬마이크로시스템즈
성능 강화에 중점을 둔 64 비트 고성능 프로세서 출시
High-End 시장 선도
Copyrightⓒ2004 48
3 장 . Embedded System HW 및 SW 의 구성 요소
Embedded System 세계 시장 동향
미국
프로세서 , OS, 프로토콜 등 전 분야를 점유
미국은 군사 / 과학용 Embedded S/W 를 21 세기 핵심 분야로 선정하고
매년 4 천억 달러 이상을 연구개발에 투자
유럽
개발도구 , 부라우저 등의 일부 업체가 존재
군사 / 교통용 Embedded S/W 에 ’ 99 년 부터 7 년간 3 조 8 천억을 투자
일본
총무성 주도로 ubiquitous 네트워크 개발을 추진 중
’84 년부터 TRON 협회에서 표준 Embedded OS 를 개발 , 일본 내
가전제품에 적용 중
Embedded OS
Real-Time Operating System 중심
MS 의 WinCE 및 Embedded 리눅스 진입 시작
미들웨어 , 각종 서비스를 포괄하는 플랫폼 기술이 중요하게 대두
Copyrightⓒ2004 49
3 장 . Embedded System HW 및 SW 의 구성 요소
아날로그 디지털
정보단말 이동지능정보단말
휴대폰 휴대폰
Copyrightⓒ2004 50
3 장 . Embedded System HW 및 SW 의 구성 요소
참고문헌
Embedded 월드 참고
http://www.ubiu.com/ ( 유비쿼터스 포럼 )
http://www.tta.or.kr/
http://www.hanbat.ac.kr/ - Hanbat National University
http://kesl.org
Copyrightⓒ2004 51