Telefon GSM w wersji retro

Telefon GSM w wersji retro
Pobierz PDF Download icon

Pomysł na projekt telefonu komórkowego w wersji retro powstał podczas przeglądania zgromadzonych na strychu i zapomnianych "skarbów". Wśród nich znalazł się niegdyś popularny aparat telefoniczny CB-49. Aparaty wzoru 49, zaprojektowane w 1949 roku, produkowano w Radomskiej Wytwórni Telekomunikacyjnej w różnych odmianach jeszcze w latach sześćdziesiątych. Dzisiaj ten aparat chyba można uznać za zabytkowy i w tym kontekście wszelkie modyfikacje trzeba traktować jako dewastację. Okolicznością łagodzącą może być jedynie fakt, że telefon był produkowany na skalę masową i jak na razie nie można go nazwać "białym krukiem", choć dobrze zachowane egzemplarze należą do rzadkości. Niemniej jednak, założeniem projektowym autora było, aby wszelkie modyfikacje urządzenia były odwracalne. Odwracalne w tym sensie, by w dowolnym momencie możliwe było przywrócenie aparatu do stanu wyjściowego.
Rekomendacje: ciekawy projekt, który przywróci "życie" staremu aparatowi telefonicznemu i będzie ciekawym uzupełnieniem wnętrza każdego mieszkania.

Rysunek 1. Schemat ideowy płytki głównej telefonu

Trzeba również zdawać sobie sprawę z pewnych ograniczeń wynikających różnic pomiędzy telefonią stacjonarną i komórkową, a co za tym idzie, że nie jest możliwe wierne zasymulowanie klasycznego telefonu stacjonarnego za pomocą modemu GSM. Na przykład w telefonach GSM - więc i w modemach - nie istnieje coś takiego jak sygnał centrali po podniesieniu słuchawki (ciągły dźwięk 400 Hz).

Teoretycznie, przy niewielkich staraniach, jest możliwe sztuczne wygenerowanie takiego dźwięku w słuchawce aparatu, ale ponieważ sygnał ten i tak nie mógłby pełnić funkcji diagnostycznej - jak to ma miejsce w telefonach stacjonarnych, w których jest potwierdzeniem gotowości centrali i prawidłowego funkcjonowania linii i samego aparatu - więc de facto funkcja ta nie miałaby sensu.

Wątpliwy sens miałyby również zabiegi mające na celu zachowanie podstawowej zalety korzystania z telefonii komórkowej, czyli mobilności aparatu. Technicznie jest to oczywiście możliwe. Jednak w założeniu chodziło o zbudowanie aparatu stacjonarnego "o charakterze gabinetowym". Duże i ciężkie biurkowe aparaty telefoniczne są raczej niewygodne do przenoszenia i raczej trudno jest wyobrazić sobie spacerowanie podczas rozmowy telefonicznej z aparatem CB-49 pod pachą.

Z tego powodu w koncepcji projektu przyjęto, że aparat będzie miał zasilanie sieciowe. Tym samym została wyeliminowana konieczność monitorowania stanu naładowania akumulatora. Poza tym aparat musiałby mieć ładowarkę i jakiś wskaźnik niskiego poziomu energii, co naruszałoby jego oryginalny wygląd. Dodatkowym bonusem jest fakt, że wykorzystane są obydwa przepusty na przewody w obudowie aparatu.

W stosunku do możliwości oryginalnego CB-49, funkcjonalność telefonu poszerzono o możliwość szybkiego wybierania, dziewięciu numerów telefonów zapisanych w pamięci oraz powtarzanie ostatnio wybranego numeru (redial).

Modem SIM900D

Tabela 1. Najważniejsze parametry modemu SIM900D

Telefon komórkowy retro w założeniu służy jedynie do wykonywania połączeń głosowych. Funkcja ta jest chyba dostępna we wszystkich modemach GSM, więc o wyborze konkretnego modelu decydowały jedynie dostępność i cena. Zastosowany modem SIM900 jest następcą popularnego modelu SIM300. W wersji D ma metalową obudowę o wymiarach 24 × 24 × 3 mm. Najważniejsze dane techniczne zestawiono w tabeli 1.

Z oczywistych powodów pełen zestaw poleceń AT obsługiwanych przez modem SIM900D nie będzie omawiany.

Opis układu

Tabela 2. Opis funkcji realizowanych przez poszczególne wyprowadzenia mikrokontrolera IC1

Schemat ideowy telefonu przestawiono na rysunku 1. Mikrokontroler IC1 (ATmega32L) jest najważniejszym elementem układu i do niego przyłączone są: modem, elementy stykowe tarczy wybierania numeru i widełek słuchawki oraz elementy wykonawcze - triak sterujący dzwonkiem i wreszcie interfejs komunikacyjny USB. Funkcje realizowane przez poszczególne wyprowadzenia mikrokontrolera umieszczono w tabeli 2.

Mikrokontroler pracuje w typowej konfiguracji z zewnętrznym rezonatorem kwarcowym Q1 o częstotliwości 7,3728 MHz. Jest to najwyższa częstotliwość rezonatora z jaką może pracować ATmega w wersji L, a która jest wielokrotnością standardowych szybkości transmisji. Pozwala to ograniczyć ryzyko powstawania błędów komunikacji przez interfejs szeregowy. Zastosowano interfejs ISP w wersji 6-pinowej. Przetworniki A/C mikrokontrolera zasilane są przez filtr składający się z dławika L1 i kondensatora C3.

Modem SIM900D (IC2) zaprojektowano w podstawowej aplikacji z karty katalogowej. Poza podzespołami niezbędnymi do podłączenia i zabezpieczenia interfejsu karty SIM (D1, R3..5 i C4), zastosowano jedynie tranzystor T2 (wraz z R8 i R9 zgodnie ze schematem z karty katalogowej), którym sterowane jest wejście PWR. Elementy D2, T1, R6 i 7 są opcjonalne. Dioda LED służy do sygnalizowania stanu pracy modemu: błyski w odstępach 0,8 s - modem niezalogowany/szukanie sieci; błyski w odstępach 3,0 s - modem zalogowany; wygaszona - modem wyłączony. Modem komunikuje się z mikrokontrolerem przez interfejs szeregowy podłączony do sprzętowego USART0. Linie do przyłączenia głośnika i mikrofonu słuchawki wyprowadzone zostały na złącze CON.

Rysunek 2. Schemat ideowy słuchawki

Drugim ważnym blokiem funkcjonalnym telefonu jest interfejs USB. W tej roli zastosowano układ FT232R (IC3). Pracuje on w wariancie aplikacji, w którym pobiera zasilanie z gniazda USB komputera. Wynika to stąd, że minimalne wymagane napięcie pracy wbudowanego źródła taktowania FT232R wynosi 4,0 V, a napięcie VCC w układzie to jedynie 3,6 V. Napięcie VCC jest jednak używane do zasilania interfejsu UART układu IC3 (pin numer 4 - VCCIO), co zapewnia odpowiednie poziomy napięć na końcówkach RXD i TXD, a tym samym umożliwia poprawną współpracę z mikrokontrolerem. Diody LED D3 i D4 służą do sygnalizowania przesyłu danych przez linie RXD i TXD. Ponieważ mikrokontroler ATmega32 ma tylko jeden sprzętowy USART, więc komunikacja z komputerem PC musi być zrealizowana programowo.

Zasilacz telefonu jest zbudowany typowo: z transformatora sieciowego, prostownika (BG1), kondensatorów filtrujących (C10...12) i stabilizatora liniowego (IC4). Ponadto, napięcie przemienne z uzwojenia wtórnego służy także do zasilania cewki dzwonka, przy czym dzwonek jest załączany triakiem TR1 sterowanym z portu mikrokontrolera poprzez tranzystor T3 i optoizolator OC1.

Ostatni blok peryferyjny mikrokontrolera służy do monitorowania napięcia szyny zasilającej VCC. Sygnały napięciowe doprowadzone są do wejścia przetwornika ADC mikrokontrolera z dzielnika zbudowanego z rezystorów R15 i 16. Napięcie AVCC zasilające przetwornik uzyskiwane jest z szyny VCC po odfiltrowaniu przez dławik L1 i kondensator C3.

Zgodnie z kartą katalogową modemu SIM900, interfejs audio jest przystosowany do przyłączenia mikrofonu elektretowego i głośnika dynamicznego o impedancji 32 V. Elementami uzupełniającymi, które powinny być przylutowane jak najbliżej wyprowadzeń mikrofonu i głośnika są kondensatory C1...C12 oraz diody transil D1...D4 (rysunek 2).

Program mikrokontrolera

Tabela 3. Komunikaty wysyłane przez interfejs USB

Program mikrokontrolera zajmuje w aktualnej wersji (v1.13) 15,2 kB, co stanowi około 47% pamięci Flash dostępnej w ATmega32L. W momencie uruchomienia telefonu rozpoczyna się procedura uruchamiania poszczególnych podsystemów. Po wysłaniu przez port USB komunikatu powitalnego jest wykonywany test diod LED. Następnie jest sprawdzana wartość napięcia na szynie VCC zasilającej układ. Jeżeli nie mieści się ona w przedziale zdefiniowanym jako normalny, proces uruchamiania zostaje zawieszony (sygnalizowane jest to dwoma błyskami LED D7). Wówczas modem GSM pozostaje wyłączony, a mikrokontroler jedynie sprawdza cyklicznie wartość napięcia. Jeżeli wartość VCC mieści się w normie, to procedura uruchamiania jest kontynuowana. Komunikat "$PSON (Power Supply ON)" wysłany przez interfejs USB potwierdza ten status.

W następnym kroku jest uruchamiany modem GSM, ale proces ten jest złożony i został podzielony na kilka etapów. Rozpoczyna się podaniem impulsu trwającego sekundę na wejście PWR modemu, co potwierdza komunikat "$PATO (GSM Power ON)". Dalej, jest konieczne skonfigurowanie modemu za pomocą kilku komend AT. Najpierw zostaje wyłączona funkcja echo, następnie, jeżeli wymaga tego karta SIM, jest wprowadzany numer PIN (przechowywany w pamięci telefonu).

W tym kroku jest możliwe również wykrycie braku lub błędu karty SIM. W obu wypadkach telefon przełącza się w tryb pracy z ograniczoną funkcjonalnością - bez możliwości wykonywania połączeń. Jeżeli numer PIN zostanie przyjęty lub nie jest wymagany (zależnie od ustawień karty SIM), kolejnym krokiem konfigurowania modemu jest ustawienie najbardziej rozbudowanego formatu komunikatu o statusie logowania do sieci (z kodami LAC i CID). W ostatnim etapie kasowane są wszystkie wiadomości SMS zapisane w pamięci karty SIM. Ten krok kończy także procedurę uruchamiania aparatu. Zakończenie sekwencji uruchamiania podsystemów jest potwierdzane komunikatem "$PSSC (Power Supply Sequence Completed)". Następnie jest załączany timer i rozpoczyna się wykonywanie rozkazów pętli głównej programu.

Najważniejszym zadaniem realizowanym w pętli głównej jest sprawdzanie bufora interfejsu USART. Odebrany ciąg znaków jest na bieżąco interpretowany i na tej podstawie wyznaczane są kolejne zadania, które mikrokontroler realizuje w sekwencji wykonywanej mniej więcej raz na dziesięć sekund.

Rysunek 3. Pętla obsługująca komunikację przez interfejs USB (LabVIEW)

W buforze interfejsu USART mikrokontroler gromadzi znaki wysyłane przez modem GSM. Najczęściej są to odpowiedzi modemu na zapytania wydane przez nadrzędne procedury, również te inicjowane przez użytkownika (np. przy wykonywaniu połączenia) i są one "oczekiwane" w tym sensie, że procedura która wysłała zapytanie może zakończyć się dopiero po odebraniu odpowiedzi (ewentualnie komunikatu o błędzie). Jako "nieoczekiwane" należy określić komunikaty informujące o połączeniu przychodzącym (RING). Jednak odebranie tego komunikatu inicjuje tą samą, co komunikaty oczekiwane, procedurę odczytującą i interpretującą.

W ramach sekwencji programu głównego mikrokontroler cyklicznie kieruje do modemu kilka zapytań, które można podzielić na dwie grupy. Do pierwszej należą komendy określające status logowania do sieci: +CREG i +CSQ. Procedura odczytująca dane wysłane z modemu, na podstawie odpowiedzi formułuje komunikat $ATNR, który może wystąpić w sześciu wariantach:

  • $ATNR,0,SQ (Not Registered),
  • $ATNR,1,xLAC,xCID,SQ (Registered - Home Network),
  • $ATNR,2,SQ (Network Search),
  • $ATNR,3,SQ (Registration Denied),
  • $ATNR,4,SQ (Unknown),
  • $ATNR,5,SQ (Registered - Roaming).

Rysunek 4. Procedura odczytująca kody LAC, CID i SQ z komunikatu $ATNR (LabVIEW)

Druga grupa to zapytania dotyczące ustawionych poziomów głośności głośnika, wzmocnienia mikrofonu oraz trybu działania dzwonka aparatu: +CLVL, +CMIC i +CALM. Wielkości odczytywane z odpowiedzi modemu składają się na komunikat $ATVL: $ATVL,SPK,MIC,RNG (Spk&Mic&Rng Volume Level).

Oba komunikaty wysyłane są przez port USB w stałej sekwencji powtarzanej przez program główny co około 10 sekund. W tej samej sekwencji jest sprawdzana wartość napięcia szyny zasilającej VCC. Bieżące wartości wysyłane są na port USB w komunikacie: $VADC,x,v.vv (VCC), w którym x przyjmuje wartość 0, gdy napięcie szyny VCC mieści się w przedziale wartości normalnych lub wartość 1, gdy przedział ten zostanie przekroczony. Przekroczenie wartości dopuszczalnych skutkuje wyłączeniem modemu GSM.

Rysunek 5. Program do konfigurowania – okno tekstowe

Rysunek 6. Program do konfigurowania – zakładka "Settings"

Rysunek 7. Program do konfigurowania – zakładka "Status"

W ten sposób telefon powraca do stanu, w którym był na początku procedury uruchamiania. Fakt ten sygnalizowany jest komunikatem "$PSLD (Power Supply Limit)" wysłanym przez port USB. W tym trybie mikrokontroler co pewien czas sprawdza napięcie na szynie VCC, a powtórne uruchomienie telefonu jest możliwe dopiero wówczas, gdy zmierzona wartość mieści się w przedziale napięć normalnych.

Tabela 4. Polecenia konfiguracyjne telefonu

Ostatnia cyklicznie wywoływana procedura pętli głównej umożliwia odbieranie komunikatów przez interfejs USB. Aby oszczędzać czas mikrokontrolera, procedura odbierająca znaki na linii TXD układu FTDI wywoływana jest również jeden raz w sekwencji. W ten sposób powstają kilkumilisekundowe okna, w czasie których komputer PC może nadawać polecenia. Początek okna komunikacji sygnalizowany jest nadaniem przez telefon komunikatu "$PCCE".

Komunikaty konfiguracyjne zestawiono w tabeli 4, a komunikaty wysyłane przez port USB w tabeli 3.

Oddzielną kategorię procedur mikrokontrolera stanową te, które wywoływane są w odpowiedzi na działania użytkownika. W odróżnieniu od większości współczesnych aparatów telefonicznych, telefon retro nie posiada ani przycisków ani wyświetlacza, tym bardziej ekranu dotykowego. Interakcja z użytkownikiem odbywa się dzięki operacjom wykonywanym za pomocą słuchawki, a w zasadzie widełek słuchawki oraz tarczy numerowej. Odpowiednia sekwencja czynności z użyciem tych elementów umożliwia nawiązywanie połączenia poprzez ręczne wybranie numeru, wybranie numeru zapisanego w pamięci aparatu, powtórne wybranie ostatniego numeru oraz oczywiście odbieranie połączeń przychodzących.

Pierwszą czynnością podczas obsługiwania telefonu jest podniesienie słuchawki. Dopiero w tym momencie aparat oczekuje na wprowadzenie numeru abonenta, a odpowiednia procedura zaczyna sprawdzać stan styków tarczy. Innymi słowy, wszelkie operacje tarczą przy odłożonej słuchawce są ignorowane. Tarcza numerowa aparatu działa w ten sposób, że zwolniona po naciągnięciu sprężyny, obracając się w lewo generuje ciąg impulsów. Liczba impulsów zależy od wybranej cyfry, czyli od kąta obrotu tarczy - i wynosi od jednego impulsu dla "1" do dziesięciu dla "0".

Rysunek 8. Procedura wyszukująca aktualne kody LAC i CID w bazie danych BTS (LabVIEW)

Odpowiednia procedura zlicza impulsy generowane przez tarczę i mierzy czas trwania przerwy między nimi. Impulsy krótsze niż 50 ms interpretowane są jako drgania styków i są ignorowane. Przerwa pomiędzy kolejnymi impulsami powinna trwać między 50 a 700 ms, wówczas inkrementowana jest zmienna, która określa cyfrę wybraną przez użytkownika na tarczy numerowej.

Jeżeli przerwa pomiędzy impulsami trwa dłużej niż 700 ms zliczona ilość impulsów jest przepisywana jako kolejny znak (cyfra) do zmiennej typu string. Oczywiście zliczone dziesięć impulsów traktowane jest jak cyfra "0". W ten sposób procedura tworzy ciąg znaków zawierający numer telefonu abonenta. Gdy kolejny impuls nie pojawi się w ciągu 5000 ms algorytm stwierdza, że wybieranie numeru zakończyło się. Mikrokontroler wysyła do modemu polecenie "ATD<n><mgsm>;", gdzie <n> to zawartość zmiennej typu string z wybranym numerem telefonu, a <mgsm> to litera "i" lub "I" w zależności od ustawionego statusu CLIR. Numer telefonu abonenta może zawierać od dwóch do dwunastu cyfr.

Wspomniany CLIR to blokada prezentacji własnego numeru telefonu w telefonie rozmówcy (Calling Line Identification Restriction). W pamięci telefonu znajduje się rejestr przechowujący wariant wybrane przez użytkownika, a jego zawartość jest sprawdzana i uwzględniana za każdym razem, gdy nawiązywane jest nowe połączenie. Użytkownik, zależnie od własnych preferencji, może za pomocą polecenia "$I" aktywować lub wyłączyć blokadę CLIR.

Rysunek 9. Schemat montażowy płytki głównej telefonu

Jeżeli użytkownik "wykręcił" tylko jedną cyfrę 1...9 - zmienna typu string z wybranym numerem telefonu ma długość jednego znaku - oznacza to przywołanie numeru telefonu z odpowiedniego rekordu pamięci aparatu. Numer odczytany z pamięci wysyłany jest do modemu również w poleceniu ATD. W ten sposób działa funkcja szybkiego wybierania. Zapis numerów do pamięci aparatu możliwy jest wyłącznie przez interfejs USB, za pomocą polecenia "$N".

Oprócz wybrania numeru na tarczy użytkownik może wykonać jeszcze jeden rodzaj czynności - ręczne naciskanie widełek słuchawki. Tą operację wykorzystano do zaimplementowania funkcji redial. Trzykrotne wciśnięcie widełek z przerwami trwającymi między 50 a 700 ms (bezpośrednio po podniesieniu słuchawki i bez użycia tarczy numerowej), skutkuje wysłaniem do modemu polecenia ATDL. Jak już wspomniano w opisie modemu (tabela 2) polecenie to powoduje powtórzenie ostatnio wybranego numeru telefonu. Odbieranie połączeń przychodzących - sygnalizowanych zależnie od preferencji użytkownika dzwonkiem aparatu lub sygnałem modemu - odbywa się przez podniesienie słuchawki. Rozłączanie połączenia, po prostu przez odłożenie słuchawki na widełki aparatu.

Program dla PC

Rysunek 10. Rozmieszczenie otworów montażowych płytki drukowanej na podstawie aparatu

Konfiguracja telefonu możliwa jest przy użyciu zaledwie siedmiu komend (tabela 4). Jednak aby ograniczyć uciążliwości związane z ręcznym wprowadzaniem poleceń konfiguracyjnych, na przykład za pomocą jakiegoś terminala, zdecydowano o stworzeniu dedykowanego programu. Ponadto taki program mógłby mieć zaimplementowanych kilka funkcji o charakterze diagnostycznym. Taka właśnie jest geneza powstania prostej aplikacji utworzonej w środowisku LabVIEW.

Program zawiera dwie pętle: jedna odpowiedzialna jest za komunikację z układem telefonu i wykrywanie zdarzeń, a druga przetwarza i interpretuje dane. Pętle współpracują ze sobą według modelu producent - konsument, a przepływ danych odbywa się za pośrednictwem kolejki FIFO.

Rysunek 3 przedstawia fragment kodu pętli realizującej funkcję komunikacji przez interfejs USB. Po uruchomieniu programu pierwsza pętla nawiązuje połączenie z układem FTDI z opisem "GSM Phone v.1". Jednocześnie tworzona jest kolejka FIFO. Później, w każdym przebiegu pętli, dane z bufora konwertowane są na ciąg znaków ASCII i kolejno zapisywane do kolejki. Równolegle monitorowany jest stan panelu operatorskiego i jeżeli użytkownik wykona jakąś akcję, pętla ta rejestruje takie zdarzenie (struktura Event). Na tej podstawie generowana jest stosowna komenda i umieszczana w buforze PCCMDBUF. W kolejnym przebiegu pętli łańcuch znaków z tego bufora jest automatycznie wysyłany do układu FTDI, a bufor czyszczony.

Druga pętla pobiera znaki z kolejki FIFO i odbudowuje z nich poszczególne komunikaty nadawane przez aparat. Jako marker wykorzystywano znak "$" znajdujący się na początku każdego komunikatu. Następnie wyodrębnione komunikaty są identyfikowane na podstawie czteroznakowego kodu. Po tej operacji wywołana jest odpowiednia procedura. Dla przykładu, na rysunku 4 przedstawiono fragment kodu drugiej pętli z procedurą odczytującą kody LAC, CID i SQ. W jej kodzie wykorzystano fakt, że dla każdej wielkości zawartej w komunikacie $ATNR przewidziano stałą liczbę znaków - określone fragmenty łańcucha znaków są wyodrębniane i zapisywane do odpowiednich zmiennych.

Mając nakreśloną zasadę działania programu, można przejść do omówienia panelu operatorskiego. W dolnej części okna programu znajdują się: pole tekstowe, w którym są wyświetlane potwierdzenia ostatnio wykonanych operacji, kontrolka informująca o statusie połączenia i przycisk "EXIT", który zatrzymuje działanie programu. Centralna część panelu to kontrolka z czterema zakładkami. Każda z zakładek grupuje kontrolki z jednej z głównych kategorii zadań: aktualny status telefonu, ustawienia i okno tekstowe. Czwarta zakładka zawiera zestawienie informacji, które mogą być pomocne podczas obsługi programu.

Okno tekstowe, to nic innego jak uproszczony terminal wyświetlający komunikaty wysyłane z telefonu przez port USB (rysunek 5). Śledzenie i analiza zawartości tego okna jest najlepszą metodą diagnostyczną opisywanego aparatu. Użytkownik ma też możliwość manualnego wysyłania poleceń konfiguracyjnych.

Rysunek 11. Miejsce na zamontowanie anteny

Zakładka "Settings" zawiera kontrolki służące do zapisywania w pamięci telefonu wszystkich ustawień (rysunek 6). Każdy z przycisków "Save" wysyła tylko jedno polecenie konfiguracyjne. W ten sposób zmniejszono ryzyko powstania błędów, ale przede wszystkim ograniczono liczbę cykli zapisu do niemodyfikowanych rekordów pamięci mikrokontrolera.

W zakładce umieszczono także przycisk "Update settings", którym użytkownik może odświeżać wszystkie pola zakładki. W zakładce "Status" zebrano kontrolki informujące o aktualnym stanie aparatu: wartość napięcia szyny VCC, status logowania modemu do sieci GSM oraz status aparatu. Status aparatu obrazuje ikona symbolizująca działania podejmowane przez użytkownika: odłożenie lub podniesienie słuchawki, wybranie numeru telefonu itd. Nieco miejsca trzeba poświęcić na opis pola tekstowego o nazwie "BTS Location".

Wiadomo, że kody CID i LAC pozwalają na jednoznaczne zidentyfikowanie stacji przekaźnikowej sieci komórkowej, do której jest zalogowany modem (rysunek 7). Korzystając z tego, że na stronie internetowej btsearch.pl dostępne są bazy danych zawierające informacje o stacjach BTS wszystkich krajowych operatorów, możliwe stało się poszerzenie funkcjonalności programu o identyfikację stacji, do której w danym momencie zalogowany jest telefon.

Informacja ta prezentowana jest właśnie w polu tekstowym "BTS Location". Dołączony do projektu program instalacyjny oprogramowania na PC zawiera bazę danych obejmującą stacje BTS sieci Play w całym kraju. Użytkownicy decydujący się na wybór innej sieci powinni po zainstalowaniu programu samodzielnie podmienić plik bazy danych. Sposób wykonania tej operacji opisano w dalszej części tego rozdziału.

Instalator aplikacji do obsługi telefonu GSM został wygenerowany z założeniem, że będzie uruchamiany w systemach operacyjnych Windows XP lub Windows 7. Działanie programu na innych wersjach Windows nie było testowane, co oczywiście nie oznacza, że nie jest możliwe. Instalacja programu przebiega typowo. Wraz z programem instalowane są także sterowniki do układu FTDI, który po podłączeniu aparatu przewodem USB powinien być widoczny w menedżerze urządzeń jako USB Serial Port (COMx).

Jak wspomniano wcześniej użytkownik może podmienić instalowaną domyślnie bazę danych stosownie do wybranego operatora sieci komórkowej, względnie po to by uaktualnić ją lub zmodyfikować objęty nią obszar. Na stronie btsearch.pl/nobbimonitor. php znajduje się narzędzie umożliwiające eksport danych do formatu CLF w wersji 3.0. Oczywiście wcześniej należy wybrać operatora oraz zaznaczyć, z których województw nadajniki mają zostać włączone do bazy.

Rysunek 12. Schemat montażowy płytek mikrofonu i głośnika

Pobrany plik CLF wymaga pewnych modyfikacji. W pierwszej kolejności, korzystając na przykład z systemowego notatnika, trzeba skopiować jego zawartość (oprócz pierwszego wiersza) do nowego pliku TXT. W pierwszym wierszu nowego pliku należy wpisać informację o bazie, np. nazwę, a w drugim liczbę jej rekordów (tj. pozostałych wierszy). Następnie trzeba zmienić nazwę pliku na "btsdata.clf" i podmienić plik oryginalny, który znajduje się w folderze o nazwie "database".

Na rysunku 8 pokazano fragment kodu programu z procedurą obsługującą bazę danych. Po uruchomieniu programu i odtworzeniu ścieżki dostępu plik btsdata.clf jest otwierany, a zawarte w nim dane kopiowane do tablicy. Ponieważ przy większej ilości danych (baza, jeżeli zawiera dane o BTS-ach wszystkich operatorów, zawiera ponad 54 tys. rekordów) proces ten może trwać dłuższą chwilę, w górnej części okna programu umieszczono pasek informujący o postępie tego procesu. W trakcie normalnej pracy programu, jeżeli wartości CID i LAC ulegną zmianie, to przekazywane są do pętli, która porównuje je z odpowiednimi polami w kolejnych rekordach tablicy. Po stwierdzeniu zgodności zawartość rekordu prezentowana jest w polu BTS Location.

Z doświadczeń przeprowadzonych z instalacją i użytkowaniem programu na różnych komputerach wynika, że zwykle przy pierwszej próbie podłączenia telefonu, po uruchomieniu programu na komputerze PC, połączenie zostaje nawiązane, a mimo to dane nie są przesyłane. W takiej sytuacji połączenie należy zrestartować odłączając jedną z wtyczek przewodu USB i od razu ponownie podłączyć do tego samego gniazda.

Wykaz elementów

Płytka główna

Rezystory: (SMD 0805)
R1, R7, R20: 240 Ω
R2, R12...R14: 470 Ω
R3...R5: 22 Ω
R6, R8, R10: 5,1 kΩ
R9, R11: 1 kΩ
R15, R16: 10 kΩ
R17: 120 Ω
R18: 220 Ω
R19: 4,7 Ω
R21: 180 Ω
R22: 2,4 kΩ
R23: 0 Ω (zwora)

Kondensatory: (SMD o805)
C1, C2: 22 pF
C3, C5, C7, C9, C11, C15...C19: 100 nF
C4: 220 nF
C6: 10 nF
C8, C20...C23: 10 µF/10 V (SMD 3216)
C10: 470 m/25 V (10×10)
C12: 1 µF
C13, C14: 1500 µF/6,3 V (10×10)

Półprzewodniki:
D1: SMF05CT1G
D2, D3: KPT-3216YD
D4...D7: KPT-3216ID
D8: KPT-3216SGD
OC1: MOC3021
BG1: DF08S-E3
TR1: Z0103MN
T1...T3: BC846
IC1: ATmega32L
IC3: FT232RL
IC4: LM1085-ADJ (TO-220)

Inne:
IC2: SIM900D (modem GSM)
L1: 10 µH (SMD 1206)
FER: ferryt (1206)
Q1: kwarc SMD 7,3728 MHz
FUSE: PROFFUSE ZHL32 + bezpiecznik 2A F
SIM: Złącze karty SIM AMPHENOL C707-10M006-049
ANT: Gniazdo SMA proste AMPHENOL SMA6251A1-3GT50G-50+antena kątowa GSM (długość ok. 40 mm)
USB: gniazdo USB typu B proste do druku
CON: goldpin 7×2
ISP: goldpin 3×2
MAINS: Złącze pionowe NINIGI N42GP-02
TRAFO: Złącze pionowe NINIGI N42GP-04
TS: TS8/10/1 lub podobny

Płytki słuchawki i mikrofonu

Kondensatory:
C1...C3, C7...C9: 10 pF (SMD 0805)
C4...C6, C10...C12: 33 pF (SMD 0805)

Półprzewodniki:
D1...D4: SMBJ12CA

Inne:
SPK: głośnik telefonu Motorola V235
MIC: mikrofon telefonu Motorola V980
CON1, CON2: goldpin 3×1 kątowe
PHONE: goldpin 3×2 kątowe

Montaż i uruchomienie

Rysunek 13. Schemat połączeń wewnątrz aparatu (widok PCB po stronie elementów – warstwy TOP)

Dla prezentowanego układu zaprojektowano dwustronny obwód drukowany z metalizacją otworów, o wymiarach 100 mm×68 mm z laminatu o grubości 2 mm. Schemat montażowy płytki głównej pokazano na rysunku 9. Montaż należy rozpocząć od elementów SMD. Zapewne najtrudniejszym etapem będzie wlutowanie modemu. Prawdopodobnie najlepszym rozwiązaniem byłoby użycie pasty lutowniczej, jednak przy montażu układu zupełnie dobrze można sobie poradzić, używając cienkiego tinolu.

Najpierw powinno się unieruchomić element przylutowując jedno z wyprowadzeń. W tym celu należy nanieść niewielką ilość cyny na pad na płytce drukowanej, umieścić element we właściwej pozycji i wtedy grotem lutownicy podgrzać naniesioną uprzednio cynę . Cyna najprawdopodobniej nie pozwalała na dokładne przyleganie elementu do płytki, więc powinien on delikatnie osiąść i jednocześnie zespolić się z płytką. Jeżeli w trakcie tej operacji układ poruszy się i wyprowadzenia nie będą dokładnie pokrywały się z padami, możliwe będzie skorygowanie jego położenia.

W drugim etapie lutuje się pozostałe wyprowadzenia. Tinol (średnicy nie większej niż 0,5 mm) trzeba pociąć na krótkie odcinki, długości poniżej 1 mm i używając pincety umieszczać po jednym przy kolejnych wyprowadzeniach układu (w rowkach na krawędzi podstawy) i roztapiać grotem lutownicy. Cyna powinna wypełnić rowek na krawędzi obudowy i połączyć pin z padem. W trakcie wykonywania tej operacji należy zwrócić szczególną uwagę, by cyna nie zwarła wyprowadzenia z metalowym ekranem obudowy.

Montaż pozostałych elementów SMD zapewne sprawi znacznie mniej kłopotów. Końcowym etapem budowy powinno być wlutowanie elementów do montażu przewlekanego. Stabilizator IC4 należy wlutować poziomo, zachowując centryczność otworu do przykręcenia radiatora. Nietypowo, bo od spodu płytki drukowanej, powinno być wlutowane złącze CON. Podobną kolejność montażu trzeba zachować przy montażu płytek głośnika i mikrofonu. Również tutaj - tym razem kątowe - złącza CON1, CON2 i PHONE trzeba wlutować od spodu.

W tym miejscu warto dodać kilka słów wyjaśnienia odnoście wyboru stabilizatora liniowego. Projektując układ zakładano, że napięcie VCC o wartości 3,6 V stabilizowane będzie przez układ LM1085 o maksymalnej wydajności prądowej 3 A. Założenie to zostało podyktowane specyficzną charakterystyką modemu GSM, którego ciągły pobór prądu w czasie pracy wynosi około 22 mA z cyklicznymi impulsami o natężeniu dochodzącym do 2 A.

W praktyce okazuje się jednak, że zastosowanie dwóch kondensatorów elektrolitycznych o pojemności 1500 mF pozwala spłaszczyć te impulsy na tyle, że możliwe jest zastosowanie stabilizatora o mniejszej wydajności prądowej, np. LM1086 czy popularnego LM317. Podczas normalnej pracy stabilizator nie nagrzewa się zbytnio, jednak bezpieczniej jest wyposażyć go w niewielki radiator z blachy aluminiowej.

Rysunek 14. Oryginalny schemat połączeń aparatu CB-49

Elementem uzupełniającym blok zasilania telefonu i nie umieszczonym na płytce drukowanej jest transformator sieciowy. Najwygodniej byłoby umieścić go w obudowie aparatu. Dlatego na płytce drukowanej przewidziano miejsce na złącza: MAINS - do przyłączenia napięcia sieciowego 230 VAC i TRAFO - do przyłączenia uzwojeń pierwotnego i wtórnego transformatora sieciowego.

Jednak ostatecznie, ze względu na ograniczoną przestrzeń, transformator sieciowy nie został umieszczony w jej wnętrzu, lecz w oddzielnej obudowie wtyczkowej. W tym przypadku przewody z uzwojenia wtórnego trzeba doprowadzić do złącza MAINS, a niewykorzystane złącze TRAFO należy zastąpić zworkami łączącymi ścieżki pinów uzwojeń pierwotnego i wtórnego.

Jeżeli transformator umieszczony jest poza obudową aparatu, ograniczeniem nie są już jego gabaryty i istnieje pewna dowolność w doborze tego elementu. Należy zwrócić jedynie uwagę, by napięcie po stronie wtórnej nie było niższe niż 10 VAC, a wydajność prądowa wynosiła nie mniej niż 0,65 - 0,70 A. W egzemplarzu modelowym zastosowano transformator TS8/10/1, którego dwa uzwojenia wtórne o parametrach: 2 × 10,5 V 2 × 0,35 A połączono równolegle.

Do przykręcenia płytki drukowanej do podstawy aparatu najlepiej wykorzystać jeden z istniejących otworów pozostałych po zdemontowaniu oryginalnego transformatora i kondensatora. Drugi otwór niestety trzeba wywiercić w podstawie i nagwintować. To jedyna nieodwracalna ingerencja w konstrukcję aparatu. Proponowane rozmieszczenie otworów montażowych przedstawiono na rysunku 10.

Przed wywierceniem otworu warto zrobić przymiarkę by upewnić się, że płytka będzie mieściła się w obudowie aparatu. W szczególności chodzi tutaj o to, że jedna z krawędzi płytki może kolidować z wewnętrznymi żeberkami bakelitowej obudowy. Te żeberka to rodzaj słupków zespolonych ze ścianką, w których zatopione są gwintowane tulejki. Kolizję można wyeliminować odpowiednio modyfikując obrys płytki - w jednym z narożników przewidziano miejsce na podpiłowanie narożnika. Fragment przewidziany do usunięcia zaznaczony jest linią (warstwa tPlace).

Od spodu w obydwa otwory w podstawie aparatu należy wkręcić krótkie śruby M3, a na nie, od góry (czyli we wnętrzu obudowy), nakręcić tulejki dystansowe o długości około 33 mm. Taka długość powinna być wystarczająca do uniesienia płytki drukowanej ponad cewki elektromagnesów dzwonka. Płytkę trzeba położyć na tulejkach i przykręcić kolejną parą śrub M3.

Modem musi być wyposażony w antenę. W prototypowym egzemplarzu zastosowano kątową antenę GSM o długości około 40 mm, z męskim złączem SMA. Antena zainstalowana we wlutowanym w płytkę prostym złączu SMA i skierowana równolegle do dłuższej krawędzi płytki, swobodnie mieści się we wnętrzu obudowy aparatu CB-49. Przy wyborze anteny ograniczeniem są wymiary i rodzaj złącza. Do oszacowania, czy wybrana antena zmieści się w obudowie, pomocnym może okazać się rysunek 11. Możliwe jest też zastosowanie innego typu złącza niż proponowane - pod warunkiem, że ma identyczny raster wyprowadzeń.

Rysunek 15. Okno aplikacji FT_PROG – edycja pola "Product Description"

Dla mikrofonu i głośnika przewidziano oddzielne płytki drukowane (rysunek 12). Ponieważ muszą być one zamontowane w słuchawce aparatu CB-49, zastępując oryginalne wkładki, płytki mają kształt kół o średnicach 51,5 mm (mikrofon) i 49,5 mm (głośnik). Projekty płytek wykonano z myślą o zastosowaniu konkretnych typów elementów: mikrofonu pochodzącego z telefonu Motorola V980 i głośnika z Motoroli V235.

Wybrano elementy pochodzące akurat z tych modeli telefonów ponieważ mają wyprowadzenia umożliwiające przylutowanie do płytki. Ta cecha odróżnia je od podzespołów pochodzących z większości telefonów komórkowych, które mają dedykowane gniazda w chassis ze sprężystymi elementami kontaktowymi. Oczywiście możliwe jest użycie innego mikrofonu i głośnika, jednak wiąże się to z koniecznością przeprojektowania obwodów drukowanych.

Pomimo, że płytki mikrofonu i głośnika mają średnice dopasowane do gniazd w słuchawce, ale ponieważ grubość laminatu jest zdecydowanie mniejsza niż oryginalnych wkładek, po umieszczeniu w słuchawce trzeba je dodatkowo unieruchomić. Można to zrobić na kilka sposobów. Najbardziej eleganckim jest wytoczenie z tworzywa sztucznego pierścieni dystansowych o średnicy zewnętrznej równej średnicy PCB i grubości takiej, by wraz z laminatem wynosiła około 5,6 mm dla płytki mikrofonu i 6,7 mm dla płytki głośnika.

Średnice otworów tulei powinny być na tyle duże by wewnątrz mieściły się wszystkie przylutowane elementy. Dla wzorów płytek przedstawionych w tekście, otwór w tulejach powinien mieć średnicę nie mniejszą niż 40 mm. Prostszym sposobem jest przyklejenie do laminatu, po stronie elementów, nieco grubszych kawałków sprężystej pianki. Pianka skasuje luzy i dociśnie płytki do ścianek gniazd słuchawki, unieruchamiając je w ten sposób.

W dalszej kolejności trzeba wykonać pozostałe podłączenia elektryczne w słuchawce i aparacie. Oryginalne blaszki kontaktowe ze słuchawki można wymontować. Złącza CON1 i CON2 służą do połączenia ze sobą płytek głośnika i mikrofonu, a złącze PHONE (na płytce mikrofonu) umożliwia połączenie słuchawki z aparatem. W tym celu należy zamienić oryginalny przewód trzyżyłowy na pięciożyłowy. Aby zachować oryginalny wygląd aparatu przewód słuchawki powinien mieć bawełniany oplot.

Wykonanie takiego przewodu do modelowego egzemplarza zlecono w firmie pana Marka Sikory (telef2@wp.pl). Przewód słuchawki najwygodniej jest doprowadzić do oryginalnej listwy zacisków śrubowych w obudowie telefonu - takie rozwiązanie ułatwia demontaż. W podobny sposób warto postąpić także z przewodami od tarczy numerowej oraz z przewodem zasilającym.

Następnie do oczek lutowniczych listwy należy dolutować przewody i doprowadzić je do wtyczek złączy CON i MAINS na płytce aparatu. Natomiast przewody od styków widełek słuchawki i cewki dzwonka należy doprowadzić bezpośrednio do odpowiednich pinów złącza CON. Schemat połączeń wewnątrz aparatu i w słuchawce przedstawiono na rysunku 13. Na rysunku 14 zamieszczono schemat montażowy aparatu CB-49 w oryginalnym wykonaniu.

Rysunek 16. Konfiguracja fuse bits mikrokontrolera

Po zakończeniu montażu można rozpocząć uruchamianie aparatu. W uruchomianiu układu można wyróżnić kilka etapów, które nie powinny nastręczać większych trudności. Pierwszy, to po prostu podłączenie układu do sieci 230 V i sprawdzenie wartości napięć po stronie wtórnej transformatora oraz na szynie zasilającej. Powinny one wynosić odpowiednio 10 - 12 VAC oraz VCC równe 3,6 V.

W drugim etapie trzeba skonfigurować interfejs USB. Ze strony internetowej producenta trzeba pobrać narzędzie FT_PROG. Jeżeli na komputerze zostanie zainstalowany program do konfigurowania telefonu, nie trzeba pobierać sterowników do układu (dostępnych na tej samej witrynie) - zostały do niego dołączone i zainstalują się automatycznie. Po zainstalowaniu sterowników i uruchomieniu aplikacji (FT_PROG jest plikiem EXE i nie wymaga instalowania) można podłączyć aparat do portu USB.

Podłączanie zasilania nie jest konieczne, ponieważ w zastosowanej aplikacji układ IC3 pobiera je z portu USB. Po wybraniu opcji wyszukiwania, podłączony układ FT232RL powinien zostać wykryty i zidentyfikowany. Edycji wymaga pole USB_String_Descriptors/Product Description, którego zawartość należy zastąpić tekstem GSM Phone v.1 (rysunek 14). Dzięki temu telefon będzie poprawnie wykrywany przez aplikację na PC.

Konfiguracja fuse bits mikrokontrolera to trzeci etap. Trzeba wyłączyć JTAG oraz wybrać źródło taktowania mikrokontrolera - zewnętrzny rezonator kwarcowy. Należy pamiętać, że pomyłka przy wyborze źródła taktowania, zwłaszcza w wersji SMD, może być trudna do skorygowania. Docelową konfigurację fuse bits przedstawiono na rysunku 15.

Ostatni, czwarty etap polega na zapisaniu w pamięci telefonu numeru PIN, ustawieniu dzwonka, statusu CLIR (włączenie CLIR spowoduje, że na aparacie abonenta nie zostanie wyświetlony numer karty SIM), poziomu dźwięku głośnika, wzmocnienia mikrofonu i ewentualnie numerów telefonów. Zapisanie tych ustawień w pamięci jest możliwe za pomocą opisanej w poprzednim rozdziale aplikacji na komputer PC, ewentualnie "na piechotę" za pomocą dowolnego terminala, np. Docklight. W tabeli 6 zestawiono wszystkie polecenia konfigurujące funkcje telefonu.

Jeżeli wszystkie opisane etapy zostaną zrealizowane poprawnie, układ można uznać za w pełni uruchomiony. Dopiero teraz do aparatu można włożyć kartę SIM - wcześniej, gdy w pamięci numeru PIN znajdowały się przypadkowe znaki, uruchomienie go wiązałoby się z poważnym ryzykiem zablokowania karty (telefon nie umożliwia wprowadzania przez użytkownika numeru PUK).

Tymoteusz Świeboda
gleitmo@vp.pl

Literatura
[1] Bogusz J.: Moduły GSM w systemach mikroprocesorowych; BTC; Warszawa 2007
[2] Chruściel M.: Użycie sterownika direct układów FTDI w środowisku LabVIEW; Programy Cz. 1-2; EP11 i 12/2006

Dodatkowe materiały znajdziesz na FTP
user: 32858, pass: 4285avne

Artykuł ukazał się w
Elektronika Praktyczna
luty 2013
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów