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

51
OS pour réseaux de capteurs TinyOS et Zigbee Bouillaguet Mathieu Valero Mathieu

Upload: others

Post on 26-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

OS pour réseaux de capteurs

TinyOS et Zigbee

Bouillaguet MathieuValero Mathieu

Page 2: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

TinyOS

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

Page 3: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 4: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Quelques domaines d'application

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

Page 5: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 6: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Pour utiliser TinyOS

Développeur

PC Mote

TinyOS

T-shirtMetallica

Cartede debug

Cablesérie

Motevirtuel

Page 7: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Architecture générique d'un Mote

Mote

Processeur RAM Flash

Batterie

Radio

Antenne

Capteur

LED

Interface

Page 8: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 9: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

L'outillage TinyOS

● Plugin Eclipse● MatLab● Interfaces graphiques

– Simulateurs (TOSSIM, powerTOSSIM)– Debugger

Page 10: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Concepts de TinyOS

● Composant– Module– Configuration

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

● Tâche● Gestionnaire d'interruption

Page 11: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 12: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 13: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 14: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Organisation des concepts dans nesC

C function

Interface

eventscommand async

Component

Module Configuration

Hérite

Implements Wires

uses provides

Page 15: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Un programme nesC

LED Radio

Netstack

Customcomponent

Main

Page 16: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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)

Page 17: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Bonjour monde

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

LEDTimer

Blink

timerFired init toggleRed

Main

init

Page 18: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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;}

Page 19: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

StdControl.nc

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

Page 20: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

BlinkM.nc (1/2)

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

Page 21: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Timer.nc

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

Page 22: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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; }}

Page 23: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 24: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 25: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 26: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Zigbee

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

Page 27: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 28: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 29: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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é

Page 30: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Comparaison

Page 31: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 32: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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)

Page 33: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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)

Page 34: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 35: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Super frame

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

Communications synchronisées sur les slots

Page 36: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 37: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Multiplexage

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

Page 38: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Mesh networks

Page 39: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Mesh networks

Page 40: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Mesh networks

Page 41: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Mesh networks

Page 42: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Topologies

PAN coordinator

Full Function Device

Reduced Function Device

En étoile

Mesh

Arbre de Cluster

Page 43: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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)

Page 44: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 45: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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é

Page 46: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Niveau application

Niveau réseau

Niveau MAC

Page 47: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Centre de confiance

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

Page 48: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 49: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 50: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

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

Page 51: OS pour réseaux de capteurs TinyOS et Zigbee · S'appuie sur les spécifications de IEEE 802.15.4 + couche réseau et sécurit ... 802.11 0.01 0.1 1 10 100 1000 Bluetooth 802.15.1

Merci de votre attention

Des questions ?