OS pour réseaux de capteurs TinyOS et Zigbee

Transcription

OS pour réseaux de capteurs TinyOS et Zigbee
OS pour réseaux de capteurs
TinyOS et Zigbee
Bouillaguet Mathieu
Valero 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
T-shirt
Metallica
Développeur
PC
Carte
de debug
Cable
série
TinyOS
Mote
Mote
virtuel
Architecture générique d'un
Mote
Processeur
RAM
Flash
LED
Radio
Mote
Interface
Capteur
Antenne
Batterie
Caractéristiques des Mote
Mote
WeC Rene Dot Mica
Release
1999 2000 2001 2002
Processor (Mhz)
4
Flash (kb)
8
8
16 128
RAM (kb)
0.5 0.5
1
4
Radio (kBaud)
10
10
10
40
Radio type
RFM
Microcontroller
Amtel
Expandable
No Yes No Yes
Mica2 Mica2dot
Imote
BtNode
2003
2003
2003
2003
7
4
12
7
128
128
512
128
4
4
64
4
40
40
460
460
ChipCon
Zeevo BT Ericson BT
ARM
Amtel
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
Module
Configuration
Hérite
Implements
Wires
Component
uses
provides
Interface
command
events
C function
async
Un programme nesC
Main
Custom
component
Net
stack
LED
Radio
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
Main
init
Blink
timerFired
Timer
init
LED
toggleRed
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
command
command
command
}
StdControl {
result_t init();
result_t start();
result_t stop();
BlinkM.nc (1/2)
module BlinkM
provides {
interface
}
uses {
interface
interface
}
}
{
StdControl;
Timer;
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
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
Les différentes normes sans fil
WWAN
IEEE 802.22
Portée
IEEE 802.20
WMAN
WiMax
IEEE 802.16
WLAN
WPAN
ZigBee
802.15.4
Bluetooth
802.15.1
0.01
0.1
WiFi
802.11
1
10
Débit (Mbps)
802.15.3
802.15.3a
802.15.3c
100
1000
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
Communications
synchronisées sur les slots
Slots garantis (GTS)
-applications nécessitants une
faible latence ou un débit
minimum
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
Mesh
En étoile
Arbre de Cluster
PAN coordinator
Full Function Device
Reduced Function Device
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 profils
Actuellement 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 ?