GSM (గ్లోబల్ కమ్యూనికేషన్ ఫర్ మొబైల్ కమ్యూనికేషన్స్) టెక్నాలజీపై ఆధారపడిన అనేక కమ్యూనికేషన్ పరికరాల్లో GSM మాడ్యూల్ ఉపయోగించబడుతుంది. ఇది కంప్యూటర్ ఉపయోగించి GSM నెట్వర్క్తో సంభాషించడానికి ఉపయోగించబడుతుంది. GSM మాడ్యూల్ AT ఆదేశాలను మాత్రమే అర్థం చేసుకుంటుంది మరియు తదనుగుణంగా స్పందించగలదు. చాలా ప్రాథమిక ఆదేశం “AT”, GSM సరే స్పందిస్తే అది బాగా పనిచేస్తుంది లేకపోతే అది “ERROR” తో స్పందిస్తుంది. కాల్కు సమాధానం ఇవ్వడానికి ATA, కాల్ డయల్ చేయడానికి ATD, సందేశాన్ని చదవడానికి AT + CMGR, SMS పంపడానికి AT + CMGS వంటి వివిధ AT ఆదేశాలు ఉన్నాయి. AT ఆదేశాలను క్యారేజ్ రిటర్న్ అనగా \ r (హెక్స్లో 0D), “AT + CMGS \ r” వంటిది. మేము ఈ ఆదేశాలను ఉపయోగించి GSM మాడ్యూల్ను ఉపయోగించవచ్చు.
8051 తో GSM ఇంటర్ఫేసింగ్
పిసిని ఉపయోగించటానికి బదులుగా, జిఎస్ఎమ్ మాడ్యూల్ నుండి స్పందన పొందడానికి జిఎస్ఎమ్ మాడ్యూల్ మరియు ఎల్సిడితో ఇంటరాక్ట్ చేయడానికి మైక్రోకంట్రోలర్లను ఉపయోగించవచ్చు. కాబట్టి మేము 8051 మైక్రోకంట్రోలర్ (AT89S52) తో GSM ను ఇంటర్ఫేస్ చేయబోతున్నాము. 8051 తో GSM ను ఇంటర్ఫేస్ చేయడం చాలా సులభం, మేము మైక్రోకంట్రోలర్ నుండి AT ఆదేశాలను పంపాలి మరియు GSM నుండి ప్రతిస్పందనను స్వీకరించాలి మరియు దానిని LCD లో ప్రదర్శించాలి. GSM తో కమ్యూనికేట్ చేయడానికి మేము మైక్రోకంట్రోలర్ యొక్క సీరియల్ పోర్టును ఉపయోగించవచ్చు, అంటే పిన్ 10 (RXD) మరియు 11 (TXD) ను ఉపయోగించడం.
మొదట మనం ఎల్సిడిని 8051 కి కనెక్ట్ చేయాలి, మీరు దీన్ని ఇక్కడ నుండి నేర్చుకోవచ్చు: 8051 మైక్రోకంట్రోలర్తో ఎల్సిడి ఇంటర్ఫేసింగ్. అప్పుడు మనం GSM మాడ్యూల్ను 8051 కి కనెక్ట్ చేయాలి, ఇప్పుడు ఇక్కడ మనం కొంత శ్రద్ధ వహించాలి. మొదట మీరు మీ GSM మాడ్యూల్ TTL లాజిక్ వద్ద పని చేయగలదా లేదా అది RS232 తో మాత్రమే పని చేయగలదా అని తనిఖీ చేయాలి. ప్రాథమికంగా మీ మాడ్యూల్లో RX మరియు TX (GND తో) పిన్లు ఉంటే, అది TTL లాజిక్పై పని చేస్తుంది. మరియు దీనికి RX, TX పిన్స్ లేకపోతే మరియు RS232 పోర్ట్ (9 తో ఉన్న సీరియల్ పోర్ట్) మాత్రమే ఉంటే, అప్పుడు మీరు మైక్రోకంట్రోలర్కు సీరియల్ పోర్ట్ను కనెక్ట్ చేయడానికి MAX232 IC ని ఉపయోగించాలి. ప్రాథమికంగా MAX232మైక్రోకంట్రోలర్ టిటిఎల్ లాజిక్పై మాత్రమే పనిచేయగలదు కాబట్టి సీరియల్ డేటాను టిటిఎల్ లాజిక్గా మార్చడానికి ఉపయోగిస్తారు. GSM మాడ్యూల్లో RX, TX పిన్లు ఉంటే మీరు MAX232 లేదా ఏదైనా సీరియల్ కన్వర్టర్ను ఉపయోగించాల్సిన అవసరం లేదు, మీరు నేరుగా GSM యొక్క RX ను 8051 యొక్క TX (PIN 11) కు మరియు GSM యొక్క TX ను 8051 యొక్క RX (PIN 10) కు కనెక్ట్ చేయవచ్చు. మా విషయంలో నేను SIM900A మాడ్యూల్ ఉపయోగించాను మరియు దీనికి RX, TX పిన్స్ ఉన్నాయి కాబట్టి నేను MAX232 ను ఉపయోగించలేదు.
AT89S52 మైక్రోకంట్రోలర్తో GSM ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం పై చిత్రంలో చూపబడింది. ఇప్పుడు కనెక్షన్ తరువాత, మేము GSM కి AT ఆదేశాలను పంపడానికి ప్రోగ్రామ్ రాయాలి మరియు LCD లో దాని ప్రతిస్పందనను స్వీకరించాలి. పైన వివరించిన విధంగా చాలా AT ఆదేశాలు ఉన్నాయి, కానీ ఈ వ్యాసం యొక్క మా పరిధి 8051 తో GSM ను ఇంటర్ఫేస్ చేయడమే, కాబట్టి మనం “AT” కమాండ్ను “\ r” (హెక్స్లో 0D) తరువాత పంపబోతున్నాము. ఇది మాకు “సరే” ప్రతిస్పందన ఇస్తుంది. కానీ మీరు GSM యొక్క అన్ని సౌకర్యాలను ఉపయోగించడానికి ఈ కార్యక్రమాన్ని విస్తరించవచ్చు.
కోడ్ వివరణ
అన్ని LCD సంబంధిత ఫంక్షన్లతో పాటు, ఇక్కడ మేము సీరియల్ పోర్ట్ మరియు టైమర్ మోడ్ రిజిస్టర్ (TMOD) ను ఉపయోగించాము. మా 8051 ప్రాజెక్టుల విభాగం ద్వారా మీరు LCD ఫంక్షన్లు మరియు ఇతర కోడ్ గురించి తెలుసుకోవచ్చు, ఇక్కడ నేను సీరియల్ కమ్యూనికేషన్ సంబంధిత కోడ్ ఫంక్షన్ల గురించి వివరిస్తున్నాను:
GSM_init () ఫంక్షన్:
మైక్రోకంట్రోలర్ కోసం బౌడ్రేట్ను సెట్ చేయడానికి ఈ ఫంక్షన్ ఉపయోగపడుతుంది. బౌడ్రేట్ బిట్స్ / సెకండ్ ప్రసారం లేదా అందుకున్నది తప్ప మరొకటి కాదు. మరియు మేము 8051 యొక్క బౌడ్రేట్ను GSM మాడ్యూల్ యొక్క బాడ్ రేటుతో సరిపోల్చాలి, అంటే 9600. మేము TMOD రిజిస్టర్ను 0X20 మరియు టైమర్ 1 యొక్క అధిక బైట్ను సెట్ చేయడం ద్వారా మోడ్ 2 (8-బిట్ ఆటో-రీలోడ్ మోడ్) లో టైమర్ 1 ను ఉపయోగించాము. 9600 యొక్క బాడ్ రేటును పొందడానికి (TH1) నుండి 0XFD వరకు. సీరియల్ కమ్యూనికేషన్ మోడ్ను సెట్ చేయడానికి SCON రిజిస్టర్ ఉపయోగించబడుతుంది, మేము ఎనేబుల్ చేయబడిన మోడ్ 1 (8-బిట్ UART) ను ఉపయోగించాము.
GSM_ రైట్ ఫంక్షన్:
SBUF (సీరియల్ బఫర్ స్పెషల్ ఫంక్షన్ రిజిస్టర్) సీరియల్ కమ్యూనికేషన్ కోసం ఉపయోగించబడుతుంది, మనం ఏదైనా బైట్ను సీరియల్ పరికరానికి పంపాలనుకున్నప్పుడు, మేము ఆ బైట్ను SBUF రిజిస్టర్లో ఉంచాము, పూర్తి బైట్ పంపినప్పుడు TI బిట్ హార్డ్వేర్ ద్వారా సెట్ చేయబడుతుంది. తదుపరి బైట్ పంపడం కోసం మేము దాన్ని రీసెట్ చేయాలి. ఇది బైట్ విజయవంతంగా పంపబడిందని సూచించే జెండా. TI అనేది SCON రిజిస్టర్ యొక్క రెండవ బిట్. మేము ఈ ఫంక్షన్ను ఉపయోగించి “AT” పంపాము.
GSM_read ఫంక్షన్:
SBUF రిజిస్టర్లో బైట్ ఉంచిన బాహ్య పరికరం నుండి ఏదైనా బైట్ను స్వీకరించినప్పుడల్లా, మేము దానిని చదవాలి. మరియు పూర్తి బైట్ అందుకున్నప్పుడల్లా హార్డ్వేర్ ద్వారా RI బిట్ సెట్ చేయబడుతుంది. తదుపరి బైట్ను స్వీకరించడానికి మేము దాన్ని రీసెట్ చేయాలి. RI అనేది SCON రిజిస్టర్ యొక్క మొదటి బిట్. ఈ ఫంక్షన్ను ఉపయోగించి “సరే” ప్రతిస్పందన చదివాము.