Szabó Attila, Feladatszervezés RF-MEMS hálózatokban
Szabó Attila, MEMS „Micro Electro Mechanical Systems” Korlátozott memória, energifelhasználás és számítási kapacitás Vezeték nélküli kommunikáció „Smart Dust”: olcsó, kisméretű szenzorok Gyártók: CrossBow, Intel, MoteIV
Szabó Attila, Eszközök: Crossbow
Szabó Attila, Szenzorok Ultrahang Fényérzékelő Mikorfon Hőmérő 2D-s gyorsulásmérő stb.
Szabó Attila, nesC, TinyOS nesC C nyelv kiterjesztése esemény alapú fejlesztőkörnyezetté TinyOS Néhány kilobyte-os operációs rendszer szenzor hálózatokhoz Megszakítások, többszálú programok vezérlése
Szabó Attila, Alkalmazások írása A nesC programok komponensekből állnak, ezek lehetnek: konfigurációk modulok A nesC számítási absztrakciói: események (event) taszkok (task) parancsok (command)
Szabó Attila, Példa: Blink 1. 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; } Konfiguráció: megvalósítások (modulok) rendelése interfészekhez Main komponens a futtatásra kerülő „főprogram”
Szabó Attila, Példa: Blink 2. StdControl.nc interface StdControl { command result_t init(); command result_t start(); command result_t stop(); } Timer.nc interface Timer { command result_t start(char type, uint32_t interval); command result_t stop(); event result_t fired(); } Kétirányú interfészek: parancsokat deklarálnak és eseményeket váltanak ki (ezek kezelése a használó modul feladata)
Szabó Attila, Példa: Blink 3. BlinkM.nc module BlinkM { provides { interface StdControl; } uses { interface Timer; interface Leds; } } A modulok interfész(eke)t valósítanak meg, ehhez esetleg más interfészeket használnak
Szabó Attila, Példa: Blink 4. ( BlinkM.nc ) 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; } }
Szabó Attila, MEMS alkalmazások Fejegér gyorsulásmérővel Hőmérséklet mérés (pl. üvegházakban) Távolságmérés ultrahanggal Négyzetmilliméteres, bőr alá ültethető érzékelők fejlesztése folyik gyógyászati alkalmazásokhoz
Szabó Attila, Feladatszervezés
Szabó Attila, Survivable Pipeline Protocol P2P protokoll önszervező pipeline-ok létrehozásához, fenntartásához skálamentes kisvilág tulajdonságú hálózatokhoz Feladat részfeladatokra (Pipeline Operations) bontását és ezek fenntartását oldja meg A részfeladatok erőforráshoz rendelése megbízhatósági skála alapján történik (weblog) a számítási kapacitás az erőforrások mennyiségével lineárisan arányos
Szabó Attila, SPP: szerepek Processzor: számol Disztribútor: adatot továbbít a processzornak (több disztribútor is kiszolgálhat 1 processzort) Manager: számon tartja a disztribútor-processzor kapcsolatokat egy hálózati entitásnak egyidőben több szerepe is lehet
Szabó Attila, SPP: kommunikáció SPP Pipe: e., m., ezen érkezik a feladat Data Pipe: e., u., ezen kapja az adatot a processzor Disztribútor Pipe: e., m., információk továbbítása a managertől a disztribútoroknak Task Pipe: e., m., taszkon belüli rendszerüzenetek számára Manager Pipe: k., u., résztaszkok delegálásához TaskManager: k., u., rendszer állapotával kapcsolatos üzeneteknek k: kétirányú, e: egyirányú, u: unicast, m: multicast
Szabó Attila, Demo alkalmazás: helymeghatározás Crossbow MICA2 alapú Cricket kütyükkel Érzékelő: ultrahang adó-vevő távolságméréshez (néhány centiméter pontosságú) Frekvenciamodulált rádió adó-vevő: egyszerre egy cricket rádiózhat, az egyszerre küldött üzenetek a zavarás miatt elvesznek
Szabó Attila, Helymeghatározás: szerepek A helymeghatározás feladatának dekompozíciója 4 PO-ból áll: három bázis ~ ( origó, x, y irányok ) egy helyzetmeghatározó ~ Egy, az SPP Pipe-on érkező üzenet idítja a feladatot, a cricketek ezután csatlakozhatnak a PO-khoz A 4. PO-ban lévők számon tartják egymás weblog értékeit és sorrendet alakítanak ki A PO-k pipe-okon keresztül kommunikálnak
Szabó Attila, Bázisok A bázisok PO-iba egy-egy cricket tartozhat Minden bázis „jelzőfényt” (rádiójelet) ad, ami tartalmazza a koordinátáit A PO-k sorrendje értelemszerűen a következő: origó, bázisx, bázisy, helyzetmeghatározó Fél másodpercenként fut le egy ilyen kör
Szabó Attila, Helyzetmeghatározó A PO-hoz csatlakozáshoz a PO méretének felével megegyező számú „engedély” kell A PO-hoz csatlakozás ideje a PO méretével exponenciálisan nő A hallott három koordináta és a három mért távolság alapján háromszögeléssel kiszámolja saját koordinátáit Az összes cricket helyének meghatározásához a negyedik PO elemszámával egyező számú ciklus kell
Szabó Attila, Eredmények 1. Az alkalmazás a helyzetmeghatározó „motorjától” függően 2D/3D koordináták meghatározására alkalmas A rendszer központi irányítás/adatgyűjtés nélkül képes meghatározni a résztvevők helyzetét A folyamatos működést garantálja a rosszul működő elemek kizárása/cseréje
Szabó Attila, Eredmények 2. Az ábrán látható, hány másodperc alatt áll fel 10/15/20/25 cricketből álló rendszer (az összes cricket csatlakozik valamelyik PO-hoz) kísérlet eredményének átlagai és szórásai A redszer stabil marad, ha egy vagy több cricket kiesik a helyzetmeghatározó PO-ból, ill. újraszerveződik bázis PO kiesésekor
Szabó Attila, Irodalom A. Meretei, Z. Palotai, A. Lorincz: „Systems and methods for sensing physiologic parameters of the human body and achieving a therapeutic effect” - United States Patent Zia, T.A., and Zomaya, A.Y., „An Analysis of Simulations and Programming in Wireless Sensor Networks”, In the proceedings of the International Workshop on Sensor Networks and Applications Alec Woo „The Mica Sensing Platform”, Jan 15th, 2002 NEST Retreat