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 ?