Transcript Lecture-2

Bežične Senzorske Mreže
Arhitektura bežičnog senzorskog čvora
Mario Čagalj
[email protected]
FESB, 19/3/2014.
Bazirano na “Protocols and Architectures for Wireless Sensor Networks”, Holger Karl, 2005.
1
Pregled predavanja
o Struktura bežičnog senzorskog čvora
> Mikrokontroler, radio modem, detektori (senzori), baterije
o 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
o Operacijski sustavi za senzorske čvorove
2
Bežična senzorska mreža
3
Arhitektura bežičnog senzorskog čvora
o 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
Radio modem
Memorija
Kontroler
Napajanje
Detektori/
Aktuatori
4
Kontroleri
o 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”
o 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
5
Arhitektura bežičnog senzorskog čvora
o 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
Radio modem
Memorija
Kontroler
Napajanje
Detektori/
Aktuatori
6
Komunikacijski uređaj
o Koji transmisijski medij koristiti?
> Elektromagnetski spektar na radio frekvencijama
> Elektromagnetski spektar u području svijetla?
> Ultrazvuk?
o 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
7
Karakteristike primopredajnika
o 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)
8
Karakteristike primopredajnika
o 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”
9
Moguća stanja primopredajnika
o 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
10
“Wakeup receivers”
o Velika potrošnja energije u stanjima: primanja i mirovanja
> “Idle” i “spreman za primanje” stanja troše značajnu količinu energije
o 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 - veliki
problem je sinkronizacija transmisija
o 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
11
Arhitektura bežičnog senzorskog čvora
o 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
Radio modem
Memorija
Kontroler
Napajanje
Detektori/
Aktuatori
12
Detektori (senzorske komponente)
o 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
o Važan parametar: područje pokrivenosti (“coverage”)
> Koliko kvalitetno i adekvatno neki detektor (senzor) pokriva određeno
područje od interesa?
13
Arhitektura bežičnog senzorskog čvora
o 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
Radio modem
Kontroler
Napajanje
Detektori/
Aktuatori
14
Napajanje bežičnih senzorskih čvorova
o 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
o 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”)
o 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)
15
Primjer baterija za napajanje
Primarne baterije
Chemistry
Zinc-air
Lithium
Alkaline
Energy (J/cm3)
3780
2880
1200
Sekundarne baterije
Chemistry
Lithium
NiMHd
NiCd
Energy (J/cm3)
1080
860
650
Bazirano na “Protocols and Architectures for Wireless Sensor Networks”, Holger Karl, 2005.
16
Prikupljanje energije iz okruženja
o Energy-scavenging
o Kako napuniti bateriju?
> Laptop: vrlo jednostavno, spoji se na električnu mrežu
> Senzorski čvor – pokušaj prikupiti energiju iz okruženja
o 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
17
Prikupljanje energije iz okruženja
MEMS uređaj koji pretvara vibracije u električnu energiju
18
Prikupljanje energije iz okruženja
19
Potrošnja energije senzorskih čvorova
o Glavni potrošači energije su mikrokontroleri, radio primopredajnik
a u manjoj mjeri memorija i senzorski detektori (ovisno o tipu)
o 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 109 instrukcija
o 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
o Postojeći kontroleri ne mogu raditi sa ovako niskom potrošnjom!
> Potreban je drugačiji pristup (dizajn “low-power” čipova)
20
Štednja energije kroz različite modove rada
o 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?
o Tipični modovi rada
> Mikrokontroler: “active”, “idle”, “sleep”
> Primopredajnik: isključi/uključi transmiter/prijemnik
o 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
21
Štednja energije kroz različite modove rada
o 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
22
Promjena operacijskih modova (1/4)
o Najednostavnije je prijeći u niži mod rada kad god je to
moguće
o 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
vrijedi Esaved > Eoverhead
23
Promjena operacijskih modova (2/4)
o 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
Eoverhead
Esaved
Pactive
Psleep
t1
Tdown
tevent
Tup
time
24
Promjena operacijskih modova (3/4)
o Ukupna potrošnja snage u “sleep” modu je:
Esleep=Tdown(Pactive+ Psleep)/2 + (tevent – t1 – Tdown)Psleep
o Ukupna sačuvana energija: Esaved = Eactive– Esleep
o Energija potrebna za “buđenje”: Eoverhead = Tup(Pactive+ Psleep)/2
Eoverhead
Esaved
Pactive
Psleep
t1
Tdown
tevent
Tup
time
25
Promjena operacijskih modova (4/4)
o 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]
Eoverhead
Esaved
Pactive
Psleep
t1
Tdown
tevent
Tup
time
o Potrebno je pažljivo organizirati ove tranzicije između različitih
modova rada kontrolera, radio primopredajnika,...
26
Dinamičko podešavanje napona
o Strategija bazirana na prebacivanju između različitih operacijskih
modova komplicira se nepoznavanjem trajanja “sleep” vremena
o Alternativa: Dynamic Voltage Scaling (DVS)
o Osnovna ideja:
> Potrebna snaga P ovisi o:
• Frekvenciji f kontrolera
• Kvadratu napona napajanja
• P ~ f ∙ V2
> Što je manja frekvencija rada
kontrolera, manja je potrošnja
• Napon napajanja može se
smanjiti na nižim frekvencijama
> Jednostavno je vratiti kontroler
u brži način rada
> Pri ovome treba voditi računa da izvršavanje naredbi traje duže
27
Dinamičko podešavanje napona
o Primjer: Transmeta Crusoe procesor (2005.)
> Moguće regulirati radnu frekvenciju i radni napon u rasponu
od 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 za
3.5/7.875 ≈ 44% !
28
Potrošnja radio primopredajnika
o Radio predajnik: dva glavna izvora potrošnje
> Generiranje RF signala (ovisno o modulaciji, udaljenosti prijemnika)
> Elektronika za sintezu frekvencija, frekvencijski filteri...
o Radio prijemnik
> “Receive, idle, off” (potrošnja “receive” ≈ potrošnja “idle”)
> Potrošnja zbog elektronike (ovisna o broju bitova koji se šalju)
29
Potrošnja radio predajnika
o Snaga pojačala: Pamp = amp + amp Ptx
> Ptx snaga kojom se transmitira signal (funkcija udaljenosti d, modulacije)
> amp, amp konstante ovisne o modelu predajnika
o Uz pojačalo, elektronika predajnika treba snagu PtxElec
o Energija/vrijeme potrebno za emitiranje k bitova: k / (R * Rcode)
> R nominalni “data rate”, Rcode < 1 “coding rate” (broj korisnih bitova)
o Energija/vrijeme potrebno za napuštanje “sleep” moda
> Time Tstart, average power Pstart
o
Ukupna potrošnja energije za slanje k “korisnih” bitova
Etx = Tstart Pstart + k / (R * Rcode) (PtxElec + amp + amp Ptx)
30
Potrošnja radio prijemnika
o Prijemnik također troši zbog inicijalizacije prijema
> Time Tstart, average power Pstart
o Vrijeme potrebno za prijem k bitova: k / (R * Rcode)
o Elektronika prijemnika treba snagu PrxElec
o Dodatno: prijemnik toši energiju za dekodiranje k bitova EdecBits
o Ukupno za prijem: Erx = Tstart Pstart + k / (R * Rcode) PrxElec + k EdecBits
31
Potrošnja primopredajnika: primjer
o “Startup” vrijeme i energija može biti jako velika (wakeup radio)
o “Idle” i “receive” potrošnje približno iste
o Snaga potrebna za transmisiju i prijem signala su približno iste
32
Odnos između procesiranja i komunikacije
o 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)
o Osnovna tehnika kod bežičnih senzorskih mreža počiva
na – “in-network processing”!
> Koristi kompresiju, inteligentne kodove, agregaciju podataka,...
33
Operacijski sustavi kod WSN: izazovi
o 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)
o 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
o 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
34
Istovremena obrada više procesa (“concurency”)
o 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
o 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,...
Poll sensor
Process
sensor
data
Poll transceiver
Process
received
packet
35
“Concurrency”: tradicionalan pristup
o Tradicionalni OS dozvoljavaju
istovremeno izvšavanje više procesa
(thread-ova)
>
>
Handle sensor
process
Handle packet
process
Bazirano na interuptima i
“context switching”-u
“Context switching” ima određeni
“overhead” zbog promjene procesa
koji se trenutno obrađuje
o 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”
o Nadalje: zaštita između različitih
procesa i nije nužna kod WSN
>
Izvode u pravilu samo jednu aplikaciju
(samo jedan korisnik)
OS-mediated
process switching
36
WSN: “Event-based concurrency”
o U usporedbi sa “process-based concurrency” kod tradicionalnih OSa
o 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)
o 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)
Radio
event
Sensor
event
Sensorevent
handler
Idle/Regular
processing
Radio eventhandler
37
Zaključak
Memorija
Radio modem
Kontroler
Detektori/
Aktuatori
Napajanje
38