Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
96
66.. ZZ--WWAAVVEE MMRREEŽŽEE ((IITTUU--TT GG..99995599 SSTTAANNDDAARRDD))
Z-Wave tehnologija je vlasnička tehnologija, razvijena od strane danske firme Zensys, koju
je kasnije kupila firma Sigma Designs. Oni su vlasnici tehnologije i proizvode Z-Wave čipove. Z-
Wave alijansa osnovana je 2005. godine, čini je više od 450 kompanija, i zadužena je za
sertifikaciju proizvoda. Fizički i MAC sloj koji koristi Z-Wave su definisani ITU-T G.9959
standardom, dok informacije o višim slojevima nisu javno dostupne. Ovde izložene informacije o
mrežnom sloju Z-Wave tehnologije potiču iz istraživačke literature.
Slika 159. Z-Wave protokol stek
6.1. Fizički sloj
Standard ITU-T G.9959 pokriva uskopojasne radio mreže malog dometa, brzine R1 = 9.6
kb/s, R2 = 40 kb/s ili R3 = 100 kb/s. Opsezi predviđeni za rad ovih mreža su 868 MHz u Evropi,
odnosno 908 MHz u Americi. Ovi opsezi koriste se samo za neke uređaje potrošačke elektronike i
bežične telefone, ali ne i za WiFi i Zigbee, tako da je u ovom opsegu manje šuma.
6.1.1. Modulacija
U ITU-T G.9959 mrežama koristi se FSK i GFSK modulacija. Simbol koji se moduliše može
biti predstavljen nivoom NRZ (non-return-to-zero) ili Mančester kodom. Kod Mančester koda
dolazi do tranzicije sa jednog nivoa na drugi tokom trajanja simbola - Slika 160.
U slučaju kada je simbol predstavljen NRZ vrednošću amplitude, različiti nivoi signala
mapiraju se na različite frekvencije. Kod Mančester koda, logička nula predstavlja se prelaskom sa
niže na višu frekvenciju, dok se logička jedinica predstavlja prelaskom sa više na nižu frekvenciju.
Mančester kod koristi se samo kod najmanje brzine prenosa R1.
97
Slika 160. Mančester kod
6.1.2. Format okvira
Format okvira fizičkog sloja dat je na slici Slika 161.
PreambulaSOF
(Start of Frame) PPDU
EOF
(samo za R1)
Slika 161. Okvir fizičkog sloja
Preambula služi za sinhronizaciju. Čini je niz alternirajućih nula i jedinica.
Oznaka za početak okvira SOF (Start of Frame Delimiter) dugačka je 8 bita, i sastoji se od
četiri jedinice i četiri nule: 11110000. Ovi biti označavaju početak okvira nakon sinhronizacije.
Oznaka za kraj okvira EOF (End of Frame Delimiter) koristi se samo kod R1, i čini je 8
simbola konstantne amplitude (što ne označava ni jedinicu ni nulu u Mančester kodu) - Slika 162.
Slika 162. EOF oznaka za kraj okvira
6.2. MAC podsloj sloja veze
Funkcije MAC sloja definisane su ITU-T G.9959 standardom takođe.
6.2.1. Format okvira
Opšti oblik okvira MAC sloja predstavljen je na slici Slika 163. Polje HomeID definiše
mrežu (domen) u kojoj se MAC okvir prenosi. Identifikator izvorišnog i odredišnog čvora pripadaju
istom domenu. Ukupno je na raspolaganju 232 identifikatora, te je to i maksimalan mogući broj
uređaja u Z-Wave mreži. Polje Length označava dužinu podatka koji se šalje.
Polje za kontrolu okvira sadrži informacije o tome da li se očekuje potvrda prijema okvira
(ACK), da li okvir treba rutirati, koji je tip okvira (multicast, unicast, ACK, rutirani okvir),
98
informacije o snopu kojim se uređaj može probuditi (dug, kratak, fragmentiran, nije podržan, itd.),
kao i informaciju o broju sekvence.
32 8 16 8 8 variable 8/16
HomeIDSource
node ID
Frame
ControlLength
Destinaton
node IDPayload FCS
Slika 163. MAC format okvira
Multikast okvir ima format predstavljen na slici Slika 164. Umesto identifikacije odredišta,
ovaj okvir sadrži polje za kontrolu multikasta i multikast masku.
Polje za kontrolu multikasta sastoji se od početne adrese bloka čvorova za koje je multikast
poruka namenjena, i informacije o dužini maske. U maski se nalazi jedinica na mestu koje odgovara
indeksu čvora koji je u multikast grupi. Vrednost identifikatora čvorova iz multikast grupe računa
se sabiranjem početne adrese bloka sa indeksom bita na kojima je jedinica u multikast maski.
32 8 16 8 8 232 variable 8/16
HomeIDSource
node ID
Frame
ControlLength
Multicast
control
Multicast
bit mask Payload FCS
Slika 164. Multicast okvir
6.2.2. Režim rada uređaja
Uređaji u Z-Wave mreži mogu raditi u dva režima: u AL (Always Listening) režimu, uređaj
je stalno aktivan i može da prima podatke, dok je u FL (Frequently Listening) režimu uređaj
periodično u aktivnom stanju, tokom kog osluškuje saobraćaj i proverava da li treba da sačeka
prijem poruke.
Kako bi se FL uređaju signaliziralo da treba da ostane budan kako bi primio podatke, koristi
snop okvir (Beam Frame). Snop okviri šalju se jedan za drugim, više njih u okviru snopa.
Relevantne informacije su sadržane u HomeID polju MAC okvira - Slika 165. Tag 0x55 signalizira
da se radi o snop okviru. NodeID određuje uređaj kome je okvir namenjen, dok HomeID heš
omogućava da se u zoni u kojoj je aktivno više mreža one međusobno razlikuju.
8 8 8
Beam Tag
(0x55)Node ID
Home ID
hash
(optional)Home ID
Slika 165. HomeID polje snop okvira
FL uređaj koji se prepozna na osnovu identifikacije čvora i mreže ostaće budan da primi
ostatak okvira. Ako nije adresiran, FL uređaj se može vratiti u hibernaciju. Pri svakom buđenju, FL
uređaj mora ostati dovoljno dugo aktivan, kako bi primio sve snop okvire
Snop okviri mogu se slati u okviru kontinualnog ili fragmentiranog snopa. Kod kontinualnog
snopa, okviri se šalju jedan za drugim tokom određenog perioda. Snop može biti dugačak (do 1160
ms) ili kratak (do 300 ms), i za njegov prenos se koristi brzina R2. Kod fragmentiranog snopa
smenjuju se periodi pauze i periodi u kojima se grupa snop okvira šalje jedan za drugim (fragment
snopa) – Slika 166. Za prenos fragmentiranog snopa koristi se brzina R3.
99
Slika 166. Fragmentiran snop
6.2.3. Pristup medijumu i slanje podataka
Uređaj koji želi da šalje podatke proverava prvo da li je kanal slobodan.Ako kanal nije
slobodan, uređaj se povlači na slučajno odabran period iz intervala koji je definisan standardom.
Priliko slanja podatka, signalizira se u okviru MAC okvira da li se očekuje potvrda prijema ACK.
Ako se ACK očekuje, a izostane, automatski se vrši retransmisija. U slučaju da određen broj
retransmisija propadne, zaključuje se da postoji problem sa konekcijom, i MAC sloj signalizira
višim slojevima da prenos nije uspeo.
6.3. Mrežni sloj
6.3.1. Tipovi uređaja u mreži
Sa stanovišta funkcionalnosti vezanih za dodavanje uređaja u mrežu i prenos podataka kroz
mrežu, Z-Wave razlikuje tri tipa uređaja: kontroler (master), rutirajući uređaj (routing slave) i
krajnji uređaj (slave).
Kontroler može da upravlja drugim uređajima. On ima ili fabrički postavljen HomeID, ili se
njegov HomeID generiše pri resetu uređaja. Takođe, NodeID mu je fabrički postavljen (obično je
0x01). Kontroler sadrži informacije o topologiji mreže, na osnovu kojih može da odredi putanju do
svih čvorova u mreži.
Rutirajući i krajnji uređaji nemaju fabrički ugrađene HomeID i NodeID vrednosti, već ih
dobijaju od kontrolera. Oni slušaju kontroler uređaj i ne mogu kontrolisati ostale uređaje u mreži.
Rutirajući uređaj ima informaciju o delu mrežne topologije (dobija je od kontrolera mreže, na
zahtev, i kešira). Krajnji uređaj ne sadrži nikakve informacije o topologiji mreže, i može samo
primati poruke i odgovoriti onome ko mu je poruku poslao. Obično su prenosivi uređaji u routing
slave modu rada, dok uređaji čija je pozicija fiksirana mogu biti slave (dimeri, utičnice i sl.).
6.3.2. Formiranje mreže
Mrežu može formirati samo kontroler uređaj, jer on ima ugrađen identifikator mreže
HomeID. U procesu priključivanja u mrežu, uređaji dobijaju isti HomeID kao i kontroler, a
kontroler im dodeljuje i identifikator čvora NodeID u svojoj mreži. U slučaju da uređaj sa
100
ugrađenim HomeID (kontroler) pristupa mreži drugog kontrolera, on takođe dobija HomeID
primarnog kontrolera.
Slika 167. Dodavanje uređaja u mrežu
6.3.3. Rutiranje u Z-Wave mreži
Z-Wave ne zahteva postojanje direktne vidljivosti između čvorova koji komuniciraju, već je
moguće prosleđivanje podataka putem čvorova repetitora. Maksimalan broj repetitora na putanji je
4.
Slika 168. Rutiranje u Z-Wave mreži
Koristi se rutiranje po putanji koju specificira izvor (source routing). Kontroler određuje
kompletnu putanju pre slanja podatka. Bira se najkraća putanja između dva uređaja (ona sa
101
najmanje skokova). Putanja se smešta u zaglavlje paketa, a repetitori samo prosleđuju paket na
osnovu informacija o putanji koje on sadrži, bez preračunavanja putanje.
6.3.4. Formiranje liste suseda
Prilikom uključivanja uređaja u mrežu nekog kontrolera, kontroler dobija informacije o
susdima tog uređaja. Kontroler održava listu suseda za sve čvorove, i na osnovu nje preračunava
putanje u mreži. Na slici Slika 169 dat je primer mreže i odgovarajuće liste suseda.
Slika 169. Lista suseda
Informacije o topologiji mreže mogu se razmenjivati posebnim porukama iz sistemske
komandne klase. Kontroler može zatražiti od uređaja listu njegovih suseda, incirati proveru te liste i
sl. Uređaj od kontrolera može zatražiti putanju do drugog uređaja i sačuvati je u kešu - Slika 170.
Slika 170. Razmena informacija o topologiji mreže
102
6.3.5. Format okvira
Okvir mrežnog sloja ima oblik predstavljen na slici Slika 171. Zaglavlje MAC sloja sadrži
informaciju o tome da je okvir rutiran, a zaglavlje mrežnog sloja sadrži informacije o putanju.
Slika 171. Format okvira mrežnog sloja
Polje SR Type određuje tip okvira, tj. da li su u pitanju podaci, ACK ili NACK poruka. Polje
SR Length specificira dužinu putanje, dok indeks skoka Hop Index označava trenutni indeks čvora
na putanji. Zatim slede identifikatori svih čvorova na putanji okvira.
Čvor koji prepozna svoj ID na trenutno indeksiranoj poziciji u putanji prima okvir,
inkrementira indeks i ponovo preračunava zaštitnu sumu. Zatim usmerava podatke ka sledećem
čvoru u putanji. Ukoliko neki čvor primi okvir sa indeksom skoka jednakim dužini putanje, on
proverava da li je podatak zaista njemu namenje, tj. da li je njegov ID u MAC zaglavlju na mestu
odredišta.
6.3.6. Potvrda prijema i kontrola greške
Prijem podatka potvrđuje se slanjem ACK okvira, po istoj putanji sa koje je okvir primljen,
uz dekrementiranje indeksa – Slika 172.
Slika 172. Potvrda prjema
103
Ako se prenos podatka pokuša tri puta bez uspeha, šalje se NACK okvir kako bi se prijavila
greška: U NACK okviru šalje se indeks skoka koji nije uspeo - Slika 173.
Slika 173. Prijava greške
6.3.7. Promena topologije mreže
Ažuriranje informacija o topologiji mreže zahteva vreme i troši resurse mreže, kao i bateriju.
Zato se ono obično ne vrši automatski. Kompletno ažuriranje informacija o topologiji može se
izvršiti na zahtev korisnika, tj. na zahtev sa aplikativnog sloja.
Informacije o topologiji mreže razmenjuju se samo između centralnog kontrolera i uređaja
koji se uključuju u mrežu. Krajnji uređaji koji se uključuju šalju kontroleru listu svojih suseda.
Sekundarni kontroleri koji se priključuju mreži dobijaju kopiju liste suseda koju primarni kontroler
ima u tom trenutku. Međutim, dalje promene liste suseda u primarnom kontroleru nisu automatski
vidljive ostalim kontrolerima u mreži.
Takođe, uređaji u mreži su obično prenosivi, tako da mogu menjati mesto, a samim tim i
svoje susede. U tom slučaju, uređaji mogu postati nedostupni, i može doći do problema u slanju
poruka do njih. Kada komunikacija sa nekim uređajem ne uspe, kontroler stavlja taj uređaj u listu
čvorova koji su nedostupni. Prva uspešno poslata poruka vraća uređaj u listu dostupnih. Kontroler
nikada ne briše uređaj iz mreže ako to nije eksplicitno zahtevao korisnik.
Dodatni problem u održavanju topologije mreže ažurnom predstavlja činjenica da kontroleri
mogu biti statički ili prenosivi uređaji. Prenosivi kontroleri se napajaju iz baterije i zato rade u FL
režimu. Ako je primarni kontroler FL uređaj, on može biti u hibernaciji u trenutku kada se neki
uređaj dodaje u mrežu, ili kada od njega traži informacije o putanji do nekog drugog uređaja. Sa
druge strane, statički kontroleri obično rade u AL režimu, tako da mogu uvek registrovati promene
u mrežnoj topologiji i davati informacije o raspoloživim putanjama. Međutim, fiksna pozicija
statičkog kontrolera može biti problem prilikom priključivanja uređaja u mrežu, u slučajevima kada
se uređaji nalaze izvan dometa.
Problem održavanja informacija o topologiji mreže i putanjama stalno ažurnim rešava se
primenom SUC (Static Update Controller) i SIS (Static ID Server) kontrolera.
104
i) Održavanje tabele rutiranja
SUC kontroler čuva informacije o svim putanjama u mreži, i odgovara na upite uređaja koji
traže putanju do određenog čvora. Ovaj uređaj je statički kontroler i stalno je aktivan. Tabelu
rutiranja inicijalno prima od prenosivog primarnog kontrolera i distribuira je ostalim sekundarnim
kontrolerima - Slika 174. Dalje dodavanje uređaja u mrežu primarni kontroler prijavljuje SUC
kontroleru, tako da se tabela rutiranja održava ažurnom i u primarnom kontroleru i u SUC
kontroleru. Ostali uređaji u mreži nove informacije dobijaju od SUC kontrolera na zahtev - Slika
175
Slika 174. Priključivanje SUC kontrolera
Slika 175.Ažuriranje tabele rutiranja
105
ii) Priključivanje uređaja
SIS server omogućava centralizovanu dodelu identifikatora uređaja (Node ID) uređajima
koji se uključuju u mrežu. On održava listu slobodnih vrednosti za identifikatore uređaja u mreži.
Zahvaljujući prisustvu SIS servera, i sekundarni kontroleri mogu dodavati uređaje - Slika 176. Na
ovaj način povećava se domet mreže. Problem može nastati ako se SIS server pokvari, jer se mora
cela mreža ponovo konfigurisati.
Slika 176. Dodavanje uređaja u mreži sa SIS serverom
iii) Promena mesta uređaja
Uređaj koji promeni mesto registrovaće da je došlo do promene topologije samo ako je
rutirajući i pokuša slanje. Krajnji uređaji neće primetiti da su izgubili konekciju sa roditeljem u
mreži.
Uređaj koji je izgubio konekciju šalje poziv u pomoć (cry for help). Poziv u pomoć se šalje
na broadcast adresu. Ako neki rutirajući uređaj u dometu pomerenog uređaja primi ovu poruku, on
će je proslediti do SUC kontrolera. Na osnovu primljene poruke, SUC kontroler ažurira tabelu
suseda i preračunava nove putanje. Međutim, ako u dometu pomerenog uređaja nema nekog
rutirajućeg uređaja, niko neće čuti poziv u pomoć, i uređaj će ostati nedostupan. Kao što je već
rečeno, uređaj neće automatski biti i uklonjen iz mreže, već samo obeležen kao nedostupan
(prilikom prvog sledećeg pokušaja slanja ka njemu). Uklanjanje uređaja iz mreže mora zatražiti
korisnik, sa aplikativnog sloja.