GSM-modulen används i många kommunikationsenheter som är baserade på GSM-teknik (Global System for Mobile Communications). Den används för att interagera med GSM-nätverk med hjälp av en dator. GSM-modulen förstår bara AT-kommandon och kan svara därefter. Det mest grundläggande kommandot är "AT", om GSM svarar OK fungerar det bra annars svarar det med "ERROR". Det finns olika AT-kommandon som ATA för att svara på ett samtal, ATD för att ringa ett samtal, AT + CMGR för att läsa meddelandet, AT + CMGS för att skicka sms etc. AT-kommandon ska följas av Carriage return dvs. \ r (0D i hex), som “AT + CMGS \ r”. Vi kan använda GSM-modulen med dessa kommandon.
GSM-gränssnitt med 8051
Istället för att använda PC kan vi använda mikrokontroller för att interagera med GSM-modulen och LCD för att få svaret från GSM-modulen. Så vi ska gränssnitt GSM med en 8051 mikrokontroller (AT89S52). Det är väldigt enkelt att koppla ihop GSM med 8051, vi behöver bara skicka AT-kommandon från mikrokontroller och få svar från GSM och visa det på LCD. Vi kan använda mikroprocessorns seriella port för att kommunicera med GSM, det vill säga använda PIN 10 (RXD) och 11 (TXD).
Först måste vi ansluta LCD till 8051, du kan lära dig detta härifrån: LCD-gränssnitt med 8051 Microcontroller. Då måste vi ansluta GSM-modulen till 8051, nu ska vi ägna lite uppmärksamhet. Först måste du kontrollera att din GSM-modul kan fungera med TTL-logik eller att den bara kan fungera med RS232. I grund och botten om din modul har RX och TX (med GND) Pins ombord kan den fungera med TTL-logik. Och om den inte har några RX-, TX-stift och bara har en RS232-port (seriell port med 9) måste du använda MAX232 IC för att ansluta seriell port till mikrokontrollern. I grund och botten MAX232används för att konvertera seriell data till TTL-logik eftersom Microcontroller endast kan arbeta med TTL-logik. Men om GSM-modulen har RX, TX-stift behöver du inte använda MAX232 eller någon seriell omvandlare, du kan direkt ansluta RX för GSM till TX (PIN 11) av 8051 och TX av GSM till RX (PIN 10) av 8051 I vårt fall har jag använt SIM900A-modulen och den har RX, TX-stift så jag har inte använt MAX232.
Kretsschema för GSM-gränssnitt med AT89S52-mikrokontroller visas i figuren ovan. Nu efter anslutningen behöver vi bara skriva program för att skicka AT-kommandon till GSM och få svaret på LCD. Det finns många AT-kommandon som beskrivs ovan, men vårt omfång för den här artikeln är bara att gränssnitt GSM med 8051, så vi kommer bara att skicka kommandot "AT" följt av "\ r" (0D i hex). Detta kommer att ge oss ett svar ”OK”. Men du kan utöka detta program för att använda alla GSM-faciliteter.
Kodförklaring
Förutom alla LCD-relaterade funktioner har vi här använt Serial Port and Timer Mode Register (TMOD). Du kan lära dig mer om LCD-funktioner och annan kod genom att gå igenom avsnittet 8051-projekt, här förklarar jag om seriekommunikationsrelaterade kodfunktioner:
GSM_init () -funktion:
Denna funktion används för att ställa in Baudrate för mikrokontroller. Baudrate är inget annat än Bits / sekund överförd eller mottagen. Och vi måste matcha baudrate på 8051 till Baud-hastigheten på GSM-modulen dvs. 9600. Vi har använt Timer 1 i Mode 2 (8-bitars auto-reload mode) genom att sätta TMOD-registret till 0X20 och Higher byte of Timer 1 (TH1) till 0XFD för att få överföringshastigheten 9600. Även SCON-register används för att ställa in läget för seriell kommunikation, vi har använt Mode1 (8-bit UART) med mottagning aktiverad.
GSM_write-funktion:
SBUF (specialbuffert för specialbuffert) används för seriekommunikation, när vi vill skicka någon byte till seriell enhet lägger vi den byten i SBUF-registret, när hela byten har skickats sätts TI-bit av hårdvara. Vi måste återställa den för att skicka nästa byte. Det är en flagga som indikerar att byte har skickats framgångsrikt. TI är den andra biten av SCON-registret. Vi har skickat "AT" med den här funktionen.
GSM_read-funktion:
Samma som att skicka, när vi tar emot någon byte från en extern enhet som byten läggs i SBUF-registret behöver vi bara läsa den. Och när hela byten har mottagits ställs RI-bit in av hårdvara. Vi måste återställa den för att ta emot nästa byte. RI är den första biten av SCON-registret. Vi har läst svaret ”OK” med den här funktionen.