GSM-moduulia käytetään monissa tietoliikennelaitteissa, jotka perustuvat GSM (Global System for Mobile Communications) -tekniikkaan. Sitä käytetään vuorovaikutuksessa GSM-verkon kanssa tietokonetta käyttäen. GSM-moduuli ymmärtää vain AT-komennot ja voi vastata vastaavasti. Peruskäsky on “AT”, jos GSM vastaa OK, se toimii hyvin, muuten se vastaa ”ERROR”. On olemassa useita AT-komentoja, kuten ATA puheluun vastaamiseksi, ATD puhelun valitsemiseksi, AT + CMGR viestin lukemiseksi, AT + CMGS tekstiviestien lähettämiseksi jne. AT-komentojen jälkeen tulisi olla Carriage return eli \ r (0D heksalla), kuten "AT + CMGS \ r". Voimme käyttää GSM-moduulia näiden komentojen avulla.
GSM-liitäntä 8051: n kanssa
Tietokoneen käytön sijaan voimme käyttää mikro-ohjaimia vuorovaikutuksessa GSM-moduulin ja LCD: n kanssa saadaksemme vastauksen GSM-moduulista. Joten aiomme liittää GSM: n 8051-mikrokontrolleriin (AT89S52). GSM: n liittäminen 8051: n kanssa on erittäin helppoa, meidän on vain lähetettävä AT-komennot mikro-ohjaimelta ja vastaanotettava vastaus GSM: ltä ja näytettävä se LCD-näytöllä. Voimme käyttää mikro-ohjaimen sarjaporttia kommunikoimaan GSM: n kanssa, eli PIN 10 (RXD) ja 11 (TXD).
Ensin meidän on liitettävä LCD-näyttö 8051: een, voit oppia tämän täältä: LCD-liitäntä 8051-mikrokontrolleriin. Sitten meidän on yhdistettävä GSM-moduuli 8051: een, nyt meidän pitäisi kiinnittää huomiota. Ensin on tarkistettava, pystyykö GSM-moduulisi toimimaan TTL-logiikalla vai voiko se toimia vain RS232: n kanssa. Pohjimmiltaan, jos moduulissasi on RX- ja TX (GND) -nastat, se voi toimia TTL-logiikan kanssa. Ja jos sillä ei ole RX, TX-nastoja ja sillä on vain RS232-portti (sarjaportti 9: llä), sinun on käytettävä MAX232 IC: tä yhdistämään sarjaportti mikrokontrolleriin. Pohjimmiltaan MAX232käytetään sarjatietojen muuntamiseen TTL-logiikaksi, koska mikrokontrolleri voi toimia vain TTL-logiikoilla. Mutta jos GSM-moduulissa on RX, TX-nastat, sinun ei tarvitse käyttää MAX232: ta tai mitään sarjamuunninta, voit liittää GSM: n RX: n 8051: n TX: ään (PIN 11) ja GSM: n TX: ään 8051: n RX: ään (PIN 10) Meidän tapauksessani olen käyttänyt SIM900A-moduulia ja siinä on RX, TX-nastat, joten en ole käyttänyt MAX232: ta.
Piirikaavio GSM-liitännästä AT89S52-mikrokontrolleriin on esitetty yllä olevassa kuvassa. Nyt yhteyden jälkeen meidän on vain kirjoitettava ohjelma lähettämään AT-komennot GSM: lle ja vastaanottamaan vastauksensa LCD-näytöllä. On monia AT-komentoja, kuten edellä on kuvattu, mutta tämän artikkelin soveltamisala on vain liittää GSM: n 8051: n kanssa, joten lähetämme vain komennon "AT", jota seuraa "\ r" (0D heksadesimaalina). Tämä antaa meille vastauksen "OK". Mutta voit laajentaa tätä ohjelmaa käyttämään kaikkia GSM-palveluja.
Koodin selitys
Kaikkien LCD-näyttöön liittyvien toimintojen lisäksi tässä on käytetty sarjaliitäntä- ja ajastintilarekisteriä (TMOD). Voit oppia LCD-toiminnoista ja muista koodeista käymällä läpi 8051-projektit-osion, tässä selitän sarjaviestintään liittyviä kooditoimintoja:
GSM_init () -toiminto:
Tätä toimintoa käytetään asettamaan mikro-ohjaimen siirtonopeus. Siirtonopeus on vain lähetettyjä tai vastaanotettuja bittejä sekunnissa. Ja meidän on sovitettava 8051: n siirtonopeus GSM-moduulin siirtonopeuteen eli 9600. Olemme käyttäneet ajastinta 1 tilassa 2 (8-bittinen automaattinen lataustila) asettamalla TMOD-rekisterin arvoksi 0X20 ja ajastimen 1 korkeammaksi tavuksi. (TH1) - 0XFD saadaksesi siirtonopeuden 9600. Myös SCON-rekisteriä käytetään sarjaliikennemoodin asettamiseen, olemme käyttäneet Mode1 (8-bittinen UART) vastaanottamisen ollessa käytössä.
GSM_write-toiminto:
SBUF: ää (sarjapuskurin erikoistoimintorekisteri) käytetään sarjaliikenteeseen, aina kun haluamme lähettää minkä tahansa tavun sarjalaitteelle, laitamme tavun SBUF-rekisteriin, kun koko tavu on lähetetty, TI-bitti asetetaan laitteistolla. Meidän on nollattava se seuraavan tavun lähettämistä varten. Se on lippu, joka osoittaa, että tavu on lähetetty onnistuneesti. TI on SCON-rekisterin toinen bitti. Olemme lähettäneet “AT” tämän toiminnon avulla.
GSM_read-toiminto:
Sama kuin lähetys, kun saamme minkä tahansa tavun ulkoiselta laitteelta, tavu on sijoitettu SBUF-rekisteriin, meidän on vain luettava se. Ja aina kun tavu on vastaanotettu, laitteisto asettaa RI-bitin. Meidän on nollattava se seuraavan tavun vastaanottamiseksi. RI on SCON-rekisterin ensimmäinen bitti. Olemme lukeneet vastauksen ”OK” tällä toiminnolla.