GSM modul se uporablja v številnih komunikacijskih napravah, ki temeljijo na tehnologiji GSM (Global System for Mobile Communications). Uporablja se za interakcijo z omrežjem GSM s pomočjo računalnika. Modul GSM razume samo ukaze AT in se lahko ustrezno odzove. Najosnovnejši ukaz je »AT«, če se GSM odzove v redu, potem deluje dobro, sicer se odzove z »ERROR«. Obstajajo različni ukazi AT, kot so ATA za sprejem klica, ATD za klicanje, AT + CMGR za branje sporočila, AT + CMGS za pošiljanje sms-a itd. Ukazom AT mora slediti Carriage return, tj. R (0D v šestnajstiški vrstici)), na primer »AT + CMGS \ r«. Z uporabo teh ukazov lahko uporabljamo modul GSM.
GSM vmesnik z 8051
Namesto uporabe računalnika lahko z mikrokrmilniki komuniciramo z modulom GSM in LCD-jem, da dobimo odziv modula GSM. Torej bomo povezali GSM z mikrokrmilnikom 8051 (AT89S52). Zelo enostavno je povezati GSM z 8051, le poslati moramo ukaze AT iz mikrokrmilnika in sprejeti odziv GSM in ga prikazati na LCD-ju. Za komuniciranje z GSM lahko uporabimo serijska vrata mikrokrmilnika, kar pomeni, da uporabljamo PIN 10 (RXD) in 11 (TXD).
Najprej moramo LCD povezati z 8051, tega se lahko naučite od tukaj: Povezava LCD z mikrokrmilnikom 8051. Potem moramo GSM modul priključiti na 8051, zdaj pa moramo biti pozorni. Najprej morate preveriti, ali lahko vaš GSM modul deluje po logiki TTL ali lahko deluje samo z RS232. V bistvu, če ima vaš modul RX in TX (z GND) zatiči, lahko deluje na logiki TTL. In če nima nobenih zatičev RX, TX in ima samo vrata RS232 (serijska vrata z 9), morate za priključitev serijskih vrat na mikrokrmilnik uporabiti MAX232 IC. V bistvu MAX232uporablja se za pretvorbo serijskih podatkov v logiko TTL, ker lahko mikrokrmilnik deluje samo na logiki TTL. Če pa ima GSM modul RX, TX nožice, potem vam ni treba uporabljati MAX232 ali katerega koli serijskega pretvornika, lahko neposredno povežete RX GSM s TX (PIN 11) 8051 in TX GSM s RX (PIN 10) 8051 V našem primeru sem uporabil modul SIM900A in ima RX, TX nožice, zato nisem uporabil MAX232.
Shema vezja za GSM povezavo z mikrokrmilnikom AT89S52 je prikazana na zgornji sliki. Zdaj po povezavi moramo samo napisati program za pošiljanje ukazov AT v GSM in prejeti njegov odgovor na LCD. Kot je opisano zgoraj, je veliko AT-ukazov, vendar je naš članek v tem, da povežemo GSM z 8051, zato bomo poslali samo ukaz “AT”, ki mu sledi “\ r” (0D v šestnajstiški). Tako bomo dobili odgovor »V redu«. Toda ta program lahko razširite tako, da bo uporabljal vse zmogljivosti GSM.
Razlaga kode
Poleg vseh funkcij, povezanih z LCD-ji, smo tukaj uporabili serijska vrata in register časovnega načina (TMOD). O funkcijah LCD in drugi kodi se lahko naučite v našem razdelku 8051 projektov, tukaj razlagam o funkcijah serijske komunikacije:
Funkcija GSM_init ():
S to funkcijo nastavite Baudrate za mikrokrmilnik. Baudrate ni nič drugega kot oddani ali prejeti bit / sekundo. In moramo združiti hitrost 8051 s hitrostjo prenosa v modulu GSM, tj. 9600. Uporabili smo časovnik 1 v načinu 2 (8-bitni način samodejnega ponovnega nalaganja), tako da smo postavili register TMOD na 0X20 in višji bajt časovnika 1 (TH1) do 0XFD, da dobimo hitrost prenosa 9600. Tudi SCON register se uporablja za nastavitev načina serijske komunikacije, uporabili smo Mode1 (8-bitni UART) z omogočenim sprejemom.
Funkcija GSM_write:
SBUF (serijski vmesni vmesnik s posebnimi funkcijami) se uporablja za serijsko komunikacijo, kadar koli želimo poslati kateri koli bajt serijski napravi, ta bajt vstavimo v register SBUF, ko je poslan celoten bajt, potem TI bit nastavi strojna oprema. Ponastaviti ga moramo za pošiljanje naslednjega bajta. To je zastavica, ki označuje, da je bil bajt uspešno poslan. TI je drugi bit registra SCON. S to funkcijo smo poslali »AT«.
Funkcija GSM_read:
Enako kot pošiljanje, kadar koli prejmemo bajt od zunanje naprave, ki je vstavljen v register SBUF, ga moramo le prebrati. In vsakič, ko je bil prejet celoten bajt, RI bit nastavi strojna oprema. Ponastaviti ga moramo za prejem naslednjega bajta. RI je prvi bit registra SCON. Z uporabo te funkcije smo prebrali odgovor »V redu«.