Łukasz Deńca – Implementacja analizatora widma na
Transkrypt
Łukasz Deńca – Implementacja analizatora widma na
Łukasz Deńca – V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński – opiekun naukowy IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7 Keywords:, ARM7, embedded, spectrum analyzer Słowa kluczowe: ARM7, analizator widma The article is about the implementation of a spectrum analyzer on ARM7 core microcontroller. The system uses a built-in microcontroller A/D converter and a graphical LCD display. In the microcontroller has been implemented FFT algorithm and the results are presented graphically on the LCD display. 1. Analizator widma Analizator widma jest urządzeniem pomiarowym służącym do prezentowania widma częstotliwościowego badanego sygnału który jest zmienny w czasie. Do badanych wielkości mogą należeć takie wielkości jak wychylenia mechaniczne, długość fali optycznej itp. Natomiast najciekawszym i najpowszechniejszym zastosowaniem analizatora widma jest badanie sygnałów elektrycznych zarówno napięciowych jak i prądowych. Analizator widma znalazł szerokie zastosowanie przy analizie sygnałów akustycznych, cyfrowych, w diagnostyce np. diagnostyka uszkodzeń silników elektrycznych oraz w wielu innych dziedzinach. Okresowe przebiegi badanych sygnałów elektrycznych można przedstawić za pomocą szeregu Fouriera. Analizator widma właściwie dostarcza informacji o tym z jakich funkcje harmoniczne składają się na badany sygnał oraz dostarcza informacji o cechach poszczególnych funkcji harmonicznych takich jak amplituda, częstotliwość , przesunięcie fazowe. 2. Budowa układu pomiarowego Analizator widma został zaimplementowany na mikrokontrolerze z rdzeniem ARM7. Układ ma budowę modułową co pozwala na dalszą rozbudowę i udoskonalanie układu. Rysunek 1. Schemat blokowy przedstawiający budowę układu Podczas omawiania poszczególnych bloków funkcyjnych analizatora widma posłużymy się schematem blokowym ( Rysunek 1.) Układ formujący sygnał – układ składający się z dzielnika napięcia oraz kondensatora zapewniającego odcięcie składowej stałej sygnału. Dzielnik napięciowy pozwala na przesunięcia punktu zera pozornego co pozwala na badanie sygnałów przemiennych. Przetwornik A/C – służy do zbierania próbek sygnału, wykorzystano wbudowany w mikrokontroler 10-bitowy przetwornik A/C. Procesem zbierania próbek steruje mikrokontroler przy pomocy modułu TIMER. Układ każdorazowo zbiera 256 próbek które następnie są przekazywane jako dane wejściowe do obliczeń. Taka liczba próbek jest wymagana przez algorytm FFT o podstawie 2. Układ sterujący – jako układ sterujący wykorzystano 32-bitowy mikrokontroler z rdzeniem ARM7, którego magistrala wewnętrzna jest taktowana z częstotliwością 60MHz. Mikrokontroler wyposażony jest w moduły takie jak przetwornik A/C, TIMER, UART itp. dzięki temu w projekcie nie ma potrzeby stosowania dodatkowych modułów zewnętrznych. Rodzina układów z rdzeniem ARM7 cechuje się niewielkim poborem energii co jest dodatkowym atutem obok bardzo dużej wydajności. Wyświetlacz LCD – w projekcie zastosowano wyświetlacz graficzny LCD RG240128B, jest to wyświetlacz oparty o sterownik TOSHIBA T6963C, układ ten cechuje duża rozdzielczość 240x128, tak duża rozdzielczość jest wymagana do pełnej prezentacji widma badanego sygnału. 3. Implementacja algorytmu FFT Transformacja Fouriera jest transformacją całkową z dziedziny czasu w dziedzinę częstotliwości. Transformacja Fouriera rozkłada funkcję na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne częstotliwości składają się na pierwotną funkcję. Dyskretną transformatę Fouriera możemy uzyskać ze wzoru (1) jednak złożoność 2 obliczeniowa tego zadania wynosi: O N operacji co nie pozwala zastosować go w systemach wbudowanych które posiadają niewielką moc obliczeniową. N 1 Xk xn e 2 i nk N k 0,..., N (1) 1 n 0 Najpopularniejszą wersją FFT jest FFT o podstawie 2. Jest to bardzo efektywna operacja, k jednak wektor próbek wejściowych musi mieć długość N 2 gdzie k to pewna liczba naturalna. Wynik otrzymuje się na drodze schematycznych przekształceń, opartych o tak zwane struktury motylkowe. Rysunek 2. Struktura motylkowa Złożoność obliczeniowa algorytmu Szybkiej transformacji Fouriera wynosi: O N log 2 N (2) Natomiast złożoność algorytmu DFT wynosi: (3) Mniejsza złożoność obliczeniowa FFT pozwala na wykorzystanie tego algorytmu w systemach wbudowanych. W mikrokontrolerze liczby zespolone zostały zaimplementowane jako para licz odpowiadająca odpowiednio części rzeczywistej i części urojonej. Liczba zespolona w pamięci mikrokontrolera jest przechowywana w postaci struktury danych, dla powyższej struktury dodatkowo należy zaimplementować podstawowe operacje matematyczne na liczbach zespolonych. O N2 Rysunek 3. Struktura przechowująca liczbę zespoloną 4. Prezentacja układu Przedstawienie układu rzeczywistego oraz prezentacja wyników działania układu. Rysunek 4. Prezentacja wyświetlacza graficznego Na rysunkach 4 i 5 zaprezentowano zdjęcia układu zaimplementowanego analizatora widma, na wyświetlaczu LCD widzimy efekt pracy układu który analizuje podany na wejście sygnał prostokątny o wypełnieniu 50%. Rysunek 5. Zdjęcie zbudowanego analizatora widma 5. Podsumowanie Zaprezentowana implementacja analizatora widma cechuję się prostą budowa blokową a wykorzystanie bloków wewnętrznych mikrokontrolera obniża koszty implementacji. Układ próbkuje sygnał badany z częstotliwością 40kHz co zapewnia mu możliwość pracy w paśmie akustycznym do 20kHz. Zaprezentowany układ umożliwia dalszą rozbudowę projektu o kolejne moduły zwiększające funkcjonalność projektu. Układ można dodatkowo wyposażyć w moduł komunikacji sieciowej z nadrzędnym kontrolerem lub komputerem PC, przekształcić układ w samodzielny układ diagnostyczny czy przekształcić go do postaci kompaktowego multimetru. Literatura [1] http://en.wikipedia.org/wiki/Fast_Fourier_transform, [2] LPC2100 Mikrokontrolery z rdzeniem ARM7 , Lucjan Bryndza, Wydawnictwo BTC, Legionowo 2007, [3] http://www.nxp.com, noty katalogowe procesora NXP LPC2138, [4] Wprowadzenie do cyfrowego przetwarzania sygnałów, Lyons Richard, Wydawnictwa Komunikacji i Łączności WKŁ, 1999.