ГСМ модул се користи у многим комуникационим уређајима који су засновани на технологији ГСМ (Глобал Систем фор Мобиле Цоммуницатионс). Користи се за интеракцију са ГСМ мрежом помоћу рачунара. ГСМ модул разуме само АТ команде и може да реагује у складу с тим. Најосновнија наредба је „АТ“, ако ГСМ одговори у реду, онда ради добро, иначе одговара „ЕРРОР“. Постоје разне АТ команде попут АТА за одговор на позив, АТД за бирање позива, АТ + ЦМГР за читање поруке, АТ + ЦМГС за слање смс-а итд. АТ команде треба да прате Царриаге ретурн тј. \ Р (0Д у хек-у), попут „АТ + ЦМГС \ р”. Помоћу ових наредби можемо користити ГСМ модул.
ГСМ повезивање са 8051
Уместо да користимо ПЦ, можемо да користимо микроконтролере за интеракцију са ГСМ модулом и ЛЦД-ом да бисмо добили одговор од ГСМ модула. Тако ћемо повезати ГСМ са 8051 микроконтролером (АТ89С52). Веома је једноставно повезати ГСМ са 8051, само треба да пошаљемо АТ команде од микроконтролера и примимо одговор од ГСМ-а и прикажемо га на ЛЦД-у. Можемо користити серијски порт микроконтролера за комуникацију са ГСМ-ом, што значи да користимо ПИН 10 (РКСД) и 11 (ТКСД).
Прво морамо повезати ЛЦД са 8051, ово можете научити одавде: Интерфејс ЛЦД-а са микроконтролером 8051. Затим морамо повезати ГСМ модул са 8051, сада овде треба обратити мало пажње. Прво треба да проверите да ли ваш ГСМ модул може да ради по ТТЛ логици или може да ради само са РС232. У основи, ако ваш модул има РКС и ТКС (са ГНД) пиновима, он може радити на ТТЛ логици. А ако нема ниједан РКС, ТКС пинове и има само РС232 порт (серијски порт са 9), онда требате да користите МАКС232 ИЦ да бисте серијски порт повезали са микроконтролером. У основи МАКС232користи се за претварање серијских података у ТТЛ логику јер микроконтролер може радити само на ТТЛ логици. Али ако ГСМ модул има РКС, ТКС пинове, тада не требате користити МАКС232 или било који серијски претварач, можете директно повезати РКС ГСМ-а на ТКС (ПИН 11) 8051 и ТКС ГСМ-а на РКС (ПИН 10) 8051 У нашем случају сам користио СИМ900А модул и има РКС, ТКС пинове, тако да нисам користио МАКС232.
Шема за ГСМ повезивање са микроконтролером АТ89С52 приказана је на горњој слици. Сада након везе само треба да напишемо програм за слање АТ команди на ГСМ и примање одговора на ЛЦД. Постоји много АТ наредби као што је горе описано, али наш опсег овог чланка је само да повежемо ГСМ са 8051, па ћемо само послати наредбу „АТ“, а затим „\ р“ (0Д у хексадецималном облику). Ово ће нам дати одговор „ОК“. Али овај програм можете проширити тако да користи све могућности ГСМ-а.
Објашњење кода
Поред свих функција повезаних са ЛЦД-ом, овде смо користили серијски порт и регистар режима тајмера (ТМОД). О функцијама ЛЦД-а и другом коду можете сазнати кроз одељак 8051 пројеката, овде објашњавам функције кодних функција повезане са серијском комуникацијом:
Функција ГСМ_инит ():
Ова функција се користи за подешавање брзине пријеноса за микроконтролер. Брзина пријеноса није ништа друго до преношење или примање битова у секунди. И морамо прилагодити брзину преноса од 8051 према брзини преноса од ГСМ модула, тј. 9600. Користили смо тајмер 1 у режиму 2 (8-битни режим аутоматског поновног учитавања) постављањем регистра ТМОД на 0Кс20 и виши бајт тајмера 1 (ТХ1) до 0КСФД да би се добила брзина пријеноса од 9600. Такође се СЦОН регистар користи за подешавање начина серијске комуникације, користили смо Моде1 (8-битни УАРТ) са омогућеним пријемом.
ГСМ_врите функција:
СБУФ (регистар специјалних функција серијског међуспремника) користи се за серијску комуникацију, кад год желимо послати било који бајт серијском уређају, тај бајт ставимо у СБУФ регистар, када је послат комплетан бајт, тада ТИ бит поставља хардвер. Морамо га ресетовати за слање следећег бајта. То је застава која означава да је бајт успешно послан. ТИ је други бит регистра СЦОН. Послали смо „АТ“ користећи ову функцију.
ГСМ_реад функција:
Исто као и слање, кад год примимо било који бајт од спољног уређаја који је бајт стављен у СБУФ регистар, само га морамо прочитати. И кад год је примљен комплетан бајт, РИ бит поставља хардвер. Морамо га ресетовати за пријем следећег бајта. РИ је први бит СЦОН регистра. Прочитали смо одговор „ОК“ помоћу ове функције.