Projektowanie urządzeń z modułami GSM

Projektowanie urządzeń z modułami GSM
Pobierz PDF Download icon

Rozpoczynamy cykl artykułów stanowiący wprowadzenie do zastosowania modułów komunikacyjnych GSM w urządzeniach mikroprocesorowych. W kolejnych częściach zostaną omówione zasady projektowania sprzętu, korzystanie z poleceń AT modułów oraz zasady konstrukcji oprogramowania mikrokontrolera zapewniającego współpracę z modułem.

Moduły GSM służą do komunikacji urządzeń przez sieć telefonii komórkowej. Umożliwiają nawiązywanie i odbieranie połączeń głosowych, nadawanie i odbiór wiadomości SMS, przesyłanie danych pomiędzy modemami oraz komunikację przez sieć Internet, np. nadawanie poczty elektronicznej oraz komunikację z serwerami w celu wymiany danych (w tym ściąganie plików i stron www). Nadają się więc one do różnych zastosowań - począwszy od prostych sterowników bram lub oświetlenia sterowanych dzwonieniem, poprzez alarmy, sterowniki/monitory obiektów z komunikacją SMS aż do sterowników z ciągłą komunikacją z obiektem przez Internet.

Typowe moduły GSM zapewniają pełną funkcjonalność telefonu komórkowego - inicjowanie i odbieranie połączeń głosowych, nadawanie i odbiór wiadomości SMS oraz transmisję danych. Są przeznaczone do wbudowania w urządzenie mikroprocesorowe, więc nie mają interfejsu klawiatury ani wyświetlacza, a zamiast tego są wyposażone w interfejs komunikacyjny umożliwiający współpracę z mikrokontrolerem lub komputerem - zwykle jest to interfejs UART, niekiedy również USB.

Moduł Quectel M95

Do celów demonstracyjnych wybrano tani i popularny moduł Quectel M95. Dokumentacja techniczna modułu jest dostępna na witrynie internetowej producenta - www.quectel.com.

Dwa podstawowe dokumenty - to Quectel_M95_Hardware_Design, opisujący układ od strony elektrycznej oraz Quectel_M95_AT_Commands_Manual, zawierający opis poleceń modułu. Ponadto, producent publikuje serię not aplikacyjnych dotyczących projektowania sprzętu i użycia poleceń.

Moduł ma wymiary 19,9 mm×23,6 mm×2,65 mm i jest przeznaczony do montażu powierzchniowego. Obudowa modułu M95 umożliwia zastosowanie go w konstrukcjach amatorskich i w urządzeniach małoseryjnych. Może być łatwo przylutowana do płytki drukowanej, również w warunkach amatorskich, bez użycia specjalistycznego sprzętu.

Wyprowadzenia modułu

Przed rozpoczęciem projektowania warto zapoznać się ze schematem logicznym modułu i jego wyprowadzeniami. Quectel M95 przypomina tu inne typowe moduły GSM. Wszystkie wyprowadzenia można podzielić na kilka grup:

  • zasilanie i antena,
  • interfejs karty SIM,
  • interfejs audio - mikrofon i głośnik,
  • interfejs UART,
  • linie sterowania i stanu modułu,
  • interfejs diagnostyczny.

Rysunek 1. Rozmieszczenie wyprowadzeń modułu Quectel M95

Rozmieszczenie wyprowadzeń pokazano na rysunku 1. Do doprowadzenia głównego napięcia zasilającego służą linie VBAT. Ze względu na znaczny impulsowy pobór prądu moduł posiada po kilka linii zasilania VBAT i masy GND. Muszą one być połączone na płytce drukowanej urządzenia. Linia VRTC służy do podłączenia opcjonalnej baterii lub kondensatora "supercap", który służy do podtrzymania zasilania wewnętrznego zegara czasu rzeczywistego w czasie, gdy główne napięcie zasilania jest nieobecne.

Linia RF_ANT służy do przyłączenia anteny. Jeżeli używamy zewnętrznej anteny GSM, jej gniazdo należy umieścić jak najbliżej modułu M95, w odległości nieprzekraczającej kilku mm.

Linie o nazwach rozpoczynających się od SIM służą do dołączenia karty SIM. Linie SIM_VDD i SIM_GND powinny być dołączone wyłącznie do karty SIM - zapewniają one zasilanie karty przez moduł M95. Moduł umożliwi współpracę z dwiema kartami SIM. W takim przypadku wyprowadzenia 16, 17 i 18 służą jako SIM2_DATA, SIM2_CLK i SIM2_VDD. Linie sygnałowe łączące moduł z kartą SIM powinny być wyposażone w rezystory szeregowe 22...47 V, i kondensatory 33 pF połączone z masą, a jeżeli przewidujemy wymianę karty SIM przez użytkownika, należy również użyć układu zabezpieczenia ESD. Zasilanie każdej karty SIM powinno być zblokowane do masy SIM_GND kondensatorem 100 nF.

Linie AGND, MICxx, SPK1x i LOUDSPKx umożliwiają dołączenie dwóch mikrofonów, słuchawki i głośnika. W zastosowaniach korzystających z toru audio istnieje możliwość przełączania pomiędzy dwoma zestawami złożonymi z mikrofonu i słuchawki lub głośnika.

Linie interfejsu UART - RXD, TXD, RTS, CTS, DTR, DCD i RI - służą do komunikacji szeregowej. Warto zauważyć, że większość producentów oznacza linie modułów GSM zgodnie z konwencją przyjętą dla urządzenia DCE. Oznacza to, że linia RXD jest wyjściem danych, a linia TXD - wejściem. Dokumentacja modułu M95 wykazuje pewną niekonsekwencję - linia RXD jest wejściem danych, a linia TXD - wyjściem (jak dla urządzenia DTE), jednak pozostałe linie interfejsu mają oznaczenia jak w urządzeniu DCE - linie RTS i DTR są wejściami, a linie CTS, DCD i RI - wyjściami.

Linia RTS pracuje jako RTR (Ready To Receive) - sygnał gotowości urządzenia nadrzędnego. Moduł nie transmituje danych przez interfejs UART, jeżeli to linia jest w stanie nieaktywnym (na poziomie wysokim).

Linia RI służy do sygnalizowania wszelkich zdarzeń asynchronicznych przez moduł GSM. Jest ona uaktywniana m.in. przy rozmowie przychodzącej i przy nadejściu SMS.

W praktyce linie DTR, DCD i RI na ogół nie są używane. Do połączenia z mikrokontrolerem sterującym używa się linii TXD i RXD oraz RTS i CTS. Użycie linii RTS jest potrzebne, gdy oprogramowanie mikrokontrolera nie gwarantuje ciągłej gotowości do odbioru danych z modułu. Jeżeli nie używamy linii RTS, powinna ona zostać na stałe zwarta do masy, sygnalizując w ten sposób gotowość mikrokontrolera do komunikacji z modułem.

Linia CTS informuje mikrokontroler o gotowości modułu M95 do odbioru danych. Jej stan powinien być testowany przed wysłaniem każdego bajtu, gdyż moduł może nie być gotowy na przejęcie danych podczas wykonywania niektórych poleceń.

Moduł M95 jest wyposażony w 4 linie służące do włączania/wyłączania modułu i sygnalizacji jego stanu.

Wejście PWRKEY służy do włączania i wyłączania modułu. Jest to wejście przystosowane do sterowania z wyjścia typu "otwarty dren" lub przez tranzystor npn - jego stanem aktywnym jest zwarcie do masy. W celu włączenia modułu należy uaktywnić wejście na czas 2 sekund. W stanie włączenia moduł reaguje na uaktywnienie wejścia programowo - uaktywnienie wejścia na czas od 0,6...1 sekundy powinno spowodować wyłączenie modułu, po uprzednim wylogowaniu go z sieci GSM.

Wejście EMERG_OFF umożliwia sprzętowe wymuszenie wyłączenia modułu. Podobnie jak PWRKEY jest ono przystosowane do sterowania z wyjścia typu "otwarty dren". W celu wyłączenia modułu należy uaktywnić wejście EMERG_OFF na czas nie krótszy niż 20 ms. Firma Quectel, podobnie jak inni producenci modułów GSM, przyznaje, że moduł może się zawiesić podczas pracy i w związku z tym urządzenie powinno być wyposażone w możliwość awaryjnego, sprzętowego zerowania modułu.

Wyjścia STATUS i NETLIGHT służą do sterowania diodami LED sygnalizującymi stan modułu. Ich ograniczona obciążalność prądowa nie umożliwia bezpośredniego podłączenia diod - mogą one natomiast sterować tranzystorami npn służącymi do sterowania diod.

Wyjście STATUS sygnalizuje stan modemu. Poziom wysoki oznacza stan włączenia modułu, a poziom niski - stan wyłączenia. Przy włączaniu i wyłączaniu modułu przez wejście PWRKEY należy sprawdzać stan wyjścia STATUS.

Wyjście NETLIGHT służy do sygnalizacji stanu połączenia z siecią GSM. Jego charakterystyka elektryczna jest taka sama, jak wyjścia STATUS. Stan połączenia jest sygnalizowany przez odstęp pomiędzy rozbłyskami diody, który wynosi:

  • 800 ms, jeśli moduł nie jest zalogowany w sieci GSM,
  • 2 s, jeśli moduł jest zalogowany i aktualnie nie transmituje danych,
  • 600 ms - podczas transmisji danych.

Wyjście VDD_EXT udostępnia stabilizowane wewnątrz modułu napięcie 2,8 V, które może być użyte do zasilania układów połączonych z modułem. Maksymalny pobór prądu przez układy zewnętrzne zasilane z tego wyjścia może wynosić do 20 mA. Wyjście to jest aktywne tylko wtedy, gdy modem jest włączony. Jego użycie zostanie opisane w dalszej części tekstu.

Linie DBG_RXD i DBG_TXD służą do celów diagnostycznych i nie są wykorzystywane w prostych układach z modułem M95.

Projektowanie urządzeń z modułami GSM

Zasilanie modułu

Moduł GSM narzuca szczególne wymagania na układ zasilania. Ciągły pobór prądu przez moduł nie przekracza kilkudziesięciu mA, jednak podczas komunikacji z siecią GSM średni pobór prądu rośnie do 400..600 mA, przy czym ma on charakter impulsowy - układ nadajnika radiowego pobiera prąd krótkimi impulsami o natężeniu dochodzącym nawet do 2 A. Jednocześnie producent określa maksymalny dopuszczalny chwilowy spadek napięcia zasilania podczas pracy modułu - dla M95 wynosi on 400 mV.

Dla większości modułów, w tym dla M95, dopuszczalny zakres napięć zasilania wynosi 3,3...4.0 V. Częstym błędem projektowym, zwykle skutkującym błędną pracą urządzeń, jest zasilanie modułów GSM z napięcia 3,3 V, z którego zasilane są również inne części urządzenia. Nie należy tego robić z dwóch powodów - moduł powoduje zaburzenia i wahania napięcia zasilającego, co może mieć negatywny wpływ na działanie innych układów elektronicznych, a niska wartość napięcia zasilania praktycznie uniemożliwia zapewnienie poprawnego zasilania modułu, co powoduje jego niestabilną pracę i zawieszanie.

Chcąc zapewnić poprawną pracę modułu należy zasilać go napięciem o wartości zbliżonej do górnej granicy dopuszczalnego zakresu - zalecane wartości to 3,9...4,2 V. Taki wybór napięcia zasilania zapewnia poprawne działanie modułu podczas nadawania oraz umożliwia uproszczenie układów zasilających dzięki zmniejszeniu wymagań dotyczących odpowiedzi impulsowej stabilizatora napięcia.

Urządzenia z modułami GSM są zwykle zasilane z zasilaczy sieciowych, dostarczających napięcia 5...12 V. W wypadku zasilacza +5 V możemy użyć stabilizatora liniowego LDO lub stabilizatora impulsowego. Przy wyższych napięciach zasilania konieczne jest zastosowanie stabilizatora impulsowego, gdyż stabilizator liniowy musiałby wytracać zbyt dużą moc w postaci ciepła.

Zastosowany układ stabilizatora liniowego powinien charakteryzować się dobrą odpowiedzią impulsową. Można tu np. użyć układu Sipex SPX3819 w wersji z regulowanym napięciem wyjściowym. Do konstrukcji stabilizatora impulsowego można użyć np. układu serii Microchip MCP163xx. Zastosowany układ powinien umożliwiać pracę ciągłą z natężeniem prądu 600 mA.

Zasilanie mikrokontrolera

Ponieważ w urządzeniu musimy mieć zasilacz dostarczający napięcia ok. 4 V dla modułu, do zasilania mikrokontrolera możemy użyć stabilizatora LDO, zasilanego napięciem zasilania modułu i wytwarzającego napięcie 3,3 V dla mikrokontrolera. Można tu użyć np. układu LM1108SF-3.3 lub LM1117-3.3.

Sterowanie włączaniem i wyłączaniem modułu przez mikrokontroler

Ponieważ linie PWRKEY i EMERG_OFF są aktywowane przez zwarcie do masy, mogą one być sterowany bezpośrednio z wyjść portu GPIO mikrokontrolera pracujących w trybie z otwartym drenem. Projektując oprogramowanie należy zwrócić uwagę na to, by podczas inicjowania zagwarantować właściwe wysterowanie linii - należy tu kolejno:

  • ustawić wysoki poziom linii portu w rejestrze wyjściowym,
  • włączyć tryb OD dla linii portu,
  • ustawić linię jako wyjście.

Połączenie interfejsu UART

Należy zwrócić uwagę na to, że układy logiczne modułu pracują w standardzie napięciowym CMOS 2,8 V. Projektując połączenie modułu z otoczeniem należy zapewnić właściwe poziomy logiczne na wejściach interfejsu UART modułu. Wejścia modułów GSM są zwykle bardzo podatne na zjawisko latchup. Nie wolno więc sterować wejść modułu bezpośrednio z wyjść układów logicznych, w tym mikrokontrolerów, zasilanych napięciem wyższym od 3,0 V. Następny problem, to wrażliwość na stan wysoki na wejściach logicznych w czasie, gdy moduł nie jest włączony - nie wolno wymuszać wysokiego poziomu logicznego na wejściach, gdy moduł nie jest aktywny, gdyż również grozi to zjawiskiem latchup powodującym często uszkodzenie układów modułu.

Zabezpieczenie modułu przed uszkodzeniem na skutek podania na wejścia interfejsu UART napięcia przekraczającego napięcie zasilania można rozwiązać na dwa sposoby.

Pierwsza możliwość - to zastosowanie do buforowania sygnałów wejściowych dla modułu GSM układu logicznego zasilanego z wyjścia VDD_EXT modułu. Do tego celu najlepiej zastosować układ z rodziny tolerującej podwyższone napięcia na wejściach, np. 74LVC2G17. W ten sposób jednocześnie zabezpieczymy moduł przed podaniem na wejście napięcia w stanie wyłączenia jak i zapewnimy translację poziomów logicznych pomiędzy mikrokontrolerem zasilanym dowolnym napięciem z zakresu 3...5 V i modułem.

W praktyce nie ma powodu, by w urządzeniu używać mikrokontrolera zasilanego napięciem innym niż 3,3 V. W takim przypadku również musimy zadbać o właściwe wysterowanie wejść RXD i RTS, tak, aby nie uszkodzić modułu. Proste zabezpieczenie modułu polega na:

  • Ustawieniu wyjść mikrokontrolera sterujących liniami RXD i RTS modułu w tryb OD.
  • Podciągnięciu tych wyjść do wyjścia zasilania VDD_EXT rezystorami rzędu 3.3..4.7 kΩ.
  • Dodatkowym zabezpieczeniu wejść rezystorami szeregowymi 2...3,3 kΩ.

Poziomy wejściowe mikrokontrolera zasilanego napięciem 3,3 V są zgodne z poziomami wyjściowymi modułu pracującymi w standardzie logicznym 2,8 V, więc nie jest tu potrzebna translacja poziomów. Dla zabezpieczenia przed skutkami ewentualnych błędów w oprogramowaniu można użyć rezystorów szeregowych 2...3,3 kΩ.

Ponadto, w celu stłumienia ewentualnych zaburzeń pochodzących z bloku radiowego należy wszystkie używane linie interfejsu UART zablokować do masy kondensatorami ceramicznymi 33...39 pF.

Filtrowanie zasilania modułu

Rysunek 2. Schemat ideowy przykładowej aplikacji modułu Quectel M95

Ze względu na częstotliwości pracy bloku radiowego oraz impulsowy charakter nadawania moduły GSM wymagają starannego podejścia do filtrowania zasilania. O ile producent nie zaleci inaczej, do wejścia zasilania modułu powinny być kolejno dołączone następujące kondensatory:

  • NP0 8,2 pF - do filtrowania zaburzeń z bloku radiowego działającego w pasmie 1800...2100 MHz.
  • NP0 39 pF - do filtrowania zaburzeń z bloku radiowego w pasmie 900 MHz.
  • X7R 100 nF - do filtrowania zasilania całego układu.
  • Tantalowy 330 µF do kompensowania szybkich skoków napięcia.
  • Aluminiowy low ESR min. 1500 µF (lub min. 2 szt 1000 µF) do magazynowania energii potrzebnej podczas nadawania (chwilowy pobór prądu może wtedy dochodzić do 2 A).

Kondensatory aluminiowe powinny być wysokiej jakości, o podwyższonej temperaturze roboczej. Kondensatory te nagrzewają się podczas pracy modułu, co może powodować ich szybką degradację wskutek wysychania elektrolitu.

Wszystkie kondensatory powinny być umieszczone jak najbliżej wejścia zasilania modułu, a ścieżki obwodu drukowanego służące do doprowadzenia masy i zasilania powinny być jak najszersze.

Sygnalizacja stanu

Jeżeli w urządzeniu znajduje się mikrokontroler, można go również użyć do sterowania diod LED służących do sygnalizacji stanu, eliminując w ten sposób konieczność stosowania tranzystorów wzmacniających. Diody mogą być sterowane z wyjść PWM mikrokontrolera, co umożliwia uzyskanie dodatkowej funkcjonalności sygnalizacji, wykraczającej poza możliwości samego modułu M95.

Przykładowy schemat urządzenia z modułem M95 zaprojektowanego z uwzględnieniem powyższych uwag przedstawiono na rysunku 2.

Podsumowanie

W kolejnym odcinku serii zostaną przedstawione podstawowe polecenia AT modułu Quectel M95.

Grzegorz Mazur

Bibliografia
Quectel M95 Hardware Design v1.3, Quectel 2013
Quectel M95 AT Commands Manual v1.3, Quectel 2013

Artykuł ukazał się w
Maj 2015
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio czerwiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje maj 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich maj 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów