os pour réseaux de capteurs tinyos et zigbee · s'appuie sur les spécifications de ieee...

Post on 26-Jun-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OS pour réseaux de capteurs

TinyOS et Zigbee

Bouillaguet MathieuValero Mathieu

TinyOS

● Introduction● En pratique● Concepts et objectifs● nesC● Tiny*● Couche réseau

Les NES● Nombreux noeuds● Fortes contraintes ressources

– Mémoire– Processeur– Energie

● Communication radio– Portée restreinte– Qualité de la liaison

● Durée de vie du réseau● (Re)programmation des noeuds

Quelques domaines d'application

● Biologie● Domotique● Océanographie● Militaire● Surveillance de zones géographiques

Historique

● Berkeley● Octobre 2001: version 0.5.1● Février 2002: version 0.6● Mai 2002: version 0.6.1● Octobre 2002: version 1.0.0● Octobre 2003: version 1.1.10● Décembre 2005: version 1.1.15● Février 2006: version 2.0 beta release

Pour utiliser TinyOS

Développeur

PC Mote

TinyOS

T-shirtMetallica

Cartede debug

Cablesérie

Motevirtuel

Architecture générique d'un Mote

Mote

Processeur RAM Flash

Batterie

Radio

Antenne

Capteur

LED

Interface

Caractéristiques des Mote

Mote WeC Rene Dot Mica Mica2 Mica2dot Imote BtNodeRelease 1999 2000 2001 2002 2003 2003 2003 2003Processor (Mhz) 4 7 4 12 7Flash (kb) 8 8 16 128 128 128 512 128RAM (kb) 0.5 0.5 1 4 4 4 64 4Radio (kBaud) 10 10 10 40 40 40 460 460Radio type RFM ChipCon Zeevo BT Ericson BTMicrocontroller Amtel ARM AmtelExpandable No Yes No Yes Yes Yes Yes Yes

L'outillage TinyOS

● Plugin Eclipse● MatLab● Interfaces graphiques

– Simulateurs (TOSSIM, powerTOSSIM)– Debugger

Concepts de TinyOS

● Composant– Module– Configuration

● Interface– Stratégie définie par l'utilisateur

● Tâche● Gestionnaire d'interruption

L'ordonnancement (1/2)

● 2 types d'entitées ordonnançables– Tâche– Gestionnaire d'interruption

● Politique FIFO● Tâches « run to completion »

– Pas de conflits entre tâches

L'ordonnancement (2/2)

● 1 tâche ~ 1 fonction C– Ne retourne rien– Sans argument– Ne peut être interrompue que par un

Gestionnaire d'interruption

● 1 gestionnaire d'interruption ~ 1 fonction C– Appelée lors d'une interruption matérielle– Ne peut être interrompue que par un

Gestionnaire d'interruption

NesC: un langage pour TinyOS

● Extension du C ANSI● Intègre les concepts de TinyOS● Le compilatieur gère

– Optimisations– Concurrence– Cohérence du système

Organisation des concepts dans nesC

C function

Interface

eventscommand async

Component

Module Configuration

Hérite

Implements Wires

uses provides

Un programme nesC

LED Radio

Netstack

Customcomponent

Main

Concurrence

● Atomic– Défini un bloc atomique (ininterruptible)– Code limité: pas de call, signal, goto, break...– f() atomique ssi tout appel a f est dans un

bloc atomique

● Le compilateur peut en « louper »– Mais il faut vraiment le faire exprès

● Le compilateur peut en « rajouter »– Ne vérifie pas les gardes– Norace (a utiliser TRES prudemment)

Bonjour monde

● Faisons clignoter la diode du Mote à 1Hz– Appelons notre module Blink

LEDTimer

Blink

timerFired init toggleRed

Main

init

Blink.nc

configuration Blink {}implementation { components Main, BlinkM, SingleTimer, LedsC;

Main.StdControl -> BlinkM.StdControl; Main.StdControl -> SingleTimer.StdControl; BlinkM.Timer -> SingleTimer.Timer; BlinkM.Leds -> LedsC;}

StdControl.nc

interface StdControl { command result_t init(); command result_t start(); command result_t stop();}

BlinkM.nc (1/2)

module BlinkM { provides { interface StdControl; } uses { interface Timer; interface Leds; }}

Timer.nc

interface Timer { command result_t start(char type, uint32_t interval); command result_t stop(); event result_t fired();}

BlinkM.nc (2/2)implementation { command result_t StdControl.init() { call Leds.init(); return SUCCESS; } command result_t StdControl.start() { return call Timer.start(TIMER_REPEAT, 1000) ; } command result_t StdControl.stop() { return call Timer.stop(); } event result_t Timer.fired() { call Leds.redToggle(); return SUCCESS; }}

TinyOS et temps réel

● Gestion statique de la mémoire● Pas vraiment conçu pour le temps réel

dur– La radio peut faire louper des échéances– Problèmes de synchronisation (pas

d'abstraction proposée; solutions ad-hoc)

● Temps réel mou:– Finesse du contrôle des ressources et du

matériel donne un « bon » contrôle du temps

Extensions sympa de TinyOS

● TinyDB– SQL-like pour récupérer des données sur un

NES– Programmation déclarative

● SPINS (et TinySec)– Identification– Intégrité

● Maté– Construction de VM spécifiques– Reprogrammation des NES– Code plus compact

Couche réseau

● Face à l'évolution des couches physiques– Nouvelle configuration et/ou ajout de

composants, mais interface préservée (jusqu'à présent...)

– Fonctionnalités Hard/Soft (checksum...)

● Snooping– Pouvoir traiter les paquets destinés « pas à

nous »– Approche typique « trans-couches »– Compromis énergie/efficacité des

communications

Zigbee

● Contexte● Couches physiques et MAC● Couche réseau● Sécurité et configurabilité● Conclusion

Origines

●Définie par la Zigbee alliance

●S'appuie sur les spécifications de IEEE

802.15.4

●+ couche réseau et sécurité

●Zigbee 1.0 Q4/2004

Débit (Mbps)

Port

ée

ZigBee802.15.4 802.15.3

802.15.3a802.15.3c

WPAN

WLAN

WMAN

WWAN

WiFi802.11

0.01 0.1 1 10 100 1000

Bluetooth802.15.1

IEEE 802.22

WiMaxIEEE 802.16

IEEE 802.20

Les différentes normes sans fil

Principales caractéristiques

● Très faible consommation électrique● Coûts de production très bas● Débits relativement faibles● Réseaux multisauts, ad hoc● Fiabilité et sécurité

Comparaison

Les Applications

●Domotique●Relevé de mesures●Capteurs de présence●Set Top box

●Capteurs de fumée/gaz●Secteur médical●Dispositif de sécurité

●Jouets interactifs●Régulation de température●Contrôle à distance

Couche physique

Fonctions: ● Activation et désactivation de l'émetteur/récepteur

● ED (Energy Detection)● LQI (Link Quality Indication)● Sélection du canal● CCA (Clear Channel Assesment)

Gestion des interférences

● 3 fréquences utilisables

– 868-868.6 MHz (e.g., Europe)– 902-928 MHz (e.g., North America) or– 2400-2483.5 MHz (worldwide).

● Peut accéder 16 canaux différents

● CSMA/CA réduit la probabilité d'interférences

● Retransmission des données

● Courtes périodes de service (duty cycle)

Couche MAC

● Protocoles CSMA/CA● Deux mécanismes d'accès au canal

– Non-beacon network● ALOHA CMSA/CA standard● Acquittement à la réception

– Beacon-enabled network● Trame de signalisation envoyées périodiquement

par le coordinateur● Bande passante dédié et faible latence● Faible consommation pour le coordinateur

Super frame

Slots garantis (GTS)-applications nécessitants une faible latence ou un débit minimum

Communications synchronisées sur les slots

Couche réseau

● Jusqu'à 65536 noeuds adressables dans un PAN

● Plusieurs réseaux peuvent s'interconnecter

● Chaque PAN possède un identifiant unique

● Routage multisauts

Multiplexage

●Multiplexage de sous parties d'un noeud●Permet l'adressage de 240 points de terminaison

Mesh networks

Mesh networks

Mesh networks

Mesh networks

Topologies

PAN coordinator

Full Function Device

Reduced Function Device

En étoile

Mesh

Arbre de Cluster

Différents noeuds

2 types de noeuds définis par 802.15.4:● FFD: fully fonctionnal device● RFD: Reduce fonctionnal device

3 types de noeuds dans zigbee:● Coordinateur (ZC)● Routeur (ZR)● Terminal (ZED)

Routage

●Métrique de mesure du coût d'un chemin●Mesure la probabilité de délivrer le paquet●Calcul de p laissé à l'implémentation

● Basé sur le passé● Sur le LQI

Sécurité

●Crypto-système symétrique●Algorithme AES 128 bits●Clef de lien et de réseau●Clef Maître pour l'initialisation

● Authentification,confidentialité,intégrité

Niveau application

Niveau réseau

Niveau MAC

Centre de confiance

●Concept de Trust Center●Distribue les clefs●Désigné par le coordinateur●Codé en dur

sécurité/mémoire

●Possibilité de rafraîchir les clefs grâce aux clefs maîtres●Permet de diminuer les risques d’attaques par rejeu

Configurabilité

Possibilité d'utiliser des profilsActuellement 3 profils définis:

● Maison individuelle (Home Control)● Automatisation de bâtiment● Automatisation d'usine

Définie:● Le niveau de connectivité● De sécurité● L'équilibre latence/consommation

Conclusion

Themes du sans fil aujourd'hui:● Communications ubiquitaires

● Interopérabilité● Plug-and-play● IP● Réseaux auto-configurables● Faible consommation

● Streaming audio/video de qualité● Géolocalisation

Merci de votre attention

Des questions ?

top related