Bezpłatna biblioteka techniczna ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ Nowe tryby w przyrządzie pomiarowym kombinowanym. Encyklopedia elektroniki radiowej i elektrotechniki Encyklopedia radioelektroniki i elektrotechniki / Technologia pomiarowa W trakcie eksploatacji przyrządu zespolonego [1] znacznie udoskonalono program jego mikrokontrolera. Nowa wersja 2.03 tego programu udostępnia użytkownikowi oprócz już dostępnych trybów pomiaru częstotliwości sygnału wejściowego oraz pojedynczego przemiatania w analizatorze stanów logicznych. Nowe funkcje realizowane są w sposób czysto programowy, nie trzeba było dokonywać żadnych zmian sprzętowych urządzenia. Tryb pojedynczego przemiatania był przewidziany od samego początku w oscyloskopie przyrządu, ale autor nie zaimplementował go w analizatorze stanów logicznych, chociaż jest w nim nie mniej przydatny. W nowej wersji programu mikrokontrolera pominięcie to zostało poprawione. Teraz możemy powiedzieć, że analizator logiczny, podobnie jak oscyloskop instrumentu, ma dwa tryby przemiatania: zwykły i pojedynczy. Są prawie identyczne z dwoma wyjątkami. Po pierwsze, analizator stanów logicznych nie mierzy napięcia sygnału wejściowego. Ta operacja nie ma tutaj sensu, ponieważ badane są sygnały standardowych poziomów logicznych. Po drugie, wyświetlana na ekranie dodatkowa informacja o położeniu ramki informacyjnej na osi czasu w trybie analizatora stanów logicznych nie nakłada się na obszar oscylogramów i nie przeszkadza w ich obserwacji. Dlatego jego wyłączenie nie jest realizowane jako niepotrzebne. Przykładowy obraz na ekranie wskaźnika w trybie pojedynczego przemiatania analizatora stanów logicznych pokazano na rys. 1.
Ze zwykłego trybu wobulacji analizatora do tego trybu wchodzi się naciskając klawisz „5”. Posiada następujące klawisze sterujące: „4” - przesuń ramkę w lewo (na początek bufora); „5” - przestań poruszać się wzdłuż liczników sygnału; „6” - przesuń ramkę w prawo (na koniec bufora); „0” - wybór kroku ruchu (liczba lub klatka); „D” – wyjście z trybu pojedynczego przemiatania. Nie podano pełnego opisu trybu pojedynczego przemiatania, ponieważ jest on dość szczegółowo opisany w [2] w odniesieniu do oscyloskopu. Jeśli chodzi o tryb pomiaru częstotliwości, mikrokontroler z rodziny ATxmega pozwala na zaimplementowanie kilku jego opcji. Oprócz klasycznego zliczania liczby okresów mierzonego sygnału w jednostce czasu, liczniki czasu tego mikrokontrolera są w stanie bezpośrednio mierzyć okres powtarzania impulsów sygnału wejściowego, co ułatwia obliczenie częstotliwości ich powtarzania. Zaletą tej metody jest krótki czas pomiaru, jednak akceptowalna dokładność jest utrzymywana tylko do częstotliwości nie przekraczającej kilkudziesięciu kiloherców. W związku z tym pomiar częstotliwości sygnału w urządzeniu odbywa się za pomocą klasycznej metody wspomnianej powyżej. Jego zasada jest prosta. Jeden timer-licznik generuje interwał czasu pomiarowego, drugi zlicza impulsy sygnału wejściowego w tym interwale. Jeżeli czas trwania interwału pomiarowego wynosi 1 s, to liczba zgromadzona w tym czasie na drugim liczniku jest częstotliwością sygnału w hercach. Istnieją jednak trudności we wdrażaniu tej metody. Po pierwsze, wszystkie timery-liczniki mikrokontrolera z rodziny ATxmega [3] są 16-bitowe. Oznacza to, że maksymalna częstotliwość poprawnie zmierzona przez taki licznik jest ograniczona przepełnieniem jego rejestru zliczającego i wynosi 216 - 1 = 65535 Hz. To zdecydowanie za mało, biorąc pod uwagę, że elementy mikrokontrolera działają do częstotliwości 32 MHz. Najłatwiejszym sposobem zwiększenia maksymalnej mierzalnej częstotliwości jest zmniejszenie interwału pomiarowego. Przykładowo czterokrotne zmniejszenie jej spowoduje czterokrotny wzrost maksymalnej wartości mierzonej częstotliwości. Jednocześnie o ten sam współczynnik zwiększy się dyskrecja jego pomiaru, bo każdy impuls będzie „ważył” cztery razy więcej. Dlatego ta droga jest niewłaściwa. Zwiększenie maksymalnej mierzonej częstotliwości bez zwiększania dyskretności pomiaru jest możliwe jedynie poprzez zwiększenie pojemności licznika impulsów sygnału wejściowego. Umożliwia to architektura mikrokontrolera ATxmega, umożliwiając szeregowe połączenie kilku timerów/liczników. Aby uzyskać 32-bitowy licznik, wystarczy połączyć dwa 16-bitowe liczniki czasu. Przepełnienie 32-bitowego licznika na sekundę może wystąpić tylko przy częstotliwości 2 - 1 = 4294967295 Hz, więc górna granica mierzonej częstotliwości w tym przypadku jest ograniczona jedynie właściwościami częstotliwościowymi elementów mikrokontrolera i wynosi 32 MHz. Po drugie, konieczne jest „doprowadzenie” sygnału wejściowego z linii portu do timera-licznika i zmuszenie go do zliczania impulsów w szerokim przedziale częstotliwości ich powtarzania. Po trzecie, konieczne jest zapewnienie ściśle synchronicznej pracy wszystkich elementów mikrokontrolera biorących udział w procesie zliczania, niezależnie od pracy jego pozostałych węzłów, aby uniknąć wszelkiego rodzaju nieprzewidywalnych awarii zliczania. W pokonaniu tych trudności pomoże wspaniałe narzędzie dostępne w rodzinie mikrokontrolerów ATxmega – system zdarzeń [4]. Za jego pomocą można wygenerować wszystkie sygnały niezbędne do działania i przesłać je ze źródła do odbiornika z możliwie najniższym i co najważniejsze stabilnym opóźnieniem. Schemat funkcjonalny miernika częstotliwości zaimplementowanego w rozważanym urządzeniu pokazano na ryc. 2. Wyposażenie portu wejścia-wyjścia pozwala analizować stan każdej z jego linii i generować zdarzenia w przypadku ich zmiany. Na przykład do generowania zdarzeń dla każdego narastającego lub opadającego zbocza sygnału wejściowego. Liczniki czasowe są w stanie zliczać nie tylko wewnętrzne impulsy zegarowe mikrokontrolera, ale także sygnały zdarzeń. Z tego staje się jasne, jak zorganizowane jest zliczanie impulsów sygnału wejściowego.
Sygnał podawany jest na linię PF3, która jest skonfigurowana jako wejście i generuje zdarzenia na zboczach narastających sygnału (po jednym zdarzeniu na każdy okres). Timer-licznik TCC1 pracuje w trybie licznika zdarzeń dostarczanego na kanale 3 routera zdarzeń. Generuje również i wysyła zdarzenia przepełnienia (OVF) swojego 4-bitowego rejestru zliczającego do kanału routera 16. Zliczane są one przez timer-licznik TCD1, który jest skonfigurowany do pracy jako 16-bitowy licznik zdarzeń dostarczanych na kanale 4. Raz na sekundę, na koniec okresu zliczania generowanego przez timer-licznik TCF0, skonfigurowany do zliczania impulsów synchronizatora mikrokontrolera, program „skleja” wyniki liczników TCC1 i TCD1 w jedno 32-bitowe słowo i przypisuje jego wartość do zmiennej. Następnie ponownie uruchamia wszystkie timery/liczniki, rozpoczynając nowy cykl pomiaru częstotliwości. Kluczowe funkcje w trybie pomiaru częstotliwości
Należy wziąć pod uwagę główne źródła błędu pomiaru częstotliwości: 1. Niedokładne ustawienie częstotliwości taktowania mikrokontrolera, w wyniku czego rzeczywisty czas trwania interwału pomiarowego różni się od jednej sekundy. Ten błąd ma dwa składniki: systematyczny i losowy. Składowa systematyczna jest wynikiem nierówności rzeczywistej średniej wartości częstotliwości taktowania do wartości nominalnej. Jest trwały i można go zrekompensować. Jak to zrobić, zostanie omówione poniżej. Losowy składnik błędu powstaje z powodu wahań częstotliwości generatora zegara. Czynników, które go powodują, jest całkiem sporo. Są to niestabilność i tętnienia napięcia zasilania, szumy własne elementów generatora, wpływ temperatury itp. W urządzeniach high-end stosuje się cały szereg środków minimalizujących szkodliwe działanie takich czynników, aż po stabilizację termiczną i ochrona przed wibracjami generatora zegara. Jednak tego typu błąd można jedynie ograniczyć, nie można go całkowicie wyeliminować. W autorskim egzemplarzu urządzenia nie przekracza ± 0,001%. Oznacza to, że częstotliwość 5 MHz jest mierzona z błędem ±50 Hz. 2. Błąd dyskretyzacji wyniku pomiaru. Zna go każdy, kto kiedykolwiek miał do czynienia z jakimkolwiek cyfrowym przyrządem pomiarowym. Genezę tego błędu wyjaśniają wykresy na ryc. 3. W zależności od względnego położenia na osi czasu granic przedziału pomiarowego oraz odnotowanych przez licznik spadków sygnału mierzonego, wynik zliczania może różnić się o jeden. Na przykład w przypadku pokazanym na rysunku można zliczyć 6 lub 7 impulsów z rzeczywistą częstotliwością powtarzania około 6,6 Hz (z interwałem zliczania 1 s). Efekt ten jest zachowany przy dowolnym stosunku mierzonej częstotliwości do interwału zliczania. Gdy pomiar jest powtarzany wiele razy, najmniej znacząca cyfra jego wyniku „przeskakuje” o jeden z cyklu na cykl. Względna wartość tego błędu rośnie odwrotnie proporcjonalnie do mierzonej częstotliwości. Na przykład częstotliwość około 100 Hz zostanie zmierzona ze średnim błędem względnym wynoszącym ±0,5%. Przy częstotliwości kilku megaherców i wyższej błąd próbkowania można pominąć. Tutaj przeważa losowy składnik czasu trwania przedziału pomiarowego.
Blok programu realizujący pomiar częstotliwości został, podobnie jak cały program, opracowany w systemie programowania BASCOM AVR. Wchodząc w tryb licznika częstotliwości program odpowiednio konfiguruje elementy struktury wewnętrznej mikrokontrolera biorące udział w pomiarze częstotliwości: - Linia PF3 odbierająca sygnał wejściowy skonfigurowana jest jako wejście generujące zdarzenia przy narastających spadkach sygnału, a kanał 3 routera zdarzeń - do sygnalizacji o tych zdarzeniach: Portf_pin3ctrl=1 Evsys_ch3mux=&B01111011 - konfiguruje timer-licznik TCF0 do generowania interwału pomiarowego o czasie trwania 1 s: config Tcf0=Normal, Prescale=7 Tcf0_per=31249 - konfiguruje timer-licznik TCC1 do zliczania zdarzeń przychodzących przez kanał 3 routera z linii PF3: config Tcc1=Normalny Tcc1_ctrl=&B00001011 Tcc1_ctrld=&B00001011 i kanał 4 routera - do sygnalizacji przepełnienia licznika czasu TCC1: Evsys_ch4mux=&B11001000 - konfiguruje timer-licznik do zliczania zdarzeń pochodzących z kanału 4 routera: config Tcd1=Normalny Tcd1_ctrl=&w00001100 Tcd1_ctrld=&w00011100 W rezultacie liczniki czasu TCC1 i TCD1 tworzą jeden 32-bitowy licznik. System jest teraz gotowy do zliczania okresów mierzonego sygnału. Co więcej, już trwa, ponieważ każde z rozważanych urządzeń zaczyna działać natychmiast po inicjalizacji. Aby jednak uzyskać poprawny wynik, konieczne jest rozpoczęcie liczenia zdarzeń od zera na początku interwału pomiarowego. Dlatego cykl pomiarowy powinien rozpocząć się od jednoczesnego zerowania wszystkich trzech uczestniczących w nim timerów-liczników. Szczególnie ważne jest powiązanie z początkiem interwału pomiarowego (momentem restartu timera TCF0) momentu restartu timera-licznika TCC1 pracującego na najwyższych obrotach. Kwestia ścisłego powiązania momentu ponownego uruchomienia licznika czasu TCD1 z początkiem przedziału pomiarowego nie jest tak dotkliwa. Pierwsze zdarzenie, które będzie musiał policzyć, wystąpi dopiero w przypadku przepełnienia licznika czasu TCC1. Chociaż przewidziana jest możliwość jednoczesnego ponownego uruchomienia kilku liczników czasu w mikrokontrolerze, jest ona realizowana tylko poprzez system zdarzeń. W rozpatrywanym przypadku nie można go zastosować, ponieważ licznik czasu TCC1 jest skonfigurowany do odbierania sygnałów zdarzeń z kanału 3 i nie może odbierać sygnałów zdarzeń z innych kanałów bez rekonfiguracji. Dlatego tylko procesor może wydać licznikom czasu polecenie ponownego uruchomienia i tylko jeden po drugim. Cykl pomiaru częstotliwości składa się z dwóch etapów: właściwego pomiaru i powstania jego wyniku. Fazę pomiaru opisuje pięć kolejnych linii programu: Tcf0_ctrlfset=&B00001000 Tcc1_ctrlfset=&B00001000 Tcd1_ctrlfset=&B00001000 Bitwait Tcf0_intflags.0, Ustaw Evsys_ch3mux=&B00000000 Pierwsze trzy wiersze tego fragmentu restartują liczniki czasu w kolejności TCF0, TCC1, TCD1. Tym samym timer-licznik TCC1 rozpoczyna zliczanie zdarzeń nie na początku interwału pomiarowego liczonego przez timer-licznik TCF0, ale z opóźnieniem Δt1 względem tego momentu (ryc. 4). Jest równy czasowi trwania operacji resetowania procesora licznika czasu TCC1. Następnie z takim samym opóźnieniem procesor restartuje timer-licznik TCD1, po czym rozpoczyna oczekiwanie na koniec interwału pomiarowego. Kiedy ten moment nadejdzie, licznik czasu TCF0 ustawi flagę żądania przerwania przepełnienia w bicie zerowym rejestru TCF0_JNTFLAGS.
Po wykryciu tej flagi procesor musi uniemożliwić licznikowi czasu TCC1 dalsze zliczanie zdarzeń (okresów mierzonego sygnału). Można to zrobić na różne sposoby. W naszym przypadku ostatnia operacja kroku pomiarowego, procesor po prostu wyłącza kanał 3 routera zdarzeń. Do tej operacji potrzebuje czasu Δt2 (rys. 4), podczas którego trwa liczenie okresów. Jeśli t2 t1, rzeczywisty czas trwania zliczania zdarzeń (pomiarów częstotliwości) różni się o Δt2 - t1 od zadanego czasu trwania przedziału pomiarowego generuje to kolejną składową błędu pomiaru. Aby go wyeliminować, konieczne jest wyrównanie tych opóźnień. Jednak w programie w języku wysokiego poziomu (w tym BASCOM AVR) trudno jest określić dokładne wartości czasu ich trwania, ponieważ programista nie zna algorytmu tłumaczenia użytych konstrukcji językowych na polecenia maszynowe. Dlatego w prawdziwym programie fragmenty restartujące timer-licznik TCC!, jak również ustalające koniec przedziału pomiarowego i zatrzymujące TCC! są napisane w języku asemblera i podejmowane są działania zapewniające taki sam czas wykonania z tych fragmentów. Osiąga to równość Δt2 = t1 a co za tym idzie równość rzeczywistego czasu trwania podanego przedziału pomiarowego. Następnie rozważ zaimplementowaną w urządzeniu metodę eliminacji błędu systematycznego związanego z nierównością częstotliwości taktowania mikrokontrolera do wartości nominalnej. Jak zauważono powyżej, konsekwencją takiej rozbieżności jest odchylenie czasu trwania interwału pomiarowego od wymaganej wartości 1 s oraz proporcjonalne do tego odchylenie wartości mierzonej częstotliwości od rzeczywistej. Przede wszystkim należy zmierzyć to odchylenie. Będzie to wymagało przykładowego generatora sygnału o częstotliwości kilku megaherców lub zestawu dowolnego wystarczająco stabilnego generatora i przykładowego miernika częstotliwości. Sygnał z generatora podawany jest na gniazda 8 i 3 (wspólne) złącza X5 urządzenia. Kody z pliku Osc-Volt-2_03.hex załączonego do artykułu ładowane są do pamięci programowej mikrokontrolera urządzenia. Po włączeniu urządzenie przełączane jest w tryb licznika częstotliwości i mierzona jest przez niego częstotliwość przykładowego generatora. Pomiar należy powtórzyć 10-20 razy, a następnie obliczyć średnią zmierzoną wartość częstotliwości Fism. Współczynnik korygujący jest obliczany na podstawie wzoru K=Farr/Fism, gdzie farr - częstotliwość przykładowego generatora. Aby wprowadzić współczynnik K do programu, w pliku Osc-Volt-2_03.bas (kod źródłowy programu) należy znaleźć zakomentowaną linię kompensacja: 'Temp2=Temp2*1.000004 Jest oznaczony Kompensacja: aby ułatwić znalezienie. Należy go odkomentować, a mnożnik 1.000004 (ta wartość obowiązuje dla autorskiego egzemplarza urządzenia) zastąpić znalezioną wartością współczynnika korekcji K. Następnie należy skompilować poprawiony program i wczytać kody z wynikowego pliku HEX do pamięci programu mikrokontrolera. Jak już wspomniano, sygnał, którego częstotliwość należy zmierzyć, podawany jest na gniazdo 8 złącza X5 urządzenia, skąd wchodzi na wejście mikrokontrolera PF3. Oczywiste jest, że mikrokontroler jest w stanie poprawnie odebrać tylko taki sygnał, którego poziomy odpowiadają tym akceptowanym w logice trzy- lub pięciowoltowej. Do pomiaru częstotliwości sygnałów o innej postaci (na przykład sinusoidalnej) wymagany jest dodatkowy sterownik. Dobre wyniki uzyskuje się stosując sondę porównawczą opisaną w [5]. Można go podłączyć do gniazda X5 instrumentu. Wystarczy przesłać z opłaty A! podłączyć urządzenie do wolnego gniazda 2 tego złącza napięciem +5 lub +3,3 V w celu zasilenia sondy (działa przy dowolnej z podanych wartości napięcia). Podłącz sondę zgodnie ze schematem pokazanym na rys. 5.
Widok ekranu wskaźnika przyrządu w trybie licznika częstotliwości pokazano na ryc. 6.
Do tego trybu wchodzi się z normalnego trybu analizatora stanów logicznych przez naciśnięcie klawisza „LA”. Przełącz urządzenie z trybu licznika częstotliwości do innych trybów, naciskając następujące klawisze: „OS” - do trybu oscyloskopu; "LA" - do trybu analizatora stanów logicznych; „GN” - w trybie generatora sygnału. Program mikrokontrolera można pobrać z ftp://ftp.radio.ru/pub/2015/09/combi2-03.zip. literatura
Autor: A. Sawczenko Zobacz inne artykuły Sekcja Technologia pomiarowa. Czytaj i pisz przydatne komentarze do tego artykułu. Najnowsze wiadomości o nauce i technologii, nowa elektronika: Maszyna do przerzedzania kwiatów w ogrodach
02.05.2024 Zaawansowany mikroskop na podczerwień
02.05.2024 Pułapka powietrzna na owady
01.05.2024
Inne ciekawe wiadomości: ▪ Okulary Microsoft HoloLens Augmented Reality dla chirurgów ▪ Uzyskano nową krystaliczną formę krzemu ▪ System rozpoznawania gestów oparty na falach radiowych 60 GHz Wiadomości o nauce i technologii, nowa elektronika
Ciekawe materiały z bezpłatnej biblioteki technicznej: ▪ część witryny internetowej elektryka. Wybór artykułu ▪ Artykuł Farmakologia. Kołyska ▪ artykuł Czym oddychamy? Szczegółowa odpowiedź ▪ artykuł Domowy wykrywacz wycieku gazu. Encyklopedia elektroniki radiowej i elektrotechniki ▪ artykuł Łączenie papieru. Sekret ostrości
Zostaw swój komentarz do tego artykułu: Wszystkie języki tej strony Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn www.diagram.com.ua |