Akademia Morska w Gdyni Nr ewidencyjny ..................................... Wydział Elektryczny Data złożenia pracy .............................. Katedra Elektroniki Morskiej Nr albumu …………............................... PRACA DYPLOMOWA INŻYNIERSKA Dyplomant: Adam Magiera Specjalność: Radiokomunikacja Cyfrowa Promotor: dr inż. Krzysztof POSOBKIEWICZ Recenzent: Egzamin dyplomowy: Ocena: Ocena: Data: Ocena: Temat: Mikroprocesorowy system lokalizacji obiektów pracujący w paśmie ISM Recenzent .................................. Promotor: ..................................... Dyplomant: .................................. Gdynia 2009 Dziekan........................................ Spis treści Wprowadzenie .......................................................................... Error! Bookmark not defined. 1. Informacje ogólne ............................................................... Error! Bookmark not defined. 2. Projekt ...................................................................................................................................3 2.1. 2.1.1. Nadajnik ......................................................................................................................4 Zasada działania nadajnika .....................................................................................4 2.1.2. Opis poszczególnych bloków .....................................................................................7 2.1.3. Opis oprogramowania ..............................................................................................12 2.2. Odbiornik ..................................................................................................................14 2.2.1 Zasada działania odbiornika ......................................................................................14 2.2.2. Opis poszczególnych bloków ...............................................................................18 2.2.3. Opis oprogramowania ...........................................................................................20 2.3. Płytki drukowane ......................................................................................................23 3. Wyniki badań .....................................................................................................................24 Podsumowanie ..........................................................................................................................30 Literatura ...................................................................................................................................31 2 2. Projekt Projekt bezprzewodowego systemu lokalizacji obiektów składa się z dwóch zasadniczych części, układu nadajnika i układu odbiornika. Wymagania stawiane systemowi: a) komunikacja z nadajnikiem znajdującym się w nieruchomej rakiecie z odległości około 500m, b) praca przez co najmniej 3 godziny, c) zgodność z regulacjami prawnymi dotyczącymi emisji w użytym paśmie. System pracuje w paśmie ISM (ang. Industrial, Scientific, Medical), które z definicji jest pasmem nielicencjonowanym. Obecnie częstotliwości pasma ISM wykorzystuje się w wielu powszechnych rozwiązaniach transmisji danych takich jak np. Bluetooth czy WiFi. Dodatkowo zdecydowano się na częstotliwość w paśmie UHF (ang. Ultra High Frequency), ponieważ anteny, układy nadawcze i odbiorcze są wystarczająco małe oraz tłumienie atmosferyczne niewielkie. Rysunek 2.1 przedstawia schemat blokowy bezprzewodowego systemu lokalizacji obiektów. Rys. 2.1 Schemat blokowy systemu. Lewa część rysunku 2.1 to część nadawcza systemu, przeznaczona do umieszczenia w modelu rakiety, natomiast z prawej strony widać część odbiorczą, którą będzie dysponował użytkownik. Liniami ciągłymi na powyższym schemacie oznaczono niezbędne elementy do pracy systemu, a liniami przerywanymi rozważane rozszerzenia. Opis poszczególnych bloków: „Data Collecting” - to osobny moduł rejestratora parametrów lotu (przyśpieszenia, ciśnienia atmosferycznego itp.) na podstawie tych danych można później dokładnie odwzorować charakterystykę pracy silnika i lotu rakiety. 3 „Other onboard systems” – to np. układ odzysku modelu rakiety, pracujący jako wyzwalacz spadochronu gdy rakieta osiągnie maksymalny pułap. „TX/RX „– moduły nadajnika i odbiornika. „Display” – wskaźnik diodowy lub głośnik sygnalizujący kierunek, z którego najsilniej odbierany jest sygnał lokalizujący. „Keyboard” – dodatkowe przyciski służące do wysyłania poleceń np. zmniejsz/zwiększ moc nadawaną, włącz głośnik (beeper). Bloki oznaczone linią przerywaną (rozważane rozszerzenia) nie należą do zakresu tej pracy, mają one na celu ukazanie możliwości rozbudowy systemu np. o komunikację dwukierunkową. Projekt części nadawczej omówiony został w rozdziale 2.1, natomiast projekt części odbiorczej w rozdziale 2.2 2.1. Nadajnik Celem pracy było skonstruowanie dwóch odrębnych układów, nadawczego i odbiorczego zapewniając jednocześnie komunikację pomiędzy nimi na drodze radiowej. W tym podrozdziale omówiony zostanie projekt nadajnika, zasada działania wraz z opisem wykorzystanych elementów i bloków układu. Omówiony zostanie także algorytm programu sterującego układem nadajnika. 2.1.1. Zasada działania nadajnika Zbudowany nadajnik powstał na bazie modułu nadawczego RF02 produkowanego przez firmę Hope Microelectronics Co. LTD [2]. Częstotliwość pracy nadajnika wynosi 434MHz, należy ona do jednego z przedziałów pasma ISM, oznaczanego ISM-433MHz (granice pomiędzy 433,05MHz a 434,79MHz). Układ pracuje z modulacją FSK (ang. Frequency Shift Keying), dewiacja częstotliwości wynosi 90kHz. Pracą modułu nadawczego RF02 steruje program umieszczony w pamięci mikrokontrolera ATmega48. Układ nadajnika w obecnej postaci wysyła pakiety złożone z jednego bajtu danych poprzedzonego trzeba bajtami preambuły i dwoma bajtami synchronizacji. Pakiet taki przedstawiony jest na rysunku 2.2. 4 Rys. 2.2 Schemat transmisji jednego pakietu danych. Pierwsze trzy bajty preambuły to 24 bitowy ciąg naprzemiennie występujących zer i jedynek, wymagany by odbiornik miał wystarczający czas na zsynchronizowanie zegara z nadchodzącym strumieniem danych. Odbywa się to w układzie CR (ang. Clock Recovery) zintegrowanym w module odbiorczym, który jest cyfrowym odpowiednikiem pętli PLL (ang. Phase Locked Loop). Kolejne dwa bajty tworzą 16 bitowy strumień synchronizacji, który jest niezbędny dla rejestru FIFO odbiornika. Po strumieniu synchronizacji występują bajty danych, pierwszy bajt po strumieniu synchronizacji będzie pierwszym bajtem zapisanym w rejestrze FIFO odbiornika. W projekcie bezprzewodowego systemu lokalizacji obiektów nadawany pakiet zawiera tylko jeden niezmienny bajt danych, który służy do weryfikacji poprawnej transmisji po stronie odbiorczej. Każdy pakiet składa się więc z 6 8 48bitów. Prędkość transmisji wynosi 4,8kbps (kilo bitów na sekundę) czyli wysłanie jednego pakietu trwa 10 milisekund. Wynika z tego, że z prędkością 4,8kbps w ciągu jednej sekundy zdołamy wysłać 100 takich pakietów, zakładając, że każdy z nich zostanie odebrany prawidłowo otrzymamy 100 razy w ciągu sekundy potwierdzenie poprawnego odbioru. Ograniczono ilość wysyłanych pakietów do około dwóch na sekundę wstawiając programowo odpowiednie opóźnienie pomiędzy wysyłaniem kolejnego pakietu. Taka „impulsowa” praca nadajnika to oszczędność baterii i wydłużenie czasu pracy, przy jednoczesnym zachowaniu efektywności poszukiwań modelu. Zmiana programu mikrokontrolera umożliwia zwiększenie ilości wysyłanych bajtów danych w pakiecie, co pozwoli na wykorzystanie tego nadajnika w innych zastosowaniach. Schemat ideowy urządzenia przedstawiono na rysunku 2.3. 5 Rys. 2.3 Schemat ideowy nadajnika. 6 2.1.2. Opis poszczególnych bloków Mikrokontroler Jednostką centralną nadajnika jest układ scalony ATmega48, jest to uniwersalny mikrokontroler produkowany przez firmę Atmel. Wyposażony jest on w 8-bitowy rdzeń wykonany w technologii CMOS opartej o architekturę RISC AVR, zapewniający dostęp do 32 ośmio-bitowych rejestrów roboczych, 131 instrukcji, z których większość wykonuje się w przeciągu pojedynczego cyklu zegara. Mikroprocesor ten posiada 4KB programowalnej pamięci Flash, 512B pamięci danych SRAM oraz 256B trwałej pamięci EEPROM. Trzy porty, na które składają się 23 linie wejścia/wyjścia, obsługują trzy interfejsy szeregowe: - USART (ang. Universal Synchronus and Asynchronus serial Receiver and Transmitter) zrealizowany przez linie portu D pozwala na przesyłanie informacji w postaci słów 8-bitowych. Jak nazwa wskazuje może on pracować w trybie synchronicznym, gdzie kolejne bity są przesyłane w takt zegara sterującego transmisją, lub asynchronicznym, kiedy transmisja nie jest synchronizowana sygnałem zegarowym lecz bitami startu i stopu. - SPI (ang. Serial Peripheral Interface) realizowany przez 4 linie portu B (PB2 – SS, PB3 – MOSI, PB4 – MISO, PB5 – SCK). Przeznaczony jest do komunikacji mikrokontrolera z urządzeniami zewnętrznymi. Jest to transmisja synchroniczna. - TWI (ang. Two Wire Interface) realizowany przez linie portu C. Jest to odpowiednik interfejsu I2C, której twórcą i właścicielem znaku handlowego jest firma PHILIPS. Na połączenie składają się dwie linie, zegarowa (PD5 – SCL) i danych (PC4 – SDA). W omawianym nadajniku mikrokontroler ATmega48 staruje pracą całego układu, jego zadaniem jest również komunikacja z modułem nadawczym RF02. Aby zapewnić komunikację za pomocą interfejsu SPI, gdzie mikrokontroler występuje jako urządzenie nadrzędne „Master”, a układ RF02 jako urządzenie podrzędne „Slave” wymagane jest połączenie ze sobą następujących linii: - SCK (ang. Serial Clock) – łączy piny mikrokontrolera i modułu RF02 o takich samych nazwach, sygnał wytwarzany przez mikrokontroler taktujący transmisję szeregową SPI. - NIRQ – lączy pin MISO (ang. Master in Slave out) mikrokontrolera z pinem nIRQ modułu nadawczego, dane przesyłane z układu RF02 pracującego jako „Slave” do 7 mikrokontrolera pracującego jako „Master” oraz taktowanie mikrokontrolera podczas transferu danych przeznaczonych do modulacji. - SDI (ang. Serial Data Input) – łączy pin MOSI (ang. Master out Slave in) mikrokontrolera z pinem SDI modułu, dane przesyłane z mikrokontrolera do układu RF02. - NSEL – łączy pin SS (ang. Slave Select) mikrokontrolera z pinem nSEL modułu, sygnał „nSEL” aktywuje transmisje SPI modułu RF02 oraz określa urządzenie nadrzędne. - FSK – łączy pin PB1 mikrokontrolera z pinem FSK modułu, służy do przesyłania z mikrokontrolera danych przeznaczonych do modulacji FSK w module Komunikacja mikroprocesora z modułem nadawczym jest szeregowa - pojedyncze bity wysyłane są jeden po drugim. Schemat połączeń pomiędzy układami ATmega48 oraz RF02 pokazany jest na schemacie ideowym nadajnika na rys. 2.3. Moduł nadawczy RF02 Produkowany jest przez firmę Hope Microelectronics Co. LTD [2], posiada wiele przydatnych cech, stanowi wygodną i elastyczną bazę do budowy nadajnika. Dzięki programowalnej częstotliwości pracy, szybkości transmisji, mocy wyjściowej, jest on uniwersalnym narzędziem do budowy nadajników na pasmo ISM. Moduł RF02 zasilany napięciem stałym minimum 2,2V, maksymalnie 5,4V z wbudowanym modulatorem FSK, potrafi osiągnąć maksymalną prędkość transmisji danych równą 115,2kbps. Schemat blokowy modułu nadawczego RF02 przedstawia rysunek 2.4. Rys. 2.4 Schemat blokowy modułu nadawczego RF02 [3]. 8 Według noty katalogowej [2] maksymalna moc wyjściowa modułu to 8dBm, którą przeliczono na waty wg. wzoru: PmW 10 PdBm / 10 (2.1) Otrzymana wartość wyniosła PmW 6,3 Według prawa polskiego maksymalna moc promieniowana lub maksymalne natężenie pola magnetycznego w odległości 10 metrów od nadajnika pracującego w paśmie ISM 433MHz nie może przekroczyć 10mW e.r.p. (ang. Effective Radiated Power). Ustawowe ograniczenie mocy nadajników pracujących w paśmie ISM opiera się na definicji „zastępczej mocy promieniowania nadajnika w odniesieniu do dipola półfalowego”. Tłumienie sygnału w wolnej przestrzeni FSLdB (ang. Free Space Loss) obliczono ze wzoru: FSLdB 32,44 20 log rkm 20 log f MHz (2.2) gdzie: rkm – odległość od nadajnika w kilometrach. Dla częstotliwości 434MHz tłumienie w odległości 10 metrów od nadajnika wynosi FSLdB 45,2 Komunikacja mikrokontrolera z modułem RF02 polega na wysyłaniu dwóch rodzajów informacji. Informacje te mogą być komendami sterującymi pracą nadajnika lub danymi przeznaczonymi do modulacji FSK. Komendy są 16 lub 8-bitowym ciągiem, ustawia się nimi pasmo, częstotliwość, dewiację, prędkość transmisji itd. Spis wszystkich komend znajduje się w nocie katalogowej modułu [3]. Transfer komend z mikrokontrolera ATmega48 do modułu RF02 odbywa się za pomocą wspomnianego wcześniej interfejsu SPI według poniższego schematu: 1. Włączenie interfejsu SPI następuje po ustawieniu przez mikrokontroler stanu niskiego na linii nSEL modułu RF02. 2. Stan niski na końcówce nSEL musi trwać przez cały czas transmisji komendy. 3. Kolejne bity komendy taktowane są zboczem rosnącym zegara mikrokontrolera podłączonego do końcówki SCK. Informacja przechodzi linią SDI (ang. Serial Data Input) z mikrokontrolera do układu RF02. 4. Ilość wysłanych bitów jest całkowitą wielokrotnością liczby 8. 5. Wszystkie dane wysyłane są począwszy od najbardziej znaczącego bitu MSB (ang. Most Significant Bit) znajdującego się na najbardziej wysuniętej w lewo pozycji słowa bitowego. 9 Natomiast transfer kolejnych bitów przeznaczonych do modulacji FSK przebiega również szeregowo, lecz przez linię FSK podłączoną do PB1(pin 1 portu B mikrokontrolera) według schematu: 1. Transmisja danych jest możliwa, gdy linia nSEL jest ustawiona w stan wysoki. 2. Linia zegara SCK taktującego interfejs SPI musi pozostać w stanie niskim przez cały czas trwania wysyłania danych. 3. Wewnętrzny oscylator potrzebuje czasu t sx 1,5ms na włączenie. 4. Wewnętrzna pętla PLL potrzebuje maksymalnie czasu t sp 250 s na synchronizację. 5. Linia nIRQ wystawia takt wewnętrznego zegara na wejście INT0 mikrokontrolera (wejście zewnętrznego żądania przerwania ang. „External Interrupt Request) przed wysłaniem każdego bitu. 6. Ilość wysłanych bitów jest całkowitą wielokrotnością liczby 8. Schemat połączeń pomiędzy układami ATmega48 oraz RF02 pokazany jest na schemacie ideowym nadajnika rys. 2.3. Dodatkowo linia nIRQ połączona jest z wejściem MISO mikrokontrolera, ponieważ możliwe jest odczytywanie statusu nadajnika przez pin nIRQ używając odpowiedniej komendy. Dzięki czytaniu statusu możliwe jest odczytanie informacji z detektora niskiego poziomu baterii (ang. Low Battery Detector), zegara budzenia ze stanu uśpienia (ang. Wake Up Timer) czy innych. Opcji tej nie wykorzystano w bieżącej wersji systemu. Rys. 2.5 Schemat czasowy transmisji komend i danych modułu RF02 [3] 10 Zasilacz Omawiany nadajnik zasilany jest 9V baterią typu R22. Zadaniem wewnętrznego zasilacza jest dostarczenie napięć o odpowiedniej wartości do poszczególnych bloków układu nadajnika. Napięcie +5V uzyskiwane jest na stabilizatorze U3 (LM78L05) służy do zasilania wszystkich bloków układu nadajnika, mikrokontrolera ATmega48, modułu nadawczego RF02 oraz wzmacniacza antenowego. Rys. 2.6 Schemat ideowy zasilacza zastosowanego w nadajniku Kondensator C8 oraz elektrolityczny C7 tworzą parę kondensatorów odsprzęgających sygnał zasilania podobnie jak para C9 oraz C10. W przypadku układów cyfrowych stosuje się kondensatory w celu wytłumienia skoków napięcia i przepięć na indukcyjnościach ścieżek wywołanych impulsowym poborem prądu przez te układy. Umieszcza się je możliwie blisko układu, aby impuls prądowy nie rozchodził się po całym układzie powodując zakłócenia. Kondensatory ceramiczne stosuje się powszechnie do odsprzęgania sygnałów o wysokich częstotliwościach, dla tych częstotliwości korzystnie jest również stosować małe pojemności, kondensatory elektrolityczne natomiast przyjęło się stosować w obwodach zasilania jako kondensatory filtrujące i gromadzące energię. Rys. 2.7 przedstawia parę kondensatorów odsprzęgających stosowaną na linii zasilania układów cyfrowych nadajnika. Rys. 2.7 Para kondensatorów odsprzęgających 11 2.1.3. Opis oprogramowania Do prawidłowego działania nadajnika i odbiornika niezbędne jest wykonanie oprogramowania sterującego systemem. Składa się na nie program mikrokontrolera sterujący nadajnikiem jak również program sterujący odbiornikiem. W niniejszym podrozdziale omówiony zostanie algorytm programu sterującego nadajnikiem. Kod źródłowy programu zamieszczono w załączniku. Program napisany został w języku C++ przy wykorzystaniu darmowego środowiska programistycznego przeznaczonego dla mikrokontrolerów z rodziny AVR udostępnione przez firmę Atmel. Rodzina AVR oznacza grupę ośmiobitowych mikrokontrolerów produkowanych przez firmę Atmel. Plik programu w postaci liczb heksadecymalnych nosi nazwę nadajnik.hex i zajmuje 1605 bajtów w pamięci, a w postaci kodu źródłowego wraz z komentarzami nosi nazwę nadajnik.c i zajmuje 4282 bajtów. Pliki te dostępne są w załączonej do pracy płycie CD. Rys. 2.8 Algorytm programu nadajnika 12 Bezpośrednio po uruchomieniu programu migają dwa razy diody zielona i czerwona sygnalizując uruchomienie głównej procedury programu. Według noty katalogowej producenta maksymalnie 150ms jest potrzebne od momentu włączenia układu, aby moduł był w stanie odebrać poprawnie pierwszą komendę wysłaną interfejsem szeregowym. Spowodowane jest to narastającym od 0V napięciem zasilania. Dlatego po włączeniu programu i miganiu diod dodane zostało opóźnienie o wartości 100ms, bez którego układ nie działałby prawidłowo. Miganie diod i dodatkowe opóźnienie dają w sumie 150ms zanim program przejdzie do bloku inicjalizacji. Blok „Inicjalizuj moduł RF02” odpowiedzialny jest zarówno za ustawienie kierunków portów wejścia-wyjścia mikrokontrolera, jak również za wysłanie komend konfiguracyjnych do nadajnika przez interfejs SPI, których transmisję opisano w poprzednim podrozdziale. Po inicjalizacji nadajnika program wchodzi do głównej pętli programu, która wykonywana jest ciągle, a składają się na nią poniższe bloki programu: - „Otwórz tor nadawczy” jest to komenda, która włącza wewnętrzny syntezer PLL modułu nadawczego, oscylator (wysyłający sygnał referencyjny dla sytezera), wzmacniacz mocy, natomiast wyłącza wyjście SCK. - Następnie wykonywana jest komenda wysyłania bajtu danych, w której program czeka na zbocze opadające sygnału podawanego na pin nIRQ modułu. Kiedy to nastąpi wysyłany jest jeden bit oraz inkrementowany jest licznik o wartość 1 (początkowa wartość licznika wynosi 0). - Następnie sprawdzany jest stan licznika, jeżeli jego wartość jest równa 7 oznacza to, że wysłanych zostało 8 bitów (1 bajt), licznik się zeruje i program przechodzi do kolejnego kroku, natomiast jeśli wartość licznika jest mniejsza, program wraca do punktu, w którym czeka na zbocze opadające sygnału nIRQ aby wysłać kolejny bit. Jedną komendą możemy wysłać jeden bajt, wartość bajtu podajemy jako zmienną funkcji, którą inicjalizuje komenda wysyłania bajtu. - Aby wysłać większą ilość bajtów potrzeba wysłać odpowiednią ilość komend, pamiętając, że pakiet przeznaczony do transmisji poprzedzić trzeba bitami preambuły i synchronizacji, o czym mowa była w podrozdziale 2.1.1. dotyczącym zasady działania nadajnika. - Ostatni bajt wysyłanego pakietu to tzw. „dummy byte” - bajt postaci ciągu ‘01’ tak jak preambuła (heksadecymalnie 0xAA) stosuje się go aby zaznaczyć koniec transmisji pakietu. 13 - „Zamknij tor nadawczy” ta komenda wysyłana jest po wysłaniu „dummy byte”. Wyłącza ona wewnętrzny wzmacniacz mocy, syntezer oraz wewnętrzny oscylator. - Wysłanie jednego pakietu danych i zamknięcie toru nadawczego zaakcentowane jest pojedynczym mignięciem zielonej diody nadajnika. - Ostatnim blokiem pętli, po której program wraca na jej początek jest opóźnienie równe 0,5 sekundy. 2.2. Odbiornik Aby system lokalizacji obiektów pracował efektywnie pożądany jest odbiornik o dobrych parametrach. Odbiór słabych sygnałów z dużych odległości może zapewnić duża czułość i zysk kierunkowy anteny gdyż moc nadajnika jest ustawowo ograniczona. W tym podrozdziale omówiony zostanie projekt odbiornika oraz zasada działania wraz z opisem wykorzystanych elementów i bloków układu. Omówiony zostanie także algorytm programu sterującego układem odbiornika. 2.2.1 Zasada działania odbiornika Zbudowany odbiornik powstał na bazie modułu odbiorczego RF01 oferowanego przez producenta Hope Microelectronics Co. LTD. [2]. Aby zapewnić dobrą łączność pomiędzy nadajnikiem zbudowanym na bazie modułu RF02 a odbiornikiem zbudowanym na podstawie modułu RF01 potrzebna jest należyta konfiguracja parametrów obydwu układów, takich jak częstotliwość pracy, szybkość transmisji itd. Pracą modułu nadawczego RF01 steruje mikrokontroler ATmega48, taki sam jak w układzie nadajnika. Celem części odbiorczej zbudowanego systemu oprócz poprawnego odbioru danych jest również wskazywanie kierunku, z którego odbierany jest najsilniejszy sygnał oraz poziomu tego sygnału. Te informacje pomogą użytkownikowi oszacować odległość od celu oraz określić jak należy się przemieszczać, aby go odnaleźć. Poprawny odbiór sygnału zdefiniowano w przypadku tego systemu jako odebranie prawidłowo jednego bajtu danych. Wartość nadawanego bajtu jest zaprogramowana w odbiorniku, odebrany bajt jest z nim porównywany i jeśli są sobie równe sygnalizowane jest to pojedynczym krótkim dźwiękiem z głośnika. Do określenia poziomu sygnału odbieranego, na którego podstawie szacowana jest odległość pomiędzy nadajnikiem a odbiornikiem posłużono się jedną z możliwości modułu odbiorczego RF01, jest nią programowalna czułość. Metodę lokalizacji obiektu zastosowaną w systemie można zatem nazwać szacowaniem odległości pomiędzy nadajnikiem i odbiornikiem na 14 podstawie zmiennej czułości odbiornika. Zmian czułości możemy dokonywać na 8 poziomach w przedziale od -103dBm do -61dBm z krokiem 6dBm. Odbiornik działa automatycznie, poszukuje najniższego poziomu czułości, na którym jest jeszcze w stanie odebrać poprawnie bajt i w zależności od tego poziomu zaświeca odpowiednią ilość diod. Jedna zaświecona dioda oznacza, że sygnał został poprawnie odebrany na największym poziomie czułości (-103dBm) a 8 zaświeconych diod oznacza, że sygnał odebrano na najniższym poziomie czułości (-61dBm). Tabela 2.1 Zaświecone diody względem czułości odbiornika. Poziom Czułości [dBm] -103 -97 -91 -85 -79 -73 -67 -61 Wskaźnik diodowy (Ilość aktywnych diod) 1 2 3 4 5 6 7 8 Określenie kierunku najsilniejszego sygnału możliwe jest dzięki zastosowaniu anteny kierunkowej. W systemie wykorzystano antenę kierunkową ATK-5/400-470MHz. Jest to antena 5-cio elementowa o zysku maksymalnym 6dB. Wybrano tą antenę ze względu na stosunkowo nieduże rozmiary – wygodę użytkową. Długość anteny to 57cm a waga 0,53kg. Dostępne są anteny o lepszym zysku kierunkowym na pasmo 433MHz, ale przykładowo długość anteny o maksymalnym zysku 12dB to blisko 1,5m. Byłoby to z pewnością niewygodne narzędzie do pracy w terenie. 15 Rys. 2.9 Widok anteny ATK-5/400-470MHz [5] Elementy anteny wykonane są z aluminium, pozostałe części konstrukcyjne to stal ocynkowana galwanicznie. Tabela 2.2 Parametry anteny wykorzystanej w projekcie [5] Nazwa Pasmo [MHz] Zysk max [dB] Promieniowanie przód./ tyl [dB] Polaryzacja Ilość elementów Impedancja wyjściowa [Om] Masa [kg] Długość [m] Szerokość wiązki Poziomej [st.] Szerokość wiązki Pionowej [st.] 16 ATK-5 /400-470MHz 450-470 6 12 Pionowa 5 50 0,53 0,57 60-68 90-110 Rys. 2.10 Schemat ideowy odbiornika. 17 2.2.2. Opis poszczególnych bloków Mikrokontroler Podobnie jak w części nadawczej, pracą modułu odbiorczego RF01 steruje mikrokontroler ATmega48. Komunikacja pomiędzy układami również odbywa się przez szeregowy interfejs SPI. Dane przesyłane z mikrokontrolera do modułu to komendy konfiguracyjne i zmiany ustawień odbiornika. Do mikrokontrolera przesłane są odebrane przez RF01 dane, które następnie zapisywane są i przetwarzane w pamięci mikrokontrolera. Wymaga to połączenia poniższych lini: - SCK (ang. Serial Clock) – łączy piny mikrokontrolera i modułu RF02 o takich samych nazwach, sygnał wytwarzany przez mikrokontroler taktujący transmisję szeregową SPI. - SDO (ang. Serial Data Output) – lączy pin MISO (ang. Master in Slave out) mikrokontrolera z pinem SDO modułu odbiorczego, odebrane dane przesyłane z układu RF01 pracującego jako „Slave” do mikrokontrolera pracującego jako „Master”. - SDI (ang. Serial Data Input) – łączy pin MOSI (ang. Master out Slave in) mikrokontrolera z pinem SDI modułu, komendy przesyłane z mikrokontrolera do układu RF01. - NSEL – łączy pin SS (ang. Slave Select) mikrokontrolera z pinem nSEL modułu, sygnał „nSEL” aktywuje transmisje SPI modułu RF01 oraz określa urządzenie nadrzędne. - NIRQ – łączy pin INT0 mikrokontrolera z pinem nIRQ modułu, sygnał taktujący przesył odebranych bitów z modułu odbiorczego do mikrokontrolera. Schemat połączeń pomiędzy układami ATmega48 oraz RF01 pokazany jest na schemacie ideowym odbiornika rys. 2.10. Moduł odbiorczy RF01. Moduł produkowany jest przez firmę Hope Microelectronics Co. LTD [2], posiada wiele przydatnych funkcjonalności, w połączeniu z modułem nadawczym RF02 tworzą parę na bazie których powstał system lokalizacji obiektów. Moduł RF01 zasilany napięciem stałym minimum 2,2V, maksymalnie 5,4V posiada wbudowany nisko-szumowy wzmacniacz mocy LNA (ang. Low Noise Amplifier), programowalny filtr pasmowo-przepustowy, cyfrowy wskaźnik poziomu sygnału DRSSI (ang. Digital Radio Signal Strenght Indicator), oraz kilka innych podukładów. 18 Rys. 2.11 Schemat blokowy modułu odbiorczego RF01. Transfer komend z mikrokontrolera ATmega48 do modułu RF01 odbywa się podobnie jak w nadajniku za pomocą interfejsu SPI według schematu: 1. Włączenie interfejsu SPI następuje po ustawieniu przez mikrokontroler stanu niskiego na linii nSEL modułu. 2. Stan niski na końcówce nSEL musi trwać przez cały czas transmisji komendy. 3. Kolejne bity komendy taktowane są zboczem narastającym sygnału zegara mikrokontrolera podłączonego do końcówki SCK. Informacja przechodzi linią SDI (ang. Serial Data Input) z mikrokontrolera do układu RF01. 4. Ilość wysłanych bitów jest całkowitą wielokrotnością liczby 8. 5. Wszystkie dane wysyłane są począwszy od najbardziej znaczącego bitu MSB (ang. Most Significant Bit) znajdującego się na najbardziej wysuniętej w lewo pozycji słowa bitowego. Odbierane dane przesyłane są do mikrokontrolera linią SDO. Zapisywane są w pamięci mikrokontrolera w rejestrze FIFO (ang. First In First Out). Transmisja przebiega według schematu: 1. Zapis odbieranych bitów inicjalizowany jest pojawieniem się stanu niskiego na lini nIRQ. 2. Inicjalizacja zapisu oznacza ustawienie stanu niskiego na liniach SDI oraz nSEL na czas trwania transmisji. 3. Przesył kolejnych bitów przebiega w takt sygnału SCK. 19 4. Odebrany bajt zapisywany jest w 8-bitowym rejestrze mikrokontrolera. 5. Zapełnienie tego rejestru powoduje ustawienie stanu wysokiego na lini nSEL. 6. Przesłanie kolejnego bajtu oznacza powrót do punktu 2. Zasilacz Zarówno moduł odbiorczy RF01 jak i mikrokontroler ATmega48 zasilane są 9V baterią, układ zasilacza zastosowanego w odbiorniku jest identyczny z zasilaczem w części nadawczej. 2.2.3. Opis oprogramowania W niniejszym podrozdziale omówiony zostanie algorytm programu sterującego odbiornikiem. Listing programu dołączony został jako załącznik. Program odbiornika napisany został w również w języku C++ oraz w tym samym środowisku programistycznym, w którym powstał program nadajnika. Kod programu w postaci liczb heksadecymalnych nosi nazwę odbiornik.hex i zajmuje 3561 bajtów, w postaci kodu źródłowego wraz z komentarzami nosi nazwę odbiornik.c i zajmuje 9399 bajtów. Pliki te dostępne są w załączonej do pracy płycie CD. 20 Rys. 2.12 Algorytm programu odbiornika. Uruchomienie głównej procedury „main” programu odbiornika (włączenie urządzenia) zaakcentowane jest zapaleniem wszystkich ośmiu diod i kolejnym ich gaśnięciem oraz krótkich sygnałem z głośnika. Następnie dodane zostało opóźnienie o wartości 100ms. Daje to w sumie 200ms zanim program przejdzie do bloku inicjalizacji. Tak jak w przypadku modułu nadawczego opóźnienie to konieczne jest ze względu na narastające od 0V napięcie zasilania układów. 21 Blok „Inicjalizuj moduł RF01” odpowiedzialny jest zarówno za ustawienie kierunków portów wejścia-wyjścia mikrokontrolera jak również, za wysłanie komend konfiguracyjnych do odbiornika. „Otwórz tor odbiorczy” jest to komenda, która włącza odbiornik. Wysyłana jest po wszystkich komendach konfiguracyjnych. Po inicjalizacji odbiornika program wchodzi do głównej pętli programu, wykonywanej w nieskończoność, składają się na nią poniższe bloki programu: - „Czekaj na zbocze opadające nIRQ” – odbiornik jest w stanie czuwania, sprawdza czy na lini nIRQ pojawi się zbocze opadające odpowiadające nadchodzącemu strumieniu danych. - Zbocze opadające na linii nIRQ powoduje przejście odbiornika w tryb zapisywania danych do rejestru mikrokontrolera. Jeżeli sygnał nie nadejdzie po około dwóch sekundach odbiornik zwiększa czułość (jeżeli nie była ustawiona największa) i wraca na początek pętli. Zmiana poziomu czułości w tym miejscu programu wiąże się z gaśnięciem odpowiedniej diody wyświetlacza. Jeżeli dla przykładu odbiornik odebrał poprawnie sygnał na 5 poziomie czułości (pali się 5 diod wyświetlacza) a następnie nie odebrał żadnego sygnału przez 2 sekundy to odbiornik ustawia czułość na poziom 4 i gasi ostatnią zapaloną diodę (palą się 4 diody wyświetlacza). - Pojawienie się zbocza opadającego na linii nIRQ oznacza nadchodzący strumień danych, który zapisywany jest w rejestrze FIFO mikrokontrolera. Transmisja pomiędzy modułem odbiorczym a mikrokontrolerem opisana jest w poprzednim podrozdziale. - Odebrany bajt porównywany jest z bajtem zaprogramowanym w odbiorniku. - Jeżeli oba bajty są równe sygnalizowane jest to krótkim sygnałem z głośnika, odbiornik przestawia czułość na niższą (jeżeli nie jest ustawiona najniższa) i wraca na początek pętli. Zmiana poziomu czułości w tym miejscu programu wiąże się z zapaleniem odpowiedniej diody wyświetlacza. Jeżeli dla przykładu odbiornik odebrał poprawnie sygnał na 5 poziomie czułości (pali się 5 diod wyświetlacza) a następnie odebrał poprawnie na 6 poziomie czułości to zapala szóstą diodę (pali się 6 diod wyświetlacza). - Jeżeli wartość bajtu odebranego różni się od zaprogramowanego (błędny odbiór). Poziom czułości jest zwiększany, odpowiednia dioda gaśnie i program wraca na początek pętli. 22 2.3. Płytki Drukowane Projekt płytek drukowanych wykonany został w programie P-CAD 2004. Dołożono starań aby płytki nadajnika i odbiornika były jak najmniejsze. Niewielkie rozmiary płytki nadajnika ze względu na ograniczone miejsce w korpusie rakiety. Nieduże rozmiary płytki odbiorczej pozwoliły na umieszczenie urządzenia i anteny na jednym uchwycie. Rys. 2.13 Widok płytki drukowanej nadajnika. Rys. 2.14 Widok płytki drukowanej odbiornika. 23 Wyniki Badań 3. Przeprowadzone badania miały na celu powiązanie różnych poziomów czułości pracy odbiornika z odległością pomiędzy odbiornikiem i nadajnikiem. Przeprowadzone zostały testy w różnych warunkach propagacyjnych reprezentujących teren płaski bez przeszkód czy też teren zabudowany z licznymi przeszkodami propagacyjnymi. Badania te stanowią pomoc dla użytkownika w szacowaniu odległości od celu na podstawie różnych poziomów czułości odbiornika. Wykonano testy statyczne, polegające na umieszczeniu nadajnika w określonym miejscu i przemieszczaniu odbiornika. Jest to analogiczne do sytuacji, w której poszukujemy miejsca lądowania rakiety. W rozdziale tym opisano także test dynamiczny, który polegał na wystrzale rakiety i poszukiwaniu nieznanego miejsca jej lądowania. Do przeprowadzenia badań statycznych wykorzystano darmowe oprogramowanie „Google Earth”. Program ten jest przydatny ze względu na bardzo dokładne odwzorowanie mapy świata. Szczegółowość mapy jest wystarczająca by dostrzec na niej niewielkie budynki czy samochody. Do przeprowadzenia testów wybrano teren, który ma dużo punktów orientacyjnych. Odległości pomiędzy tymi punktami jak również pomiędzy nadajnikiem i odbiornikiem mierzono za pomocą tego oprogramowania. Wartości mierzone są za pomocą współrzędnych, szerokości i długości geograficznych dwóch punktów. Program przy pomiarze odległości nie uwzględnienia różnic wysokości pomiędzy dwoma punktami. Najmniejszą dostępną jednostką miary są centymetry. Test 1 Pierwszy test przeprowadzono na terenie ogrodu działkowego w Gdyni niedaleko lotniska na Babich Dołach. Jest to dogodne miejsce ze względu na regularne kształty oraz liczne miejsca odniesienia. Budynki widoczne na mapie posłużyły za punkty orientacyjne. Rysunek 3.1 jest graficznym przedstawieniem wyników testu. Świecące diody oznaczono na nim zielonymi punktami, ilość świecących diod wskazuje na odpowiedni poziom czułości (tabela 2.1), pusty zielony punkt oznacza że transmisja na danym poziomie występowała sporadycznie. 24 Rys. 3.1 Graficzne przedstawienie wyników testu 1. Nadajnik i antena nadawcza ustawione były płasko na ziemi. Antena odbiorcza na wysokości 1m nad ziemią. W teście tym zachowana była widzialność optyczna obydwu anten na długości jednej z alejki ogrodu działkowego. Szerokość tej alejki to około 8m. Uzyskano maksymalny zasięg w tym miejscu dla zakresu widzialności optycznej anten równy 396m. Antena odbiorcza skierowana była przez większość czasu w kierunku nadajnika. W punktach charakterystycznych, gdy zmieniał się poziom czułości sprawdzano działanie systemu z anteną skierowaną w innych kierunkach lub podniesioną na wysokość 2 metrów nad ziemię. Tabela 3.1 Wynik testu 1. kat 0˚-90˚ Odległość [m] Diody 0 6 40 6 63 5 105 4 120 3,5 160 3 207 2,5 260 1,5 396 0,5 Czułość [dBm] -73 -73 -79 -85 -85/-91 -91 -91/-97 -97/-103 -103 kąt 90˚-270˚ Czułość [dBm] -73 -79 -85/-91 -97 -97 -97 -103 -103 -103 Diody 6 5 3,5 2 2 2 1 0,5 0 25 wys. ant. odbiorczej 2m Diody 6 6 5 4 4 4 3 2 1 Czułość [dBm] -73 -73 -79 -85 -85 -85 -91 -97 -103 7 Poziom czułości 6 5 4 3 2 1 0 0 50 100 150 200 250 300 350 400 Odległość [m] Kąt 0-90 [st] Kąt 90-270 [st] Wys. ant. odbiorczej 2m Rys. 3.2 Wyniki testu 1, dane z tabeli 3.1. Wyniki pierwszego testu obrazują, że antena odbiorcza skierowana o około 90 i więcej stopni względem nadajnika skutkuje zmianą poziomu odbieranego sygnału o 6 lub 12dB. Natomiast podwyższenie anteny odbiorczej jest skuteczne dla odległości co najmniej 100m, częściej odbierana jest poprawnie informacja lub odbierana jest na niższym o 6dB poziomie czułości. Test 2 W teście drugim liczne budynki, drewniane, betonowe posłużyły za przeszkody propagacyjne dla sygnału pomiędzy nadajnikiem i odbiornikiem. Liczne drzewa również pełniły taką funkcję. Widoczność optyczna obydwu anten w tym teście nie została zachowana. Antena nadawcza umieszczona została tym razem na wysokości 3m nad ziemią, antena odbiorcza na wysokości 1m nad ziemią. Rys. 3.3 Graficzne przedstawienie wyników testu 2. 26 Działanie systemu sprawdziło się lepiej od oczekiwań. Gęste drzewa i budynki również betonowe powodowały mniejsze niż przewidywane tłumienie. Uzyskano zasięg 345m z zapasem jednego poziomu czułości. Największy betonowy budynek, zarządu ogrodu działkowego o wysokości 3m i szerokości 27m nie stłumił całkowicie sygnału. Stojąc bezpośrednio za jego murem w kierunku nadajnika siła sygnału spadła o 12dB jednak transmisja wciąż była bezbłędna. Test 3 Próba ta dotyczyła działania systemu na terenie nie zabudowanym i nie zalesionym. Wybrano obszar pola uprawnego graniczącego z ogrodem działkowym. Widoczność optyczna obydwu anten była zachowana lecz nie w każdym miejscu obszaru ze względu na wypukłości. Antena nadawcza umieszczona została płasko na ziemi, antena odbiorcza na wysokości 1m. Uzyskano maksymalny zasięg dla tego obszaru równy 420m. Rys. 3.4 Graficzne przedstawienie wyników testu 3. W próbie tej, nie zauważono znaczącej różnicy przy podwyższaniu wysokości anteny odbiorczej, dlatego nie uwzględniono tych wyników w tabeli 3.2. Może to być spowodowane nierównomiernym kształtem podłoża terenu. 27 Tabela 3.2 Wynik testu 3. kat 0˚-90˚ kąt 90˚-270˚ Odległość [m] Diody Czułość [dBm] Diody Czułość [dBm] 0 6 -73 6 -73 45 5 -79 4 -85 90 4 -85 3 -91 135 3 -91 2 -97 180 3 -91 0,5 -103 240 2 -97 0,5 -103 320 2 -97 0 -103 380 2 -97 0 -103 420 1 -103 0 -103 7 6 Poziom czułości 5 4 3 2 1 0 -1 0 50 100 150 200 250 300 350 400 450 Odległość [m] Kąt 0-90 [st] Kąt 90-270 [st] Rys. 3.5 Wyniki testu 3, dane z tabeli 3.2. Uzyskany wynik jest zadowalający, w odległości 420m bit danych był jeszcze często poprawnie odbierany. Ze względu na przeszkody terenowe nie można było oddalić się jeszcze bardziej. Rysunek 3.6 przedstawia porównanie testu 1 i testu 3. Obydwa testy przeprowadzone były z zachowaniem widoczności optycznej, jednak pierwszy test wykonany był w innych warunkach propagacyjnych (wąska alejka). Porównanie to dotyczy sytuacji, w której antena odbiorcza skierowana jest w kierunku nadajnika, czyli dla kąta odchylenia bliskiego 0˚. W obydwu testach wysokość anteny odbiorczej wynosi 1m, wysokość anteny nadawczej 0m. 28 7 Poziom czułości 6 5 4 3 2 1 0 0 50 100 150 200 250 300 350 400 450 Odległość [m] Test 1 Test 3 Rys. 3.6 Porównanie wyników testu 1 i 3. Po porównaniu wyników obydwu testów, znacząca różnica widoczna jest dopiero dla odległości ponad 250m. Otwarty teren względem wąskiej przestrzeni ograniczonej przeszkodami propagacyjnymi jest więc korzystniejszy dopiero dla odległości większych od połowy zasięgu możliwego do osiągnięcia. 29 Podsumowanie Bezprzewodowy system lokalizacji obiektów sprawdził się w każdych warunkach propagacyjnych. Na otwartym terenie, zbliżonym do miejsca startów rakiet osiągnięty został zadowalający zasięg pracy systemu zbliżony do zakładanych 500m. Poszukiwanie dobrego kierunku ograniczone jest do około 90˚. Kierunek ten wskazuje zmiana poziomu czułości odbiornika o przynajmniej jeden poziom. Poziomy czułości zmieniają się co 6dB, każdemu poziomowi przypisana jest odpowiednia ilość świecących diod. Użytkownik obracając antenę odbiorczą i obserwując wskaźnik diodowy jest w stanie znaleźć właściwy kierunek. Poszukiwanie dokładnego miejsca źródła sygnału ograniczone jest do powierzchni koła o promieniu około 40m. W tej odległości odbierany jest sygnał na najniższym poziomie czułości. Dobór anteny odbiorczej o większym wzmocnieniu kierunkowym z pewnością zwiększy maksymalny zasięg pracy systemu. Antena odbiorcza o większej kierunkowości także polepszy jakość poszukiwań. 30 Literatura 1. Rocket Team Poland, strona internetowa www.rakiety.pomorze.pl 2. Hope Microelectronics Co. LTD, strona internetowa producenta modułów nadajnika i odbiornika http://www.hoperf.com/rf_fsk/ 3. Nota katalogowa modułu nadajnika http://www.hoperf.com/upfile/RF02.pdf 4. Nota katalogowa modułu odbiornika http://www.hoperf.com/upfile/RF01.pdf 5. Strona internetowa sklepu „Dipol” oferującego sprzęt radiowy http://www.dipol.com.pl/ 31