Pázmány Péter Katolikus Egyetem Információs Technológiai Kar
Készítsen mérésadatgyűjtő berendezést, mely alkalmas az egyetemen fejlesztett GSM alapú helymeghatározásban használt adatbázis gyors egyszerű felvételére
Készítette: Konzulens:
Kelemen Mihály
Dr. Takács György, Tihanyi Attila
PPKE-ITK 2010.
Nyilatkozat Alulírott Kelemen Mihály, a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomamunkában csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem. Ezt a Diplomamunkát más szakon még nem nyújtottam be.
Budapest, 2010. május 14.
.............................................
Tartalomjegyzék 1
Bevezetés és motiváció....................................................................................... 1
2
Rádiósugárzási jelenségek ................................................................................. 2 2.1
3
Jelenségek felhasználhatósága helymeghatározási célokra................ 8
GSM hálózat jellemzői ....................................................................................... 11 3.1
4
Helymeghatározás GSM hálózat segítségével ..................................... 13
Adatgyűjtő eszköz .............................................................................................. 16 4.1
Követelmények........................................................................................... 16
4.2
Hordozható adatgyűjtő.............................................................................. 17
4.2.1
Mikroprocesszor................................................................................. 19
4.2.2
GPS modul.......................................................................................... 24
4.2.3
GSM modul ......................................................................................... 25
4.2.4
SD kártya............................................................................................. 27
4.2.5
Bluetooth modul ................................................................................. 29
4.2.6
Xmodem1K ......................................................................................... 31
4.3
Adatformátum ............................................................................................. 33
4.4
Elért eredmények....................................................................................... 35
5
Adatok tárolása ................................................................................................... 37 5.1
Tervezés...................................................................................................... 37
5.2
Megvalósítás............................................................................................... 38
6
Feltöltő alkalmazás............................................................................................. 41
7
Mérési eredmények............................................................................................ 42
8
Hibák az elmélethez képest.............................................................................. 45
9
További lehetőségek.......................................................................................... 46
10
Összefoglalás ................................................................................................. 47
11
Köszönetnyílvánítás ...................................................................................... 48
12
Irodalomjegyzék ............................................................................................. 49
Kivonat Ez a dolgozat egy GSM hálózati jellemzőkön alapuló helymeghatározási módszert ad meg. Tárgyalja a rádióhullámok terjedési jellemzők fő jellegzetességeit. A Maxwell egyenletek segítségével kapunk magyarázatot ezekre a jelenségekre. A főbb rádióterjedési jellemzők megértéséhez ábrákat is mellékeltem. Ideális esetben a rádióhullámok terjedése a szabadtéri csillapítással adható meg. Városok között a GSM mobilhálózat leírható ezzel a tulajdonsággal. Nagyvárosi környezetben azonban figyelembe kell vennünk egyéb jelenségeket is, például a visszaverődést, az elhajlást, vagy a fading hatását. Ez a dolgozat bemutatja a GSM hálózat felépítését. Részletezi a cellás rendszer szerkezetét, és kitér a mobilhálózat tervezésének fő mozzanataira. Magyarázatot ad továbbá a frekvencia újrahasznosítás fontosságára, és megvizsgálja a rendszer felhasználhatóságát helymeghatározási célokra. Külön fejezetben térek ki egy új mérőeszköz fejlesztésére. Új Microchip mikrokontroller alapú műszert terveztem a GSM hálózat jellemzőinek rögzítésére, ami több perifériával áll kapcsolatban. A kifejlesztett megszakításvezérelt valósidejű beágyazott rendszer FAT fájlrendszerű SD és SDHC kártyát képes használni mérések tárolására. A rendszer támogatja továbbá a bluetooth kapcsolaton keresztüli vezérlés, valamint fájlátvitelt Xmodem protokollon keresztül. Ugyancsak kidolgoztam egy adatbázis szerkezetet az adatok központi szerveren való rögzítésére. Mellékeltem az adatbázisban szereplő táblák szerkezetét, összeköttetését, és lekérdezésmintákat is, amelyek az adatbázist még egyszerűbben kezelhetővé teszik. Készítettem egy alkalmazást a mérési fájlok feltöltésére. A dolgozat A dolgozat kitér a mérési eredmények elemzésére is klasszifikációs módszer segítségével, valamint bizonyítja, hogy a megadott eljárás alkalmas mobil helymeghatározásra.
Abstract This document gives a localization method based on GSM mobile system parameters. We discuss the main characteristics of the radiowave propagation. You can find description of these phenomena explained with Maxwell equitation. I show many illustrations for some special questions of radiowave propagation. In idealistic space radiowave propagation is given by free space loss. We can describe GSM mobile systems well with this property between cities. In suburban environment we had to care about other phenomena such as reflection, diffraction, and fading. This document presents the main architecture of GSM mobile networks. Details the structure of cellular systems, and explained the main points of mobile network design. I also give you explanation about frequency reuse, and examine it’s adaptability in mobile radio localization. I discuss the new measurement device implementation in separate chapter. I design a new hardware for recording GSM network parameters based on a Microchip microcontroller. There are many input and output peripherals connected to the processor. The implemented interrupt-driven real-time embedded operating system uses SD or SDHC card with FAT filesystem to store measurements. It is also possible to control the device via Bluetooth connection and download files via Xmodem protocol. I also give a database structure to store data in a common server. I include definition of tables, connectivity and query examples, which make the database much useful. I developed an uploader application for measurement files. The document gives analization too with classification technology, and proves that the discussed method is useful for mobile radio localization.
1 Bevezetés és motiváció Egyes felmérések szerint ma világszerte 3 milliárd mobil készülék van, és hazánkban is minden 5. embernek van legalább kettő készüléke aktív szolgáltatással. Emellett változnak az emberek közlekedési szokásai is, aminek köszönhetően megnőtt az igény az olcsó és ugyanakkor minél pontosabb helymeghatározási rendszerek iránt, valamint az egyszerű navigáción túl egyre több területen lehet felhasználni az ilyen technikákat. A GSM hálózat működési elvének kihasználásán alapuló helymeghatározás egy új, mindenki számára hozzáférhető rendszer lehet, melyhez nincs szükség, csak az amúgy is a zsebünkben lapuló telefonunkra. A dolgozat célja egy olyan eljárás készítése, amely elősegíti a GSM hálózat jellemzőinek gyors, pontos gyűjtését, valamint tárolását. A dolgozat 2. és 3. fejezetében részletesen foglalkozom azzal, hogy a GSM alapú helymeghatározási rendszer működtetéséhez milyen hálózatjellemzőket és mérési adatokat lehet felhasználni. A 3.1 fejezet végén adtam becslést a GSM alapú helymeghatározás pontosságával szemben támasztott elvárásainkra. A dolgozat további részei a szükséges mérési adatok gyűjtésére alkalmas mérőeszközt, valamint az adatgyűjtő eljárást írja le. A 4. fejezet részletesen taglalja az általam készített adatgyűjtő követelményeit, felépítését, valamint működését. A fejezet végén egy mérési mintán bemutatjuk, hogy az adatgyűjtő segítségével lehetséges minden helymeghatározás elvégzéséhez szükséges információ mérése. Az 5. fejezet ismerteti a kifejlesztett adatbázis felépítését. A 6. fejezetben leírt feltöltő
alkalmazás
teszi
adatbázisunkat
alkalmassá
az
adatgyűjtővel
mért
adathalmazok tárolására. Az adatok felhasználásának módjára a 7. fejezet ad példát. Az itt tárgyalt mérési eredmények igazolják, hogy méréseim, és a kifejlesztett eljárás kielégíti a helymeghatározási algoritmusokkal szembeni elvárásainkat. A dolgozat 8. fejezete sorra veszi az elmélethez képest kimutatott eltéréseket, és magyarázatot ad azokra a 2. fejezetben tárgyalt hálózati jellemzők ismeretében. Az eljárás továbbfejlesztésére, valamint a helymeghatározási módszer pontosítására a 9. fejezet ad megoldást.
1
2 Rádiósugárzási jelenségek Az elektromos és mágneses jelenségekkel elsőként Gauss, Faraday, és Ampère fizikusok foglalkoztak, majd a felhalmozott tudást James Clark Maxwell rendezte egyenletrendszerbe, mellyel leírhatóak az eddig tapasztalt jelenségek. Ezt hívjuk Maxwell egyenleteknek.
I
∇⋅D = ρ
∫ D ⋅ dS = ∫ ρdV ∫ B ⋅ dS = 0 S
II
∇⋅B = 0
Gauss - törvény
V
Faraday - Lenz - törvény
S
III IV
∂B ∂t ∂D ∇×H = J + ∂t ∇×E = −
∂
∫ E ⋅ dl = − ∂t ∫ B ⋅ dS Γ
∫ H ⋅ dl = ∫ ( J + Γ
Gauss mágneses törvénye
S
S
∂D ) ⋅ dS Ampère - törvény ∂t
1. ábra: Maxwell egyenletek differenciális és integrális alakja
A mágneses indukció megváltozásának hatására elektromos tér keletkezik, illetve, hogy az eltolási áram mágneses teret hoz létre már korábban Faraday, Lenz és Ampière által megfigyelt jelenségek. A kettő együttes hatását viszont elsőként Maxwell ismerte fel 1865-ben: Az elektronok mozgásuk közben elektromágneses hullámot keltenek maguk körül. Ez a megfigyelés tette lehetővé később Hertz és Marconi munkásságát a modern rádiótechnika területén. Elektromágneses hullámokat elsőként Heinrich Hertz állított elő 1887-ben. Bebizonyította, hogy a fény és hősugárzás is elektromágneses sugár. Később az elektromágneses hullámok frekvenciájának (másodpercenkénti rezgésszámának) a mértékegységének névadójává vált, melyet Hertz-nek nevezték el. Tudományos munkásságuk a vezeték nélküli kommunikáció alapjául szolgált. Az elektromágneses spektrum korlátolt része alkalmas csupán információ továbbítására, mivel az ultraibolya és azon túli sugarak előállítása és modulálása nehézkes, valamint nem képesek áthatolni a falon, illetve más tereptárgyakon.
2
2. ábra: Az elektromágneses spektrum és felhasználása a távközlésben [1]
A 2. ábrán látható az elektromágneses spektrum, illetve főbb alkalmazási területei. Ezek közül a legnépszerűbbek a rádiófrekvenciás jelek, mivel könnyen előállítható, és nagy távolságokra jutnak el. Ilyen például a földi sugárzású rádió, és televízió hálózat. Pont-pont összeköttetésre a mikrohullámokat alkalmazzák jól fókuszálhatóságuk miatt. Hátránya, hogy a házak fala nagymértékben elnyeli a mikrohullámokat, így a technika csak kültéri iránysugárzó antennákkal használható. A ház falán beeső teljesítmény elnyelődő része hővé alakul, másik része pedig újabb hullámfrontként megváltozott irányba halad tovább, melynek a forrása az előző hullám visszaverődési pontja. Tökéletes gombsugárzónak hívjuk azt az elméleti pontsugárzót, amely minden irányba egyforma mértékben sugároz. Ilyenkor az azonos fázisban lévő pontok egy szabályos gömbfelületen helyezkednek el. A gömb középpontjában a pontsugárzó áll. Szabadtéri terjedés esetén az energia egy része az átviteli közeg belső súrlódása révén disszipálódik, így a középponttól bármely irányba távolodva a hullám intenzitása a távolsággal, a vételi teljesítmény pedig a távolság négyzetével arányosan csökken. A következő képlet (3. ábra) egy gömbforrásból származó sugárzás hullámegyenletét írja le r távolságban, valamint a d távolságban vett teljesítménysűrűséget a GT nyereségű adóantennába betáplált PT teljesítmény esetén.
3
Ψ=
A0 r sin ω t − r v S=
PT GT 4πd 2
3. ábra: A rádiós hullámterjedés egyenlete, és teljesítmény sűrűsége
A hullámamplitúdó csökkenésének egyik oka a légköri abszorpció, amit az oxigén és vízgőz molekulák elnyelő hatása okoz. Ily módon adott frekvencián a fajlagos csillapítás értékét a levegő atmoszférikus oxigén és vízgőz koncentrációja határozza meg. A 4. ábrán az imént említett gázok fajlagos csillapítása látható a frekvencia függvényében 1% koncentrációja esetén.
4. ábra: Az atmoszférikus gázok fajlagos csillapítása[2]
4
Az eső is befolyásolni tudja a szabadtéri csillapítás mértékét. A fajlagos csillapítás (mértékegysége dB/km) az esőintenzitás (mm/óra), frekvencia és hőmérséklet függvénye.
A
hőmérsékletfüggés
a
víz
dielektromos
állandójának
hőmérsékletfüggéséből adódik. Az esőhöz hasonlóan a köd is növeli a fajlagos csillapítást, ám ez sokkal kisebb nagyságrendű változást jelent. [3]
5. ábra: Antenna iránykarakterisztikája [4]
Az eddig tisztázott gömbsugárzó antenna a gyakorlatban nem alkalmazható, mivel sugárzási tulajdonsága révén a bele táplált teljesítmény nagy részét sugározza ki a föld valamint az ég felé. Ebben a két irányban biztos, hogy nincsenek vevőantennák elhelyezve. Ilyen megfontolásokból kiindulva a valóságban használt sugárzók területre irányítottan sugároznak. Az antennának ezen tulajdonságát sugárzási karakterisztikának nevezzük. Ez a karakterisztika úgy szemléltethető, hogy az antenna által létrehozott azonos teljesítménysűrűségű pontokat azonosnak tekintjük, és összekötjük. Az előzőekben említett gömbsugárzó képe tehát egy szabályos gömbfelület, ehhez viszonyítható egy antenna karakterisztikája. Az ábráról
5
leolvasható, hogy az antenna milyen irányba sugározza ki a teljesítményének a legnagyobb részét, ezért nevezzük néha iránykarakterisztikának is. Egy antenna sugárzási karakterisztikája látható az 5. ábrán különböző ábrázolási módokban.[4] Az antennákat karakterisztikájuk szerint alapvetően két csoportra oszthatjuk. A dipól antenna az egyik legegyszerűbb felépítésű, és a körsugárzók csoportjába sorolható. Képe ideális esetben egy tórusz. A másik csoportba az iránysugárzó antennák tartoznak. Nevük arra a tulajdonságukra utal, hogy létezik egy fő irány, amelybe a kisugárzott energia nagy részét táplálják. Ebbe a csoportba tartoznak például a Yagi, Helix és a logaritmikusan periodikus antennák is. [5] Korábban tárgyalt a légköri abszorpció hatását a hullámterjedésre. Mivel a fény is elektromágneses hullám, így a rádióhullámoknál is észlelhetőek a fénynél tapasztalt jelenségek. A mikrohullámnál jelentkező ház falán jelentkező elnyelődés és visszaverődés jó példa erre. Ilyenkor a két közeg határán keletkezik egy visszaverődött hullám. Az új hullám frekvenciája megegyezik az eredetivel, amplitúdója, fázisa és polarizációja viszont a két közeg anyagától, és a határfelület egyenletességétől függ. A visszaverődést más néven reflexiónak nevezzük. Leginkább a troposzférában jellemző jelenség az elhajlás, vagy refrakció. Itt még elég nagy a gázok koncentrációja, hogy jelentősen megváltoztassa a rádióhullámok terjedési irányát. A gázok koncentrációjának változása révén az elhajlás mértéke magasságfüggő, és legjobban az ITU-R SG03.64-es ajánlás[6] hivatalos törésmutató indexével írható le. Kis beesési szögön érkező hullámok az elhajlás következtében visszatérnek a földre, míg nagyobb beesési szög esetén a hullámok kis elhajlást követően lehagyják a troposzférát.
6. ábra: A troposzférában fellépő elhajlás[2]
6
Egy másik jellemző jelenség az elhajlás vagy diffrakció. A szabad terjedést akadályozó tereptárgyak határainál figyelhető „késél diffrakció” hatására a hullám terjedési iránya megváltozik, és így a tereptárgy mögött is vehető a kisugárzott jel. Ezt kihasználva lehet például egy hegy két oldalán elhelyezett két antenna között kapcsolatot létesíteni, de nagyvárosi környezetben is kedvező hatással van a lefedhető terület méretére. Elhajlás létrejöttének feltétele, hogy az akadály mérete a hullámhosszhoz viszonyítva nagy legyen. [2] A Szóródás (scattering) azt jelenti, hogy a koherens hullámfront egy része összefüggéstelenné válik, és visszasugárzódik a föld irányába. Ez ugyan a jelenergia csökkenésével jár, viszont horizonton túli kommunikációt tesz lehetővé. Ilyen technológiát először a „White Alice” nevű kommunikációs rendszer használt, ami képes volt egész Alaszkát lefedni. [4] Két hullám találkozásánál a szuperpozíció elvének értelmében minden pont fázisa a két hullám pillanatnyi kitérésének eredőjeként írható fel (a pontbeli hullámegyenlet megegyezik a két hullámegyenlet összegével). Két azonos frekvencián sugárzó antenna jele egymással interferálódnak, erősítési és kioltási helyek jönnek létre. Ha két hullám fázisa tartósan megegyezik, állóhullámok alakulnak ki a térben. A különböző amplitúdójú és fáziskülönbségű direkt és reflektált hullámok interferenciája okozza a fading jelenséget. Többféle fading létezik. Egyik típusa a lassú fading. Lassú fadinggel magyarázható a vett jelerősség értékének lassú ingázása a szabadtéri csillapítás körül. A jelerősség esése tipikusan maximum 8dB körül alakul. A másik fading típus a gyors fading, amit először Lord Rayleigh írt le 1889-es modelljével. Ő a modellt ugyan az összhangban játszó vonósok hangjára írta fel, de a jelenség a rádióhullámokra is jellemző. Innen is kapta a Rayleigh fading nevet. A Rayleight féle modellben nem érkezik direkt hullámfront a vevőhöz, csak visszaverődött hullámok. A Rice által leírt modell tartalmaz egy domináns útvonalat, ami eltolja az egyenletes eloszlást.[7] Sokszor a vevőegység nem rögzített, hanem mozog. Ilyenkor a doppler csúszás következtében megváltozik a rádójelek frekvenciája. A gyors fading fő kiváltó oka a többutas terjedés. Nagyvárosi környezetben a jel több reflektált példánya érkezik a vevőbe. Már korábban említést tettünk a hulláminterferencia fogalmáról. A gyakorlatban lefedni kívánt terület sokszor egy antenna hatótávolságát meghaladja, ilyenkor több eltérő frekvenciasávon sugárzó antennát használunk. Az eltérő frekvenciák miatt nem
7
léphet fel az interferencia jelensége. Viszont a rendelkezésre álló frekvenciasávok száma minden rádiós hálózat esetén véges, így elkerülhetetlen a frekvenciasávok újrahasznosítása. Ezt a problémát leggyakrabban úgynevezett cellás rendszer kialakításával oldják meg. Minden adóantenna által lefedett területet egy cellának nevezünk. Ideális elrendezésnél ezeket a cellák úgy helyezik el, hogy minél kisebb legyen az átfedő terület. A frekvenciákat oly módon hasznosíthatjuk újra, hogy az egymástól kellően távol eső cellákban ugyanazt a frekvenciát használjuk, mivel a szabadtéri csillapításnak köszönhetően ott már nem fogja nagy mértékben módosítani a szomszédos cella kis amplitúdójú jele a másikat. A különböző frekvenciákon sugárzó cellákat úgynevezett klaszterekbe szervezik, és ezzel fedik le a célterületet. A 7. ábrán jól látható, hogy a cellákat úgy helyezik el egy klaszteren belül, hogy az azonos frekvenciájúak minél távolabb kerüljenek egymástól.
7. ábra: Cellák klaszteres elrendezése [8]
2.1 Jelenségek felhasználhatósága helymeghatározási célokra Az előző fejezetben sorba vettük a rádióhullámú jelterjedés során fellépő jelenségeket. Amikor rádiókommunikációról beszélünk, mindig figyelembe kell
8
vennünk az előző fejezetben említett hatásokat. Ebben a dolgozatban nem lesz szó a különböző vezeték nélküli rendszerek tulajdonságairól (modulációk, információkapacitás, stb.), mivel célunk a vett jel felhasználása pozícionálásra a küldött információtartalom ismerete nélkül. Amikor egy pontban vett teljesítménysűrűség értékéről beszélünk, mindig tisztában kell lennünk a hullámon eddig fellépő lehetséges hatásokkal. Közülük egyesek felhasználhatóak saját célunkra, mások nehézségeket okoznak. Ebben a fejezetben megvizsgáljuk, hogy az eddig tárgyalt jelenségek hogyan használhatóak fel, illetve hogyan befolyásolják a szabad hullámterjedést térben és időben. Tételezzünk fel egy ideális végtelen nagy sík területet. Ezen egy adó, a szabadtéri csillapításnak megfelelően dmax hatótávolság lefedésére képes. A gyakorlatban általában több adóról beszélünk, amelyek lehetőség szerint lefedik az egész területet. Minden általunk vizsgált esetben az adók helyhez kötöttek. Legyen a pozíciójuk ismert, és sugározzanak ki egyforma teljesítményt különböző frekvenciákon. Tételezzük fel továbbá, hogy az adók és a vevők antennakarakterisztikája is ideális. Az előzőekben meghatározott feltételek szerinti terjedés esetén egy adott pontban minden frekvenciához tartozik egy vételi jelszint, ami az adott pontban időinvariáns. A vételi jelszint szabadtéri csillapítás esetén a 8. ábrán megadott képlet alapján számolható, ahol PT a kisugárzott teljesítmény, PR a vett jelerősség, G az antennanyereség, λ a hullámhossz, valamint d az adó és a vevő közötti távolság.
PT G T λ 2 G R PR = ⋅ 4π 4π d 2 8. ábra: Vételi jelszint alakulása szabadtéri csillapítás esetén
A
négyzetes
meghatározhatom
csillapodását az
adótól
kihasználva mért
a
mért
távolságomat.
értékekből Több
adó
egyszerűen ismeretében
következtethetek tényleges pozíciómra. A 9. ábrán látszik, hogy helyzetünk három bázisállomás jeléből már egyértelműen meghatározható. Háromnál több állomás figyelembe vétele a mozgó vevő miatt fellépő Doppler-hatás, és egyéb mérési hibák küszöbölésére ad lehetőséget, így növelhető a helymeghatározás pontossága.
9
PT GT G R λ2A ⋅ = (x − xA )2 + ( y − y A )2 + (z − z A )2 PA 16π 2 PT GT G R λ2B ⋅ = (x − xB ) 2 + ( y − yB )2 + ( z − z B ) 2 PB 16π 2 PT GT G R λC2 ⋅ = ( x − xC ) 2 + ( y − y C ) 2 + ( z − z C ) 2 2 PC 16π 9. ábra: Helymeghatározás vételi jelszint alapján
A valóságban nincsenek ideális gömbi sugárzók, ezért a vételi jelszintből nem lehet közvetlenül következtetni a bázisállomástól mért távolságra. Ilyenkor nem tudjuk az adó ismert paramétereiből számolni pozíciónkat, hanem a térben különböző pontjain felvett korábbi mérések alapján következtethetünk a bázisállomások helyére és sugárzási karakterisztikájára. Az adó vélt helyzete nem feltétlenül egyezik valódi pozíciójával, de helymeghatározás szempontjából jobban modellezhetjük vele, mint valós bázisállomásokkal. Az ilyen adókat virtuális bázisállomásoknak hívjuk. Nagyvárosi környezetben a házak miatt fellépő többutas terjedés is megnehezíti a helymeghatározást. Egy terület különböző pontjain végzett mérések felhasználásával akár több reflektálódó felület hatása is kiküszöbölhető. Az ilyen környezetben vett jelszintek (PA, PB, PC) együttesen egyetlen pontra jellemző adatok.
A módszer lényege, hogy néhány ponton előre felvett, már ismert vételi jelszintekhez hasonlítjuk az általunk mért vételi jelszinteket, és ebből próbálunk
következtetni
tanulóhalmazt
alkotnak.
jelenlegi A
pozíciónkra.
tanulóhalmaz
A
pontok
finomsága
úgynevezett
megszabja
a
helymeghatározási algoritmus pontosságát. Célszerűen egy négyzetháló rácspontjaiban vehető bázisállomás azonosítók és a hozzájuk tartozó térerősség információk alkotják a tanulóhalmazunkat. Az egyik legegyszerűbb algoritmus megmondani, hogy a mért vételi jelszintek együttesen a rács melyik pontjára hasonlít leginkább, és azt a pontot választjuk pozíciónknak. Ilyenkor a pontosságunk a rács finomságának függvénye, például 10m-es finomságú rács esetén a helymeghatározás hibája maximum 10m. Ez a hiba tovább csökkenthető, hogyha a környező rácspontokhoz való hasonlóság is beleszámít súlyozottan döntésünkbe, és a hasonlóságból származó súlyoktól függően a környező rácspontok „elhúzzák” a meghatározott pozíciót a saját irányukba.
10
3 GSM hálózat jellemzői A GSM (Global Systems for Mobile Telecommunications) rendszer egy 1987-ben létrehozott szabvány. Tizenhárom európai ország hozta létre. A cél egy egységes, nagy lefedettségű telekommunikációs rendszer létrehozása volt. Ma szinte az egész világon használható egy otthon vásárolt GSM készülék. A kommunikáció valójában a telefon és a kapcsolóközpont között zajlik. A kapcsolóközpont a készülék rádió adó-vevőjén és az állandó helyű bázisállomás adóvevőjén keresztül érhető el. A hálózatot egy felügyelő rendszer automatikusan ellenőrzi, szabályozza. A 10. ábra a rendszer sematikus felépítését szemlélteti.[9]
10. ábra: GSM hálózat felépítése[10]
Egy bázisállomás által ellátott terület nagysága véges a kommunikációs közeg csillapítása miatt. A bázisállomásokat az előző fejezetben említett cellás rendszerbe szokták szervezni. Minden egyes cella a valóságban egy többszörösen lefedett terület. A frekvenciák megválasztásánál figyelni kell arra, hogy az azonos frekvenciával lefedett területek diszjunktak legyenek interferencia elkerülése céljából. A nagyvárosi környezetben jelentkező fading hatás és az interferencia miatt a cellás rendszer megtervezése egy bonyolult mérnöki feladat, ami magába foglalja az adók teljesítményének méretezését, és az antennák iránykarakterisztikájának meghatározását is. A felhasználható frekvenciák száma is véges, ami tovább nehezíti a feladatot. A tervezés bonyolultsága miatt a mobilszolgáltatóknak nincs lehetőségük ezen paraméterek időbeni változtatására.
11
11. ábra: Cellás szerkezet
A 11. ábrán minden szín egy frekvenciasáv-halmaznak felel meg, amiken az adott cellában sugároznak. A frekvenciák számának emelése nem rádióterjedési szempontok miatt, hanem forgalom-kielégítési szempontból történik. Egy ilyen terület csatornaszáma (az ott felhasznált frekvenciasávok száma) korlátozott, és ezáltal a felhasználók maximális száma is. A hálózat kapacitása csak a cellák felosztásával, és új bázisállomások elhelyezésével lehetséges. Ezen az ábrán jól látható miként növelhető a felhasználószám új cellák bevezetésével. [11] Forgalomarányban nő a bázisállomások sűrűsége, így minden egyes nagyvárosi terület többszörösen lefedett. A bázisállomást egyedi azonosítójával, és a távközlésre használt frekvenciájával írjuk le. Magyarországon 3 mobilszolgáltató sugároz. A frekvenciasávokat úgy osztották ki, hogy ne sugározhasson egy csatornán több mobilszolgáltató is. A szolgáltatók Koncessziós Szerződése tartalmazza a GSM 900 és DCS 1800 rendszerű nyilvános mobil
rádiótelefon
felhasználható
szolgáltatás
frekvenciasávokat
nyújtásának is.
Az
feltételeit,
engedélyezett
köztük
az
csatornaszám
általuk GSM
frekvenciasávban 40, és DCS sávban 75 a T-mobile[12] és a Pannon GSM[13] számára egyaránt. A 11. ábrán látható alakzat nevezhető lefedettségi térképnek is, ami megmutatja, hogy egy adott pontban milyen bázisállomások jelei vehetőek. A valóságban ez nem ilyen szabályos a több utas terjedés miatt. A tényleges lefedettségi térkép mérésekkel megalkotható. Térképünket további adósűrítés nem befolyásolja, hiszen az addigi állomások az adósűrítés esetén sem változnak meg. Mérési adataink csak akkor
12
számítanak elévültnek, ha a szolgáltató megváltoztatja az adók sugárzási frekvenciáit (amit bármikor megtehet), de erre nincs túl sok lehetősége az előzőekben tárgyalt frekvenciakorlátok miatt. Ilyen esetben néhány újabb méréssel régi adataink
Baross utca
Üllői út
Illés utca
Práter utca
Szigony utca
József körút
könnyedén javíthatóak.
Ludovika tér
12. ábra: Lefedettégi térkép a 107-es csatornán
A 12. ábrán a Pázmány Péter Katolikus Egyetem környéke látható. A vastag pontok azokat a mérési pontokat jelölik, ahol valamilyen bázisállomás jele vehető a 107-es csatornán. A világosabb pontokban a vételi jelerősség nagyobb. Jól látható, hogy egy ekkora területen 3 helyen is fel van használva ugyanaz a frekvencia. A kép alapján az adók iránykarakterisztikájára is lehet következtetni. Az 1-es számú például valószínűleg egy szektorsugárzó, mert egy szűk sávban nagy a jelerősség, míg máshol nem volt fogható. Az adó által lefedett terület nem mindenhol folytonos, amit a magas házak leárnyékolása okoz. Ez a 3. torony vételéből is látszik. A frekvenciák újrafelhasználhatóságának fontosságát az is mutatja, hogy egy ilyen kis területen a Tmobile szolgáltató 40 frekvenciasávot használt fel a rendelkezésére álló 115 csatornából.
3.1 Helymeghatározás GSM hálózat segítségével A korábban említett jelenségek miatt (például fading) a különböző típusú makro-, illetve mikrocellák egy többrétegű színezést adnak a teljes területre. Ezt a színezés-
13
térképet
(vagy lefedettségi térkép) rögzítve egy adatbázisba
későbbiekben
felhasználható a földrajzi helyünk meghatározására oly módon, hogy a tetszőleges helyen mért cellainformációkat hasonlítjuk az adatbázisban szereplőkhöz. Az egy pontban vehető bázisállomás azonosító és frekvencia kettősök összessége átlagosan 100 méteres átmérőjű területekre osztja a várost. Pozicionálásra a legelterjedtebb módszer a GPS globális helymeghatározó rendszer használata. Ez egy időmérésen alapuló műholdas rendszer, ahol a rádióhullám kibocsájtási és vételi idejének különbségéből következtethetünk a műholdtól
vett
távolságunkra.
Több
műhold
jeléből
háromszögeléssel
meghatározható térbeli pozíciónk néhány méteres pontossággal. Az adatbázis felépítésénél a referencia helyzetinformációkat GPS adatok szolgáltatják, de ez bármilyen egyéb tetszőleges helyzet-meghatározásra alkalmas adat is lehet. Későbbiekben egy adott pontban mért cellainformációink előfordulását kereshetjük az adatbázisunkban. Ezáltal kijelölnek egy korábbi mérést, aminek az adatbázisból származó GPS adatait tekinthetjük a meghatározott helyzetinformációnak. Abban az esetben, ha az adatbázisunkat nem GPS adatok felhasználásával készítjük, akkor a cellainformációból meghatározott adatbázissorok más helyzetünket meghatározó információkat közölnek velünk. Ilyen információ lehet például a telekkönyvi szám, az utca illetve a házszám, vagy bármilyen más általunk bevezetett koordinátarendszer. Mindazonáltal ennek a dolgozatnak nem célja térképészeti adatok rögzítése. Abban az esetben, ha az előző fejezetben tárgyalt adatbázis-struktúrát beltéri helymeghatározásra akarjuk használni, akkor GPS adatokkal nem rendelkezünk, így a GSM adathalmaz mellett egy beltéri helymeghatározásra alkalmas módszert kell alkalmazni. Egy ilyen lehetséges megoldás lehet, hogy egy kijelölt középponttól méterben adom meg távolságomat. Mérés helyének kevésbé pontos megadása lehet az elemelt, és egy szobaszám megjelölése.
14
13. ábra: Jelenergia csillapítás és fading[14]
További finomítás lehetséges, ha a vételi szintek, és azok változásait is figyelembe vesszük. A vételi szintek felhasználásánál különös gondot kell fordítani arra, hogy egy néhány méteres földrajzi területen több mérés kiátlagolásával kapott eredményt használjunk. A néhány méteres terület már elegendően nagy ahhoz, hogy a fading miatti jelerősség-változás ne befolyásolja a helymeghatározás pontosságát. Ezt szemlélteti a 13. ábra. Az átlagolás után kapott jelerősség-érték a távolsággal arányosan csökken. Ezáltal az adótól mért távolságra is jellemző jelerősség értéket kapunk. Ezen a területen vett összes bázisállomás jelére meg tudjuk határozni az adó vételi jelszintjének átlagát, így az adatbázisban szereplő adatoknál pontosabb helymeghatározás is lehetséges azáltal, hogy a klasszikus helymeghatározási technikákat (például ívmetszés vagy háromszögelés) felhasználva az adatbázisban szereplő mérési pontok közé becsüljük jelenlegi helyzetünket. [15] Az eddig tisztázott jelterjedési jelenségek mellett a GSM alapú helymeghatározás egy roppant összetett feladat. Az algoritmus pontosságát elsősorban a befolyásoló tényezők figyelembe vétele, illetve kihasználása határozza meg.[16] Mindezek figyelembevételével egy 30-40m körüli pontosság elfogadhatónak számít. Ilyenkor már jó eséllyel meg tudom mondhatom, hogy melyik ház előtt állok a mobilkészülékkel. A GPS vevőknél is számolnunk kell azok pontatlanságával, de ez az eddig leírtakat nem befolyásolja, mert az eltérést referencia-koordinátáinkhoz mértük, nem pedig a tényleges pozíciónkhoz. Mindazonáltal a cél, hogy a GPS pontosságához hasonló nagyságrendű eredményt sikerüljön elérnünk.
15
4 Adatgyűjtő eszköz GSM alapú helymeghatározáshoz szükséges adatok gyűjtéséhez szükség van egy olyan eszközre, ami a rádiótelefon-hálózatot használja, és a működéséhez szükséges jellemzőket képes a rendelkezésünkre bocsájtani. Ezután a mért jellemzőket valamilyen módon szükséges eltárolni. Ha van lehetőségünk, célszerű a mérés helyét is rögzíteni, de ez nem mindig áll rendelkezésünkre (például beltéri méréseknél), illetve van amikor a pozíciómérés hibájából kifolyólag a pozíciónk és a mérés vélt helye távol esnek egymástól. Egy klasszikus telefonkészülékben lehetetlen megoldani a problémát, mivel általában hálózatfüggő, és a legtöbb eszköznél nem érhetőek el a rádiós hálózat tulajdonságai. Egyes „okostelefonokban” a hálózati tulajdonságok elérhetőek. Ilyenkor általában a lehetőségeink korlátozottak, például nem mondják meg kellő pontossággal a vételi jelszintet, vagy éppen csak a főcelláról kérdezhetőek le információk. Az Android operációs rendszeren[17] például nem érhető el a kommunikációra használt frekvenciasáv. Korábbi dolgozatokban[18][19] szerepeltek olyan eszközök, amelyek az említett probléma megoldására szolgálnak. Ezek bármelyik GSM alapú hálózaton működnek, és vezérlésük RS232-n, AT parancsokkal történik. Először egy számítógéphez csatlakoztatható GSM modem segítségével sikerült lekérdezni cellainformációkat, amelyek
alkalmasnak
bizonyultak
helymeghatározásra.
Léteznek
beágyazott
rendszerekbe beépíthető modulok is, amik a szükséges adatgyűjtő eszközt képessé teszik a rádióhálózati jellemzőinek mérésére. Az alábbi bekezdésben részletesebben fogjuk tárgyalni a hálózati jellemzőket rögzítő eszközzel szemben támasztott követelményeinket, illetve az általunk készített adatgyűjtő rendszer jellemzőit, működését, és előnyeit.
4.1 Követelmények Az adatgyűjtő eszköz legyen könnyen hordozható, használható legyen bárhol, bármilyen körülmények között, és ne igényeljen speciális áramforrást (autós szivargyújtó, 230V-os hálózat, stb.). Az eszköznek alkalmasnak kell lennie, akár több napos egyidejű mérésre. Legyen egyszerűen használható. Kezelése ne igényeljen mérnöki, informatikai ismereteket, terjedelmes kezelési útmutatót. Későbbi cél lehet, hogy Taxi-, Posta-, BKV-hálózat mérőeszközökkel könnyedén felszerelhető legyen.
16
Az eszköznek külső beavatkozás nélkül folyamatos rögzítést kell lehetővé tennie. A bekapcsolást követően minden felmerülő problémát magának kell megoldania. Működés közben nem igényelhet emberi beavatkozást. A készülék képes legyen rögzíteni minden általunk kinyerhető cellainformációt. Egyidejűleg több bázisállomásról is szükséges adatot tárolni. Egy bázisállomást az azonosítójával, és a jelterjedési jellemzőivel (vett vételi jelszint) írunk le. A méréshez folyamatosan
rendeljen hely-információt (GPS
koordináták), amikor ezek a
rendelkezésünkre állnak.
4.2 Hordozható adatgyűjtő GPS helyzetünket és a GSM cellainformációkat kezdetben egy számítógépen futó programmal rögzítettük. Ehhez szükségünk volt egy notebookra, valamint egy USB csatlakozóval ellátott GPS vevőre, valamint egy GSM modemre. A kezdetleges megoldás hátránya, hogy az eszközt nehézkes hordozni, és egy feltöltéssel is csak maximum 3-5 órát bírt rögzíteni egyhuzamban. Az alap elgondolásunk az volt, hogy mások munkáinál jól bevált GPS vevőt1[20] felhasználva építsünk egy olyan eszközt, amely kiváltja mind a három korábban említett eszközt. GSM adatok begyűjtéséhez a Kern Communications Systems által forgalmazott Wavecom Q2687 wireless CPU-t[21] választottuk. Mindkét processzor rendelkezik saját soros interfésszel, így kevés vezeték felhasználásával könnyen felépíthető a kommunikáció. A két modulból kinyerhető adatok nagyon hasonlítanak a notebookhoz csatlakoztatott eszközökére, így sikeresen kiváltható velük a régi rendszer. Az
adatgyűjtő
lelkének
a
Microchip
termékcsalád
egyik
processzorát2
választottuk. A gyártó chipjeinek előzetes ismertsége miatt nem okozott nehézséget a fejlesztés, és rengeteg időt spóroltunk egy másik gyártó termékeinek a kiismeréséhez képest. Ezen kívül a négy soros interfész, a bőven elegendő teljesítmény, és a kis fogyasztás is indokolta a választásunk. Elkészítettem egy olyan rendszert, ami alkalmas az eddig tárgyalt GSM adatok, GPS adatok vételére, rögzítésére, valamint a rögzített adatok megfelelő formában történő áttöltésére PC-s környezetre.
1 2
Falcom FSA02 GPS modul Microchip PIC24FJ256GB108 mikrokontroller
17
Az adatgyűjtő központi egysége képes fogadni a GPS-ből érkező szabványos NMEA vagy SIRF protokollú üzeneteket. A GSM modul is közvetlenül csatlakozik a processzorhoz,
és
helymeghatározáshoz
kétirányú
kommunikáció
szükséges
adatok
segítségével
lekérdezését.
oldja Az
meg
a
adatgyűjtés
háttértárolójaként egy SD kártyát használtam, ami SD és SPI módban érhető el. SD kártya SPI módú elérési sebessége elegendő ekkora mennyiségű adat rögzítésére, és alacsony fogyasztásának köszönhetően a kártya nem befolyásolja különösebben a mérés időtartamát. Számítógépes összeköttetést egy Bluetooth modulon keresztül valósítottam
meg,
ami
szintén
soros
vonalon
keresztül
kapcsolódik
a
vezérlőegységhez. Segítségével adatgyűjtőnknek számítógépről adhatok vezérlő utasításokat. A fájlok átvitelét is kényelmesebbé teszi, mivel vezeték nélküli adatátvitel esetén nincs szükség az adatgyűjtő szétszedésére, hogy az SD kártyához hozzáférjünk. A központi egység és perifériái közötti kapcsolatot a 14. ábra szemlélteti.
14. ábra: Adatgyűjtő rendszer részei
18
4.2.1 Mikroprocesszor A
rendszer
magja,
mikroprocesszor[22].
egy
Alacsony
Microchip
gyártmányú
fogyasztásának
PIC24FJ256GB108-as
köszönhetően
akár
nagyobb
adathalmazt is rögzíthetünk ugyanazon akkumulátor egy feltöltésével. Ezzel az adatgyűjtővel nagyobb távolságokról gyűjthetünk adatokat, mint korábban és információkat szerezhetünk olyan területekről is, amelyekre még nem volt lehetőségünk (például városok közötti, és egyéb ritkábban lefedett területek jellemzőiről, az ott meghatározható maximális pontosságról, stb). A chiphez C programozási környezetet használtam, ami leegyszerűsíti a fejlesztést. Nagyméretű beépített memóriájának köszönhetően a megvalósított programban lehetőségünk van párhuzamosan kezelni a GSM és GPS modul által küldött
adatokat,
majd
méréseinket
SD
kártyára
rögzíteni.
A
processzor
műveletvégző egységén és szabványos IO portjain kívül számos modulokkal rendelkezik. Ezek közül a jelenlegi felhasználást tekintve legjelentősebb az USART, amin keresztül képes kapcsolatot létesíteni a GSM, illetve a GPS modulokkal, valamint az SPI, ami az SD kártya kommunikációs interfészéül szolgál az eszközünkben. A processzor részletes felépítését a 15. ábrán tekinthetjük meg.
19
15. ábra: Mikrokontroller blokkdiagramja[22]
Tápfeszültség hatására a CPU alapértelmezett állapotba kerül. Ilyenkor mindent a beépített Fast RC oszcillátor hajt meg a belső PLL használata nélkül. A sebessége 8 MHz. A legtöbb processzorláb elérhető párhuzamos IO lábként, valamint több funkció által, amelyek az RPINRx, RPORx, és a hozzájuk tartozó modulok helyes konfigurálásával érhetőek el. IO módban a TRISx regiszterben paraméterezhető mindegyik láb iránya. Ha ebben kimenetre állítjuk (nullás bit jelöli), akkor a LATx regiszterbe írt érték fog a processzorlábon megjelenni a következő órajel lefutó él hatására. Hasonló módon, input esetén a PORTx regiszterből olvasható ki a lefutó él hatására beíródott logikai érték. Alapértelmezésben minden ilyen modul le van tiltva, és a lábak bemenetként funkcionálnak. Az általam felprogramozott processzor első feladata a megfelelő működési órajel beállítása.
20
Ezt követően a perifériákat szükséges felkonfigurálni első használat előtt, különben a processzor nem képes kommunikálni környezetével. A megvalósított adatgyűjtőben a következő perifériák felkonfigurálására került sor: •
Néhány IO láb kimenetnek LED kijelzés céljából
•
Egy
„debugger”
interfész
a
processzor
működésének
nyomon
követhetősége miatt •
Bluetooth interfész az adatgyűjtő számítógépről történő vezérlése céljából
•
GPS modul helyzetinformációk fogadására
•
GSM modul a cellainformációk lekérdezéséhez
•
A memóriakártya és a hozzá tartozó FAT fájlrendszer a mérések rögzítésére
A programot úgy írtam meg, hogy az adatgyujto.h fájlban beállítható paraméterek szerint működjön a felprogramozott adatgyűjtő. Így opcionálisan akár készíthető Bluetooth
modullal
és
anélkül
felszerelt
eszköz
egyaránt
a
programkód
megváltoztatása nélkül. A COMMUNICATION fordító direktíva nélkül fordított futtatható alkalmazáshoz például nem lehet Bluetoothon csatlakozni. A 16. ábrán látható forráskód inicializáló részében jól látszik, hogy a debug interfész, a bluetooth és az SD kártyára használata opcionális. Itt fontos megjegyezni azt, hogy az eszköz használható SD kártya nélkül, viszont ilyenkor a debugger interfész használata erősen javasolt, mivel ezesetben egyedül ott jelennek meg a mérések. Ez a működési mód felhasználható lehet később valósidejű pozícióbecslő alkalmazás készítésére. int main( void ) { // State variables unsigned char mainstate = 0; unsigned char recordstate = 0; // Temp variables unsigned long tmpulong; char tmpchar[2]; // String pointers char *GSMCMD; char *GSMDATA; char *GPSCMD; char *GPSDATA; #ifdef COMMUNICATION char *BLUETOOTHCMD; char *BLUETOOTHDATA; #endif set_clock(); // Set Parallel IO pins as OUTPUT for LEDs
21
TRISFbits.TRISF0=0; TRISFbits.TRISF1=0; TRISFbits.TRISF3=0; TRISG &= ~3;
//RG0-1
// Set pins to LOW LATFbits.LATF0 = 0; LATFbits.LATF1 = 0; // Initialize Peripherials #ifdef DEBUG initDebugger(); writeDebugger("\r\n"); writeDebugger("Start program\r\n"); #endif #ifdef COMMUNICATION initBluetooth(); #endif initGPS(); initGSM(); // Initialize Memory card #ifdef WRITE_TO_CARD if(disk_initialize(0)){ #ifdef DEBUG writeDebugger("Disk init error"); #endif // END OF DEBUG while(1); // In case of error processor will halt in this line } *dir = 0; f_mount(0, &fs); #endif // END OF WRITE_TO_CARD
16. ábra: Az adatgyűjtő perifériáinak inicializálása
A szabványos soros portok inicializálása bonyolultabb a hagyományos IO portokénál. Ilyenkor az érintett lábak funkcióinak beállításán túl szükség van az interfészt is konfigurálni. A soros port kezelésére a processzor UART moduljára van szükség. Ez a modul több féle aszinkron átviteli módot támogat, köztük az RS-232 és RS-485 interfészeket, illetve infra adóvevő kezelésére még IrDA enkóder és dekóder logika is helyet kapott benne. Az általam használt átvitelvezérlés nélküli 8 bites adatátvitelt a mikrokontroller UxMODE regiszterében lehet beállítani. Az adatátviteli sebességet a „Baud rate generátor” állítja elő a perifériák FCY órajeléből az UxBRG regiszter értékének függvényében. A jel vételének kezeléshez a belső megszakításvezérlőt használom, ahol engedélyezni kell, hogy az interrupt vektorban megadott címre ugorjon a programfutás soros vonalon érkező adat esetén. Ily módon a program párhuzamosan képes kezelni az összes perifériáját. A megfelelően felkonfigurált modult végül engedélyezni kell. A választott processzor 4 UART interfésszel rendelkezik, amit teljesen ki is használok, mivel ezeken keresztül kommunikálnak a GPS, GSM, Bluetooth modulok,
22
és a soros debug interfész is. A felsorolt eszközök eltérő kommunikációs sebessége miatt az órajelet szükséges a legmagasabb bitrátájú eszközhöz igazítani. Az adatgyűjtőben a leggyorsabb kommunikációval rendelkező a bluetooth modul volt. Működéséhez a rendszeróra finomhangolására volt szükség. Az órajelgenerátort úgy kellett beállítani, hogy a mikrokontroller által előállított baud rate és az elméletileg előírt 1843200 bps között kevesebb, mint 3% eltérés legyen. Ezt az OSCTUN regiszter beállításával értem el. Hatására a processzor órajelét lehet finomhangolni legfeljebb ±12%-al FOSC ⋅ 3 1r12⋅100 MHz lépésközönként. Az SD kártya SPI interfészének felkonfigurálása hasonló az UART-éhoz. Az SPI egy szinkron soros interfész, ami széles körben elterjedt beágyazott rendszerekben. A kommunikáció 4 jel vezetéken történik. A kitüntetett „master” eszköz hajtja meg a közös órajel, SDO(kimenő adat), és kiválasztás jeleket. A kiválasztott eszköz az SDI vonalon válaszol. Az előzőekhez hasonlóan itt is több működési mód közül választhatunk. SD kártyánál egyszerre 8 bites csomagok közlekednek az SDO, SDI vonalakon. A 8 bites adat az SPIxBUF regiszterből shiftelődik ki az SPI interfész leosztott órajelének felfutó élére. Ezzel egyidőben másik oldalról bekerül a kijelölt eszköz válasza az SDI vonalról. Ezt a működési módot az SPIxCON1 regiszter beállításával értem el. Ez tartalmazza az SPI modul órajelosztójának beállítását is. Az adatgyűjtőben az SPI interfész nem megszakításvezérelt, mivel minden bejövő adat kérésre érkezik, ezért a program válaszig várakozik, és csak utána fut tovább. Az SPI modul engedélyezése után az SD kártya inicializálása is a program elején történik. Erre a 4.2.4 fejezetben térek ki részletesebben. A processzor inicializálást követő működését egy állapotgéppel lehet legjobban leírni. Gyakorlatilag a program futása egy végtelen ciklusba fut, ahol mindig az állapotgép jelenlegi állapotának megfelelő kód részlet hajtódik végre. Az állapotgép a mellékelt CD-n található main.c fájlban található meg. Állapotai a forráskód elején előre definiáltak. Ezek leírását a 17. ábra szemlélteti. // MAIN #define #define #define #define
STATES MAIN_WAITING MAIN_RECORDING MAIN_GSM_ENTERING1 MAIN_GSM_ENTERING2
#ifdef COMMUNICATION #define MAIN_COMMUNICATING #define MAIN_BT_ENTERING #endif
0 1 2 3 4 5
17. ábra: Adatgyűjtő működésének állapotai
23
A processzor inicializálás után alapértelmezés szerint a MAIN_WAITING állapotba kerül. Ilyenkor a processzor figyeli, és értelmezi a perifériáin bejövő adatokat.
Innen
Bluetooth
MAIN_BT_ENTERING
kapcsolódáskor
állapotba
kerül,
RING
autentikáció üzenet
kérésére
hatására
pedig
a a
MAIN_BT_ENTERING részbe lép be, ahol a számítógépről érkező általam implementált parancsokat képes végrehajtani. A kezdeti állapot elhagyásának másik módja a GSM modem bekapcsolása. Ilyenkor a modul „+WIND: 7” üzenetétől ugrik a MAIN_GSM_ENTERING1
részhez,
ahol
a
modem
beállítását
követően
a
MAIN_RECORDING állapotba kerül, és elkezdődik a mérés. A perifériák felől érkező üzenetek eseményvezérelten tárolódnak el az előre lefoglalt körbufferekben. A bejövő adatok feldolgozását az előbbihez hasonló állapotgépek végzik, amiket a főprogram hív meg, és számításukat befejezve vissza is térnek oda. Ily módon a főprogram feladatokat oszt ki, és egy egyszerű feladatkezelőként funkcionál. Az ilyen típusú alkalmazásokat beágyazott valós-idejű rendszereknek szoktuk nevezni. Az adatgyűjtő működését bizonyos esetekben számítógép nélkül is nyomon kell tudnunk követni. Sikeres kültéri méréshez fontos tudnunk például, hogy a GPS
vevő tudja-e a pontos helyzetünket. Az ilyen típusú visszajelzések megjelenítésére a panelen elhelyezett ledek funkcionálnak. Segítségükkel könnyen leolvasható az eszköz állapota. Inicializáláskor a ledek hibajelzésre szolgálnak, méréskor pedig a mérés sikerességének nyugtázására. Ilyenkor az egyik led minden egyes felgyvillonása, illetve eloltódása egy új mért adatsor rögzítését jelzi.
4.2.2 GPS modul Az adatgyűjtőben a Falcom FSA02-es típusú GPS modulja kapott helyet. Jó iránykarakterisztikájú beépített antennája, könnyű beépíthetősége, és kis mérete miatt esett épp erre a modulra a választásunk. A GPS modul rendkívül kedvező fogyasztási adatokkal rendelkezik, leírása szerint 66 mW a fogyasztása folyamatos működés közben. A GPS vevő 3.3V tápfeszültségről üzemel. Folyamatos adatgyűjtés céljából az „ON/OFF” láb egy ellenállással le lett húzva a földre. Ilyenkor a vevő nem kapcsolható ki, cserébe nincs szükség 1.2V feszültség előállítására, ami a láb bemeneti feszültségszintje. A DAT0-1 lábak bekötése határozza meg az eszköz működési módját. Az adatgyűjtőben a modul ROM módban üzemel. Ehhez az említett lábakat szabadon
24
kell hagyni. Hatására a vevő 4800bps sebességgel aszinkron soros kimenetén keresztül szabványos NMEA protokollnak megfelelő[23] üzeneteket küld. Minden másodperben egy-egy $PGRMC, $GPGGA, és $GPGSA üzeneteket küld, valamint minden ötödik másodpercben kapunk egy $GPGSV üzenetet. A készülék ismeri a SIRF protokoll üzeneteit is üzemelni, de az adatgyűjtőben ezt a képességét nem használtuk ki. Mivel a GPS-nek sose küldünk adatot, és soros porton üzemel, így a mikrokontroller és a GPS összeköttetéséhez elég egyetlen vezeték Korábbiakban már volt szó arról, hogy a GPS vevő üzeneteit egy állapotgép dolgozza fel. Jelenlegi állapotát a GPS.MODE változóban tárolom. Kezdeti állapotában GPS_SKIP módban üzemel. Ilyenkor minden bejövő üzenetet figyelmen kívül hagy egy új üzenetkezdő $ karakter érkezéséig. Ezt követően az állapota GPS_CMD lesz. Ez jelzi, hogy a következő karakterek a parancs nevét fogják tartalmazni. A parancs végét egy vessző karakter jelöl. Túl hosszú parancs esetén a következő adatokat újra figyelmen kívül kell hagyni, így GPS_SKIP állapotba kerül. Értelmes parancs esetén az állapot GPS_DATA. Ilyenkor a beérkező bitek a hasznos adatbitek. Az adat végét a sorvége (\n) karakter jelöli. Ilyenkor az állapotgép visszaáll a kezdeti állapotába. Az adatgyűjtő a GPGGA üzenetet várja bemenetén. A többit figyelmen kívül hagyjuk. Ez az üzenet tartalmazza az összes fontos információt pozíciónkról. Az üzenet a pontos világidővel (UTC) kezdődik. Ezt követi a koordinátánk földrajzi hosszúsági és szélességi foka. Ezután a szolgáltatott információ pontosságáról és a szinkronizált holdak számáról kapunk információkat, amit a magasság és végül az üzenet ellenőrzőkódja követ. Egy ilyen üzenet például a következő: $GPGGA,165658.000,4729.4506,N,01904.4347,E,1,05,1.8,124.2,M,41.1,M,,0000*5F
Ez a hely például a Szigony utcában található. Az üzenetből leolvasható továbbá, hogy a szinkronizált holdak száma 5, valamint hogy a vevő körülbelül 124.2m magasan található.
4.2.3 GSM modul A GSM modul kiválasztásakor egy szempont volt, hogy kompakt adatgyűjtő része legyen az eszköz, ne pedig hozzá csatlakoztatható dobozba szerelt termék. Fogyasztását, méretét, és a súlyát is csökkenthetjük ezáltal. A modulként beépíthető GSM modemek közül a Wavecom Q2687-es számú vezeték nélküli processzorára esett a választásunk. Standby módban az átlag fogyasztása 450 mW körüli. Az adatgyűjtő fogyasztásának legnagyobb részét ez teszi ki. A GSM modul szintén 3.3V
25
tápfeszültségről működik. A modul bekapcsolásához az „ON/~OFF” lábra kötött kapcsolót kell nyomva tartani körülbelül 3.5 másodpercig. Azzal, hogy a modul nem kapcsol be automatikusan az eszköz meg lett védve a táp csatlakoztatásakor megjelenő feszültségingadozástól. A GPS modulhoz hasonlóan itt is van egy pin, ami a modem saját processzorának jelzi, hogy a beépített boot loader feladata új firmware letöltése, vagy indulás normál működési módban. A GSM modemhez nyújtott API és fejlesztő környezet segítségével lehetőség nyílik a processzorra saját programok fejlesztésére. A készülék alacsony szintű funkciói elérhetőek soros kapcsolat segítségével is AT parancsokkal. A modul mellett nekünk van egy Microchip processzorunk is, ezért saját alkalmazások fejlesztésére nincs szükség. Az adatgyűjtőben a GSM modul vezérlését teljes egészében a mikrokontroller végzi. Mivel a modem funkciói közül lényegében csak a hálózat választás funkciót és a cellainformációk lekérdezését használjuk, ezért a modul legtöbb lábára nincs szükségünk. Ilyen kihasználatlan funkciója például a modul hang interfésze, a mobiltelefon billentyűzet, vagy a SIM interfész. Az AT parancskészletet egy 1977-es modemhez fejlesztették ki. A parancskészlet rövid szöveges üzenetekből áll, melyek segítségével a modem olyan funkciói távolról vezérelhetővé válnak, mint például a tárcsázás, a felvétel vagy a hívásismétlés. Az eredeti szabványban szereplő AT parancsokon túl a Wavecom Q2687-es modemben egy kiterjesztett parancskészlet kapott helyet, amely lehetővé teszi többek közt a számunkra szükséges hálózati jellemzők lekérdezését is, mint például 7 állomás cellaazonosítóját és a vételi jelszintjeiket. A modul összes funkciója elérhető kiterjesztett AT parancsokkal. Az általam használt legfontosabb parancsok a következők:
•
AT+CCED=0,3 A cellainformációk lekérdezése a fő celláról és 6 szomszédjáról
•
AT+COPS=1,2,21630 A szolgáltató manuális átállítása a 21630 azonosítójú operátorra(ez a T-mobile hálózat)
•
AT+COPF A GSM modem kikapcsolása
•
AT+IFC=0,0 Az aszinkron soros port átvitelvezérlésének kikapcsolása
26
4.2.4 SD kártya Mérési adataink tárolására SD kártyát használunk. Nagy előnye a memória kártyának, hogy nagy kapacitású. Ezáltal a mérések rögzítéséhez nem igényel folyamatos hálózati kapcsolatot az adatgyűjtő és az adatbázis között, azaz lehetőség van offline mérésre. A méréseket később számítógép segítségével egyszerre tudjuk adatbázisba vinni egy külön erre a célra készített program segítségével. A legtöbb számítógép rendelkezik kártyaolvasóval, így a rajta tárolt adatokat szinte bárhol egyszerűen letölthetjük róla. Az SD memóriakártya a leggyakrabban használt memóriakártya formátum. Specifikáció[24] szerint kapacitásának elméleti felső határa 4 GB. A szabvány átdolgozott változatában rögzített SDHC kártyák esetén maximum 32 GB memóriaterület címezhető, míg a legfrissebb SDXC kártyák esetében ez az érték akár 2TB-ig terjedhet. A szabvány úgy van kidolgozva, hogy az SD kártya szabványok visszamenőlegesen kompatibilisek legyenek egymással. Mivel az SD szabvány a régebben népszerű MMC kártyák továbbfejlesztése, minden SD kártya megérti az MMC parancskészletet. Az SD szabvány több féle adatátviteli módot is támogat. Úgy nevezett SD buszon külön vonalakon folyik a parancs és adatátvitel. Adatátvitelre konfigurációtól függően 1 vagy 4 bites adatvonal használható, azaz az SD kártya képes párhuzamosan 4 adatvonalat használni a gyorsabb kommunikáció elérése érdekében. Ugyanakkor a szabvány támogatja az SPI busz kompatibilitását is. Ilyenkor a kétirányú adat és parancsvonalak szerepét két egyirányú vezeték váltja fel. Az SPI előnye, hogy az SD módú átvitellel ellentétben a legtöbb mikrokontroller hardver-szinten kezeli, ennek köszönhetően kevés vezetéket használva, egyszerű kommunikáció valósítható meg a processzor, és az SD kártya között. Az adatgyűjtő tervezésénél az SPI módú adatátvitelt választottam. A processzor SPIxBUF regiszterének írásával az adat automatikusan továbbítódik a memóriakártya felé. A memóriakártya vezérlő szoftvert úgy valósítottam meg, hogy a rendszer képes legyen minden legfeljebb 3.0-s verziójú SD szabványnak megfelelő SD/HC/XC kártya, valamint MMC kártya kezelésére. A memória kártya típusától függően más indítási mechanizmust várnak el. Az újabb kártyák inicializálása több parancsot igényel, amiket a régebbi kártyák még nem ismernek. Az adatgyűjtő minden kártyát a legújabb memória kártyának igyekszik felkonfigurálni, és amikor válaszként ismeretlen parancs érkezik, egyel régebbi verziójú kártyaként próbálkozik tovább.
27
Az inicializálás minden kártya esetén alacsony, körülbelül 400kHz-es órajelen történik. Feléledésig a memóriakártyának legalább 74 órajel ciklusra szüksége van. Ezzel IDLE állapotba kerül. Innentől küldhetünk az SD kártyának parancsokat. A szabvány szerint minden parancs 48 bit hosszú bitsorozat, ahol az első bit az üzenet elejét jelző 0, és az utolsó az üzenet végét jelölő 1-es. Köztük 1 bit jelöli a kommunikáció irányát (parancs esetén ez 1), utána következnek sorra a parancs, és argumentumai, valamint a 7 bites CRC ellenőrzőkód. Az SD kártya parancs formátumát a 18. ábra szemlélteti. S 0
T CMD ARG CRC E 1 6 bit 32 bit 7 bit 1 18. ábra: SD szabvány parancsformátuma
Minden parancsra a kártya válasszal reagál. Az általános R1 típusúnak nevezett válasz formátum SPI módban 8 bites. Ettől eltérő hosszúságú válasz érkezik a SEND_STATUS (CMD13) parancsra, ami 2 byte hosszú, valamint a READ_OCR (CMD58) és a SEND_IF_COND (CMD8) parancsokra. Ezek hossza 5 byte. A memória SPI módú üzemmódba állításához a CMD0 parancs kiadása szükséges. Erre a kártyának 0x01-el kell válaszolnia, aminek a jelentése, hogy a kártya IDLE módban üzemel. Ezután a CMD8 parancs kiadására érkező választ figyelem. SD 1-es verziójú memória vezérlő nem ismeri a CMD8 parancsot, ez esetben a válasz 0x05. Ezt követően a memóriakártyának az ACMD41 parancsot kell kiadni, ami tulajdonképpen egy CMD55 parancs, amit közvetlenül egy CMD41 parancs követ. A specifikáció 2-es, vagy újabb verzióját támogató chipek esetén az ezt követő ACMD41 parancs argumentumában fel kell tüntetni, hogy az adatgyűjtő képes nagy kapacitású (4GB-nál nagyobb) eszközök kezelésére. Ezt a parancs argumentumában a 31. bit jelöli. Az ACMD41 parancsot addig kell ismételgetni, amíg a kártya úgy válaszol, hogy még IDLE módban üzemel (0x01). Ezen a ponton a kártyának eltart egy darabig, amíg végez. Régebbi SD kártyáknál a végrehajtandó utasítás nem változik, viszont az argumentumot célszerű nullának hagyni, hogy minél több kártyával kompatibilis legyen az eszköz. MMC kártyák nem ismerik a CMD55 parancsot, ezért célszerű az első ACMD parancsra érkező válasznál detektálni az MMC kártya jelenlétét. Ilyenkor egy újabb CMD0 paranccsal alapállapotba küldöm a kártyát, és utána az előbb említett ACMD41 helyett CMD1-et küldök folyamatosan a kártya inicializálásáig. Az SD/MMC kártyák inicializálását a B melléklet szemlélteti. SD kártyán a fájlok tárolásának legpraktikusabb módja FAT fájlrendszer használata. A FAT egy szabadon hozzáférhető fájlrendszer, amit a Microsoft fejlesztett ki. Nyíltságának köszönhetően széles körben elterjedt beágyazott
28
rendszereken egyaránt. Rengeteg elérhető implementációja létezik. Az adatgyűjtőben egy szabadon hozzáférhető függvénykönyvtárat (FatFs modul) használtam fel, ami az általam készített SD kártya kezelő függvények felhasználásával teszi lehetővé a kártyán lévő fájlok írását, valamint olvasását. Az FatFs által megvalósított függvények nevei, illetve szintaxisa teljesen hasonló a standard C I/O függvényeihez, így használata a már megszokott módon történik. A memóriakártyán lévő partíció formátuma FAT12, FAT16, FAT32 egyaránt lehet. A típust a mérete határozza meg. Általában 32 MB méretig a partíció típusa a FAT12, 2 GB-ig FAT16, valamint felette FAT32. A fájlok maximális mérete mindegyik típusnál 4 GB. Egy adattárolón akár több partíció is lehet. Ezt a lemez elején lévő 512 byte hosszú „Master Boot Record(MBR)” írja le. Ezt követik a partíciós táblák. Memóriakártyákat nem szokás több partíciós táblára osztani, ilyenkor a memória nem MBR-el, hanem a tábla „boot szektor” kezdődik. [25] Ez írja le a partíció típusát, pontos méretét, és egyéb információkat. Az adatgyűjtő inicializálásakor a fájlrendszer inicializálását is elvégzem. Először az SPI modult fel kellett inicializálnom a memóriakártya eléréséhez. Ezt követően a fent említett szekvenciában elküldött parancsok hatására az SD kártya adatátviteli módba kerül. Majd első használatkor az MBR illetve a „boot szektor” keresése következik. A partíció leíró információinak ismeretében a fájlrendszer bejárható. Az adatgyűjtés előtti utolsó teendő, hogy a program végignézze az összes eddig létező fájlnevet, és az első szabad néven létrehozzon egy üres fájlt, amibe majd a mérést rögzíti. Ere azért van szükség, hogy ne írjunk felül korábbi adatokat, illetve hogy el tudjuk különíteni az adatsorainkat egymástól. Az általam megvalósított program egész számokat ad névül a fájloknak 0-tól 65535-ig. A létrehozott fájl megnyitása után a program soronként rögzít adatokat a FatFS modul f_sync() függvényének meghívásakor.
4.2.5 Bluetooth modul Méréseink letöltésének megkönnyítése érdekében egy bluetooth modul is került a rendszerbe. A Bluegiga WT32-es audio modulja[26] támogatja a bluetooth 2.1 + EDR szabványát, így maximálisan 3 Mb/s adatátviteli sebesség érhető el vezeték nélküli kapcsolaton keresztül. Bekötése nagyon hasonlít a GPS vevőéhez. A modul aszinkron soros vonalon keresztül kezelhető, ezért a mikrokontroller az egyik UART interfészén keresztül képes kommunikálni a modullal.
29
Az eszköz két féle működési mód szerint fogad adatokat soros interfészén keresztül. Induláskor parancs módban indul. Ilyenkor a beépített operációs rendszere vezérlő utasításokat vár. Ebben az üzemmódjában lehet a beállításait módosítani, számítógéppel párba állítani, valamint Bluetooth profilokat engedélyezni. Az eszköz audio és RFCOMM profilokat támogatja. Az ETSI TS 07.10 specifikáción alapuló[27] Serial Port Profile (SPP) vezeték nélküli hálózaton soros kábelt emulál az RS-232 alapú kommunikációs alkalmazásokhoz. Adat módban automatikusan közvetíti az adatokat az UART és az aktív RFCOMM kapcsolat között. A Bluetooth üzenetek feldolgozó programjának a főprogram állapotautómatája osztja ki a processzoridőt.
A beérkező adatok értelmezéséért a GPS vevőnél
ismertetett állapotgép felelős. Bekapcsoláskor a MAIN_WAITING állapotban figyeli a Bluetooth vevőtől érkező üzeneteket. A modul bekapcsolás után vételre készen áll. Ha egy eszköz csatlakozni próbál a modulunkhoz, azt rögtön jelzi a mikrokontroller felé. Ha „AUTH” vagy „RING” üzenet érkezik, akkor a mikrokontroller megpróbálja felvenni a kapcsolatot az épp csatlakozó számítógéppel. A 19. ábrán látható a WT32 modul és a mikrokontroller között lezajló kommunikáció, amint egy számítógép megpróbál párba állni a bluetooth eszközzel. A modul kérdésére a mikrokontroller megadja, hogy a számítógép kapcsolódását csak az 1234 jelszó ismeretében szabad elfogadni. Ezután a számítógépen sikeresen beállított jelszó hatására újra üzenet érkezik, hogy a párba állítás felépült. A számítógépről kezdeményezett soros adatkapcsolat létrejöttét a beérkező RING parancs jelzi. Ilyenkor az adatgyűjtő a MAIN_COMMUNICATING állapotába ugrik, a modul pedig adat módba áll. <-> <<-
AUTH AUTH PAIR RING
00:1b:11:6f:b7:71? 00:1b:11:6f:b7:71 1234 00:1b:11:6f:b7:71 0 2200040077009000fd00ae004600a400 0 00:1b:11:6f:b7:71 1 RFCOMM
19. ábra: Bluetooth kapcsolat felépítése A létrejött soros adatátvitel segítségével Hyperterminal-ban szöveges üzeneteket küldhetünk
az
adatgyűjtőnek.
Ezt
kihasználva
egy
parancsértelmezőt
implementáltam, amely segítségével távolról vezérelhetjük a mikrokontrollerünket. Egyszerűen megtudhatjuk például, hogy milyen file-ok vannak az adattárolón, vagy akár bele is olvashatunk egy adott file tartalmába, mielőtt letöltenénk azt számítógépünkre. A megvalósított parancsok a CAT, CD, FATINFO, FILEINFO, GET, HEAD, HELP, LIST, QUIT. Erre ad példát a 20. ábra. A LIST parancs hatására az adatgyűjtő kilistázta az aktuális könyvtár tartalmát. Jól látható hogy az FsFat kezeli a hosszú fájlneveket is, de a 852-es kódolású ékezetes karakterek sem okoznak neki gondot. Az adatgyűjtő a QUIT parancsra visszatér a kezdeti állapotába, és a GSM
30
modem
bekapcsolásával
újra
elindítható
a
mérés.
A
parancsértelmező
implementációja az CD-n elhelyezett main.c fájlban tekinthető meg.
20. ábra: Vezeték nélküli kapcsolat HyperTerminal-ban
A soros adatkapcsolat másik előnye, hogy nem csak parancsokat küldhetünk az adatgyűjtőnek, hanem méréseinket könnyen letölthetjük számítógépünkre. A HyperTerminálba beépített fájlátviteli protokollok egyikén keresztül lehetőségünk nyílik saját fájl fogadó alkalmazás implementálása nélkül.
4.2.6 Xmodem1K Soros porton a fájlküldés egyik legegyszerűbb, és leggyorsabb módja az Xmodem protokoll[Hiba! A hivatkozási forrás nem található.] használata. Csak pont-pont összeköttetés esetén alkalmazható, mivel nincs benne címzett, de soros vonalú adatátvitel
esetén
ez
nem
jelenthet
problémát.
Az
Xmodem
128
bájtos
adatcsomagokat tud egyszerre küldeni, amihez hozzáadódik további 4 bájt, ami a csomagok szinkronizálásért, és hibaellenőrzésért felelősek. Az adatátvitel minden esetben a fogadó fél NAK (0x21) parancsával kezdődik, ezt követően küldi el a másik fél az első 132 bájt adatot. A küldött adatformátum a következőképpen nézett ki: 1. SOH: A küldendő blokk elejét jelzi, mérete 1 bájt 2. A küldendő bájt sorszámát jelzi moduló osztva 256-al, mérete 1 bájt 3. Az előző bájt bitenkénti negáltja.
31
4. A küldendő 128 bájtos adatcsomag 5. Ellenőrző bájt: Az adatcsomag bájtjainak összege moduló osztva 256-al Minden csomag elküldése után egy bájtos válasz érkezik, az adatátvitel sikerességétől függően lehet ACK(sikeres adatátvitel), NAK(sikertelen adatátvitel), valamint CAN(másik fél megszakította az adatátvitelt). Abban az esetben, ha nem érkezik válasz, a küldőnek újra kell küldenie az aktuális csomagot. A fájl végét minden esetben egy EOT(0x04) karakter jelzi. Erre a parancsra ugyanúgy sikeres választ vár a küldő, hogy tudja a másik fél értesült az adatátvitel végéről. Későbbiekben módosították a protokollt: Lehetőség nyílt 1024 bájtos csomagok egyidejű továbbítására, valamint az egyszerű hibaszámítási algoritmust leváltotta egy 16 bites CRC algoritmus, ami jelentősen megnövelte az adatátvitel megbízhatóságát. A HyperTerminal Xmodem1k protokollja ezeket a módosításokat is támogatja, ezért fájlátvitelre a protokoll átdolgozott verzióját sikeresen implementáltam. Fájlok áttöltése számítógépre nagyon egyszerű. A Windows operációs rendszer szinten támogatja az Xmodem1K protokollt. Csatlakozni kell a mérőeszközhöz Bluetooth-on keresztül, aztán Hyperterminal segítségével a megfelelő COM porton megnyitni a kapcsolatot (1843200 bps, 8 adatbit, nincs paritás, 1 stopbit, soremelés+kocsivissza
karakterek
küldése).
Ezt
követően
a
megvalósított
parancsértelmező segítségével ki kell választani a megfelelő fájlt, és a GET
parancs kiadását követően a rendszer várja, hogy a fogadó fél felkészüljön a fájl fogadására. Ehhez az „Átvitel” menü „Fájl fogadása” pontjában kell kiválasztani az „1K Xmodem” protokollt, és a cél mappát a 21. ábrának megfelelően, ezután már indulhat is a fájlátvitel.
21. ábra: Fájl fogadása HyperTerminal segítségével
32
4.3 Adatformátum A memóriakártyán tárolt mérések formai kritériumai nem tartalmaz különösebb megkötéseket. Minden egyes állomány egy külön mérést tartalmaz. Ezen belül sorvége karakterrel vannak elválasztva a mérési eredményeink. Az adatgyűjtőnk tehát másodpercenként új sort rögzít az adatfájlba. Egy soron belül minden adattag vesszővel van elválasztva a többitől. Az ilyen módon előállított mérések a későbbiekben az itt elhangzott felsorolt szabályrendszer alapján dolgozható fel. A mérési eredmények rögzítésénél alapvetően arra törekedtem, hogy lehetőleg minimális adatformátumot állítsak elő, ügyelve arra, hogy ez ne járjon bonyolultabb számításokkal, illetve ne eredményezzen információvesztést. A hozzáférhető információk szükségességének megállapítása ugyanis nem az adatgyűjtő feladata. Ez majd csak a későbbi feldolgozás során történik. Kültéren minden egyes mérési eredmény a referenciának választott rendszer szerinti helyzetünk megadásával kezdődik. Jelen esetben ez GPS koordinátákat jelent. Ezt követik a GSM készülék által szolgáltatott cellainformáció, és vételi jelszint adatok az aktív, valamint a szomszédos cellákról, vesszővel elválasztva. Az általam készített adatgyűjtő esetén először az aktív cellát leíró információk jönnek, utána 0-tól 6-ig annyi szomszédos bázisállomás információ, amennyi az adott pontban látható. A következő példán bemutatható a rögzített adatformátum, és a különböző adattagok jelentése. $GPGGA,161932.000,4730.0232,N,01901.5864,E,1,04,5.4,125.6,M,41.1,M,,0000*56,216,70,003f ,27e4,2,527,63,,,0,,,0,216,70,003f,3dbc,15,7,58,216,70,003f,3dbe,14,9,47,216,70,003f,27 e7,0,32,61,216,70,003f,2a5a,10,528,53,216,70,003f,27e6,0,6,49,0,0,,,,,
22. ábra: Adatgyűjtő által rögzített mérési eredmények formátuma
Az egymástól elválasztott adattagok jelentése a következő:
33
1. Szomszédos cella
Aktív cella
GPS koordináták
$GPGGA Az NMEA szabványú helyzetinformációs mondat kezdőszava 161932.000 Egyezményes koordinált világidő(UTC). A mérés időpontja: 16:19:32 4730.0232 Földrajzi szélesség fok, perc formátumban(47 fok 30.0232 perc) N Észak 01901.5864 Földrajzi hosszúság fok, perc formátumban E Kelet 1 Érvényesség 04 A szinkronizált holdak száma 5.4 Mérési pontosság 125.6 Tengerszint feletti magasság M Az előző mértékegysége 41.1 WGS84 ellipszoidhoz képesti magasság M Az előző mértékegysége n. a. Differenciális módú GPS információ 0000*56 GPS mondat ellenörzőkódja 216 (MCC) Mobil országkód. Magyarország kódja 216 70 (MNC) Mobil hálózati kód. Magyarországon Pannon:01, Tmobile:30, Vodafone:70 003f (LAC) Egy nagyobb kiterjedésű terület(local area) 4 hexa számjegyű azonosítója 27e4 (CI) 4 jegyű cella azonosító kód 2 (BSIC) Bázisállomás azonosító 527 (Freq) A sugárzási frekvencia csatornaszáma 63 (RxLev) Vételi jelszint n. a. (RxLevFull) Vételi jelszint az összes TCH csatornán (csak hívás közben kérdezhető le) n. a. (RxLevSub) Vételi jelszint néhány TCH csatornán (csak hívás közben kérdezhető le) 0 (RxQual) Jelminőség nyugalmi üzemmódban n. a. (RxQualFull) Jelminőség az összes csatornánk (csak hívás közben) n. a. (RxQualSub) Jelminőség néhány csatornán (csak hívás közben) 0 Használt időrés 216 (MCC) Mobil országkód. Magyarország kódja 216 70 (MNC) Mobil hálózati kód. Magyarországon Pannon:01, Tmobile:30, Vodafone:70 003f (LAC) Egy nagyobb kiterjedésű terület(local area) 4 hexa számjegyű azonosítója 3dbc (CI) 4 jegyű cella azonosító kód 15 (BSIC) Bázisállomás azonosító 7 (Freq) A sugárzási frekvencia csatornaszáma 58 (RxLev) Vételi jelszint … (Maximum 6 szomszédos cella) 1. Táblázat: Mérési eredmények magyarázata Az általam használt adatformátumnál kompaktabb, és egyúttal kisebb méretű fájl érhető el, ha méréseinket bináris formában tároljuk. Ez azonban rontja a fájl olvashatóságát. Az eredmények alapján átlagosan másodperces rendszerességgel 261 byte hosszú mérések készültek. Az általam használt 2GB-os SD kártyára 2127.5
34
óráig gyűjthetünk folyamatosan adatokat szöveges formában, ezért felesleges binárisan tárolnunk őket.
4.4 Elért eredmények Az adatgyűjtő megvalósításánál fontos szempont volt, hogy a rendszer párhuzamosan kezelje a perifériákat. Minden egyes periféria vezérlését külön programrész valósítja meg. A főprogram gyakorlatilag egy primitív feladat ütemezőnek feleltethető meg, ami egymás után hívja meg a megfelelő modulokat, amikor szükség van rájuk. A modulok egymást is elláthatják feladatokkal. A Bluetooth kezelő egység például hozzáfér az SD kártyán tárolt adatokhoz, és az Xmodem protokollt felhasználva továbbítani képes azokat a mikrokontroller valamelyik soros vonalán keresztül. A rendszer blokkdiagramját a 23. ábra szemlélteti. Itt a hardver réteg egyetlen komponensként van ábrázolva, de valójában, ahogy ezt korábban láthattuk, több eszköz több vezetéken van összekötve a processzorral, amiket a beépített modulokon keresztül érhetünk el.
23. ábra: Az adatgyűjtő rendszer blokkdiagramja
Az általam megvalósított adatgyűjtő fogyasztása ilyen sok vezeték nélküli kommunikációs eszköz használata ellenére se haladja meg a 900 mW-ot, ami alkalmassá teszi hosszabb idejű adatgyűjtésre. Méretéből kifolyólag korábbi adatgyűjtő megoldásunknál sokkal kényelmesebben szállítható. Az adatgyűjtő kompakt formája könnyen hordozhatóvá teszi. Segítségével bármilyen napszakban, és időjáráséi körülmény között végezhetünk méréseket. Táplálása ceruzaelemmel, autós szivargyújtó aljzattal, és DC tápegységgel is
35
egyaránt megoldható. Az eszköz működése során nem igényel külső beavatkozást. Bekapcsolást követően rögtön elindítja a mérést. Működése során állapotáról, és a legfontosabb
információkról
az
elhelyezett
ledek
felhasználójának.
24. ábra: A hordozható adatgyűjtő fotója
36
adnak
visszajelzést
5 Adatok tárolása Nem csak az általam készített adatgyűjtővel végeztünk méréseket. A dolgozat elején említett laptoppal is végeztünk méréseket, és szükség esetén még most is bármikor használható adatok gyűjtésére. A két adatformátum hasonló, de kis mértékben mégis eltérnek. A két módszerben közös azonban, hogy a mérések mind a két esetben fájlba készültek, hogy ne kelljen folyamatos hálózati hozzáférést garantálni. A helymeghatározással foglalkozó diákok közül mindenkinek szüksége a rögzített mérésekre valamilyen formában. Vannak, akik statisztikákat próbálnak kinyerni az összesített adatsorból, olyanok is akik helymeghatározó algoritmusokat próbálnak ki és az általuk detektált koordinátát hasonlítják a GPS koordinátáihoz. Az adatsorok megosztása a csoport tagjai között eleinte FTP serveren történt, minden mérés egy adatfájlban volt, melynek a neve hordozott információt a mérés helyét illetően, ám ez a mérések számának növekedésével egy új, informatívabb tárolási módszer
kidolgozását sürgette. Az új rendszer egyik nagy előnye legyen, hogy a korábban fájlnévben tárolt információkat átláthatóbbá teszi. Továbbá a különböző eszközökkel rögzített méréseknek egyformán kezelhetővé kell válniuk, hogy megkönnyítse a későbbi adatfeldolgozást. Lehetőség szerint meg kell hagyni a lehetőségét, hogy későbbiekben legyen a jelenleg használt adatgyűjtők kiválthatóak egy korszerűbb eszközre.
5.1 Tervezés A tárolt adatsornak tartalmaznia kell a felvétel vélt helyét (például GPS koordinátáját), és a lehető legtöbb GSM információt, amit mérhetünk. Ez általában 7 bázisállomás azonosítója, és vételi jelszintjük. Későbbiekben fontos lehet a felvétel rögzítésének időpontja, az időjárás, illetve az adatgyűjtő eszköz egyedi azonosítója. Meg kell továbbá különböztetni a kültéri mérésektől azokat a beltéri méréseket is, amelyek nem tartalmaznak helyinformációt, valamint azokat, amelyekben a helyinformáció
egy
relatív
koordinátarendszerbeli
pozícióval
jelöltük.
Ezeket
a
koordinátákat ugyanis nincs értelme másik koordinátarendszerbeli pozícióhoz hasonlítani. Az adatbázis méretének csökkentése érdekében egyes információkat elhagyunk. Ilyenek például a GPS vevő egység által közöl információk nagy része (magasság,
37
horizontális dilatáció, látott holdak száma, stb.) Méretcsökkenés tovább fokozható, ha a gyakran előforduló adatokat megcímkézzük, és helyettük mindig csak az azonosítójukkal hivatkozunk ezekre. Adatmodellünk rugalmassága is egy fontos tervezési cél volt számunkra. Létezhetnek olyan mérendő mennyiségek, illetve egy egész mérésre jellemző tulajdonságok, amiket kezdeti rögzítéseknél még nem vettünk figyelembe, de későbbiekben úgy éreztük, hogy ezek is hatással vannak a helymeghatározásra. Ilyen utólagos változások lehetőségét figyelembe véve olyan adatmodellt terveztünk, amelyben ezek minél kevesebb szerkezeti változtatást jelentenek.
5.2 Megvalósítás A rögzített méréseink tárolására MySQL adatbázist készítettem. Segítségével méréseink gyorsan, és egyszerűen hozzáférhetővé váltak. Az adatok több, egymással
kapcsolatban
álló
táblában
kaptak
helyet,
ezzel
sikeresen
lecsökkentettem az adatbázis méretét, és ezáltal növekedett az elérési sebessége.
25. ábra: A megvalósított adatbázis szerkezeti felépítése
A 25. ábrán látható a megvalósított adatbázis szerkezete. A méréseinket egy-egy rekord jelöli a „measurement” táblában. Ebből a táblából olvasható ki, hogy melyik adatgyűjtővel készítették, valamint a mérés rögzítésének időpontja. Az adatgyűjtő did azonosítóján keresztül 1-sok kapcsolattal kapcsolható a „measurement” táblához a „device” tábla. Ebben a táblában található meg az összes adatgyűjtő. Jelenleg két adattaggal rendelkeznek. Egyik a rendszeren belüli egyedi azonosítójuk, a másik pedig a tőlünk kapott nevük. Az adatbázis úgy lett kitalálva, hogy további tulajdonságok felvétele ne igényeljen változtatást az eddigi lekérdezéseinkben, azaz a változtatás előtt megírt statisztikák, alkalmazások működését ne befolyásolja új
38
attribútumok felvétele. Hasznos jellemzői lehetnek egy ilyen eszköznek például a jelenlegi tartózkodási helye, a típusa, vagy akár a hozzá tartozó kiegészítők listája (elem, SD kártya, stb). Minden mérésekkel kapcsolatos információ, amit eddig az adatfájl nevébe írtunk az adatokkal együtt tárolni szeretnénk. Ilyen például a helyszín, a napszak, vagy az időjárás. Ezek a „comments” táblában találhatóak. A rekordokat az „mid” adattag kapcsolja a megfelelő méréshez. A kapcsolat egy-sok jellegű, így korlátlan számú információ tartozhat egy méréshez, és számuk bármelyik pillanatban zavartalanul növelhető. Új adattagok felvétele csupán egy új rekord felvételét jelenti, amelynek „mid” attribútuma annak a mérésnek az egyedi azonosítója, amelyik mérésről tároltuk el ezt az információt. A mérőeszköz adatainak bővítéséhez hasonlóan ez a változtatás sincs semmilyen hatással a korábbi alkalmazásainkra. Minden mérési információ, amit a „comments” tábla ír le egy bizonyos kategóriába sorolható. Vegyük például az időjárást. A mérést több féle időjárási körülmény között végezhetjük. Ilyen körülmény lehet a napos, esős, szeles, stb megjegyzés. Ezek a körülmények az „attributes” táblában szerepelnek. Az egy kategóriába tartozó opciók „gno” mezője azonos számot tartalmaz. A napos, esős, szeles szövegek a „name” mezőben olvashatóak. Ónos eső esetén például lehetőségünk van az adott opcióhoz szöveges kiegészítést tárolni. Ez úgy történik, hogy a „comments” tábla „string” adattagjába bírjuk, hogy „ónos eső”, közben az „attr” mezőbe pedig annak az „attributes” beli rekordnak az azonosítóját írjuk, amelyik az esős időjáráshoz tartozik. Ezáltal mindkét táblát hozzákapcsoltuk a mérésekhez. Az „attributes” táblában a kategóriák
és
a
megváltoztatható.
kategórián
belüli
típusok
száma
is
tetszőleges,
utólag
Egy Szigony utcai mérés jellemzőinek lekérdezése például a
következőképpen fog kinézni: SELECT measurement.id, measurement.date, device.name AS device, attributes.name AS attribute, comments.string AS comment FROM measurement LEFT JOIN device ON device.id = measurement.did RIGHT JOIN comments ON comments.mid = measurement.id LEFT JOIN attributes ON attributes.id = comments.attr WHERE measurement.id = 4 id 4 4
date device 2009-03-24 00:00:00 dev1 2009-03-24 00:00:00 dev1
attribute KULTERI ESOS
comment Budapest_szigony csöpögõ esõ
26. ábra: Mérések jellemzőinek lekérdezése A rögzített adatsort a „gps” és a „gsm” táblából olvasható ki. Minden egyes mérési pontot egy rekord jelöl a „gps” táblában. Ha kétszer ugyanazon a koordinátán történik mérés, az két külön rekordot jelent. Így a rögzítés ideje pontosan nyomon követhető, mivel a „measurement” táblában tárolt dátumtól kezdve másodpercenként egy mérést
39
rögzítettünk. Ezek a mérések a „gps” táblában egymás után növekvő azonosítóval találhatóak meg. Tehát ha egy méréshez tartozó első azonosító a „gps” táblában 10, akkor két perccel később az adatgyűjtő a 130-as azonosítójú rekord által jelölt helyen volt. A „gps” táblát a méréshez az mid attribútumon keresztül csatoltuk ugyancsak 1N kapcsolattal. A pontról eltárolt információink a következők: lat (földrajzi szélesség), lng (földrajzi hosszúság), sats (a pontban látható GPS műholdak száma) és alt (a tengerszint feletti magasság). Egy pontban változó számú bázisállomás jele fogható. Ezek a „gsm” táblában kaptak helyet, amit egy-sok reláció kapcsolja össze a „gid” attribútumon keresztül a „gps” táblával. Ez a tábla tartalmazza a vételi jelszint jellemző tulajdonságait (receive level, receive quality, C1, C2, stb.) és egy időbélyeget (idle). A tábla „cid” attribútuma 1-N kapcsolatban áll továbbá a „cell” tábla egyedi azonosítójával. A „cell” táblában minden (bázisállomás, frekvencia) páros pontosan egyszer szerepel. Ennek a táblának a szerepe a helytakarékosság. A cell tábla tartalmazza a mobilhálózat 3. fejezetben
tárgyalt
minden
mérhető
tulajdonságát
(bázisállomás
azonosító,
frekvencia, stb.) a vételi jelszintet leszámítva. Az adatbázis tervezésével elértük, hogy a különböző formátumú adatsoraink ugyanabban a táblában kapjanak helyet maximális kompatibilitást garantálva, mégis eldönthető, hogy egy mérés melyik eszközzel lett rögzítve. Az 2. Táblázat példákon keresztül foglaltam össze, hogy a különböző eszközeinkhez milyen gsm rekordok tartozhatnak. Itt szeretném megjegyezni, hogy a régi méréseinknél egy bizonyos C1, C2 paramétert is rögzítettünk, amelyeket az rxlevf és rxlevf attribútumok helyén tárolunk. Az adatbázis továbbá Android „okostelefonnal” történő méréseket is tartalmaznak. Ezek legfontosabb tulajdonsága, hogy a bázisállomás sugárzási frekvenciáját nem mutatja, vagy nem árulja el, ezért ott a frekvencia nulla. id 31
1
6
35
rxle vf 25
2117
594
66
23
0
0
0
0
0
0
39
1
1
0
19
85
0
31
32
0
2118
294
65
9
NU LL
NU LL
NU LL
NU LL
NU LL
NU LL
2885
4921
1935
17
NU NU NU LL LL LL 2. Táblázat: példák az adatbázis GSM táblájából
NU LL
NU LL
NU LL
Régi „notebook” mérés Mobil autós mérés (aktív cella) Mobil mérés hívás közben (aktív cella) Mobil mérés (szomszédos cella) Android mérés
gid
cid
rxlev
40
rxle vs 33
rxq 0
rxq f 0
rxq s 0
idle 0
6 Feltöltő alkalmazás Mérés során az adatokat fájlokban tároljuk, így nem szükséges aktív kapcsolat a szerver és az eszköz között. Elég csak később feltölteni a gyűjtött adatokat a szerverre. A mérőműszerek adatsora és a szerveren tárolt adatbázis eltérő, így szükség van egy feltöltő programra, ami biztosítja a konverziót a két szerkezet között. A 27. ábrán látható feltöltő felületet PHP nyelven valósítottam meg, mivel így platform-független alkalmazás készíthető. A HTML űrlapon keresztül egyszerűvé teszi a mérés tulajdonságainak beállítását. Az űrlapon legördülő listából lehet választani az adatgyűjtő eszközök közül, valamint megadható minden mérési információ. A „Tallózás” gombra kattintva kiválaszthatjuk a mérést tároló fájlt számítógépünkön. Az „Upload” gomb megnyomásakor a rendszer automatikusan feltölti a fájlt a szerverre, és sikeres feltöltés esetén az adatokat a központi adatbázisba helyezi. A feltöltő a fájlok feldolgozása során minden egyes sort megvizsgál, és az adatsor formátuma alapján önállóan képes megkülönböztetni a különböző típusú méréseket. A feltöltő alkalmazás minden eddigi adatformátumot gond nélkül kezel, és az adatok felvételét követően az adatbázisban szereplő rekordok már a feltöltött fájl formátumától függetlenül kompatibilisnek tekinthető a többivel, így a továbbiakban már nem feltétlenül szükséges az adatsorok megkülönböztetése.
27. ábra: Az intelligens feltöltő felület
41
7 Mérési eredmények A gyűjtött adatok elemzéséhez a cellainformációk változatosságát vizsgáltam. Minden mérési pontban maximum 7 bázisállomás jele volt látható. A megfigyelésem során azt vizsgáltam, hogy mekkora kiterjedésű térrészekre lehet igaz, hogy ugyanaz az N bázisállomás jele mérhető a pontban. Ha egy pontban mondjuk csak 5 bázisállomás jele fogható, és egy szomszédjában már 6, akkor ez a két pont általam megkülönböztetett, és másik ponthalmazba kerül. Ugyanúgy megkülönböztetem, ha az 5 bázisállomás közül az egyik megváltozik, azaz egy bázisállomás azonosító kiesik, és helyébe másik kerül. Az ilyen ponthalmazok kiterjedésének vizsgálatára egy java alkalmazást készítettem, ami a MySQL adatbázisunkból veszi a szükséges adatokat. Az adatbázis mérete miatt a lekérdezést úgy kellett megírnom, hogy minél kisebb legyen a számításigénye, mivel a feladat komplexitása az adathalmaz méretével, és az egymással kapcsolatban álló táblák számától függ. A lekérdezés eredménye cellaazonosítók rendezett descartes-szorzata, ami alapján a pontok halmazokba sorolhatóak. Megjelenítésre a Google Earth nevű program szolgált. Térképen azokat a pontokat jelöltük azonos színnel, amelyek egy halmazba tartoznak A Google Earth bemenetéül szolgáló „kml” fájl generálását végző program forráskódja a mellékelt CD-n található. Az így kapott képeken megfigyelhető, hogy nagyvárosi körülmények között az általam végzett klasszifikációval pár 10 méteres kiterjedésű területekre osztható fel a város. Vonatról rögzített várostól távoli területeken végzett mérések esetén ez az érték néhányszáz méter. Városi és városon kívüli mérések eredményét láthatjuk a következő ábrákon:
42
28. ábra: Ludovika téren végzett mérés
29. ábra: Nagy változatosság látható a Baross utca, és József körút környékén
43
30. ábra: Hasonlóan jól használható eredmények Debrecenben is
31. ábra: Vonatról rögzített mérés pontossága Csupán az általam vizsgált klaszterezéssel a kitűzésünknek megfelelő pontosság érhető el. Ezáltal sikerült egy felső becslést adnom, viszont ha figyelembe vesszük a vételi jelszintek alakulását is, akkor a helymeghatározási algoritmusunk tovább pontosítható. A Májer Julianna által kidolgozott statisztikai alapon nyugvó algoritmus[29] jó példa erre. Hasonlóan jó eredmény érhető el akkor is, ha nem-
44
statisztikai algoritmusokat alkalmazunk. Erre ad egy lehetséges megoldást Vinis Ádám diplomamunkája[30].
8 Hibák az elmélethez képest Amikor
GSM
alapú
helymeghatározásról
beszélünk,
valamilyen
referenciakoordinátához rendelést végzünk. Mivel az általunk választott GPS rendszernek is vannak hibái, az általunk detektált pozíció nem feltétlenül pontos. Méréseinkben viszont ez a hiba csak nagyon kis mértékben fog megjelenni, mivel a helymeghatározásunk hibájának számításakor a detektált és a tényleges GPS koordinátát hasonlítottuk össze. Ilyenkor a GPS rendszer pontatlanságából származó járulékos hiba csak abból fakadhat, hogy a referenciakoordinátánk hibája pontonként különböző mértékű. Az előzőnél sokkal súlyosabb problémát okoz, a nagyvárosi környezetben nagymértékben fellépő fading hatására. Ilyenkor a vételi jelszint mérésében jelentkező ingadozás nem küszöbölhető ki teljesen a 3.1 fejezetben tárgyalt hosszú távú átlagszámítással. Ennek fő oka a házak sarkánál fellépő hirtelen térerősségváltozás, ami nagymértékben megnehezíti a helymeghatározást. Az időjárás változása is befolyásolja a vételi jelszintek alakulását. Ezt a változást nem tudom tanulóhalmazban rögzíteni. Minden minta magában foglalja a felvétel idejében fellépő időjárási hatásokat is. Eddigi méréseink alapján azonban megállapítható, hogy az időjárási jellemzők hatása az összes adótorony jelére közel azonos mértékű jelszintváltozást eredményez, ezért ez közel sem olyan jelentős, mint a fading hatása. Nem csak a jelterjedési jellemző, hanem a mobilhálózat működése is megmutatkozik két azonos helyen mért különböző időpontokban rögzített felvétel között. A GSM modem maximum az aktív cella, és 6 szomszédos cella adatait közli velünk. A GSM készülékekben implementált hálózatkezelő úgy működik, hogy hosszabb idejű mérésekből számítja ki, mikor kell cellát váltani. Így elkerülhető, hogy a rendszer túl sűrűn ugráljon a cellák között. Mivel a rendszer nem vált rögtön a legnagyobb térerősségű cellára automatikusan, könnyen előfordulhat az a jelenség, hogy amikor egy utcán végighaladunk egy irányból, és utána az ellentétes irányból is elhaladunk ugyanott, akkor a mérési eredményeken az tapasztalható, hogy nem ugyanaz a 7 cella látható a GSM vevő szerint. A helymeghatározás Markov folyamatként kezelve a bejárási irány szerinti változás nagymértékben kihasználható helymeghatározási algoritmusok pontosságának növelésére. Ez további vizsgálatok szükségességét indokolja.
45
9 További lehetőségek Az
diplomamunkámban
részletesen
tárgyalt
adatgyűjtő
megfelel
a
követelményeinknek, kényelmi funkciókkal azonban tovább bővíthető. Igény esetén lehetőségünk
lenne
például
működési
paramétereket
az
adatgyűjtő
flash
memóriájában, vagy az SD kártyán egy konfigurációs fájlban tárolni. Itt szerepelhetne például a mobilszolgáltató száma, amelyikhez a készüléknek mérés elkezdése előtt csatlakoznia kell. A GSM modul rengeteg hasznos funkcióval láthat el bennünket. SIM kártya behelyezésével például lehetőségünk lenne a hálózatot adatátvitelre használni. A készülék állapotát le lehet például kérdezni SMS-ben. A GSM modem segítségével
PPP
protokollon
keresztül
internetkapcsolattal
ruházhatjuk
fel
készülékünket. Ezáltal lehetőség nyílna online adatgyűjtésre. Online összeköttetés esetén akár a mért GSM információk továbbítását követően egy szerver oldali helymeghatározó algoritmus tényleges földrajzi pozíciót küldhetne válaszul, amit soros kimeneten NMEA üzenet formájában továbbítana a külvilág felé. Ez akár a helymeghatározási algoritmusok egy lehetséges alkalmazási területe is lehet. A helymeghatározási algoritmusok pontosságának tovább növelésére is jó esélyeink vannak. Ha a 7. fejezetben tárgyalt klasszifikáció szerinti halmazok közül kikeresem azt, amelyikbe a meghatározandó pozícióban mért cellainformációk szerint tartozik, és a későbbiekben csak az itt szereplő pontokat használom fel helymeghatározásra a vételi jelszintek figyelembevételével, akkor a halmaz térbeli kiterjedésénél kisebb hibát értem el. Az ilyen többlépcsős módszereket másodszintű klasszifikációnak nevezzük.
46
10 Összefoglalás A
dolgozat
összefoglalja
a
GSM
alapú
helymeghatározási
rendszerek
működéséhez szükséges hálózati jellemzőket, és egy komplett eljárás kidolgozását ismerteti a szükséges GSM hálózati jellemzők gyors és pontos mérésére, rögzítésére, valamint tárolására. A GSM alapú helymeghatározás elvi ismertetése és a módszer pontosságához fűzött elvárásaim megadása után a helymeghatározáshoz szükséges információk mérésére szolgáló adatgyűjtő eszköz fejlesztésére is részletesen kitértem. Az általam készített eszköz megfelel a kezdeti elvárásoknak. Önállóan képes adatokat gyűjteni, és ellát minket kellő mennyiségű méréssel, ami a helymeghatározási algoritmusok alapjául szolgálnak. Az adatgyűjtő könnyen szállítható, egyszerűen használható, és alacsony fogyasztásának köszönhetően hosszú üzemidővel rendelkezik. Az elkészült adatgyűjtő széles körben használható adatok rögzítésére. Adatbázis felépítésében olyan társaságok felszerelése lehet célpont, akik hétköznapi munkájuk során sűrűn járják a várost, amit az adatgyűjtő segítségével fel is térképezhetnek. Részletesen leírtam az eszköz felépítését, és a megvalósított firmware működését. Szoftvere különálló modulokba szervezett, így továbbiakban könnyen bővíthető. Képes kommunikálni bluetooth-al felszerelt számítógépekkel, és szükség esetén a GSM modulon keresztül történő adatátvitel is lehetővé tehető. Mérési mintákon
megmutattam,
hogy
az
adatgyűjtő
képes
rögzíteni
minden
helymeghatározáshoz szükséges információt. A rögzített adatok tárolására MySQL adatbázist terveztem. A megvalósult adatbázis tervezési szempontjait a 5. fejezetben láthattuk. Az adatbázisnak köszönhetően az adatgyűjtő típusától függetlenül tárolhatóak benne mérések. A mérésről eltárolt információk halmaza könnyen bővíthető, így az általam kidolgozott eljárás módosítása későbbiekben nem szükséges. Az adatbázis felépítése, a táblák kapcsolata, és az adatmezők betöltött szerepe is ebben a fejezetben olvasható. Az adatok tárolásához a dolgozatban ismertetett, általam készített feltöltő alkalmazás ad segítséget. Legnagyobb előnye, hogy minden eddigi általunk használt mérőeszköz adatszerkezetét automatikusan felismeri, és problémamentesen kezelni képes. Feltöltés után az adatbázisban már irreleváns az adatgyűjtő típusa helymeghatározás szempontjából. Az alkalmazás továbbá teljesen platformfüggetlen, nem igényel telepítést, és használata különösebb instrukciók nélkül sem okozhat problémát.
47
Az adatbázis helymeghatározásban történő felhasználhatóságát lekérdezéseken keresztül mutattam be. A vizsgált mérési eredmények által igazoltam, hogy az adatgyűjtővel készített mérések, és a megvalósult eljárás eleget tesz a kezdeti elvárásainknak, így helymeghatározásra alkalmasnak tekinthetőek. Feltöltött adatsor további bővítésével a tanulóhalmazzal dolgozó algoritmusok hatékonysága tovább növelhető. A dolgozatban külön kitértem a mérések elemzése során kimutatott hibák magyarázatára is. Végül javaslatot tettem a rendszer pontosításának módszerére a további felmerülő igények számba vételével, és az említett hibák figyelembe vételével.
11 Köszönetnyílvánítás Végezetül szeretném megköszönni konzulensemnek Tihanyi Attilának tanácsait, bizalmát és a dolgozatban nyújtott segítségét. Köszönöm továbbá Dr. Takács Györgynek a GSM alapú helymeghatározással foglalkozó projekt koordinálását, valamint az összes résztvevő munkáját. Hálával tartozom a Pázmány Péter Katolikus Egyetem által nyújtott anyagi és szakmai támogatásért.
48
12 Irodalomjegyzék 1. Andrew S. Tanenbaum, Számítógép-hálózatok, Panem , 1999 2. J. D. Parsons, The Mobile Radio Propagation Channel, Második kiadás, Wiley, 2000 3. "TÁVKÖZLŐ HÁLÓZATOK ÉS INFORMATIKAI SZOLGÁLTATÁSOK" , a hirközlési és informatikai egyerület online könyve. Főszerkesztő dr Lajta György http://www.hte.hu/online_konyv 4. Antti V. Raisanen, Arto Lehto, Radio Engineering for Wireless Communication and Sensor Applications (Artech House Mobile Communications Series), Artech House Publishers, 2003 5. Karl Rothammel, Antennakönyv, Műszaki Könyvkiadó, 1977 6. Internatinal Telecommunication Union, Radiowave propagation, ITU-R SG03.64, 2001 http://www.itu.int/md/R00-SG03-C-0064/en 7. Reguly István, Fadinges csatornamodellek és csatornabecslő protokollok vezeték nélküli érzékelő hálózatok számára, 2008 8. William Webb, The Complete Wireless Communications Professional: A Guide for Engineers and Managers (Artech House Mobile Communications Library), Artech House Publishers, 1999 9. Székelyhidi Attila: A mobil telekommunikációs rendszerek fejlődésének bemutatása, 2001 10. Takács György, Kommunikácós rendszerek alapjai, Oktatási segédanyag, 2009 11. M. R. Karim, Mohsen Sarraf, W-CDMA and cdma2000 for 3G Mobile Networks, McGraw-Hill Professional, 2002 12. T-mobile koncesszios szerződése, 2007. november 8. http://www.khem.gov.hu/data/cms1446300/koncszerz_tcom.pdf 13. Pannon GSM koncessziós szerződése, 2007. november 8. http://www.khem.gov.hu/data/cms1446305/pannon_konc.pdf 14. Oláh András: Mobil hálózatok, Oktatási segédanyag, 2009 15. F. Gustafsson, F. Gunnarsson, “Mobile positioning using wireless networks: possibilities and fundamental limitations based on available wireless network measurements,” IEEE Signal Processing Magazine, Vol. 22, No. 4, 2005, pp. 41-53
49
16. Takács György, Helymeghatározás mobiltelefonnal és mobil hálózattal, 2008. aug. http://www.hiradastechnika.hu/data/upload/file/2008/2008_8/HT8_4Takacs.pdf 17. Maczkák Balázs, ANDROID mobiltelefon alkalmazása GSM alapú helymeghatározó rendszerben, 2010 18. Bányai Balázs, Új műszaki koncepcióra épülő helymeghatározási rendszer, 2008 19. Bányai Balázs, Helymeghatározási módszerek kidolgozása és alkalmazások fejlesztése mobilhálózattal, 2009 20. Falcom FSA02 GPS modul http://www.falcom.de/products/gps-modules/fsa02/ 21. Wavecom Q2686/87 GSM modem http://www.wavecom.com/modules/movie/scenes/products/index.php?fuseActi on=wirelessCPU&productName=Q2687 22. Microchip PIC24FJ256GB108 mikrokontroller http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531085 23. NMEA protokoll, 2001. augusztus http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf 24. SD specifikáció, 2006. szeptember 26. http://www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_ Spec.pdf 25. FAT fájlrendszerek specifikációja , 2000. december 6. http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx 26. Bluegiga WT32 bluetooth modul: http://www.bluegiga.com/WT32_Bluetooth_Audio_Module 27. ETSI TS 07.10 szabvány, 2003. június 5. http://www.bluetooth.com/NR/rdonlyres/1483FFFD-7A5C-49A8-9AFE1156DA1D96C3/916/rfcomm1.pdf 28. Chuck Forsberg: Xmodem/Ymodem protocol reference, 1988. június 18. 29. Májer Julianna, GSM alapú helymeghatározás alapadatállományának tömörítése, 2010 30. Vinis Ádám, Földrajzi adatbázis készítése GSM alapú helymeghatározáshoz, 2010
50
Ábrák jegyzéke 1. ábra: Maxwell egyenletek differenciális és integrális alakja ............................. 2 2. ábra: Az elektromágneses spektrum és felhasználása a távközlésben [1] ... 3 3. ábra: A rádiós hullámterjedés egyenlete, és teljesítmény sűrűsége ............... 4 4. ábra: Az atmoszférikus gázok fajlagos csillapítása[2] ....................................... 4 5. ábra: Antenna iránykarakterisztikája [4] .............................................................. 5 6. ábra: A troposzférában fellépő elhajlás[2] ........................................................... 6 7. ábra: Cellák klaszteres elrendezése [8] ............................................................... 8 8. ábra: Vételi jelszint alakulása szabadtéri csillapítás esetén ............................. 9 9. ábra: Helymeghatározás vételi jelszint alapján ................................................ 10 10. ábra: GSM hálózat felépítése[10] ..................................................................... 11 11. ábra: Cellás szerkezet ........................................................................................ 12 12. ábra: Lefedettégi térkép a 107-es csatornán .................................................. 13 13. ábra: Jelenergia csillapítás és fading[14] ........................................................ 15 14. ábra: Adatgyűjtő rendszer részei ...................................................................... 18 15. ábra: Mikrokontroller blokkdiagramja[22] ........................................................ 20 16. ábra: Az adatgyűjtő perifériáinak inicializálása .............................................. 22 17. ábra: Adatgyűjtő működésének állapotai ........................................................ 23 18. ábra: SD szabvány parancsformátuma ........................................................... 28 19. ábra: Bluetooth kapcsolat felépítése ................................................................ 30 20. ábra: Vezeték nélküli kapcsolat HyperTerminal-ban ..................................... 31 21. ábra: Fájl fogadása HyperTerminal segítségével .......................................... 32 22. ábra: Adatgyűjtő által rögzített mérési eredmények formátuma .................. 33 23. ábra: Az adatgyűjtő rendszer blokkdiagramja ................................................ 35 24. ábra: A hordozható adatgyűjtő fotója ............................................................... 36 25. ábra: A megvalósított adatbázis szerkezeti felépítése .................................. 38 26. ábra: Mérések jellemzőinek lekérdezése ........................................................ 39 51
27. ábra: Az intelligens feltöltő felület ..................................................................... 41 28. ábra: Ludovika téren végzett mérés ................................................................. 43 29. ábra: Nagy változatosság látható a Baross utca, és József körút környékén ...................................................................................................................................... 43 30. ábra: Hasonlóan jól használható eredmények Debrecenben is .................. 44 31. ábra: Vonatról rögzített mérés pontossága ..................................................... 44
Táblázatok jegyzéke 1. Táblázat: Mérési eredmények magyarázata ..................................................... 34 2. Táblázat: példák az adatbázis GSM táblájából ................................................ 40
52
Függelék A. Az adatgyűjtő kapcsolási rajza
53
54
55
B. Folyamatábra az SD kártya inicializálásáról
56