Sn overview
This presentation is the property of its rightful owner.
Sponsored Links
1 / 69

SN Overview PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

SN Overview. Sensor Network: Bridge between the internet and the physical world IEEE 802.15.4 (TinyOS, IPv6, ZigBee, SP100, etc). Network Embedded System C. Main.exe. App.c. TinyOS / nesC. 2-Level Structure Command (Bottom direction) Non-time critical Long running operations

Download Presentation

SN Overview

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Sn overview

SN Overview

Sensor Network:

Bridge between the internet and the physical world

IEEE 802.15.4 (TinyOS, IPv6, ZigBee, SP100, etc)


Network embedded system c

Network Embedded System C

Main.exe

App.c


Tinyos nesc

TinyOS / nesC

  • 2-Level Structure

    • Command (Bottom direction)

      • Non-time critical

      • Long running operations

      • Cannot preempt & can be preempted

      • Background computation

    • Events (Top direction)

      • Time critical

      • Small running operations

      • Cannot be preempted

      • Able to interrupt running Tasks


Preemption

Preemption

  • Pre-emption as used with respect to operating systems means the ability of the operating system to preempt or stop a currently scheduled task in favour of a higher priority task. The scheduling may be one of, but not limited to, process or I/O scheduling etc.

  • Non-preemptability arises, for instance, when handling an interrupt. In this case, scheduling is avoided until the interrupt is handled. Making a scheduler preemptible has the advantage of better system responsiveness and scalability.

  • The schedulers used in most modern operating systems, such as various flavours of Unix, can preempt user processes. This is called preemptive multitasking, and is in contrast to cooperative multitasking wherein a process "gives away" its time by utilizing kernel resources or by specifically calling a kernel routine to allow other processes time to run. Some operating systems' schedulers (including Linux as of the 2.6 series) have the ability to preempt a process while it is processing a system call as well (a preemptible kernel).

  • Linux, Unix, *BSD, Mac OS X, and Windows NT are all examples of operating systems that utilize preemptive multitasking; Netware, Windows for Workgroups, and Macintosh System 9 are all examples of cooperative multitasking operating systems.

  • From www.wikipedia.org


Tinyos kernel

TinyOS Kernel


Nesc overview

nesC Overview

  • [nes-si:]

  • Network Embedded System C Language

  • Supports TinyOS

  • Make applications for Network Embedded system

  • No dynamic memory allocation

  • Extension of C programming language

    • Efficient code for micro-controllers

    • Able to interact with old C code

    • Many C Programmer

    • C is little helpful for safe code & structuring applications


Nesc application

nesC Application

  • Components + Interface

    • *.nc

    • Component:

      • Module

      • Configuration

  • Static

    • No dynamic memory

    • No function pointers

  • Programming ( ATmega128L )

    • In flash memory(128K, 40K, 60K)

    • In SRAM(4K)

    • In EEPROM(4K)


Nesc structure

nesC Structure

  • Module

    • oooM.nc

    • Code file

  • Configuration

    • ooo.nc/oooC.nc

    • Wiring of components

      • Define wiring of Modules

  • Interfaces

    • ooo.nc

    • Contains only definition

    • Commands/Events


File type

File type

  • Components

    • Configuration

    • Module

  • Interface


Configuration ex blink nc

Configuration (ex. Blink.nc)


Basic concept

Basic Concept

  • Component

    • Configuration

    • Module

      • Provides

      • Uses

        • Interface

          • Command

          • Event

  • Task

    • Post

  • Keep in mind (Interface file defines Command / Event)

    • Command is implemented on Providing Component

    • Event is implemented on Using Component


Basic concept configuration

Basic Concept: Configuration

  • Syntax

    • File name:

      • Top-level configuration:

        • ooo.nc (in each application)

      • General configuration:

        • oooC.nc

    • Wire only 2 components together at a time

      • Using with ‘’ and ‘=’


Configuration

Configuration

  • Ex.

    • Top-level configuration


Configuration ex blink nc1

Configuration (ex. Blink.nc)


Basic concept module

Basic Concept: Module

  • Syntax

    • Name

      • File: oooM.nc

      • Interface.command(or event)

    • Command

      • Implement in all the ‘provides’ interfaces

      • Prefixed with ‘call’

    • Event

      • Implement in all the ‘uses’ interfaces

      • Prefixed with ‘signal’


Module

Module

  • Ex.

    • Module

    • Interface

    • Command

    • Event


Module ex blinkm nc

Module (ex. BlinkM.nc)


Module ex blinkm nc1

Module (ex. BlinkM.nc)


Module ex blinkm nc2

Module (ex. BlinkM.nc)


Basic concept interface

Basic Concept: Interface

  • File name: ooo.nc

  • Bi-directional

    • Provider & User

  • No actual code or wiring

  • Declare commands and events

  • Provider Module:

    • Implement all commands

  • User Module:

    • call command & Implement all events

  • Parameterized Interfaces

    • Ex.


Interface ex timer nc

Interface (ex. Timer.nc)


Interface ex stdcontrol nc

Interface (ex. StdControl.nc)


Interface

Interface

  • Ex.


Configuration1

Configuration

  • Ex.

    • General configuration


Wiring syntax

Wiring Syntax

  • Ex.

    • End-point1End-point2

    • End-point1End-point2

    • End-point1=End-point2


Sn overview

Task

  • Ex.

    • Task can be posted in command, event and task

    • task void taskname() {………}

    • Post taskname();


Sample nesc application kmote0

Sample nesC Application (Kmote0)

  • 전원 On  부팅  Led On

  • Basic Application

  • Component

    • Main.nc, LedsC.nc

    • Test.nc, TestM.nc

  • Interface

    • StdControl.nc, Leds.nc


Top configuration

Top Configuration

Test

Main

StdControl

TestM

Leds

LedsC


Configuration test nc

Configuration (Test.nc)


Configuration main nc

Configuration (Main.nc)


Interface stdcontrol nc

Interface (StdControl.nc)


Module mainm nc

Module (MainM.nc)


Module testm nc

Module (TestM.nc)


Module ledsc nc

Module (LedsC.nc)


Module ledsc nc1

Module (LedsC.nc)


Module ledsc nc2

Module (LedsC.nc)


Module ledsc nc3

Module (LedsC.nc)


Module ledsc nc4

Module (LedsC.nc)


Interface leds nc

Interface (Leds.nc)


Interface leds nc1

Interface (Leds.nc)


Interface leds nc2

Interface (Leds.nc)


Sample nesc application blink uart

Sample nesC Application (Blink+UART)

  • nesC application

    • Component based application

    • Set of components

  • Byte단위 시리얼 통신을 위한 Component

    • UART

  • Led, Timer, UART, Wireless Communication, External Flash


Configuration blink nc

Configuration (Blink.nc)


Nesdoc

Nesdoc


Nesdoc1

Nesdoc


Configuration main nc1

Configuration (Main.nc)


Module mainm nc1

Module (MainM.nc)


Configuration uart nc

Configuration (UART.nc)


Module uartm nc

Module (UARTM.nc)


Module uartm nc1

Module (UARTM.nc)


Module uartm nc2

Module (UARTM.nc)


Module blinkm nc

Module (BlinkM.nc)


Module blinkm nc1

Module (BlinkM.nc)


Module blinkm nc2

Module (BlinkM.nc)


Interface bytecomm nc

Interface (ByteComm.nc)


Interface timer nc

Interface (Timer.nc)


Interface leds nc3

Interface (Leds.nc)


Interface leds nc4

Interface (Leds.nc)


Interface leds nc5

Interface (Leds.nc)


Module ledsc nc5

Module (LedsC.nc)


Module ledsc nc6

Module (LedsC.nc)


Module ledsc nc7

Module (LedsC.nc)


Module ledsc nc8

Module (LedsC.nc)


Module ledsc nc9

Module (LedsC.nc)


Configuration singletimer nc

Configuration (SingleTimer.nc)


Interface timer nc1

Interface (Timer.nc)


Compile environment

Compile Environment

  • cd /opt/tinyos-1.x/apps/Blink

  • make telosb

  • make telosb install(or reinstall)

  • Make telosb reinstall.1 bsl,/dev/ttyUSB0

    • 1 : node ID

    • bsl : fusing method

  • Important Environment Variables (so tough for newbie)

    • nesC make

      • TOSDIR

      • TOSROOT

      • MAKERULES

      • PATH

    • Java

      • CLASSPATH

    • Check

      • env | grep TOS


Vmplayer on windows xp vista

VMPlayer on Windows XP, Vista

  • Easy set-up all the Development Environment for TinyOS-1.x / TinyOS-2.x

    • All set previously on Windows

    • Check for the VM image file : www.tinyosmall.co.kr

      • http://www.tinyosmall.co.kr/shop/shopdetail.html?brandcode=016002000001&search=&sort=brandname


References

References

  • The nesC Language: A Holistic Approach to Networked Embedded Systems

  • nesC 1.1 Language Reference Manual

    • http://nescc.sourceforge.net

  • TinyOS Programming Manual

    • http://www.tinyos.net/tinyos-2.x/doc/pdf/tinyos-programming.pdf


  • Login