Akademia Morska w Gdyni

advertisement
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:
PmW   10  PdBm / 10
(2.1)
Otrzymana wartość wyniosła PmW   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
Download