A GSM modult számos kommunikációs eszközben használják, amelyek a GSM (Globális Mobil Kommunikációs Rendszer) technológián alapulnak. Arra használják, hogy számítógéppel kommunikáljanak a GSM hálózattal. A GSM modul csak az AT parancsokat érti, és ennek megfelelően tud válaszolni. A legalapvetőbb parancs az „AT”, ha a GSM rendben van, akkor jól működik, különben „ERROR” -val válaszol. Különböző AT parancsok léteznek, például ATA a hívás fogadásához, ATD hívás tárcsázásához, AT + CMGR az üzenet elolvasásához, AT + CMGS az sms küldéséhez stb. Az AT parancsokat a Carriage return követi, azaz \ r (0D hexán), például „AT + CMGS \ r”. Ezeknek a parancsoknak a használatával használhatjuk a GSM modult.
GSM interfész a 8051-gyel
A PC használata helyett mikrokontrollereket használhatunk a GSM modullal és az LCD-vel való interakcióra, hogy a GSM modul válaszát kapjuk. Tehát összekapcsoljuk a GSM-t egy 8051 mikrokontrollerrel (AT89S52). Nagyon könnyű a GSM interfész összekapcsolása a 8051-gyel, csak el kell küldenünk AT parancsokat a mikrovezérlőtől, és fogadnunk kell a GSM válaszát, és meg kell jelenítenünk az LCD-n. Használhatjuk a mikrovezérlő soros portját a GSM-hez való kommunikációhoz, vagyis a PIN 10 (RXD) és a 11 (TXD) használatát.
Először az LCD-t kell csatlakoztatnunk a 8051-hez, ezt itt megtudhatja: LCD interfész a 8051 mikrovezérlővel. Ezután csatlakoztatnunk kell a GSM modult a 8051-hez, most itt kell figyelnünk. Először ellenőriznie kell, hogy a GSM modul képes-e a TTL logikán dolgozni, vagy csak az RS232-vel működik. Alapvetően, ha a modulod RX és TX (GND) csapokkal rendelkezik, akkor ez a TTL logikán is működhet. Ha pedig nincsenek RX, TX érintkezõi, és csak RS232 portja van (9-es soros port), akkor a soros portot a mikrovezérlõhöz a MAX232 IC segítségével kell csatlakoztatnia. Alapvetően MAX232használják a soros adatok TTL logikává konvertálására, mert a mikrokontroller csak a TTL logikán képes működni. De ha a GSM modul rendelkezik RX, TX csapokkal, akkor nem kell használnia a MAX232-et vagy bármilyen soros átalakítót, közvetlenül csatlakoztathatja a GSM RX-t a 8051 TX-hez (PIN 11) és a GSM TX-t a 8051 RX-hez (PIN 10). Esetünkben SIM900A modult használtam, és RX, TX csapokkal rendelkezik, így nem használtam a MAX232-et.
Az AT89S52 mikrovezérlővel való GSM interfész kapcsolási rajza a fenti ábrán látható. Most a kapcsolat után csak programot kell írnunk, hogy AT parancsokat küldjünk a GSM-be, és válaszait LCD-n kapjuk meg. Számos AT-parancs létezik a fent leírtak szerint, de a cikkünk célja csupán a GSM-interfész összekapcsolása a 8051-gyel, ezért csak az „AT” parancsot fogjuk küldeni, majd a következőt: „\ r” (0D hexán). Ezzel „OK” választ kapunk. De kiterjesztheti ezt a programot a GSM összes szolgáltatásának használatára.
Kódmagyarázat
Az LCD-vel kapcsolatos összes funkció mellett itt soros port és időzítő mód regisztert (TMOD) használtunk. Az LCD funkciókról és más kódokról a 8051 projektek szakaszban tájékozódhat, itt elmagyarázom a soros kommunikációval kapcsolatos kódfunkciókat:
GSM_init () függvény:
Ez a funkció a mikrovezérlő Baudrate beállítására szolgál. A Baudrate nem más, mint az átvitt vagy fogadott bit / másodperc. És össze kell illesztenünk a 8051 átviteli sebességét a GSM modul átviteli sebességével, azaz a 9600-zal. Az 1. időzítőt 2. módban (8 bites automatikus újratöltési mód) használtuk azzal, hogy a TMOD regisztert 0X20-ra és az 1. időzítő magasabb bájtjára állítottuk. (TH1) -től 0XFD-ig a 9600 adatátviteli sebesség eléréséhez. A soros kommunikáció módjának beállításához SCON regisztert is használunk, a Mode1 (8-bites UART) módot használtuk a vétel engedélyezésével.
GSM_write funkció:
Az SBUF (soros puffer speciális funkció regiszter) a soros kommunikációhoz használatos, amikor bármilyen bájtot akarunk elküldeni soros eszköznek, akkor ezt a bájtot az SBUF regiszterbe helyezzük, amikor a teljes bájt elküldve, akkor a TI bitet hardver állítja be. Vissza kell állítanunk a következő bájt küldéséhez. Ez egy olyan jelző, amely jelzi, hogy a bájt sikeresen elküldve. A TI a SCON regiszter második bitje. Ezzel a funkcióval küldtük az „AT” -t.
GSM_read funkció:
Ugyanaz, mint a küldés, amikor bármilyen bájtot kapunk egy külső eszközről, amely bájt az SBUF regiszterbe kerül, csak el kell olvasnunk. És amikor a teljes bájt beérkezett, az hardver beállítja az RI bitet. Vissza kell állítanunk a következő bájt fogadásához. Az RI a SCON regiszter első bitje. Ezzel a funkcióval olvastuk az „OK” választ.