TinyOS Tutorial Network lab. 김인태

Slides:



Advertisements
Similar presentations
목 차 1. 제안 개요 2. 구축 실적 3. 시스템 구성 4. 기대 효과 5. 서비스별 구성 6. 구축 사례 7. 기본 구성 장비 소개.
Advertisements

산업용 PDA AT-870. Copyright © 2008 barall All right reserved Reference Ⅰ CUSTOMERPROJECT LG 텔레콤BARCODE & GPS 를 이용한 자산 및 시설물 관리 KT LOGISGPS & CDMA 를 이용한.
Wireless Mobile Resource Management 1. 시스템 개요 2. 시스템 소개 3. 시스템 Back-up PLAN 4. 시스템 주요 Reference C.O.N.T.E.N.T.S.
㈜다산씨앤씨 The next generation Windows-based Terminal1 교육 정보화를 위한 W B T 제안서.
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
RFID 기술개발 현황 및 교통분야 활용방안 Ⅰ. 개요 Ⅱ. RFID 연구내용 Ⅲ. RFID 응용기술 개발
L A N DCT Serise W i r e l s Description
CS710 컴퓨터구조 특강 - 차세대 무선네트워크 및 보안 -
10/100Mbps 24포트 + GIGA 2포트 Managed Switch
Nortelnetworks VPN & Firewall Contivity 1100.
임베디드 SW 시스템 소개 - 임베디드 운영체제 - 임베디드 리눅스 - 임베디드 인터넷
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
제 2장 컴퓨터 구조.
TinyOS Tutorial Lesson 3 : Introducing Tasks for Application Data Processing (Hanback’s zigbeX & TinyOS ver.1.1.7) 3번째 시간입니다. Lesson 2는 생략하고 건너 뛰었습니다.
TinyOS 소개와 이해 한양대학교 무선이동통신 연구실
H-Smart4412TKU 사용법 전자정보공학과 이 종 복.
Technical Trends of Servo Drive and Performance
Ubiquitous Computing Practice - Part I (Introduction, NesC) -
USER’S MANUAL 모델명: CCR-201 코드시스템(주)
제7장 버스와 입출력.
Windows CE 시스템 개발 환경 구축.
제6장 FUSING.
IT R&D Global Leader [첨부 제4호] 모바일 센서게이트웨이 및 OGC호환 센서데이터 전달 플랫폼 ETRI
인터넷 방송시스템 제안서.
PC1 E0 R1 로컬 Host 파일 브로드 캐스트 LMHOSTS 조회 Host 파일 조회 DNS Server 조회
Operating Systems Overview
 midi LOGGER GL220   신제품 소개 Dec, 2011.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
FUSING.
12. 데이터베이스 설계.
PXA255-FPGA 장비 개요 및 실습 Lecture #9.
데이터 통신 (Data Communications)
Linux를 이용한 Embedded 장비 개발
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
InstallShield Professional Services ( Services Pack / Education / Consulting ) ㈜소프트뱅크 커머스.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
PXA255-FPGA 장비 계요 및 실습 Lecture #9.
TinyOS 사용법 및 nesC Programming
The next generation Windows-based Terminal
전원설비 포인트연결어댑터 교육자료 주식회사 필 트 론.
컴퓨터 구조.
Ubiquitous Computing Practice - Part 3(RF통신, MAC 프로토콜) -
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
PLC를 이용한 제어로직에 관한 연구 김 재 은.
Unified Communications Cisco Korea
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Ubiquitous Computing Practice - Part I (Introduction, NesC) -
1. Embedded System의 이해.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
Xen and the Art of Virtualization
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
Cognitive radio Either a network or a wireless node changes its transmission or reception parameters to communicate efficiently avoiding interference with.
학내전산망 제안서 본 제안서의 기술적 내용은 해당 회사에 저작권이 있습니다.
Rhapsody + MFC 개발 가이드.
Lecture 1. Overview of the Course
U+ Biz 그룹웨어 Mobile Office User Guide.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
SYSMAC GATEWAY 간이 매뉴얼.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
ERP 시스템의 구축 ERP 시스템의 구축 기업이 ERP 시스템의 도입을 검토하는 단계에서부터 실제 업무에 적용하고 사후관리에 들어가는 단계에 이르기까지 시스템을 효과적으로 사용하기 위해 필요한 모든 활동.
Ubiquitous Computing Practice - Part 2(LED 제어) -
Stocker Controller System 소개
ITIL 정리.
고속 레이저 프린터 DP-4000 제품 소개 대원정보시스템.
Operating System Multiple Access Chatting Program using Multithread
운영체제보안 3번 과제 설명 팀 기반의 설계 프로젝트 박민재
학내전산망 제안서.
Serial, Parallel, USB, Ethernet
Lecture 7 7-Segment LED controller using u-controller
Presentation transcript:

TinyOS Tutorial Network lab. 김인태 quenring@paran.com Lesson 1: Getting Started with TinyOS and nesC 이장에서는 TinyOS의 기본개념과 그 시스템에서 쓰여질 nesC 언어를 포함하고있습니다. nesC 개념의 간단한 overview와 이러한 환경에서 프로그래밍을 시작하는데 너에게 도움을 줄 구문을 포함하고있습니다. Network lab. 김인태 quenring@paran.com

USN(Ubiquitous Sense Network)

Sensor Network Feature 거의 대부분 sleep 상태 인터럽트 노드를 active 또는 running 상태로 전이시킨다. 인터럽트의 3가지 종류 타이머 인터럽트 데이터를 sensing 할 때 발생하는 인터럽트 송/수신 인터럽트 (communication) Power On INIT SLEEP Interrupt ACTIVE

Key Requirement Hardware Software 저전력 소모 기술 다양한 센서를 위한 Flexible 한 I/O 작은 크기 Software 작고 간단한 코드 에너지 효율성 지원 ( 스케쥴 정책, 라우팅 프로토콜, 알고리즘..) 병목 현상의 지양 재사용성 견고, 저전력, ad-hoc network 지원

O/S for Sensor Networks 제한된 자원의 사용 프로세싱, 저장, 대역폭, 전력 … 수많은 노드에 뿌려진 Applications 자가 수집 변화하는 네트워크 환경에서의 적응 통신은 기본적인 요소 (ad-hoc , mesh) 병목 현상 처리 센싱 데이터와 네트워크 트래픽 등 (scheduling) 견고성 Critical 한 operation 에 대한 보장 응용 계층과 하위 레벨 계층간의 access가 용이해야 한다.

TinyOS와 nesC의 소개 TinyOS의 시스템, 라이브러리, 애플리케이션은 nesC로 작성 nesC MOTE를 위한 운영체제. 기존의 프로그래밍 모델을 지원 C의 확장 개념인 nesC로 이루어짐. OS Component + apps Component Complete application fit in 4KB data of RAM 빈번히 사용되는 function의 재사용성 네트워킹 스케쥴링 Other components interfaces (clock, sensor..) 모듈화된 구조 Component 들로 구성 Component 들은 매우 특별한 기능을 수행 small images 재사용 가능한 component nesC 구조화된 컴포넌트 기반 application들의 프로그래밍을 위한 새로운 언어 센서 네트워크와 같은 임베디드 시스템에 적용하기 위해 개발 nesC로 표현된 TinyOS의중요한 몇가지 개념 application들은 잘 정의되어있는 component들과 양지향성의 interface들로 만들어진다. nesC는 동시 병행 모델,tasks와 hardware event handlers를 기반, 컴파일 시간에 data races를 감지 하게끔 정의 되어있습니다. TinyOs는 미국 UC(University of California)버클리 대학에서 개발된 무선 센서 네트워크를 위한 전용 운영체제이다. 이름에서도 알 수 있듯이, TinyOS 기반의 프로그램들은 매우 작은 용량의 크기로 컴파일되며, 무선 센서 노드의 일반적인 특징(최소한의 하드웨어, 작은 메모리, 낮은 CPU 성능 그리고 한정된 에너지)을 고려하여 최적화된 운영체제이다. TinyOS는 좀더 편리한 프로그램 개발을 위해 클래스 형태의 컴포넌트구조를 갖는 NesC 언어로 구현되어있음. NesC 기존 C언어의 확장, structured component-based 프로그래밍을 위한 새로운 언어로 센서 네트워크와 같은 임베디드 시스템에 적용하기 위해 개발되었음. C언어와 많이 비슷하지만 몇가지 차이점이 있는데 형태는 컴포넌트 기반 개발 – 기존 C에 비해 편리함- 필요한 컴포넌트들만 연결해 주면 원하는 프로그램 작성 가능 코드 크기- 매우 작음-소규모 임베디드 장비에 최적화 제한점 – 동적 메모리가 없다.

MICA Sensor Board Light (Photo) Temperature Used for ranging Acceleration 2 axis, Resolution: ±2mg Magnetometer Resolution: 134mG Microphone Tone Detector Sounder 4.5kHz Used for ranging Up to 2.5m range 6cm accuracy Dedicated microprocessor 25kHz element

Gateway Board 1. Host PC 와 Mote의 매개체 역할 (from Serial or ethernet port) RS232C_Serial Connection Ethernet Connection MIB510 MIB600 1. Host PC 와 Mote의 매개체 역할 (from Serial or ethernet port) 2. Mote의 Flash Memory에 프로그램을 Uploading

Component of MOTE-KIT Gateway Board Sensor Board Processor Board MIB510 MPR400 MPR500 MTS300 MTS510 MTS400/420 MPR2400 MTS310 MIB600 Gateway Board Sensor Board Processor Board

Principle of MOTE-KIT + + + PC와 serial 혹은 Ethernet 연결 PC와 Interface Base Node (Receiver) + PC와 serial 혹은 Ethernet 연결 Node.0 Send and Receive Data Send and Receive Data + + Node.2 Sensing the Data (light,temp,acoustic…) Node.1 Sensing the Data (light,temp,acoustic…)

Component-1.nc(wiring) Components nesC의 구조는 Code파일인 module, components를 연결하 는 Configuration Command와 events를 실행하는 interfaces로 구성되어있다. top-level Configuration파일은 ***.nc configuration 은 **C.nc module은 ***.nc Main.nc app---.nc interface-1.nc interface-1.nc interface-1.nc Component-1.nc(wiring) Component-2M.nc(code) interface-2.nc interface-2.nc Component-3M.nc(code)

기본용어 소개 용어 설명 interface Command와 이벤트의 수집을 정의 module nesC에서 구현한 기본 컴포넌트 configuration 다른 컴포넌트 연결로부터 만든 컴포넌트 components 컴포넌트의 list가 configuration 에 정의 provides 정의된 interface가 컴포넌트에 의해 제공 uses 정의된 interface가 module이나 configuration에 의하여 사용 command 직접 function call이 인터페이스에 의하여 나타남 event call back 메시지가 인터페이스에 의하여 나타남

nesC 구성과 구조의 분리 모든 프로그램은 컴포넌트로 구성되어 있고, 인터페이스(interface)와 구현(implementation)의 2개의 범위로 정의된다. nesC application은 실행가능한 형태로 서로 연결된 1개 이상의 component들로 구 성되며 한 컴포넌트는 interface를 “provide”하고 “uses”합니다. 양방향성을 가진 인터페이스 인터페이스의 provider에 의해 commands를 수행하고 인터페이스의 user에 의해 events를 수행하며, 단일 인터페이스를 허용한다. 컴포넌트의 연결 컴포넌트들은 서로 다른 컴포넌트를 경유해서 고정된 상태로 연결한다. Interface NesC에서 interface는 양방향성을 가지며 제공자(provider)와 사용자(user)가 되는 컴포넌트를 연결하는 포트의 역할을 수행한다.

Component 컴포넌트는 nesC의 기본 단위로 module과 configuration을 가짐 module: application 코드를 제공하고 하나 이상의 interface를 가집니다. Configuration : 다른 콤포넌트와 함께 wiring에 의하여 만들어진 구현으로 nesC와 연계하여 구현하게 된다. (단순히 wiring만함) 그리고 프로그램을 작성할때 반드시 main컴포넌트를 포함해야하는데 이 main컴포 넌트가 시스템 초기화 루틴을 호출하고 스케줄러를 구동하기 때문이다 (tos/system/main.nc 에 위치)

프로그램 수행방식 Task Hardware event handler Task는 수행이 연기된 함수이다. task는 스케줄링이 되면 task끼리는 선점할 수 없다. Hardware event handler 하드웨어 interrupt 신호에 반응 task와 다른 점은 hardware event handler는 task의 수행이나 다른 handler를 선점 할 수 있다.

1Hz 간격 LED on/off 예제 configuration Blink { } implementation { components Main, BlinkM, SingleTimer, LedsC; Main.StdControl -> SingleTimer.StdControl; Main.StdControl -> BlinkM.StdControl; BlinkM.Timer -> SingleTimer.Timer; BlinkM.Leds -> LedsC;

BlinkM.nc module BlinkM { provides { interface StdControl; } uses { interface Timer; interface Leds; implementation { command result_t StdControl.init() { call Leds.init(); return SUCCESS; } command result_t StdControl.start() { // Start a repeating timer that fires every 1000ms return call Timer.start(TIMER_REPEAT, 1000); command result_t StdControl.stop() { return call Timer.stop(); event result_t Timer.fired() { call Leds.redToggle(); Main StdControl BlinkM Timer Leds LedsC SingleTimer