GSM modul koristi se u mnogim komunikacijskim uređajima koji se temelje na tehnologiji GSM (Global System for Mobile Communications). Koristi se za interakciju s GSM mrežom pomoću računala. GSM modul razumije samo AT naredbe i može u skladu s tim reagirati. Najosnovnija naredba je "AT", ako GSM odgovori OK, onda radi dobro, inače odgovara "ERROR". Postoje razne AT naredbe poput ATA za odgovor na poziv, ATD za biranje poziva, AT + CMGR za čitanje poruke, AT + CMGS za slanje sms-a itd. AT naredbe treba slijediti Carriage return tj. \ R (0D u hex-u), poput "AT + CMGS \ r". Pomoću ovih naredbi možemo koristiti GSM modul.
GSM povezivanje s 8051
Umjesto da koristimo računalo, možemo koristiti mikrokontrolere za interakciju s GSM modulom i LCD-om kako bismo dobili odgovor od GSM modula. Stoga ćemo povezati GSM s 8051 mikrokontrolerom (AT89S52). Vrlo je jednostavno povezati GSM s 8051, samo trebamo poslati AT naredbe s mikrokontrolera i primiti odgovor od GSM-a i prikazati ga na LCD-u. Za komuniciranje s GSM-om možemo koristiti serijski priključak mikrokontrolera, znači upotrebu PIN-a 10 (RXD) i 11 (TXD).
![]()
Prvo moramo povezati LCD s 8051, ovo možete naučiti ovdje: LCD povezivanje s 8051 mikrokontrolerom. Zatim moramo povezati GSM modul na 8051, sada bismo trebali obratiti pažnju. Prvo trebate provjeriti je li vaš GSM modul sposoban raditi po TTL logici ili može raditi samo s RS232. U osnovi ako vaš modul ima RX i TX (s GND) pinovima na ploči, onda može raditi na TTL logici. A ako nema nijedan RX, TX pinove i ima samo RS232 priključak (serijski priključak s 9), tada morate upotrijebiti MAX232 IC za povezivanje serijskog porta s mikrokontrolerom. U osnovi MAX232koristi se za pretvaranje serijskih podataka u TTL logiku jer mikrokontroler može raditi samo na TTL logici. Ali ako GSM modul ima RX, TX pinove, tada ne morate koristiti MAX232 ili bilo koji serijski pretvarač, možete izravno povezati RX GSM-a na TX (PIN 11) od 8051 i TX od GSM-a na RX (PIN 10) od 8051 U našem slučaju koristio sam modul SIM900A i ima RX, TX pinove pa nisam koristio MAX232.

Kružni dijagram za GSM povezivanje s mikrokontrolerom AT89S52 prikazan je na gornjoj slici. Sada nakon veze samo trebamo napisati program za slanje AT naredbi na GSM i primanje odgovora na LCD. Postoji mnogo AT naredbi kao što je gore opisano, ali naš je opseg ovog članka samo povezivanje GSM-a s 8051, pa ćemo samo poslati naredbu "AT" nakon koje slijedi "\ r" (0D u hex-u). To će nam dati odgovor "OK". Ali ovaj program možete proširiti tako da koristi sve mogućnosti GSM-a.
Objašnjenje koda
Uz sve funkcije povezane s LCD-om, ovdje smo koristili serijski port i registar načina odbrojavanja (TMOD). O funkcijama LCD-a i drugim kodovima možete saznati prolazeći kroz naš odjeljak 8051 projekata, ovdje objašnjavam o funkcijama koda povezane sa serijskom komunikacijom:
Funkcija GSM_init ():
Ova se funkcija koristi za postavljanje brzine prijenosa za mikrokontroler. Baudrate nije ništa drugo nego prijenosa ili primanja bitova u sekundi. I moramo uskladiti brzinu prijenosa 8051 sa brzinom prijenosa GSM modula, tj. 9600. Koristili smo timer 1 u načinu 2 (8-bitni način automatskog ponovnog učitavanja) postavljanjem registra TMOD na 0X20 i viši bajt tajmera 1 (TH1) do 0XFD da bi se dobila brzina prijenosa od 9600. Također se SCON registar koristi za postavljanje načina serijske komunikacije, koristili smo Mode1 (8-bitni UART) s omogućenim primanjem.
Funkcija GSM_write:
SBUF (registar posebne funkcije serijskog međuspremnika) koristi se za serijsku komunikaciju, kad god želimo poslati bilo koji bajt na serijski uređaj, taj bajt stavimo u SBUF registar, kada je poslan kompletan bajt, tada TI bit postavlja hardver. Moramo ga resetirati za slanje sljedećeg bajta. To je zastava koja označava da je bajt uspješno poslan. TI je drugi bit registra SCON. Poslali smo "AT" pomoću ove funkcije.
Funkcija GSM_read:
Isto kao i slanje, kad god primimo bilo koji bajt s vanjskog uređaja koji je bajt stavljen u SBUF registar, samo ga trebamo pročitati. I kad god je primljen kompletan bajt, RI bit postavlja hardver. Moramo ga resetirati za primanje sljedećeg bajta. RI je prvi bit registra SCON. Pročitali smo odgovor "OK" pomoću ove funkcije.
