Rekomendacje: sterownik przyda się zdalnego załączania i kontroli urządzeń.
Sieć telefonii komórkowej daje możliwość transmisji połączeń głosowych, wiadomości tekstowych i multimedialnych oraz danych, które mogą być używane np. do kontrolowania procesów przemysłowych, dozoru obiektów, w systemach lokalizowania pojazdów, zdalnego pomiaru temperatury, ciśnienia, wilgotności itp. Dla ułatwienia zadań konstrukcyjne związane z wyżej wymienionymi systemami, powstały tzw. modemy przemysłowe GSM/GPRS, zwane po prostu modułami GSM.
Moduł GSM jest urządzeniem, które integruje wszystkie niezbędne elementy toru radiowego oraz system nadzorujący - najczęściej składający się z mikrokontrolera DSP lub bazującego na rdzeniu ARM, układami I/O oraz pamięciami RAM i Flash. Często używa się określenia "system wbudowany" od angielskiego "embeded system". Z punktu widzenia użytkownika, do poprawnej pracy modułu jest potrzebna antena, odpowiedni zasilacz oraz karta SIM. Dzięki komendom AT, sterowanie modułem nie jest trudne. Z reguły wystarczy znajomość interfejsu RS232 oraz dokumentacja techniczna modułu (nota aplikacyjna).
Opisywany sterownik wykorzystuje usługę przesyłania wiadomości tekstowych SMS do sterowania 8 przekaźnikami. Sterowanie odbywa się za pomocą komend, które są wysyłane z telefonu komórkowego użytkownika. Następnie, trafiają one za pomocą sieci telefonii komórkowej do modułu sterownika GSM. Wiadomości SMS są odczytywane i interpretowane przez nieskomplikowany analizator komend. Całością steruje mikrokontroler firmy NXP z rdzeniem ARM Cortex-M0.
Budowa i zasada działania
Na rysunku 1 przedstawiono schemat blokowy sterownika. Składa się on z 4 bloków funkcjonalnych. Trzy z nich: blok zasilania, blok mikrokontrolera oraz blok modułu GSM zamontowano na jednej płytce PCB (dalej nazwana płytką sterowania), czwarty - blok wykonawczy, znajduje się na drugiej płytce PCB (płytka przekaźników). Schematy ideowe sterownika zamieszczono na rysunku 2 i rysunku 3.
Zadaniem bloku zasilania jest wytworzenie następujących napięć:
- dla modułu GSM +3,9 V ( oznaczenie VBAT),
- mikrokontrolera +3,3 V (oznaczenie +3V3),
- dla przekaźników około +12 V (oznaczenie +12V).
Napięcie zasilania VBAT wytwarza przetwornica impulsowa obniżająca napięcie w konfiguracji step-down. Do jej budowy zastosowano układ scalony z rodziny Simple Switcher LM2676-ADJ (U2). Układ pracuje z częstotliwością kluczowania około 260 kHz, co umożliwia zastosowanie dławików indukcyjności rzędu kilkudziesięciu mH i prądzie nominalnym ok. 3 A. Układ umożliwia ustawienie napięcia wyjściowego z przedziału 1,2...37 V z tolerancją ±2%. Napięcie wejściowe może mieć wartość 8...40 V. Dużą zaletą LM2676 jest niewielka liczba komponentów zewnętrznych potrzebnych do prawidłowej pracy tego układu. Ma on również zabezpieczenie termiczne, które wyłącza przetwornicę po przekroczeniu maksymalnej dopuszczalnej mocy strat. Diody D1 i D2 stanowią zabezpieczenie przed odwrotną polaryzacją napięcia zasilania. Dioda D1 zabezpiecza układ zasilacza impulsowego, natomiast D2 zabezpiecza obwód zasilania przekaźników. Kondensatory C17 (elektrolityczny o małej ESR) i C21 (ceramiczny) służą do filtrowania zasilania i minimalizowania oscylacji. Zasilacz zaprojektowano dla napięcia wejściowego 12,5 V i maksymalnego prądu wyjściowego równego 2 A.
Napięcie wyjściowe z przetwornicy impulsowej jest podawane na układ U3 (TC2117), który jest stabilizatorem napięcia typu LDO. Ten regulator charakteryzuje się bardzo niskim spadkiem napięcia i jest kompatybilny z popularnymi LDO typu LM1117. Układ U3 służy do zasilania mikrokontrolera (U5), pamięci EEPROM (U4) oraz konwertera poziomów (U7). Do stabilnej pracy stabilizatora LDO jest konieczne zastosowanie kondensatora o pojemności minimum 1 mF i rezystancji szeregowej ESR 0,2...10 V. Zadanie to realizują równolegle połączone kondensatory C18 i C20 (w sumie 10 mF) oraz rezystancja R16 (5,1 V), która ustala wartość ESR mniej więcej w połowie maksymalnej wartości dopuszczalnej. Blok przetwornicy impulsowej jest odseparowany od układu zasilania toru cyfrowego poprzez dławik L2, który jest włączony pomiędzy masę analogową przetwornicy a masę cyfrową. Pozwala to na filtrowanie zaburzeń, które indukują się w głównej pętli prądowej przetwornicy napięcia.
Blok mikrokontrolera stanowi "serce" całego urządzenia. Zastosowano mikrokontroler Cortex-M0 firmy NXP typu LPC1114. Układ ma 32 kB pamięci Flash, 8 kB pamięci RAM oraz sprzętowy interfejs UART, SPI, I²C, 8-kanałowy przetwornik A/C, licznik/timer systemowy oraz 4 liczniki/timery ogólnego przeznaczenia. Dużymi zaletami tego mikrokontrolera są mały pobór prądu oraz niska cena. Z mikrokontrolerem współpracuje zewnętrzna pamięć EEPROM, która służy do przechowywania danych konfiguracyjnych sterownika. Komunikacja pomiędzy mikrokontrolerem a pamięcią, odbywa się z użyciem magistrali I²C. W tabeli 1 umieszczono mapę pamięci EEPROM wraz z definicją wartości domyślnych. Do sterowania przekaźnikami użyto 8 linii portu PIO0. Mikrokontroler pracuje z zewnętrznym rezonatorem kwarcowym o częstotliwości 12 MHz.
Do komunikacji z modułem GSM wykorzystano 4 linie mikrokontrolera: 2 linie portu szeregowego UART (M_TXD, M_RXD), linię odpowiedzialną za zerowanie modułu GSM (GSM_R) oraz linię odpowiedzialną za włączenie modułu GSM (ON_OFF).
Dioda LED1 (kolor czerwony) informuje o statusie połączenia modułu z siecią GSM. Jeżeli dioda pulsuje z częstotliwością 3 Hz, to oznacza, że moduł GSM szuka połączenia z siecią komórkową. Po poprawnym zalogowaniu się do sieci, dioda zaczyna pulsować z częstotliwością 1 Hz. W przypadku połączenia głosowego lub transmisji danych dioda pulsuje z częstotliwością 5 Hz. Dioda LED2 (kolor zielony) sygnalizuje gotowość modemu do pracy. Podczas normalnej pracy dioda powinna świecić się na stałe. Jeśli dioda pulsuje z częstotliwością około 2,5 Hz, to sterownik nie ma połączenia z siecią GSM. W przypadku błędu (np. problemu z konfiguracją modemu) dioda zaczyna pulsować z częstotliwością około 5 Hz. Przycisk S1 służy do zerowania modemu oraz przywrócenia ustawień fabrycznych.
Układ U1, to moduł GSM o oznaczeniu MG2639, produkowany przez firmę ZTE. Jest to 4-zakresowy moduł GSM. Charakteryzuje się niewielkimi wymiarami (30 mm×25 mm×2,68 mm), małym ciężarem (7g) oraz poborem prądu, który wg. danych katalogowych nie przekracza 300 mA. Moduł ma obudowę do montażu powierzchniowego SMT. Do układu U1 jest dołączony interfejs karty SIM z odpowiednim złączem. Dokumentacja modułu jest dostępna na stronie www dystrybutora [2][3]. Ze względu na różnicę w napięciu zasilania mikrokontrolera (3,3 V) i modułu GSM (3,9 V), na liniach odpowiadających za transmisję szeregową zastosowano bufory U6 i U7, które pełnią rolę konwerterów poziomu napięcia. Układ U6 dopasowuje poziomy napięć na linii M_TXD mikrokontrolera do poziomów napięć linii RXD modułu GSM, natomiast układ U7 działa w odwrotną stronę, tj. dopasowuje poziomy napięć linii TXD modułu GSM do poziomów napięć linii M_RXD mikrokontrolera. O ile mikrokontroler używa napięć dla logiki 3,3 V, to już moduł GSM toleruje na tych liniach maksymalne napięcie wynoszące 3,1 V. Dlatego układ U6 jest zasilany z napięcia referencyjnego V_MSM równego 2,8 V, które jest dostępne na jednej z linii portu wyjściowego układu U1 (pin 27). Złącze CONN3 służy do programowania mikrokontrolera z wykorzystaniem LPCLink i interfejsu JTAG/SWD, natomiast CONN2 służy do połączenia płytki przekaźników z płytką sterowania.
Jak wspomniano, blok wykonawczy zamontowano na oddzielnej płytce drukowanej. Znajdują się na niej tranzystory cyfrowe BCR112 (T1...T8), które sterują przekaźnikami PK1...PK8. Diody LED1...LED8 sygnalizują pracę poszczególnych przekaźników. Złącze CONN9 przenosi sygnały do sterowania przekaźnikami oraz napięcie zasilania 12 V.
Podczas uruchamiania oprogramowania sterownika (firmware) zastosowano interfejs JTAG/SWD. Pozwala on m.in. na zaprogramowanie mikrokontrolera w trybie pracy krokowej, która umożliwia uruchomienie i zatrzymanie programu, podgląd rejestrów, ustawianie pułapek programowych itp. Ten tryb ułatwia analizę kodu i korygowanie błędów w programie. Prototypowa wersja sterownika zawiera tylko interfejs JTAG/SWD. Ze względu na to, że wielu czytelników używa programatorów ISP, płytkę sterownika wyposażono również w interfejsu tego typu.
Montaż
Sterownik GSM zmontowano na dwóch dwustronnych płytkach PCB, których schematy montażowe pokazano na rysunku 4 i rysunku 5. Montaż należy rozpocząć od płytki sterowania (rys. 4). W pierwszym kroku montujemy komponenty SMD: rezystory R14...R17, kondensatory C16, C18, C20...C23, C25, dławik L1, diodę D3, układ przetwornicy impulsowej U2, stabilizator napięcia U3, dławik ferrytowy L2 oraz kondensatory C17, C19 i C25. Następnie należy zamontować elementy przewlekane: diodę D1 i złącze zasilania CONN1.
Przed montażem kolejnych komponentów należy sprawdzić poprawność działania zasilacza, a w szczególności wartości napięć VBAT i +3V3. W tym celu doprowadzamy do złącza zasilania napięcie +12 V i sprawdzamy napięcie na kondensatorze C22. Przy prawidłowej pracy przetwornicy powinno ono zawierać się w przedziale 3,70...4,04 V. Następnie sprawdzamy napięcie na nóżce 2 układu U3. Poprawna wartość to około 3,3 V.
Potem można zamontować mikrokontroler U5. Ze względu na obudowę typu QFN (dokładne oznaczenie producenta HVQFN, wymiary 7 mm×7 mm) najlepiej użyć do tego celu lutownicy na gorące powietrze oraz dobrego topnika. Na początku, wspomagając się topnikiem, cynujemy dokładnie wszystkie pola lutownicze układu. Następnie układamy mikrokontroler na płytce i sprawdzamy położenie nóżki numer 1. Włączamy lutownicę i okrężnymi ruchami podgrzewamy układ z użyciem małego strumienia powietrza (większy nadmuch może spowodować przesuwanie się układu). W razie potrzeby korygujemy położenie układu za pomocą pęsety. Po chwili układ powinien zostać "zassany" na swoją podstawkę. Przy tej operacji jest zalecana szczególna dokładność. Obudowy typu QFN nie są łatwe w montażu w warunkach warsztatowych, ale przy odrobinie cierpliwości można nauczyć się je lutować.
Po przylutowaniu mikrokontrolera, montujemy pozostałe elementy bierne SMD oraz tranzystory. Kolejnym krokiem jest montaż układów U4, U6, U7 oraz złącza karty SIM oznaczonego SIM_CARD. Następnie montujemy moduł U1. Należy przy tym zwrócić szczególną uwagę na dokładność lutowania. Wyprowadzenia tego modułu są rozmieszczone bardzo gęsto i łatwo o zwarcia. Na koniec przystępujemy do montażu elementów przewlekanych: diod LED, rezonatora Q1, diody D2, złącz CONN2 i CONN3 oraz przycisku S1. Długość terminali złącza CONN2 powinna wynosić 18 mm.
Montaż płytki przekaźników zaczynamy od przylutowania elementów SMD: rezystorów R1, R2, R9, R10, R17, R18, R25, R26 oraz tranzystorów T1...T8. Kolejnym etapem jest montaż diod D1...D4, D6...D9 oraz diod LED1...LED8. Na koniec montujemy przekaźniki PK1...PK8 i złącza CON1... CON8. Przy montażu CONN9 (typ konektora żeński) należy pamiętać, że płytka przekaźników znajduje się nad płytką sterowania, więc CONN9 będzie zamontowany od strony warstwy lutowania.
Obie płytki, sterowania i przekaźników, są zmontowane z użyciem plastikowych śrub i tulei dystansowych "na kanapkę". Dzięki temu urządzenie zajmuje mniej miejsca w obudowie.
Uruchomienie
Do zaprogramowania mikrokontrolera można użyć interfejsu ISP. Na płytce sterownika, zostały do tego celu wyprowadzone wszystkie niezbędne sygnały: TXD, RXD, RESET, PIO0_1 i GND (oraz dodatkowo +3V3, gdy chcemy zasilić mikrokontroler z programatora).
Pierwszym krokiem jest ustawienie zworek JP1 i JP2 w pozycji 1-2 (np. za pomocą kropelki cyny), co spowoduje wprowadzenie wyjść buforów U6 i U7 w stan wysokiej impedancji (Z). Następnie dołączamy programator (możemy do tego celu użyć np. programatora mikrokontrolerów LPC1xxx - kit AVT1630) oraz napięcie zasilania +12,5 V (złącze CONN1). Mikrokontroler programujemy przy użyciu oprogramowania FlashMagic (program dostępny na stronie www.flashmagic.com). Po poprawnym zaprogramowaniu układu zmieniamy ustawienie zworek JP1 i JP2 na pozycję 2-3. Na końcu, odłączamy napięcie zasilania i po krótkiej chwili włączamy ponownie. Po tej czynności układ jest gotowy do pracy.
Aby modem GSM pracował poprawnie jest konieczna karta SIM. Sterownik nie obsługuje kart z włączoną kontrolą kodu PIN, więc należy tę funkcję wyłączyć. Kartę umieszczamy w złączu SIM_CARD. Doprowadzamy napięcie zasilania do złącza CONN1. Po poprawnej inicjalizacji modemu GSM, dioda D1 zaczyna pulsować z częstotliwością 1 Hz. Następnie modem GSM wysyła do mikrokontrolera informację o gotowości do pracy. Po chwili mikrokontroler zaczyna procedurę konfigurowania modemu GSM. Prawidłowe zakończenie tej czynności powoduje zaświecenie się diody D2. W wypadku problemów, jest uruchamiana procedura obsługi błędu sygnalizowana pulsującą diodą D2. Następnie należy nacisnąć przycisk S1, aby wpisać do pamięci ustawienia fabryczne. Czynność tą wykonujemy tylko przy pierwszym uruchomieniu urządzenia. Po ponownej procedurze inicjalizacji i konfiguracji modemu, sterownik GSM jest gotowy do pracy.
Podczas pomiarów w rzeczywistym układzie, maksymalny, zmierzony pobór prądu wynosił 210 mA (wszystkie przekaźniki włączone). Podczas fazy logowania modemu do sieci GSM, pobór prądu nie przekraczał 70 mA. Najniższy, zmierzony pobór prądu wynosił około 20 mA (wszystkie przekaźniki wyłączone).
Obsługa karty
Do sterowania kartą użyto wiadomości tekstowych SMS. Aby poprawnie sterować kartą, należy użyć odpowiedniej komendy (rozkazu) i przesłać ją na numer modemu, który - przypomnijmy - jest zależny od karty SIM. Sterownik został przetestowany z kartami SIM różnych operatorów. Poniżej zamieszczono rozkazy sterujące z przykładami zastosowania. Zdefiniowano je w możliwie najprostszy sposób, aby ich używanie nie powodowało konieczności wpisywania długich łańcuchów znaków.
Polecenie "zapis" umożliwia włączenie lub wyłączenie przekaźników PK1...PK8. Rozkazu można używać w dwóch trybach: normalnym i bezpiecznym.
Tryb normalny
#w[PK1][PK2][PK3][PK4][PK5][PK6][PK7] [PK8]#, gdzie pola [PK1]...[PK8] zawierają stany poszczególnych przekaźników. Znak "1" oznacza, że dany przekaźnik zostanie włączony, natomiast "0" - wyłączony. Na przykład:
- #w00000001# - włączenie przekaźnika PK8, pozostałe przekaźniki pozostają wyłączone,
- #w10001000# - włączenie przekaźników PK1 i PK5, pozostałe przekaźniki pozostają wyłączone.
Tryb bezpieczny
#w[PK1][PK2][PK3][PK4][PK5][PK6][PK7] [PK8]#[H1][H2][H3][H4][H5][H6]# (przy włączonej opcji zabezpieczenia zapisu za pomocą hasła), gdzie pola [PK1]...[PK8] zawierają stany poszczególnych przekaźników. Znak "1" oznacza, że dany przekaźnik będzie włączony, natomiast "0" - wyłączony). Pola [H1]...[H6] zawierają poszczególne liczby hasła dostępu. Na przykład:
- #w00011000#123456# - włączenie przekaźników PK4 i PK5, hasło dostępu: 123456.
Polecenie "konfigurowanie modułu"
#c[C1][C2][C3][C4][H1][H2][H3][H4][H5] [H6]#. Jeśli pole [C1]="1", modem wysyła wiadomość zwrotną - "OK", gdy rozkaz wykonano poprawnie lub "ERROR", gdy napotkano błąd przy wykonywaniu rozkazu. Gdy pole [C2]="1", to jest włączany tryb bezpieczny przy wykonywaniu rozkazu zapis i każda zmiana stany wyjść wymaga podania hasła dostępu. Gdy [C3]="1", to po wykonaniu rozkazu zapis modem wysyła wiadomość zawierającą bieżący stan przekaźników PK1...PK8. Pole [C4] jest nieużywane. Pola [H1]...[H6] zawierają poszczególne cyfry hasła dostępu.
Wykaz elementówPłytka sterowania Rezystory: (SMD 0805) Kondensatory: (SMD 0805) Półprzewodniki: Inne: Płytka przekaźników Rezystory: (SMD 0805) Półprzewodniki: Inne: |
Polecenie "zmiana hasła dostępu"
#p[NH1][NH2][NH3][NH4][NH5][NH6][H1] [H2][H3][H4][H5][H6]# Pola [H1]...[H6] zawierają cyfry bieżącego hasła dostępu, [NH1]...[NH6] nowe hasło dostępu. Na przykład #p135790123456# powoduje zmianę hasła dostępu z "123456" na "135790"
Polecenie "przesłanie statusu przekaźników"
(1 - włączony, 0 - wyłączony) #s# Po wysłaniu tego rozkazu, modem odsyła wiadomość z aktualnym stanem przekaźników PK1...PK8, np. "OUT00001001" (włączone przekaźniki PK5 i PK8).
Polecenie "restart modułu"
#r[H1][H2][H3][H4][H5][H6]# Pola [H1]...[H6] zawierają poszczególne cyfry hasła dostępu. Rozkaz powoduje zdalny restart modemu, bez konieczności wyłączania i ponownego załączania napięcia zasilania. Operacja ta jest możliwa po podaniu aktualnego hasła dostępu. Rozkaz ten nie powoduje przywrócenia wartości fabrycznych dla hasła i rejestru konfiguracyjnego (przykład użycia #r123456#).
Domyślnie hasło ustawiono na wartość "123456". Rejestr konfiguracyjny ma też ustawiony bit [C1] na wartość "1" (sterownik wysyła potwierdzenie przy każdej zmianie hasła). Każde zerowanie modemu za pomocą przycisku S1 powoduje skasowanie bieżącego hasła i ustawień rejestru konfiguracyjnego oraz zastąpienie ich wartościami domyślnymi (fabrycznymi).
Program dla Sterownika GSM napisano w języku C i zajmuje około 13 kB pamięci Flash, co stanowi 41% dostępnej pamięci programu. Oprogramowanie jest wciąż rozwijane. Planowane jest dodanie nowych funkcjonalności, takich jak np. przywracanie ostatniego, zapamiętanego stanu przekaźników lub zdalne sprawdzanie stanu środków na koncie. Główna płytka sterownika może stanowić platformę rozwojową dla mikrokontrolerów Cortex-M0, a także różnych projektów bazujących na transmisji danych przez sieć GSM.
Łukasz Ostafiński
lukasz.ostafinski@gmail.com
Bibliografia:
[1] Nota katalogowa układu LM2676 (http://www.ti.com/lit/ds/symlink/lm2676.pdf)
[2] Nota katalogowa modemu GSM - MG2639 (http://download.maritex.com.pl/ pdfs/wi/MG2639.pdf)
[3] Lista komend AT dla modemu MG2639 (http://download.maritex.com.pl/pdfs/wi/ MG2639AT.pdf)