os pour réseaux de capteurs tinyos et zigbee · s'appuie sur les spécifications de ieee...
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 ?