GSM modul se používá v mnoha komunikačních zařízeních založených na technologii GSM (Global System for Mobile Communications). Používá se k interakci se sítí GSM pomocí počítače. GSM modul rozumí pouze AT příkazům a může podle toho reagovat. Nejzákladnějším příkazem je „AT“, pokud je GSM v pořádku, pak funguje dobře, jinak odpovídá „CHYBOU“. Existují různé AT příkazy jako ATA pro přijetí hovoru, ATD pro vytočení hovoru, AT + CMGR pro přečtení zprávy, AT + CMGS pro odeslání SMS atd. Po AT příkazech by měl následovat Carriage return tj. \ 0 (0D v hex), jako „AT + CMGS“. Pomocí těchto příkazů můžeme použít GSM modul.
Rozhraní GSM s 8051
Místo použití PC můžeme k interakci s GSM modulem a LCD získat mikrokontroléry, abychom získali odpověď z GSM modulu. Takže budeme propojovat GSM s mikrokontrolérem 8051 (AT89S52). Je velmi snadné propojit GSM s 8051, stačí nám poslat AT příkazy z mikrokontroléru a přijmout odpověď z GSM a zobrazit ji na LCD. Můžeme použít sériový port mikrokontroléru pro komunikaci s GSM, tj. Pomocí PIN 10 (RXD) a 11 (TXD).
Nejprve musíme připojit LCD k 8051, můžete se to naučit odtud: Rozhraní LCD s mikrokontrolérem 8051. Poté musíme připojit GSM modul k 8051, nyní bychom zde měli věnovat určitou pozornost. Nejprve musíte zkontrolovat, zda je váš GSM modul schopen pracovat s logikou TTL nebo může pracovat pouze s RS232. V zásadě, pokud má váš modul na desce RX a TX (s GND) piny, pak může pracovat na logice TTL. A pokud nemá žádné piny RX, TX a má pouze port RS232 (sériový port s 9), musíte k připojení sériového portu k mikrokontroléru použít MAX232 IC. V zásadě MAX232slouží k převodu sériových dat do logiky TTL, protože mikrokontrolér může fungovat pouze na logice TTL. Pokud má ale GSM modul RX, TX piny, pak nemusíte používat MAX232 ani žádný sériový převodník, můžete přímo připojit RX GSM k TX (PIN 11) 8051 a TX GSM k RX (PIN 10) 8051 V našem případě jsem použil modul SIM900A a má piny RX, TX, takže jsem nepoužil MAX232.
Schéma zapojení GSM s mikrokontrolérem AT89S52 je zobrazeno na obrázku výše. Nyní po připojení stačí napsat program pro odesílání AT příkazů do GSM a přijímat jeho odpověď na LCD. Jak je popsáno výše, existuje mnoho AT příkazů, ale naším předmětem tohoto článku je pouze rozhraní GSM s 8051, takže pošleme pouze příkaz „AT“ následovaný „\ r“ (0D v hexadecimálním formátu). To nám dá odpověď „OK“. Tento program však můžete rozšířit tak, aby využíval veškerá zařízení GSM.
Vysvětlení kódu
Kromě všech funkcí souvisejících s LCD jsme zde použili sériový port a registr časovače (TMOD). O funkcích LCD a dalším kódu se můžete dozvědět procházením sekce 8051 projektů, zde vysvětluji funkce kódu související se sériovou komunikací:
Funkce GSM_init ():
Tato funkce slouží k nastavení přenosové rychlosti pro mikrokontrolér. Přenosová rychlost není nic jiného než přenášené nebo přijímané bity za sekundu. A musíme přizpůsobit přenosovou rychlost 8051 baudové rychlosti GSM modulu, tj. 9600. Použili jsme časovač 1 v režimu 2 (režim 8bitového automatického načítání) nastavením registru TMOD na 0X20 a vyšší bajt časovače 1 (TH1) až 0XFD, abychom získali přenosovou rychlost 9600. K nastavení režimu sériové komunikace se používá také registr SCON, použili jsme režim 1 (8bitový UART) s povoleným příjmem.
Funkce GSM_write:
Pro sériovou komunikaci se používá SBUF (registr speciální funkce sériové vyrovnávací paměti), kdykoli chceme poslat jakýkoli bajt na sériové zařízení, vložíme tento bajt do registru SBUF, když je odeslán celý bajt, pak je bit TI nastaven hardwarem. Musíme jej resetovat pro odeslání dalšího bajtu. Je to příznak, který označuje, že bajt byl úspěšně odeslán. TI je druhý bit registru SCON. Pomocí této funkce jsme odeslali „AT“.
Funkce GSM_read:
Stejně jako při odesílání, kdykoli obdržíme jakýkoli bajt z externího zařízení, je tento bajt vložen do registru SBUF, stačí si jej přečíst. A kdykoli je přijat celý bajt, je bit RI nastaven hardwarem. Musíme jej resetovat pro příjem dalšího bajtu. RI je první bit registru SCON. Pomocí této funkce jsme přečetli odpověď „OK“.