
57fbae9fca6b6b3fbb77212adc1ee1d9.ppt
- Количество слайдов: 30
지능형 로봇분야 임베디드 시스템 기술 동향 및 적용 - Embedded 시스템의 개요 2005. 11. 24 발표자 : 손 수국 로봇 시스템 과 임베디드 소프트웨어 적용
임베디드 시스템 개요 ▣ 임베디드 시스템 ◈ 정의 : 마이크로프로세서 혹은 마이크로컨트롤러를 내장하여 원래 제작자가 지정한 기능만을 수행하는 장치 Ø 만일 한 시스템에서 사용자가 프로그램을 바꿔가면서 그에 따라 여 러 가지 기능들을 수행할 수 있다면 그 시스템은 대부분의 사람들 이 임베디드 시스템이라고 분류하지 않는다. Ø Example) PC is NOT an embedded system. ▣ 구성 : ◈ 임베디드 H/W : 프로세서/컨트롤러, 메모리, I/O, 네트워크 ◈ 임베디드 S/W : 커널, 시스템 S/W, 응용 S/W ▣ 응용분야 : ◈ 정보가전, 정보단말, 통신장비, 항공/군용, 물류/금융, 차량/교통, 사무, 산업/제어, 의료, 게임, 로봇 로봇 시스템 과 임베디드 소프트웨어 적용 2
임베디드 S/W 특징 로봇 시스템 과 임베디드 소프트웨어 적용 3
임베디드 시스템 동향 ▣ 미국 ◈ 프로세서, OS, 프로토콜 등 전 분야를 점유 ◈ 미국은 군사/과학용 임베디드 S/W를 21세기 핵심 분야로 선정하고 매년 4천억 달러 이상을 연구개발에 투자 ▣ 유럽 ◈ 개발도구, 브라우저 등의 일부 업체가 존재 ◈ 군사/교통용 임베디드 S/W에 '99년부터 7년간 3조 8천억을 투자 ▣ 일본 ◈ 총무성 주도로 Ubiquitous 네트워크 개발을 추진 중 ◈ ‘ 84년부터 TRON 협회에서 표준 임베디드 OS를 개발; 일본 내 가전제품 에 적용 중 ▣ 임베디드 OS: ◈ Real-time Operating System 중심 ◈ MS의 Win. CE 및 임베디드 리눅스 진입 시작 ◈ 미들웨어, 각종 서비스를 포괄하는 플랫폼 기술이 중요하게 대두 로봇 시스템 과 임베디드 소프트웨어 적용 4
임베디드 시스템의 요구사항 ▣ 실시간 + 임베디드 : 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 로봇 시스템 과 임베디드 소프트웨어 적용 5
임베디드 시스템의 활용 분야 로봇 시스템 과 임베디드 소프트웨어 적용 6
임베디드 시스템의 활용 분야 정보가전 적용 예 Digital TV, 인터넷 냉장고 정보단말 휴대폰, PDA, 무전기, e. Book 통신장비 교환기, 기지국 제어기 항공/군용 물류/금융 POS단말기, ATM단말기 차량/교통 엔진 제어, 네비게이션, ITS 제어기 전화기, 프린터, 팩스, 스캐너, 복합기 사무 산업제어 로봇, 컨트롤러 의료 심전도 측정기, 생명 유지 장치, 자세 제어기 게임 아케이드 게임기, 콘솔 게임기, 게임보이 로봇 시스템 과 임베디드 소프트웨어 적용 7
임베디드 시스템 시장 현황 및 전망 ▣ 2002년 임베디드 시스템 세계시장 ◈ 약 1, 000억 달러 규모 ◈ 임베디드S/W 분야 : 약 200억달러 규모 ◈ 매년 평균 20%의 성장률 ◈ 2007년 약 500억달러 수준으로 성장 전망(RCW Mirus, 2001) ▣ 2002년 국내 시장규모 ◈ 약 7천 8백억원 규모 ▣ 2007년 ◈ 1조 9천 5백억원 규로로 성장 전망 (정보통신연구진흥원, 2002) 로봇 시스템 과 임베디드 소프트웨어 적용 8
임베디드 리눅스 Open 플랫폼의 보급 ▣ 비영리 임베디드 시스템 협의회로 임베디드 리눅스 콘소시엄(ELC) ▣ 최소 플랫폼 전형적인 1개 이상의 특정서비스의 지원 목적. 최소한의 요구사항으 로서 사용자와 interaction이 필요 없는 경우다. 이 경우는 파일시스템 과 같은 대용량의 저장장치를 필요로 하지 않는다. 보통 1개의 프로세 서만이 있게 되는데 1 개 이상의 쓰레드 (리눅스 태스크 또는 POSIX 쓰레드)만이 있을 수도 있다. ▣ 중간 플랫폼 최소 크기의 개발 플랫폼에 파일시스템과 같은 대용량 저장장치, 비 동기 I/O, 객체들(예: 라이브러리)의 동적 연결기능들을 추가로 지원 한다. 복수의 프로세스와 주소공간이 가능하다. 하드웨어 요구사항은 대용량 저장장치가 실제적으로 필요하지는 않아도 RAM 이나 ROM 같은 것에 파일시스템이 구현된다. ▣ 풀(최대) 플랫폼 다목적이며 최대(full) 리눅스 환경을 말한다. 리눅스의 전체 기능이 포함된다. 하드웨어는 1 개 이상의 다수 프로세서, 메모리, 대용량 저 장장치, 네트워크 지원, 사용자 인터페이스 지원 등이 포함된다. 로봇 시스템 과 임베디드 소프트웨어 적용 9
임베디드 소프트웨어 정의 ▣ 임베디드 운영체제 ▣ 특정 응용에 적용하기 위한 미들웨어 ▣ 서비스 개발을 위한 라이브러리 ▣ 응용 소프트웨어를 개발하기 위한 개발도구 ▣ 응용 소프트웨어/서비스 동작시 시스템을 분석하기 위한 도구 ▣ 임베디드 시스템을 구성하기 위한 구성환경 로봇 시스템 과 임베디드 소프트웨어 적용 10
하드웨어의 요구사항 ▣ 임베디드 시스템의 하드웨어 구성 및 요구사항 : 임베디드 시스템의 하드웨어 요구사항은 사용 용도에 따라 크게 변한다. 로봇 시스템 과 임베디드 소프트웨어 적용 11
임베디드 시스템의 구성 - H/W ▣ 직렬포트(serial port) ◈ RS 232 C규격, 몇 m 떨어진 곳의 주변장치대상 ◈ 특징: 저속, 간단 ▣ 병렬 포트(parallel port) ◈ 시리얼보다 더 근접한 위치의 주변장치 용; 프린터 인터페이스 ▣ USB (Universal Serial Bus) 및 IEEE 1394 ◈ 최근에는 주변장치에서 많은 멀티미디어 데이터를 처리해야 하기 때문에 직렬이나 병렬 인터페이스로는 부족한 성능을 개선 ◈ USB : Ø 최대 12 Mbps까지 전송속도 Ø 최대 127개의 주변 장치들을 연결 Ø 프린터, 스캐너, 키보드, 조이스틱, MP 3 Player 등의 제품에서 사용 ◈ IEEE 1394: Apple의 Firewire Ø 400 Mbps까지의 전송속도 Ø 최대 63개의 주변장치 Ø 하드디스크, CD/CD-RW 및 비디오카메라 등의 제품에서 사용 로봇 시스템 과 임베디드 소프트웨어 적용 12
임베디드 시스템의 구성 - H/W ▣ 입출력 장치 ◈ 임베디드 시스템의 동작형태 Ø 외부 입력에 반응하여 정해진 작업을 실행하며 지정된 출력을 발생 ◈ 임베디드 시스템의 사용방법 Ø 폴링 (Polling) : Simple Implementations Ø 인터럽트 (Interrupt) : Efficient Implementations ◈ 입력장치 Ø 키보드, 마우스, 마이크 등 Ø 센서(Sensor)를 많이 활용 – 외부에서 발생한 물리적인 현상, 즉 온도, 빛, 위치 등의 값 (또는 변화량)들을 임 베디드 시스템으로 읽어 들이는 역할을 수행 ▣ 네트워크 장치 ◈ 멀리 떨어진 곳의 주변장치 제어 ◈ 유선 네트워크: 이더넷(Ethernet)이 널리 사용 Ø IEEE 802. 3 표준 ◈ 무선 네트워크 방식 Ø 802. 11 a, 802. 11 b 규격 로봇 시스템 과 임베디드 소프트웨어 적용 13
임베디드 시스템의 구성 - S/W ▣ 임베디드 시스템 소프트웨어의 구성 ◈ OS : RTOS, Embedded Linux ◈ 시스템 S/W: OS API, Network API, … ◈ 응용 S/W: 각 분야/용도 별 ▣ PC S/W vs. 임베디드 시스템 S/W 항목 PC 임베디드 시스템 OS Windows RTOS, Linux 시스템 S/W Windows API RTOS & Linux API 응용 S/W HDD에서 읽어온다 메모리에서 읽어온다 개발환경 Visual Studio. NET 교차개발환경 로봇 시스템 과 임베디드 소프트웨어 적용 14
임베디드 시스템의 구성 - S/W ▣ 운영체제 (Operating System) ◈ 범용 운영체제 Ø 다양한 프로그램을 지원 but 덜 매력적 Ø Linux, Microsoft XP 혹은 2000 pro 등의 데스크 탑 운영체제 ◈ 임베디드 시스템 운영체제 Ø 가격 경쟁력을 갖추어야 함 Ø 응답 속도, 인터럽터, Efficiency, Scalability, Portability Ø RTOS는 실시간적 요소를 충족시키기 위해서 모듈화, 선점형 멀티 태 스킹, 스케쥴링, 통합 개발 환경 지원 Ø embedded Linux, pocket PC, Nucleus PLUS Ø Xinu, u. C/OS, p. SOS, Vx. WORKs , e. COS , QNX, VRTX , Qplus 로봇 시스템 과 임베디드 소프트웨어 적용 15
임베디드 시스템의 구성 - S/W ▣ 시스템 S/W ◈ 컴퓨터 하드웨어를 관리하고 응용 소프트웨어를 실행하는데 필 요한 프로그램들 ◈ 미들웨어 ◈ 각종 하드웨어 및 주변 장치들을 구동하는 데 필요한 드라이버 프로그램 ◈ 서비스 개발을 위항 라이브러리 ◈ 응용 소프트웨어를 개발하기 위한 개발도구 (예를 들면 C, C++, 어셈블리 언어, 컴파일러, 디버거, 프로그램 개발도구( Visual studio, Qplus ESTO) )등 로봇 시스템 과 임베디드 소프트웨어 적용 16
임베디드 시스템의 구성 - S/W ▣ 응용 S/W ◈ 임베디드 시스템의 응용소프트웨어 Ø 운영체제와 시스템소프트웨어를 이용하여 사용자에게 유익한 작업 을 수행하는 소프트웨어들 Ø 일반적으로 RAM에 올려져서 동작 Ø 많은 경우에 작은 크기의 임베디드 시스템에서는 시스템의 전원이 꺼지더라도 다시 전원을 인가하면 바로 동작이 실행될 수 있도록 만들기 위하여 응용 프로그램을 ROM 혹은 플래시메모리에 저장하 기도 함 로봇 시스템 과 임베디드 소프트웨어 적용 17
사용자 작업환경 ▣ 타겟보드에서 응용프로그램 작성 및 실행을 위한 환경 ▣ 운영체제, 파일시스템, 및 쉘 설치 ▣ PC에서 사용자가 당연하다고 여겼던 특징을 임베디드 리 눅스 환경에서도 가능하도록 개발자가 고려 ▣ 즉 사용자에게 어떤 환경, 파일시스템, 부트로더, 및 응용 프로그램 실행서비스를 제공할 것인가를 고려 로봇 시스템 과 임베디드 소프트웨어 적용 18
임베디드 소프트웨어 개발 환경 < 개발 지원 호스트 와 타겟 시스템의 관계 > Target 용 cross compiler T-Appl T-VM Cross downloader Target code Target Software Development Kit (SDK) T-Appl Case 1) Serial line T-OS Case 2) LAN line Cross debugger Target debugger LAN line Serial line Target monitor Host System 로봇 시스템 과 임베디드 소프트웨어 적용 Target system 19
크로스 컴파일이후의 처리 ▣ 타겟보드에 이미지를 적재하는 방법 ▣ 이미지를 적재할 메모리 상의 주소 ▣ 프로그램을 실행하는 방법 ▣ 프로그램이 원하는 결과를 출력하는 방법 로봇 시스템 과 임베디드 소프트웨어 적용 20
부트 로더 (Boot Loader) ▣ 부트 로더란? 리눅스 커널 부팅 이전에 미리 실행되면서 커널이 올바르게 부팅되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 리눅스 커널을 부팅시키기 위한 목적으로 짜여진 프로그램을 말한다 ▣ 부트 로더의 기능 ◈ 하드웨어 초기화 ◈ 커널의 적재 및 부팅 ◈ 디버깅 ◈ 플래시 메모리 로봇 시스템 과 임베디드 소프트웨어 적용 21
1 -ROM의 코드와 RAM의 데이터 로봇 시스템 과 임베디드 소프트웨어 적용 22
2 -ROM으로부터 이미지 전달 후 RAM에서 실행 로봇 시스템 과 임베디드 소프트웨어 적용 23
3 -호스트에서 이미지 전달 후에 RAM에서 실행 로봇 시스템 과 임베디드 소프트웨어 적용 24
리눅스 커널 부팅과정 임베디드 리눅스 커널 부팅과정 1) BIOS가 시스템 이상여부 태스트 부트로더에서 실행 : 프로세서가 리셋 후, ROM 스타트업 코드를 실행한다. ROM 스타트업 코드는 CPU, 메모리 콘 트롤러, 온칩 디바이스를 초기화 하고, 메모리 맵을 설정한다. ROM 스타트업 코드는 다음에 부트로더를 실행한다. 2) 부팅할 드라이브 선택 커널의 플래쉬 위치 선택 3) 선택된 드라이브의 MBR 읽어 드림 (수행 불필요) 4) MBR의 파티션 테이블을 읽어 부팅할 파 티션을 선택 (수행 불필요) 5) 커널 로드 커널을 램으로 복사 6) 커널 압축 해제/ 재배치 7) 장착된 하드웨어 검사, 장치 드라이버 설 정 리눅스 커널의 최초 명령어로 점프한다. 커널은 먼저 프로세서 레지스터를 설정하고, start_kernel을 호출하는데, 이 제부터는 아키텍처-독립인 시작점이 된다. 8) 파일 시스템 검사 램디스크, jffs 이미지에 포함 9) 파일 시스템 마운트 커널은 루트 파일시스템을 마운트 10) /etc/inittab에서 init실행을 위한 설정 내용 확인 11) /sbin/init 실행 (PID= 1) 커널은 init 프로세스를 실행한다. 12) /etc/rc. d/rc. sysinit실행 (hostname, 시스템 점검, 모듈 로딩) 보통 init 는 스타트업 스크립트, /etc/rc. d/rc. S 를 실행한다. 이는 네트워크와 다른 시스템 서비스를 설정하고 시동한 다. 13) /etc/rc. d/rc실행 (runlevel에 따른 스크립트 실행) init 는 runlevel에 들어간다. 14) /etc/rc. d/rc. local (매번 실행할 내용 입력) 15) /etc/rc. d/rc. serial (시리얼 포트 초기화) 16) login 로그인 프로세스가 시작되어 사용자 세션을 허용한다. 로봇 시스템 과 임베디드 소프트웨어 적용 25
임베디드 소프트웨어 설계 ▣ 임베디드 리눅스는 모든 경우에 적합한 것인가? ▣ 과연 리눅스가 개발프로젝트에 대하여 부적절하다고 생 각되는 경우는 없을까? 분명히 어떤 운영체제도 모든 경 우에 완벽한 경우는 없다. ▣ 커널의 크기 결정 : 개발시스템의 커널 크기와 메모리 ▣ 정적/동적 응용프로그램 구성 방법의 결정 ▣ 임베디드 리눅스 응용프로그램은 모두 3개의 소프트웨어 계층(커널, C 라이브러리, 응용)으로 구성되는데, 커널로 더, 커널, 및 몇 개의 응용프로그램의 정적/동적 연결 방안 로봇 시스템 과 임베디드 소프트웨어 적용 26
시스템의 최적화 위한 하부소프트웨어 결정 ▣ Shell 리눅스에는 기본적으로 2 가지의 쉘(Bourne 쉘과 C 쉘). 임베디드 응용에서는 ash를 사용하면 커널의 크기를 크게 절약할 수 있다. ash 쉘은 표준 bash 쉘의 1/3 정도보다 작 은 100 KB 정도의 크기에 불과하다. ▣ C 라이브러리 결정 응용프로그램의 소프트웨어 요소 중에서 가장 큰 것 중의 하나가 동적 라이브러리이다. 대체 라이브러리가 있는데 dietlibc, Newlib, 및 u. Clibc 등 ▣ 유틸리티 결정 쉘 유틸리티로 grep , awk, 및 expr 등이 있는데 임베디드 시스템을 개발하고자 할 때는 Busybox 가 가장 추천됨 로봇 시스템 과 임베디드 소프트웨어 적용 27
리눅스 커널의 구조 로봇 시스템 과 임베디드 소프트웨어 적용 28
임베디드 환경의 파일 시스템 1. 램 디스크 램의 일부분을 파일 시스템으로 구성하여 디스크 파일 시 스템 처럼 읽고 쓸 수 있도록 활용하는 방법 2. Busybox “multi-call binary” 파일로 시스템 운용에 필요한 여러 필 수 유틸리티들을 하나의 실행 파일로 압축, 통합시켜 적은 용량의 램 디스크를 극복하기 위해 활용된다. 3. NFS 호스트 등의 네트워크를 이용하여 외부의 디스크 공간을 루트 디스크로써 활용 로봇 시스템 과 임베디드 소프트웨어 적용 29
디바이스 드라이버 -모듈 프로그래밍 ▣ 모듈 프로그래밍의 필요성 ◈ 리눅스 커널은 모노리딕 커널; 마이크로 커널 방식이 아님 ◈ Monolithic Kernel Ø An integrated kernel, whole OS functions to itself Ø Traditional UNIX, SVR 4, Solaris, Linux ◈ Micro Kernel Ø Has the basis kernel with functional servers Ø Vx. Works, p. SOS, VRTX, QNX, SROS ▣ 모듈 프로그래밍의 역할 ◈ 모듈 프로그래밍으로 모노리딕의 단점을 해결함. ◈ 커널 영역에서 프로그래밍 방법 제공 ◈ 디바이스 드라이버를 작성하는 방법 Ø 모듈 프로그램의 출력을 오브젝트 모듈 (디바이스 드라이버) 로봇 시스템 과 임베디드 소프트웨어 적용 30
57fbae9fca6b6b3fbb77212adc1ee1d9.ppt