Instytut Informatyki Zakład Mikroinformatyki i Teorii Automatów Cyfrowych LABORATORIUM Bezprzewodowych Sieci Komputerowych Temat: Układy Radiowe Małej Mocy
1. Wstęp Niniejsza instrukcja stanowi materiał przygotowujący do ćwiczenia laboratoryjnego pod nazwą Bezprzewodowe sieci sensorowe. Ćwiczenie przeprowadzane jest w oparciu o układy radiowe CC1000 połączone z mikrokontrolerem ATmega32L. Celem tego ćwiczenia jest zapoznanie studentów z zasadą działania układów radiowych na podstawie produktu CC1000 firmy Chipcon oraz problemami występującymi w sieciach radiowych małej mocy. 2. Wymagania sprzętowe Komputer PC z zainstalowanym systemem Windows Układy laboratoryjne z mikroprocesorem ATmega32L oraz układem radiowym CC1000p&p (dodatkowo wyświetlacz i termometr) Przewód RS232 konwertujący napięcia ze standardu TTL na PC Programator ISP lub JTAG dla AVR Zasilanie 3,3 3,6 V 3. Wymagania programowe Atmel AVR Studio 4 SmartRF Studio Oprogramowanie testowe dla badanych układów laboratoryjnych 4. Wprowadzenie Układy radiowe CC1000 zostały zaprojektowane dla bezprzewodowych urządzeń małej mocy, głównie dla pasm ISM oraz SRD. Zazwyczaj wykorzystuje się je dla częstotliwości 315, 433, 868 oraz 915 MHz ale można je łatwo zaprogramować dla innych w zakresie 300 1000 MHz. Programowanie układów odbywa się przez magistralę szeregową zazwyczaj bezpośrednio z mikrokontrolera bądź z komputera stacjonarnego. Do transmisji układ CC1000 może używać kodowania NRZ (Non-Return-to-Zero) lub Manchester. Układ można także skonfigurować jako przeźroczysty port szeregowy (UART). W trybie transmisji układ CC1000 dostarcza sygnał zegarowy DCLK, sygnał DIO jest używany jako wejście danych. Dane, których format powinien być zgodny z NRZ, są zatrzaskiwane na narastającym zboczu DCLK. Układ CC1000 sam koduje dane w kodzie Manchester, jeżeli taki tryb został wybrany. Układ może być skonfigurowany dla prędkości transmisji: 0.3, 0.6, 1.2, 2.4, 4.8, 9.6, 19.2, 38.4, 76.8 kbit/s (0.3 tylko dla Manchester, 76.8 tylko dla NRZ). Podczas użycia kodowania Manchester prędkość przesyłu danych z mikrokontrolera jest dwa razy mniejsza niż prędkość transmisji radiowej. W trybie odbiornika CC1000 sam synchronizuje i dekoduje dane i wystawia je na linii DIO, powinny one być odczytane na narastającym zboczu DCLK.
Rys. 1. Schemat blokowy przedstawiający odbiór Powyżej przedstawiony jest schemat blokowy cyfrowego demodulatora. Sygnał wejściowy jest próbkowany i podawany na detektor częstotliwości. Wynik przesyłany jest do dzielnika oraz filtru. Komparator porównuje dane z filtru danych z danymi z filtru uśredniającego w celu wygenerowania danych wyjściowych. Filtr uśredniający używany jest do znalezienia średniej wartości przychodzących danych. Podczas gdy jest uruchomiony i gromadzi próbki ważne jest, aby sygnał wejściowy składał się z tej samej liczby 1 co 0 (np. kod Manchester lub zrównoważona preambuła). Dlatego we wszystkich trybach transmisji wymagana jest preambuła z niezmienną składową stałą aby filtr uśredniający miał poprawne próbki dla odbieranego sygnału. Będzie to podstawa dla komparatora podczas odbioru ramki. Sugerowana preambuła to 010101. Po wykryciu preambuły (i odpowiednim ustawieniu się filtru uśredniającego) w trybie NRZ filtr ten musi być zablokowany zanim przyjdą jakiekolwiek dane (wartości w filtrze uśredniającym zostaną zapamiętane nawet w trybie power-down lub po przełączeniu w tryb nadawania). Zerowanie filtru uśredniającego następuje po wyzerowaniu modemu bądź całego układu. W trybie odbioru podczas stosowania pollingu (próbkowania) można używać automatycznego blokowania filtru uśredniającego (rys. 2.). Jeżeli odbiornik operuje w trybie ciągłym w poszukiwaniu preambuły, filtr uśredniający powinien być zablokowany ręcznie zaraz po wykryciu preambuły (rys. 3.). Jeżeli dane kodowane są kodem Manchester nie ma potrzeby blokowania filtru uśredniającego (rys. 4.).
Rys. 2. Automatyczne blokowanie filtru uśredniającego Rys. 3. Ręczne blokowanie filtru uśredniającego Rys. 4. Bez blokowania filtru uśredniającego Minimalna długość preambuły zależy od zastosowanego sposobu oraz czasu blokowania filtru uśredniającego. Dokładne zestawienie znajduje się w dokumentacji układu.
5. Przebieg ćwiczenia 5.1. Konfiguracja układu Aby możliwe było nadawanie i odbieranie ramek radiowych należy poprawnie skonfigurować układ CC1000. Do wyznaczenia wartości rejestrów konfiguracyjnych należy użyć narzędzia SmartRF Studio. Poniżej znajduje się przykładowa konfiguracja: Rys. 5. Przykładowa konfiguracja układu CC1000 Po ustawieniu odpowiednich wartości przechodzimy do widoku rejestrów (F3). Wygenerowane bajty zapisujemy do tablicy konfiguracyjnej w bibliotece cc1000.c CC1000_conf[] (bez wartości rejestru MAIN). Poniżej znajduje się sekwencja inicjalizująca dla obydwu trybów: CC1000_Init(); CC1000_PowerDown(); CC1000_Reset(); CC1000_SetupAll(); Wybór odbiornika (także wybudzenie układu z trybu power-down) (FREQ_A rejestry częstotliwości):
CC1000_WakeUpToRX(RXCurrent, RXPLL); CC1000_SetupRX(RXCurrent, RXPLL); Wybór nadajnika (także wybudzenie układu z trybu power-down) (FREQ_B rejestry częstotliwości): CC1000_WakeUpToTX(TXCurrent, TXPLL); CC1000_SetupTX(TXCurrent, TXPLL); Przełączenie do trybu niskiego poboru mocy (power-down): CC1000_PowerDown(); Podczas przełączania trybów wartości rejestrów PLL i CURRENT inicjowane są odpowiednimi stałymi (nie tymi z tablicy). Zadanie: spróbować wysyłania i odbioru ramek używając funkcji CC1000_SendFrame oraz CC1000_ReceiveFrame. Aby przejść z trybu kodowania Manchester w tryb NRZ (Non Return to Zero) należy zmienić odpowiednią wartość w rejestrze MAIN0 oraz zmodyfikować funkcję odbierającą ramki CC1000_ReceiveFrame. Ponieważ cechą kodowania Manchester jest niezmienna składowa stała sygnału filtr uśredniający mógł być cały czas uruchomiony. W trybie NRZ jedynie w trakcie wysyłania preambuły składowa stała powinna być niezmienna, wtedy właśnie powinno nastąpić ustawienie filtru uśredniającego. Zaraz po wykryciu preambuły filtr uśredniający powinien być ręcznie zatrzymany (Rys. 3). Do operacji na filtrze uśredniającym służą funkcje: void CC1000_AverageManualLock(void); void CC1000_AverageFreeRun(void); void CC1000_AverageAutoLock(void); Zadanie: po odpowiednich modyfikacjach uruchomić transmisje w trybie NRZ. Jeżeli transmisje w trybie Manchester i NRZ są już uruchomione można poeksperymentować z innymi parametrami, tj.: prędkość transmisji, moc sygnału, częstotliwość (powinna być bliska 433MHz), separacją częstotliwości. 5.2. Pobór mocy Wszystkie pomiary powinny być wykonywane bez dodatkowych peryferii (odłączyć przewód interfejsu USART, wyświetlacz i termometr) oraz przy stałych parametrach układu. Skonfigurować program tak aby w trybie nadajnika, zaraz po konfiguracji, cyklicznie wysyłał ramki (bez przerw między kolejnymi ramkami). Pomiar pierwszy to pomiar prądu przez procesor, należy odłączyć układ CC1000p&p z płytki, podłączyć zasilanie (przez odpowiednią przejściówkę) i zmierzyć pobierany prąd.
Kolejnym krokiem jest pomiar prądu przez odbiornik. Podłączyć układ CC1000p&p do płytki i zmierzyć pobór prądu przy ciągłym odbiorze sygnału (nie trzeba wtedy wysyłać ramek z drugiego układu). Pomiary wykonać dla kilku różnych wartości częstotliwości separacji. Najlepiej zmieniać te wartości w programie SmartRF Studio, podczas zmiany rejestrów F_SEP powinny być także zmienione inne parametry (np. PEAK_LEVEL_OFFSET), o co zadba oprogramowanie. Pobór mocy przez układ w trybie nadajnika zależy od mocy sygnału wyjściowego, która może być konfigurowana. Najpierw należy tak skonfigurować program, aby cyklicznie wysyłał ramki (bez przerw między kolejnymi ramkami). Następnie wykonać pomiary prądów dla różnych wartości mocy nadajnika (moc regulowana jest od -20 do 10 dbm co 1 dbm). 5.3. Badanie preambuły Przy stały parametrach wysyłania i odbioru spróbować wykonać transmisje dla różnych preambuł, wyszukać takie preambuły, dla których transmisja nie uda się, zarówno przy kodowaniu NRZ jak i Manchester. Kolejnym ćwiczeniem jest zbadanie minimalnej długości preambuły w różnych typach transmisji. W tym celu należy ustawić stałe parametry transmisji, przy których przebiega ona poprawnie. Następnie zmniejszać długość wysyłanej preambuły (pierwszy parametr funkcji CC1000_SendFrame) aż do momentu, w którym żadna ramka nie będzie odbierana. Badania wykonać dla dwóch typów kodowania (NRZ i Manchester) oraz dla czterech wartości zmiennej SETTLING w rejestrze MODEM1. 5.4. Badanie mocy sygnału Ustawić nadajnik i odbiornik w odległości około 3 metrów. Zmieniając moc nadajnika od -20 dbm do 10 dbm (około 10 15 pomiarów) mierzyć moc sygnału przychodzącego w odbiorniku (uśredniona wartość z 3 5 pomiarów przy jednej mocy). Następnie zwiększyć około dwukrotnie odległość między układami (można umieścić jeden układ za ścianą lub inną przeszkodą) wykonać pomiary dla tych samych wartości mocy nadajnika. Pomiary wykonać dla kodowania NRZ i Manchester przy stałych pozostałych parametrach. Dla trzech wybranych mocy sygnału nadawczego, dwóch częstotliwości separacji 64kHz i 20kHz oraz stałej odległości układów wykonać pomiary mocy sygnału odbieranego w zależności od szybkości transmisji (Data rate). Pomiary wykonać dla obydwu trybów kodowania. 5.5. Własne ramki Zaproponować własny format ramek, które mogłyby być używane w zaawansowanej sieci bezprzewodowej. Należy uwzględnić takie aspekty jak adresowanie (w tym rozgłoszenie), typy ramek, zaawansowane sprawdzanie poprawności danych i inne. Zaimplementować stworzony format, wykorzystać w transmisji peryferia zaproponowane przez prowadzącego.
6. Sprawozdanie W sprawozdaniu należy: 1. Wypisać wartości rejestrów konfiguracyjnych (w tym rejestrów definiowanych PLL i CURRENT), przy których transmisja w trybach NRZ i Manchester udała się. 2. Wypisać zmierzone prądy i narysować wykresy: prąd odbiornika w funkcji częstotliwości separacji oraz prąd nadajnika w funkcji mocy nadawania. Porównać z wartościami w dokumentacji i wyciągnąć wnioski. 3. Wypisać preambuły przy jakich udała się transmisja a przy jakich nie i opisać dlaczego. Wypisać jaka jest minimalna długość preambuły w różnych trybach, porównać z wartościami w dokumentacji i wyciągnąć wnioski. 4. Narysować wykresy mocy sygnału w zależności od mocy nadajnika oraz szybkości transmisji. Porównać z wartościami w dokumentacji i wyciągnąć wnioski. 5. Opisać wymyślony format ramek i uzasadnić wybór.