Za posledních několik let jsme si již více méně zvykli spojovat MESH sítě s bezdrátovým komunikačním standardem ZigBee. Ten však není na světě jediný kdo MESH sítě a směrování využívá. Mezi další patří i standard DigiMesh vyvinutý a patentovaný společností Digi International. Na první pohled vypadá podobně jako ZigBee, ale při podrobnějším zkoumání jde o dost odlišnou síť, která se hlavně vyznačuje pouze jedním typem uzlu (node) a struktura sítě je velmi homogení a stejnorodá. To poskytuje výhody i nevýhody, podle toho, co požadujeme od aplikace, kam bezdrátovou síť instalujeme.
Co je to DigiMesh ?
Jak již bylo zmíněno výše, DigiMesh je bezdrátový komunikační standard společnosti Digi International, který využívá strukturu, adresování a směrování MESH sítě a je alternativou ke známé ZigBee komunikaci a její nejnovější verzi ZigBee PRO. Shodnost se ZigBee nastává na úrovni fyzické a linkové MAC vrstvy OSI modelu, kde oba využívají služeb standardu IEEE 802.15.4. Na úrovni vyšších vrstev je pak DigiMesh výrazně jednodušší díky homogenní struktuře sítě složené pouze z jednoho typu uzlů (zařízení), které zároveň pracují jako směrovače i jako koncové stanice. Síť tak může mít libovolný "tvar", jednodušší adresování (jen 64bitová MAC adresa) a obsahovat funkci samospravování, která okamžitě zacelí "díru" v síti například po vypnutí některého dosud připojeného zařízení. Také lze všechny zařízení v síti uspat, čímž je DigiMesh velmi vhodné i pro sítě složené jen z bateriově napájených prvků (v ZigBee musí koordinátor a směrovače neustále fungovat).
Vlastnosti síťové komunikace DigiMesh
DigiMesh nabízí plno zajímavých vlastností, které v jiných sítích nenajdete. Asi jednou z nejzajímavějších schopností je samoopravitelnost sítě, která umožňuje zvýšit robustnost sítě, která se tak stává flexibilnější. V případě, že jedno RF spojení mezi uzly je ztraceno (kvůli ztrátě napájení nebo okolnímu rušení apod.), kritická data stále mohou dorazit do svého cíle určení díky v modulech / uzlech vestavěné schopnosti peer-to-peer (bod-bod) mesh síťové komunikaci.
Základní vlastnosti DigiMesh:
- Samoopravný režim - vstup uzlu do sítě nebo jeho opuštění sítě nezpůsobí pádu komunikace
- Architektura bod-bod (peer-to-peer) - žádná hierarchie a komunikační závislost sousedních uzlů
- Tichý protokol (Quiet Protocol) - dohled nad směrováním byl proveden zredukováním protokolu podobným s AODV
- Vyhledávání trasy - raději než provádět neustálé aktualizování mapy sítě, jsou cesty objevovány a vytvářeny interaktivně až v případě požadavku
- Selektivní potvrzování - pouze cílová stanice informuje o doručení
- Spolehlivé doručení - spolehlivé doručení dat je dosaženo potvrzením přijetí
- Spící režim - nízkopříkonový spící režim u všech uzlů v síti se synchronizovaným probuzením s nastavitelným spícím a probouzecím časem
Struktura sítě DigiMesh může být libovolná a všechny její uzly / zařízení jsou stejného typu.
Přenos a směrování dat v DigiMesh
Unicast adresování
Když se vysílají data při unicast komunikaci, je spolehlivost jejich doručení dosažena použitím opakování přenosu s potvrzením přijetí. Počet opakování je určeno parametrem NR (Network Retries). RF datové pakety jsou vysílány až NR+1 krát a ACK (potvrzení) jsou vysílány přijímacím uzlem dle předpisu. Pokud nedojde k uzlu, který data vyslal, síťové potvrzení ACK v čase rovnajícím se dvojnásobné době přenosu paketu sítí, nastane opakování přenosu.
Broadcast adresování
Broadcast přenosy by měly být přijaty a potvrzeny všemi uzly v síti. Protože se zde nevyužívá ACK potvrzení, vyšle původce zprávy data automaticky opakovaně 4x za sebou. To má za následek, že všechny uzly opakují přenos také 4x "na všechny strany". Aby nedošlo k RF kolizím, využívá se náhodného zpoždění vloženého před vyslání broadcast zprávy. Tento model však při častém použití může snadno způsobit zahlcení sítě a tak by se mělo broadcast komunikace využívat jen sporadicky.
Směrování
Modul uvnitř mesh sítě je schopen směrovat data použitím směrovacího algoritmu a tabulky. Směrovací algoritmus využívá reaktivní metodu odvozenou od metody AODV (Ad-hoc On-demand Distance Vector). Asociativní směrovací tabulka se využívá k mapování adres cílových uzlů s dalším přeskokem. Zpráva se tak postupně zasílá na další přeskokovou adresu až doputuje přímo k cíli (cílovému uzlu) nebo je přeposlána přechodnému uzlu, který nasměruje zprávu k cíli. Zpráva s broadcast adresou je pak vysílána všemi směry, všem okolním sousedům. Všechny okolní sousedé jí pak dál přepošlou až zpráva dosáhne všech míst v síti. Sledování paketu pak chrání každý uzel před dvojnásobným přerozesíláním broadcast zpráv.
Hledání trasy
Jestliže zdrojový uzel nezná cestu k požadovanému cíli, je paket zařazen do fronty pro čekání na proces hledání trasy RD (Route Discovery). Ten se také využije v případě, že dříve zjištěná a definovaná cesta selže. Tento případ nastane, když zdrojový uzel vyčerpal všechny pokusy na opakování přenosu (NR+1) bez obdržení potvrzení ACK. To má za následek, že zdrojový uzel aktivuje RD. Tento proces začíná u zdrojového uzlu všesměrovým vysláním žádosti RREQ (Route REQuest) o cestu. Každý uzel, který ji obdrží a není koncovým uzlem, se nazývá přechodný uzel. Ty mohou RREQ žádost zahodit nebo přeposlat, v závislosti na tom, jestliže nová RREQ má lepší cestu zpět ke zdrojovému uzlu. Jestliže se informace od RREQ uloží, je žádost updatována a všesměrově vyslána (broadcast). Jestliže cílový uzel RREQ obdrží, zašle odpověď RREP (Route REPly) zpět ke zdroji stejnou trasou, kudy k němu přišla. To se provede bez ohledu na kvalitu cesty a na počtu dříve zaslaných RREQ. To umožňuje zdrojovému uzlu přijmout několik odpovědí o cestě a poté vybrat nejlepší trasu z pohledu její kvality. Ta pak bude použita pro vyslání paketů čekajících ve frontě a i pro následující pakety obsahující stejnou cílovou adresu.
Vývojový diagram systému hledání optimální cesty (Route Discovery) před přenosem k neznámému uzlu v síti
Nízkopříkonový režim (režim spaní)
Pro snížení spotřeby u bateriově napájených sítí poskytuje DigiMesh hromadný nízkopříkonový spící režim. Ten je celý založen na časové synchronizaci celé sítě a na přesném definování střídajících se časových okamžiků, kdy se bude v síti komunikovat a kdy se bude spát. Tento způsob je označován jako cyklická spící síť. Ta je tedy formována všemi zasynchronizovanými uzly, které vstupují a vystupují z / do nízkopříkonového režimu dle jejich spících a probouzecích časů. Uzly se synchronizují přijmutím speciálního RF paketu nazvaného synchronizační zpráva, která je zaslána koordinátorem spaní. Tím se může stát každý uzel v síti prostřednictvím procesu nazvaným jmenování (nomination). Koordinátor spaní vyšle jednu synchronizační zprávu na začátku každé probouzecí periody, přičemž jako broadcast paket je následně opakován každým uzlem v síti.
Z pohledu napájení komunikačních uzlů v sítě tedy jsou k dispozici dva režimy provozu:
- SM0 - Standardní (defaultní) režim
- SM4 - Cyklický spící (nízkopříkonový) režim
Jde o to, že síť by měla být složena jen z uzlů provozovaných ve stejném režimu (tedy SM0 nebo SM4), protože mesh hledání trasy a následné směrování je možné pouze mezi uzly pracujícími ve stejných režimech. Avšak během provozu a údržby sítě může být míchání uzlů užitečné.
Režim spaní (Sleep Mode)
Uzel v režimu cyklického spaní pro nastavený čas se probudí ve shodě s dalšími uzly, vymění si data a synchronizační zprávy a opět se přepnou do spícího režimu. Během spaní nemohou přijímat RF zprávy ani číst příkazy z UART portu (například u modulů převodníků). Časy spaní a probuzení mohou být nastavitelné. Uzel s nezasynchronizovaným režimem spaní (například nově napájené zařízení), se periodicky probouzí a zkusí provést synchronizaci a opět upadne do režimu spánku. Tento cyklus se opakuje do té doby, dokud se nezasynchronizuje příjmem synchronizační zprávy. Jednou zasynchronizované uzly se již dále budou sami probouzet v přesně daném naprogramovaném časovém intervalu pro výměnu zpráv a pro potvrzení či doladění synchronizace a pak se opět uspí.
Standardní režim (Normal Mode)
Standardní režim je defaultní nastavení pro právě zapnuté uzly. V tomto režimu uzel neusíná, ale bude synchronizován do spící sítě. Pak, i když je ve standardním módu a neusíná, nastavuje a udržuje síť zasynchronizovanou odpovídáním za synchronizační zprávu od uzlů v cyklickém spícím režimu (SM4) vysíláním speciální unicast synchronizační zprávy. I když uzel v normálním režimu umožňuje se zasynchronizovat se spící sítí, nelze jej použít pro řídící účely, jako je například zapojování nových uzlů do spící sítě.
Porovnání struktury sítě DigiMesh (vlevo) a ZigBee (vpravo) - zatímco
u DigiMesh jsou všechny uzly stejné,
u ZigBee se musí vyskytovat koordinátor, směrovače a koncové body
Rozdíly DigiMesh a ZigBee
Oba tyto bezdrátové komunikační standardy založené na MESH síti (MESH směrování) mají několik věcí společných (například použití standardu IEEE 802.15.4). Co je však vzájemně odlišuje a kterou síť zvolit?
ZigBee |
DigiMesh |
|
Typy uzlů (nodes) | koordinátor, směrovače, koncové uzly | jeden univerzální typ uzlů (všechny v síti stejné) |
Spící režim, bateriové napájení | pouze koncové uzly lze uspat | všechny uzly lze uspat, aniž by došlo ke ztrátě dat |
Bezdrátový updare firmwaru | ano | nelze |
Možnost zvýšeného dosahu | max. dosah na přeskok je 3.2 km | v XTend verzi až 64 km |
Velikost datové části rámce | až 80 bajtů | až 256 bajtů |
Velikost kódu pro komunikaci | větší než u DigiMesh | zhruba poloviční než u ZigBee PRO |
Podpora pásem a dat. toku | hlavně 2.4 GHz (250 kb/s). Dále pak 900 MHz (40 kb/s) a 868 MHz (20 kb/s) | 900 MHz (10, 125, 150 kb/s) nebo 2.4 GHz (250 kb/s) |
Bezpečnost | 128bitové AES kódování, lze zamknout síť proti přidání dalších uzlů | 128bitové AES kódování |
Součinnost | otevřený standard - možná komunikace zařízení různých výrobců | není otevřeným standardem - patentováno |
Odolnost pro interferencím | Direct-Sequence Spread Spectrum (DSSS) |
Pásmo 900 MHz: Frequency-Hopping Spread Spectrum (FHSS) Pásmo 2.4GHz: Direct-Sequence Spread Spectrum (DSSS). |
Adresování | dvě vrstvy: MAC adresa (64 bitů) a síťová adresa (16 bitů) | pouze MAC adresa (64 bitů) |
Volte ZigBee, jestliže potřebujete:
- Produkty komunikující otevřeným standard
- Možnost vzájemné komunikace přístrojů a zařízení různých výrobců
- Bezdrátový upgrade firmwaru
Volte DigiMesh, jestliže potřebujete:
- Jednodušší strukturu sítě - žádní koordinátoři a směrovače
- Schopnost uspat všechny uzly
- Jednoduché nastavení a rozšíření sítě
- Více odolnou mesh síť - souvisí s jednodušší strukturou
- Rychlou síť (až 156 kb/s v pásmu 900 MHz)
- Možný delší dosah (až 64 km pro každý přeskok)
- Větší užitečná velikost paketů
- Menší velikost základního kódu umožňující implementovat speciální funkce
Závěr
DigiMesh představuje zajímavou alternativu k ZigBee či ZigBee PRO a v některých, spíše jednodušších aplikacích, může být jeho použití výhodnější. K snadné instalaci DigiMesh komunikace do aplikací a vyvíjených zařízení slouží již hotové moduly společnosti Digi International, která však také nabízí moduly i pro ZigBee a ZigBee PRO. Modul vytváří komunikační rozhraní mezi sériovým rozhraním UART a právě bezdrátovou DigiMesh komunikací. Protože však DigiMesh není stejně jako ZigBee otevřeným standardem (je patentován a majetkem právě společnosti Digi International), nebude asi nikdy tak rozšířen.
Antonín Vojáček
DOWNLOAD & Odkazy
- Stránky konsorcium ZigBee Alliance - www.zigbee.org
- Stránky společnosti Digi International vyvíjející DigiMesh a výrobce jejich modulů - www.Digi.com