Domáci bezpečnostno-informačný GSM systém

05. September, 2011, Autor článku: Vančo Peter, Informačné technológie, Študentské práce
Ročník 4, číslo 9 This page as PDF Pridať príspevok

V živote sa stretávame s potrebou získavať informácie na značnú diaľku a následne na ne reagovať. Sieť GSM je jedna z najrozšírenejších na svete a používajú ju takmer 2 miliardy ľudí, má obrovské pokrytie a vďaka roamingovým službám nemá takmer žiadne hranice – preto bola jednoznačnou voľbou pri vzniku mnohých podobných systémov. Práca sa zaoberá problematikou GSM brán a ich využitím v bežnej domácnosti, návrhom a realizáciou obslužného mikroprocesorového systému GSM brány a periférií akými sú bezpečnostné (pohybové alebo iné), teplotné alebo dažďové senzory.

1. Návrh zariadenia

Hlavnými požiadavkami na zariadenie bola schopnosť monitorovať objekt/nehnuteľnosť na diaľku v reálnom čase. Zariadenie malo byť schopné detekovať narušenie objektu a vyslať varovný signál a informovať o poveternostných podmienkach (vonkajšia a vnútorná teplota, dážď) cez SMS správy. Na realizáciu bolo potrebné použiť modul, ktorý bude obsluhovať komunikáciu s GSM sieťou a riadiacu jednotku tvorenú mikroprocesorom.

Napájanie GSM modulu sa pohybuje v rozpätí 3.2 V až 4.8 V. V zapojení som použil obvod LM317 na reguláciu vstupného 9V napájania (ktoré je potrebné pre pohybové senzory) na hodnotu 4.15 V, ktorá vďaka väčším kapacitám neklesne ani pri komunikácií GSM modulu, keď modul odberá v impulzových dávkach viac ako 2 A.

2. AT príkazy

Hayesova príkazová sada (alebo aj AT príkazy) sú krátke textové reťazce slúžiace na komunikáciu s GSM telefónom alebo modemom. Pre sieť GSM stanovil európsky telekomunikačný a štandardizačný inštitút (ETSI) špecifické profily AT príkazov v norme (GSM 07.07). AT príkazy posielané do telefónu môžu byť zadávané v troch podobách:

  • test AT príkazu: AT+ príkaz =?<CR>
  • načítanie hodnôt z telefónu: AT+ príkaz ?<CR>
  • zápis dát alebo hodnôt do telefónu:AT+ príkaz = [parameter]<CR>

Modem na príkazy odpovedá (pôvodné nastavenie) vo formáte <CR><LF>odpoveď<CR><LF>. AT príkazy umožňujú vykonávať operácie ako vytočenie účastníka, zrušenie hovoru, dokáže pracovať s integrovanou pamäťou pre telefónny zoznam, prevádzať operácie so SMS správami v textovom formáte alebo vo formáte PDU a podobne. Modem vie pracovať v dvoch rôznych módoch:

  • dátový mód – komunikácia s iným modemom cez GSM sieť
  • príkazový mód – prijaté dáta sú spracovávané ako príkazy

AT príkazy sú vykonávané ihneď po ich prijatí. Pokiaľ modem AT príkaz nerozozná (alebo prijatý text nie je AT príkazom), modem na vstup nereaguje.

3. GSM modul

Modul v zariadení zabezpečuje komunikáciu so sieťou GSM – konkrétne modul SIM900D od spoločnosti SIMCOM. Modul je quad-band (850 / 900 / 1800 / 1900 MHz) a podporuje prenos dát cez GPRS triedy 10 / 8. Odber modulu v nečinnosti (prihlásený do siete) sa pohybuje okolo 30 mA, čo je pre naše zariadenie vyhovujúca hodnota. Pri vysielaní rastie odber modulu špičkovo do až do hranice 2 A, preto je nutné použiť v časti zdroja vhodne zvolené paralelne zapojené (kvôli zníženiu vnútorného odporu) low ESR kondenzátory, ktoré sú schopné dodať energiu potrebnú k vykrytiu prúdových špičiek pri komunikácii.

Pri takomto zapojení je možné zariadenie napájať adaptérom, ktorý je schopný dodať minimálne 200 mA. Riadenie modulu bude vykonávať mikroprocesor – komunikácia bude prebiehať sériovou linkou (rozhranie RS-232). Pri tomto module je nutné vyriešiť riadenie toku komunikácie. Najjednoduchším riešením bolo spojenie signálov RTS a CTS priamo na vývodoch modulu. Modul podporuje autobauding, čo znamená, že je schopný sám rozoznať rýchlosť, ktorou s ním komunikuje iné zariadenie.

Modul je plne vybavený rozhraním pre pripojenie SIM karty, ktorej je zároveň aj zdrojom napätia. Zapínanie resp. vypínanie modulu je riešené cez tranzistor, zapojený ako spínač – modul je teda možné mikroprocesorom kedykoľvek vypnúť a zapnúť. Na informáciu o pripravenosti modulu prijímať AT príkazy slúži STATUS pin. Jedným z troch signalizačných prvkov zariadenia je signál NETLIGHT, ktorý opäť cez tranzistor zapojený ako spínač spína pripojenú LED diódu. Pomocou tejto signalizácie je pri prvom pohľade na zariadenie vždy nezávisle od mikroprocesora viditeľné, v akom stave sa GSM modul nachádza. Modul nemá integrovanú internú anténu a je teda nutná externá.


Obr. 1. GSM modul SIM900D

4. Riadiaca jednotka

Za riadiacu jednotku zariadenia bol zvolený 8-bitový mikroprocesor ATMEL ATMEGA32 s architektúrou AVR. Tento procesor má 32 kB programovateľnej flash pamäte a 1 kB napäťovo nezávislej EEPROM, čo spĺňa naše požiadavky. Frekvencia procesora je kryštálom nastavená na 14 745 600 Hz. Táto hodnota bola zvolená tak, aby mohol byť presne meraný čas pomocou časovača procesora (je deliteľná 1024).

Na programovanie mikroprocesora bol použitý programátor AVR Dragon. Programovanie prebiehalo cez ISP (programovací konektor je vyvedený priamo na plošnom spoji – preprogramovanie je teda otázkou minút). Komunikácia s GSM modulom je zabezpečená cez sériovú linku a vďaka konektoru je sledovateľná na PC cez terminál. Hlavné úlohy mikroprocesora by sa dali zhrnúť do nasledujúcich bodov:

  • riadenie GSM modulu (napájanie)
  • komunikácia s GSM modulom – obsluha hovorov, správ SMS
  • obsluha a vyhodnocovanie stavu senzorov
  • správa času
  • signalizácia stavu systému

4.1. Sériová linka

Sériová linka modulu GSM pracuje na 3.3 V logike, pričom vysoká úroveň signálu vysielaného procesorom závisí od jeho napájania – v našom prípade teda 4.15 V. Najvyššia prípustná hodnota na RX vstupe sériovej linky modulu je 3.5 V a teda bolo nutné navrhnúť za TX výstup mikroprocesora odporový delič aby nedošlo k poškodeniu vstupu modulu. Druhý smer komunikácie (modul – procesor) nepredstavuje problém, nakoľko vysoká úroveň modulu (3.3 V) je v mikroprocesore stále považovaná taktiež za vysokú úroveň.

4.2. Signalizácia

Zostávajúce dva prvky signalizácie indikujú stav mikroprocesorového systému. Jedným z týchto prvkov je LED dióda, druhým je piezo-bzučiak, ktorý zabezpečuje akustickú signalizáciu.

4.3. Snímanie senzorov

Nakoľko má zariadenie slúžiť aj ako bezpečnostný systém, k mikroprocesoru je možné pripojiť 5 pohybových (alebo iných, prispôsobených) senzorov. Senzory sú vyhodnocované na 2 rôznych vetvách – hlavnej, na ktorú je pripojený iba jeden senzor a vedľajšej, na ktorej sú pripojené zvyšné štyri cez logické hradlo. Všetky pohybové (a iné nezávislé pripojiteľné) senzory sú pripojené na piny procesora, ktoré dokážu vyvolať externé prerušenie. Mikroprocesor teda v hlavej programovej slučke nemusí kontrolovať stav senzorov – pri zmene stavu niektorého senzoru sa iba zavolá vektor prerušenia a jeho obsluha. Jedná sa o najefektívnejšie využitie procesorového času.

5. Periférie

Periférie zariadenia tvoria senzory dohliadajúce na bezpečnosť objektu a senzory okolia (teplotný, dažďový).

5.1. Pohybový PIR senzor

Senzory použité so zariadením sú štandardné pohybové PIR (passive infrared) senzory, ktoré sú upravené a prispôsobené k použitiu so zariadením.


Obr. 2. Klasický PIR senzor

Senzor má štandardne relé, ktoré pri pohybe zopne a je napájaný 230 V / 50 Hz. Po preštudovaní elektroniky senzoru, je možné zistiť, že elektronika senzoru pracuje v rozmedzí 8 – 25 V, takže elektrická sieť nie je potrebná. Ako bolo spomenuté, senzor v činnom stave zopína relé (napätím na vstupe senzora) – teda v kľudovom stave je výstup spojený so zemou. Tento stav je pre náš návrh nevyhovujúci, nakoľko by sme nevedeli detekovať odpojenie (prestrihnutie vodičov) senzora.


Obr. 3. Obvod upravujúci výstupný signál PIR senzoru

Pre tento účel bolo potrebné navrhnúť obvod, ktorý zaistí invertovanie výstupného signálu a zároveň jeho obmedzenie zo vstupného napájania senzoru (9 V) na napätie tvoriace vysokú logickú úroveň v zariadení (4.15 V).

5.2. Teplotné senzory

Ako teplotné senzory sú použité obvody DS1820, ktorých teplotný rozsah je -55 až 125 °C a garantovaná presnosť 0.5 °C. Informácie o teplote sú však vysielané s 12-bitovou presnosťou, teda s presnosťou na 0.075 °C. Obvody v puzdre TO92 majú komunikáciu zabezpečenú iba jediným vodičom, vďaka protokolu 1-Wire vyvinutého spoločnosťou Dallas Semiconductor. Hlavnou výhodou tohto protokolu je možnosť pripojiť veľké množstvo senzorov na jeden vodič – každý obvod má svoje unikátne 64-bitové označenie, pomocou ktorého je možné daný obvod adresovať.


Obr. 4. Teplotný senzor DS1820 v puzdre TO92

Senzory majú 2 módy spojenia:

  • trojvodičový – napájanie (3 – 5.5 V, zem) a jeden vodič na komunikáciu (toto zapojenie je použité v zariadení)
  • jednovodičový – obvod pracuje parazitne (pri komunikácii si nabije malú kapacitu, pomocou ktorej je potom schopný vykonať operácie na zistenie aktuálnej teploty, jej vyhodnotenie a spätné odoslanie)

5.3. Dažďový senzor

Dažďový senzor je vytvorený z pocínovanej (nespojenej) špirály na plošnom spoji. Pri kontakte s vodou sa odpor zapojenia pohybuje od 50 do 150 kOhm. Pri zvolení vhodného odporového deliča tak docielime získanie detekovateľnej logickej zmeny napäťovej hodnoty bez ďalšej elektroniky.


Obr. 5. Náhľad plošného spoja dažďového senzora

6. Firmware

Firmware pre mikroprocesor je písaný v jazyku C, obsahuje viac ako 2 500 riadkov kódu. Firmware je sofistikovane navrhnutý a implementovaný tak, aby bol stabilný a aby prevyšoval potrebné požiadavky. Po zapnutí zariadenia mikroprocesor vykoná nasledovné úkony:

  1. inicializuje sám seba (nastaví vstupno-výstupné porty pre periférie, parametre sériovej linky, časovače a prerušenia)
  2. inicializuje spojenie so senzormi a dá akustické znamenie
  3. inicializuje spojenie s modulom GSM a načíta autorizované telefónne čísla z pamäte EEPROM
  4. zapne (prípadne reštartuje) modul GSM
  5. vykoná sekvenciu príkazov na zaregistrovanie modulu do GSM siete a dá akustické znamenie
  6. prechádza do hlavnej slučky programu
  7. po nastaviteľnom časovom intervale sú z pamäte zmazané prečítané SMS správy a senzory sa stávajú aktívnymi (pohybové senzory potrebujú čas na inicializáciu PIR obvodu)

Spojenie s GSM modulom je kontrolované každých 15 minút skúšobným AT príkazom. V prípade, že modem neodpovie, je reštartovaný.

6.2. Hlavná programová slučka

V hlavnej programovej slučke je kontrolovaná dostupnosť spojenia s modemom, je spracovávaný zásobník AT príkazov, ktoré boli volané z prerušenia mikroprocesora a je vykonávaná obsluha SMS správ.

6.3. Vlastná GSM knižnica a jej funkcie

Firmware zahŕňa knižnicu, ktorú som naprogramoval špeciálne pre komunikáciu s GSM modemami. Jej základné funkcie zahŕňajú:

  • správu napájania (vypínanie / zapínanie)
  • inicializáciu modulu
  • získanie stavu modulu
  • vykonávanie AT príkazov s vrátením výsledku príkazu
  • parsovanie a vyhodnocovanie vrátených výsledkov
  • ochranu proti zacykleniu programu pri čakaní na odpoveď (časovačom mikroprocesora)
  • volanie AT príkazov z prerušenia (bežne neuskutočniteľné) – implementovaný príkazový FIFO zásobník
  • uskutočňovanie a prijímanie hovorov
  • programovateľnosť cez SMS
  • zasielanie SMS

Systém umožní pracovať s dátami (získavať, nastavovať) iba autorizovaným telefónnym číslam, ktorých počet je nastaviteľný, sú naprogramovateľné cez SMS správu a samozrejme zostávajú v trvalej EEPROM pamäti mikroprocesoru aj po vypnutí napájania.

6.4. Hodiny a počítadlá času

Do firmware som implementoval časový modul, v ktorom môže byť za behu programu vytvorený ľubovoľný počet štruktúr, ktoré môžu pracovať v móde čas a dátum alebo ako počítadlo. Funkcie, ktoré tento modul zahŕňa umožňujú:

  • pracovať s viacerými objektmi súčasne
  • nastavovať mód, v ktorom objekt pracuje
  • vynulovať / nastaviť hodiny alebo počítadlo
  • získať tickcount (počet sekúnd) od vynulovania

6.5. Obsluha senzorov

Senzory pripojené k zariadeniu sú zapojené tak, aby generovali externé prerušenie procesora – neprichádza teda k žiadnemu plytvaniu procesorového času ani k oneskorenému vyhodnocovaniu.

7. Mechanická konštrukcia

Zariadenie je umiestnené v plastovom kryte o rozmeroch 130x100x30 mm. Dosku plošných spojov som navrhol v programe Proteus ARES a vyhotovená bola fotocestou v domácich podmienkach. Na prednej strane sa nachádzajú dve signalizačné LED diódy, na zadnej strane je štandardný napájací konektor pre adaptér, vypínač, dva dvojpinové konektory pre senzory a celkom 6 konektorov pre teplotné a bezpečnostné senzory typu JACK 3.5 mm.


Obr. 6. Náhľad dosky plošných spojov


Práca bola prezentovaná na Študentskej vedeckej a odbornej činnosti (ŠVOČ 2011) v sekcii Aplikovaná informatika a získala Cenu ČS sekcie IEEE, ISBN 978-80-227-3508-7

Napísať príspevok