380 likes | 548 Views
Be ž i č ne S enzorske M re ž e. Arhitektura bežičnog senzorskog čvora. Mario Č agalj mario.cagalj@fesb.hr FESB, 19 / 3 /20 14. Bazirano na “Protocols and Architectures for Wireless Sensor Networks”, Holger Karl , 2005. Pregled predavanja. Struktura bežičnog senzorskog čvora
E N D
Bežične Senzorske Mreže Arhitektura bežičnog senzorskog čvora Mario Čagalj mario.cagalj@fesb.hr FESB, 19/3/2014. Bazirano na “Protocols and Architectures for Wireless Sensor Networks”, Holger Karl, 2005.
Pregled predavanja • Struktura bežičnog senzorskog čvora • Mikrokontroler, radio modem, detektori (senzori), baterije • Paspodjela potrošnje energije osnovnih komponenti senzorskog čvora • Osnovni modovi rada senzorskog čvora i dizajn protokola za čvorove sa ograničenom količinom energije za napajanje • Operacijski sustavi za senzorske čvorove
Arhitektura bežičnog senzorskog čvora • Osnovne komponente • Kontroler • Procesira relevantne podatke, izvršava bilo koji kod • Radio predajnik/prijemnik • Omogućuje razmjenu podataka (pretvara čvor u mrežni uređaj) • Detektori i/ili aktuatori • “Sučelje” prema okruženju u kojem se čvor nalazi • Memorija • Pohrana programske podrške, te privremenih podataka (očitanja) • ROM – programi, RAM – privremeni podaci • Napajanje Memorija Detektori/ Aktuatori Radio modem Kontroler Napajanje
Kontroleri • Neke opcije za kontrolere • Microkontroleri – procesori za generalne svrhe, optimizirani za rad sa malim kompaktinim aplikacijama, mala potrošnja • DSPs (Digital Signal Processors) – optimizirani za obradu specifičnih signala • Ovisno o aplikaciji, ali generalno se ne koriste (obrade podataka na senzorima nisu “zahtjevne”) • FPGAs (Field-Programmable Gate Arrays) • Mogu se rekonfigurirati “u polju” da bi se prilagodili novim zahtjevima • Dobro za testiranje • ASICs (Application-Specific Integrated Circuits) • Nisu fleksibilni, mogu se koristiti za postizanje ekstremnih performansi • Npr. Specijalizirani procesori za “router” ili “switch” • Neki primjeri mikrokontrolera • Texas Instruments MSP430 • 16-bit RISC core, 4 MHz, 2-10 kbytes RAM, cijena 0.49 US$ • Atmel ATMega • 8-bit controller, larger memory than MSP430, slower
Arhitektura bežičnog senzorskog čvora • Osnovne komponente • Kontroler • Procesira relevantne podatke, izvršava bilo koji kod • Radio predajnik/prijemnik • Omogućuje razmjenu podataka (pretvara čvor u mrežni uređaj) • Detektori i/ili aktuatori • “Sučelje” prema okruženju u kojem se čvor nalazi • Memorija • Pohrana programske podrške, te privremenih podataka (očitanja) • ROM – programi, RAM – privremeni podaci • Napajanje Memorija Detektori/ Aktuatori Radio modem Kontroler Napajanje
Komunikacijski uređaj • Koji transmisijski medij koristiti? • Elektromagnetski spektar na radio frekvencijama • Elektromagnetski spektar u području svijetla? • Ultrazvuk? • Radio primopredajnik emitira niz bitova (byte-ova)kao radio val • Prima radio val i konvertira ga nazad u niz bitova (byte-ova) • Obično se radi o “half-duplex” načinu rada • Istovremena emisija signala i primanje drugog signala u istom frekvencijskom području nije praktična
Karakteristike primopredajnika • Odabir odgovarajućeg primopredjanika ovisi o brojnim karakteristikama (mogućnosti) • Usluge za više razine komunikacijskog modela • Prijemnik prosljeđuje primljene podatke Medium Access Control (MAC) razini u obliku “paketa” • Alternativno Prijemnik prosljeđuje niz byte-ova ili bitova • Podržan frekvencijski spektar • Tipično u području 433 MHz – 2.4 GHz ISM (Industry, Scientific and Medical) band • Podrška za komunikaciju preko više kanala • Izbjegavanje interferencije • Podržana brzina prijenosa podataka • Komunikacijski domet (od nekoliko metara do preko 100 m)
Karakteristike primopredajnika • Odabir odgovarajućeg primopredjanika ovisi o brojnim karakteristikama (radio karakteristike i energetska efikasnost) • Podržane modulacije (ASK, FSK, ...) • “Noise figure” NF = SNRInput/SNROutput (SNR – “Signal to Noise Ratio”) • Osjetljivost prijemnika • Minimalna snaga signala na prijemniku da bi se postigla zadovoljavajuće niska razina grešaka u prijemu • “Gain”: omjer izlazne snage signala prema ulaznoj snazi signala • “Carrier sensing” i RSSI (Received Signal Strength Indication) • Kod mnogih modernih bežičnih mreža, detekcija zauzeća kanala (drugi čvor koristi kanal) je kritična informacija • Preko RSSI i transmitirane snage, moguće je dati grubu procjenu udaljenosti transmitera • Mogućnost kontrole snage sa kojom se transmitira signal • Potrošnja snage za prijem i predaju • Potrošnja snage prilikom promjene stanja primopredajnika • “prijem -> predaja” i obrnuto “predaja -> prijem”
Moguća stanja primopredajnika • Primopredajnici se mogu nalaziti u različitim stanjima, a tipična stanja su • Stanje slanja (“transmit”) • Stanje primanja (“receive”) • Stanje mirovanja (“idle”) – spreman za prijem ali ne prima • U ovom stanju neke funkcije u hardveru primopredajnika mogu biti isključene radi uštede energije • Stanje potpunog mirovanja (“sleep”) – najveći dio hardverskih komponenti primopredajnika su isključene • U ovom stanju primopredajnik nije u mogućnosti primiti signal • Vrijeme opravka (“recovery time”)and “startup energy”potrebno za napuštanje ovog stanja može biti značajno
“Wakeup receivers” • Velika potrošnja energije u stanjima: primanja i mirovanja • “Idle” i “spreman za primanje” stanja troše značajnu količinu energije • Važno pitanje: Kada uključiti prijemnik? • “Contention-based MAC” protokoli (e.g., WiFi): receiver stalno uključen • TDMA (Time Division Multiple Access)-bazirani MAC protokoli - velikiproblem je sinkronizacija transmisija • Moguće rješenje: prijemnik koji može samo detektirati dolazni signal (ne radi demodulaciju) • Kada je signal detektiran, “probudi” glavni prijemnik koji će primiti i obraditi cijeli signal • Idelno: “wakeup receiver” može procesirati jednostavne adrese
Arhitektura bežičnog senzorskog čvora • Osnovne komponente • Kontroler • Procesira relevantne podatke, izvršava bilo koji kod • Radio predajnik/prijemnik • Omogućuje razmjenu podataka (pretvara čvor u mrežni uređaj) • Detektori i/ili aktuatori • “Sučelje” prema okruženju u kojem se čvor nalazi • Memorija • Pohrana programske podrške, te privremenih podataka (očitanja) • ROM – programi, RAM – privremeni podaci • Napajanje Memorija Detektori/ Aktuatori Radio modem Kontroler Napajanje
Detektori (senzorske komponente) • Osnovne kategorije • Pasivni i aktivni senzori (ovisno o tome je li emitiraju nekakvu energiju) • Je li pokrivaju sve smjerove ili samo uži smjer? • Pasivni i “omnidirekcionalni” detektori • Detektori svijetla, termometri, mikrofoni, detektori vlažnosti • Pasivni detektori koji pokrivaju usko područje • Kamera • Aktivni senzori • Radar, ultrazvučni ili radio • Važan parametar: područje pokrivenosti (“coverage”) • Koliko kvalitetno i adekvatno neki detektor (senzor) pokriva određeno područje od interesa?
Arhitektura bežičnog senzorskog čvora • Osnovne komponente • Kontroler • Procesira relevantne podatke, izvršava bilo koji kod • Radio predajnik/prijemnik • Omogućuje razmjenu podataka (pretvara čvor u mrežni uređaj) • Detektori i/ili aktuatori • “Sučelje” prema okruženju u kojem se čvor nalazi • Memorija • Pohrana programske podrške, te privremenih podataka (očitanja) • ROM – programi, RAM – privremeni podaci • Napajanje Memorija Detektori/ Aktuatori Radio modem Kontroler Napajanje
Napajanje bežičnih senzorskih čvorova • Osnovni cilj je osigurati što više energije uz najmanju moguću cijenu/volumen/težinu/trajanje napajanja • Kod bežične senzorske mreže, punjenje baterija može ali i ne mora biti moguće • Neke opcije • Primarne baterije – ne mogu se puniti • Sekundarne baterije – mogu se puniti, ali je potrebna neka podruška za punjenjem iz okruženja (“energy harvesting”) • Zahtjevi koji se postavljaju na baterije • Visok kapacitet uz mali volument/cijenu/težinu (J/cm3) • Visok kapacitet pod (dinamičkim) opterećenjem • Visoka stabilnost napona • “Self-discharge” mora biti nizak (ne smiju se brzo prazniti)
Primjer baterija za napajanje Bazirano na “Protocols and Architectures for Wireless Sensor Networks”, Holger Karl, 2005.
Prikupljanje energije iz okruženja • Energy-scavenging • Kako napuniti bateriju? • Laptop: vrlo jednostavno, spoji se na električnu mrežu • Senzorski čvor – pokušaj prikupiti energiju iz okruženja • Mogući izvori energije u okruženju • Svijetlo solarne ćelije – between 10 W/cm2 and 15 mW/cm2 • Temperaturna razlika – 80 W/cm2 na 1 V iz razlike od 5K • Vibracije – između 0.1 i 10000 W/cm3 • Promjena pritiska (“piezo-electric”) – 330 W/cm2 peta cipele • Protok zraka ili tekućine • MEMS (Micro-Electro-Mechanical Systems) plinske/zračne turbine
Prikupljanje energije iz okruženja MEMS uređaj koji pretvara vibracije u električnu energiju
Potrošnja energije senzorskih čvorova • Glavni potrošači energije su mikrokontroleri, radio primopredajnik a u manjoj mjeri memorija i senzorski detektori (ovisno o tipu) • Primjer: potrošnja mikrokontrolera • Pretpostavimo da je porebno 1 nJ energije po instrukciji • Imamo malu bateriju (“smart dust” – 1mm3) koja može pohraniti negdje oko 1 J = 1 Ws energije • Ovo je ekvivalentno 109instrukcija • Za ciljano vrijeme života baterije od 1 dan • 1 dan = 24x60x60s =86400 s • Dobivamo ograničenje na kontinuiranu potrošnju mikrokontrolera od svega 1 Ws / 86400s ≈11.5 W • Postojeći kontroleri ne mogu raditi sa ovako niskom potrošnjom! • Potreban je drugačiji pristup (dizajn “low-power” čipova)
Štednja energije kroz različite modove rada • Obzervacija: senzorski čvor većinu vremena “ne radi ništa” • Ako nije aktivan, senzor može ući u “power safe” način rada • Kada ući u “power safe” mod? Kako/kada izići iz istog? • Tipični modovi rada • Mikrokontroler: “active”, “idle”, “sleep” • Primopredajnik: isključi/uključitransmiter/prijemnik • Neki kontroleri podržavaju više razina “sleep” načina rada (npr. “deep sleep”) • Ovo jako ovisi o hardveru koji se koristi • Texas Ins. MSP 430 ima 4 različita “sleep” moda • Atmel ATMega ima 6
Štednja energije kroz različite modove rada • Primjeri za mikrokontrolere (2005.) • TI MSP 430 (@ 1 MHz, 3V): • Normalan način rada 1.2 mW • “Deepest sleep” mod 0.3 W – (ne radi čak ni interni “timer”) • Atmel ATMega • Normalna operacijski način rada: 15 mW “active”, 6 mW “idle” • “Sleep” mod: 75 W
Promjena operacijskih modova (1/4) • Najednostavnije je prijeći u niži mod rada kad god je to moguće • Problem sa ovim pristupom: Vrijeme i potrošnja energije da be se sustav vratio u viši mod rada nisu zanemarivi • Dodatne operacije/radnje nužne • Obično se pretpostavlja da što je “dublji san” tim je potrebno više energije za “buđenje” ili prijelaz u viši operacijski mod • Prebacivanje između različitih modova rada ima smisla samo ako vrijediEsaved > Eoverhead
Promjena operacijskih modova (2/4) Eoverhead Esaved Pactive Psleep t1 tevent time Tdown Tup • Primjer “buđenja”: probudi se kada se dogodi nešto “zanimljivo” • “Event-triggered wake up” • U trenutku t1 se odlučuje je li se npr. kontroler (ili radio) stavlja u “sleep” mod • Ukoliko kontroler ostaje aktivan do tevent, ukupna energija koja se utroši iznosi Eactive = Pactive(tevent – t1) • Tdown je vrijeme potrebno za ulazak u “sleep” mod, te pretpostavimo da je prosječna potrošnja snage u ovom periodu jednaka (Pactive + Psleep)/2
Promjena operacijskih modova (3/4) Eoverhead Esaved Pactive Psleep t1 tevent time Tdown Tup • Ukupna potrošnja snage u “sleep” modu je: Esleep=Tdown(Pactive+ Psleep)/2 + (tevent – t1 – Tdown)Psleep • Ukupna sačuvana energija: Esaved = Eactive– Esleep • Energija potrebna za “buđenje”: Eoverhead = Tup(Pactive+ Psleep)/2
Promjena operacijskih modova (4/4) Eoverhead Esaved Pactive Psleep t1 tevent time Tdown Tup • Prelazak u “sleep” mod rada ima smisla samo ako je Esaved > Eoverhaed • Ako je tevent (vrijeme do sljedećeg događaja) dovoljno veliko, prelazak u “sleep” isplativ ako (tevent – t1) > ½ [Tdown + (Pactive+ Psleep)/(Pactive- Psleep)Tup] • Potrebno je pažljivo organizirati ove tranzicije između različitih modova rada kontrolera, radio primopredajnika,...
Dinamičko podešavanje napona • Strategija bazirana na prebacivanju između različitih operacijskih modova komplicira se nepoznavanjem trajanja “sleep” vremena • Alternativa: Dynamic Voltage Scaling (DVS) • Osnovna ideja: • Potrebna snaga P ovisi o: • Frekvenciji f kontrolera • Kvadratu napona napajanja • P ~ f∙V2 • Što je manja frekvencija radakontrolera, manja je potrošnja • Napon napajanja može se smanjiti na nižim frekvencijama • Jednostavno je vratiti kontroleru brži način rada • Pri ovome treba voditi računa da izvršavanje naredbi traje duže
Dinamičko podešavanje napona • Primjer: Transmeta Crusoe procesor (2005.) • Moguće regulirati radnu frekvenciju i radni napon u rasponuod 700MHz na 1.65V do 200MHz na 1.1 V • Potrebna snaga se smanji za približno 700x1.652/200x1.12=7.875 puta • Pri tome se brzina rada smanji za 700/200=3.5 puta • Energija (E=P∙T) potrebna za izvšavanje jedne instrukcije je smanjena za3.5/7.875 ≈ 44% !
Potrošnja radio primopredajnika • Radio predajnik: dva glavna izvora potrošnje • Generiranje RF signala (ovisno o modulaciji, udaljenosti prijemnika) • Elektronika za sintezu frekvencija, frekvencijski filteri... • Radio prijemnik • “Receive, idle, off” (potrošnja “receive” ≈ potrošnja “idle”) • Potrošnja zbog elektronike (ovisna o broju bitova koji se šalju)
Potrošnja radio predajnika • Snaga pojačala: Pamp = amp + amp Ptx • Ptxsnaga kojom se transmitira signal (funkcija udaljenosti d, modulacije) • amp, ampkonstante ovisne o modelu predajnika • Uz pojačalo,elektronika predajnikatreba snagu PtxElec • Energija/vrijeme potrebno za emitiranje kbitova: k / (R * Rcode) • R nominalni “data rate”, Rcode< 1 “coding rate”(broj korisnih bitova) • Energija/vrijeme potrebno za napuštanje “sleep” moda • Time Tstart, average power Pstart • Ukupna potrošnja energije za slanje k “korisnih” bitova Etx = Tstart Pstart + k / (R * Rcode) (PtxElec + amp + amp Ptx)
Potrošnja radio prijemnika • Prijemnik također troši zbog inicijalizacije prijema • Time Tstart, average power Pstart • Vrijeme potrebno za prijem kbitova: k / (R * Rcode) • Elektronika prijemnikatreba snagu PrxElec • Dodatno: prijemnik toši energiju za dekodiranje k bitova EdecBits • Ukupno za prijem: Erx = Tstart Pstart + k / (R * Rcode) PrxElec + k EdecBits
Potrošnja primopredajnika: primjer • “Startup” vrijeme i energija može biti jako velika (wakeup radio) • “Idle” i “receive” potrošnje približno iste • Snaga potrebna za transmisiju i prijem signala su približno iste
Odnos između procesiranja i komunikacije • Je li moguć “trade-off” između potrošnje energije zbog procesiranja i potrošnje uslijed komunikacije? • Omjer potrošnje energija za “slanje jednog bita” i “obrade jedne instrukcije” je negdje između 220 and 2900 u literaturi • Stoga možemo zaključiti: Slanje i primanje jednog kilobajta“košta” jednako energije kao obrada (računanje) 3 milijuna (3x106) instrukcija. • Slijedi iz navedenog da je bolje što više procesirati bitove lokalno nego iste komunicirati (kad god je to moguće) • Osnovna tehnika kod bežičnih senzorskih mreža počiva na – “in-network processing”! • Koristi kompresiju, inteligentne kodove, agregaciju podataka,...
Operacijski sustavi kod WSN: izazovi • Zadaća operacijskog sustava je kontrola i zaštita pristupa resursima računalnog sustava i upravljanje alokacijom tih resursa između različitih korisnika (procesa) • Opcije za “male” bežične čvorove • Moraju biti lako programabilni • Moraju imati podršku za procese • Može se žrtvovati zaštita i izolacija različitih procesa od drugih procesa (samo jedan korisnik) • Budući da senzorski čvor obično implementira jednu aplikaciju, da nema potrebe štititi je od drugom malicioznog softvera, te da aplikacijo obično može direktno kontrolirati hardver zapravo nema potrebe za kalsičnim operacijskim sustavom • Umjesto cijelog operacijskog sustava, implementiraj (koristi) jednostavno “run-time” okruženje • Ovo je dovoljno da bi se “skrili” detalji komunikacije sa harverom • Jedna ozbiljna konzekvenca ovog pristupa: novi model za programiranje
Istovremena obrada više procesa (“concurency”) Poll sensor Process sensor data Poll transceiver Process received packet • Prvi pristup: Bez podrške za istovremenu obradu procesa • Problemi: Riskira se da se propuste neki podaci (npr. od primopredajnika) kada je kontroler zauzet nekakvom obradom podataka. • Interupti i askinkron način rada je nužan • Zašto “concurrency”? • Senzorski kontroler mora obrađivati/posluživati zahtjeve radio modema, detektora na senzoru, izvršavati odgovarajuću aplikaciju, izvršavati komunikacijski protokol,...
“Concurrency”: tradicionalan pristup Handle sensor process Handle packet process OS-mediated process switching • Tradicionalni OS dozvoljavaju istovremeno izvšavanje više procesa (thread-ova) • Bazirano na interuptima i “context switching”-u • “Context switching” ima određeni “overhead” zbog promjene procesa koji se trenutno obrađuje • Kod WSNs • Koncept jedan proces po jednom protokolu implicira previše “context switching”-a • Mnoge zadaće kod WSN su relativno male u odnosu na “overhead” koji unosi “context switching” • Nadalje: zaštita između različitih procesa i nije nužna kod WSN • Izvode u pravilu samo jednu aplikaciju(samo jedan korisnik)
WSN: “Event-based concurrency” R a d i o S e n s o r e v e n t e v e n t I d l e / R e g u l a r R a d i o e v e n t h a n d l e r p r o c e s s i n g S e n s o r e v e n t h a n d l e r • U usporedbi sa “process-based concurrency” kod tradicionalnih OSa • Ideja bazirana na “interrupt handler”-ima: • Izvršavaj regularnu obradu ili budi “idle” • Reagiraj na događaje odmah, te ih obradi kompletno • Obrada handler-a ne smije trajati predugo (gubitak podataka) • Definiraju se dva konteksta • Jedan za “time-critical” operacije (“event-handlere”) • Izvršavanje ovih operacije ne može se prekinuti nekim drugim događajem (“run to completition”) • Drugi kontekst služi za obradu “normalnog” koda (aplikacija)
Zaključak Memorija Detektori/ Aktuatori Radio modem Kontroler Napajanje