Bezpłatna biblioteka techniczna ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ Dwutonowy generator wieloczęstotliwościowy (DTMF) w amplitunerze AVR. Encyklopedia elektroniki radiowej i elektrotechniki Encyklopedia radioelektroniki i elektrotechniki / Telefonia Odmienność
Wprowadzenie W tym dokumencie opisano sposób generowania sygnałów DTMF (Dual Tone Multi-Frequency) przy użyciu dowolnego mikrokontrolera AVR zawierającego blok modulacji szerokości impulsu (PWM) i SRAM. Sygnały te są szeroko stosowane w telefonii, gdzie są odtwarzane po naciśnięciu przycisków wybierania numeru telefonu. Aby prawidłowo wygenerować sygnał DTMF, dwie częstotliwości muszą się na siebie nałożyć: niska częstotliwość (fb) i wysoka częstotliwość (fa). Tabela 1 pokazuje, jak różne częstotliwości są mieszane w celu wytworzenia tonów DTMF po naciśnięciu różnych klawiszy.
Tabela 1. Matryca kształtowania tonów
Wiersze Tabeli 1 reprezentują wartości o niskiej częstotliwości, a kolumny pokazują wartości o wysokiej częstotliwości. Na przykład macierz pokazuje, że wciśnięcie przycisku „5” powinno mieszać częstotliwości fb = 770 Hz i fa = 1336 Hz. W wyniku dodania dwóch sygnałów sinusoidalnych o różnych częstotliwościach powstaje sygnał DTMF (1) gdzie stosunek amplitud K=Ab/Aa sygnały źródłowe muszą spełniać warunek (2) Zasada działania Oprócz ogólnych informacji na temat korzystania z modulacji szerokości impulsu, poniżej pokazano, w jaki sposób modulacja szerokości impulsu umożliwia generowanie sygnałów sinusoidalnych. W poniższym akapicie opisano, jak uzyskać różne częstotliwości przy użyciu podstawowej częstotliwości PWM. Po rozważeniu podstaw teoretycznych podany zostanie opis samego generatora sygnału DTMF. Generowanie sygnałów sinusoidalnych W zależności od stosunku czasu trwania wysokiego napięcia VH i niskiego napięcia VL zmienia się wartość średnia na wyjściu PWM. Jeśli stosunek czasu trwania obu poziomów jest utrzymywany na stałym poziomie, w rezultacie zostanie wygenerowany stały poziom napięcia VAV. Rysunek 2 przedstawia sygnał z modulacją szerokości impulsu.
Poziom napięcia określa wyrażenie: (3) Można wygenerować sygnał sinusoidalny pod warunkiem, że średnia wartość napięcia generowanego przez modulację szerokości impulsu będzie się zmieniać w każdym cyklu PWM. Stosunek między wysokim a niskim poziomem musi być ustawiony zgodnie z poziomem napięcia sygnału sinusoidalnego w odpowiednim czasie. Rysunek 3 ilustruje ten proces. Początkowe dane dla PWM są obliczane dla każdego z jego okresów i zapisywane w tabeli konwersji (TP). Rysunek 3 ilustruje również zależność między częstotliwością podstawowej fali sinusoidalnej a liczbą próbek. Im większa liczba próbek (Nc) – tym większa dokładność modelowania sygnału wynikowego: (4)
Częstotliwość PWM zależy od rozdzielczości PWM. Przy rozdzielczości 8-bitowej wartość końcowa (górna część licznika) timera to 0xFF (255). Ponieważ timer odlicza w górę iw dół, wartość tę należy podwoić. Dlatego częstotliwość PWM można obliczyć, dzieląc zegar timera fCK o 510. Tak więc, przy częstotliwości zegara timera 8 MHz, wynikowa częstotliwość PWM wyniesie 15.6 kHz.
Zmiana częstotliwości sygnału sinusoidalnego Załóżmy, że próbki sinusoidalne są odczytywane z tabeli przeglądowej nie sekwencyjnie, ale pojedynczo. W takim przypadku przy tej samej częstotliwości próbkowania zostanie wygenerowany sygnał o podwójnej częstotliwości (patrz rysunek 4).
Analogicznie, jeśli odczytujesz nie co drugą wartość, ale co trzecią, czwartą, piątą (odpowiednio szerokość kroku wynosi 3, 4, 5 ...) itd. możliwe jest generowanie częstotliwości Nc w zakresie [1/T Hz .. 0 Hz]. Należy zauważyć, że dla wysokich częstotliwości wynikowy przebieg nie będzie sinusoidalny. Szerokość kroku zgodnie z tabelą konwersji jest oznaczona jako XSWGdzie (5) Obliczenie aktualnej pozycji w TP dla następnego okresu PWM (gdy timer się przepełni) wykonuje się za pomocą wyrażenia (6). Nowa wartość w pozycji XLUT zależy od jego poprzedniego stanu na pozycji X'LUT z dodatkiem szerokości stopnia XSW (6)
Dodawanie różnych częstotliwości w celu uzyskania sygnału DTMF Sygnał DTMF można wygenerować za pomocą wyrażeń (1) i (2). Dla uproszczenia operacji arytmetycznych przyjmuje się wartość współczynnika K równą 0.75, aby zastąpić operację arytmetyczną przesunięciami logicznymi. Biorąc pod uwagę wyrażenie (6), wartość prądu dla sterowania PWM można obliczyć ze wzoru: (7) oraz mając na uwadze, że XLUta=X'LUta + XSW,XLUtb=X'LUtb + XSWb, w końcu piszemy (8) Implementacja generatora DTMF W tym dodatku omówiono budowę generatora tonowego DTMF przy użyciu 8-bitowego wyjścia PWM (OC1A) i tablicy zawierającej 128 próbek funkcji sinusoidalnych (Nc), z których każda jest określona przez 7 bitów (n). Poniższe wyrażenia pokazują tę zależność, a także pokazują, jak obliczyć elementy tabeli przeglądowej: (9) Zaletą korzystania z 7 bitów jest to, że suma wartości sygnału wysokiej i niskiej częstotliwości ma rozmiar jednego bajta. Aby obsłużyć pełny zestaw tonów DTMF, należy obliczyć 8 wartości dla każdej częstotliwości DTMF z Tabeli 1 i wprowadzić do tabeli konwersji. Aby osiągnąć większą precyzję, zastosowano następujące rozwiązanie: wartości obliczone za pomocą wyrażenia 5 wymagają tylko 5 bajtów. Aby wykorzystać wszystkie 8 bajtów, co zmniejszy błąd zaokrąglenia, wartość ta jest mnożona przez 8. W ten sam sposób zapisywany jest wskaźnik do tablicy konwersji. Ale w tym przypadku potrzeba dwóch bajtów do zapisania 8-krotności wartości. Oznacza to, że przed użyciem tych bajtów jako wskaźnika do wartości sinusoidy w (10)
Sygnał PWM jest generowany na pinie OC1A (PD5). Dodatkowy filtr wyjściowy pomoże lepiej dopasować przebieg sinusoidalny. Gdy częstotliwość PWM maleje, może być konieczne użycie filtra o bardziej stromej charakterystyce częstotliwościowej, aby uzyskać dobry wynik. Sposób podłączenia klawiatury przedstawiono na rysunku 1. Obsługa klawiatury musi być zorganizowana w taki sposób, aby możliwe było określenie wciśniętego klawisza. Można to zrobić za pomocą następującego algorytmu:
Uwaga: STK200 ma rezystory połączone szeregowo między stykami złącza PORTB a stykami BP5, PB6 i PB7 mikrokontrolera (patrz schemat STK200). Spowoduje to problemy, jeśli klawiatura jest podłączona do złącza PORTB. Figura 6 ilustruje działanie podprogramu do określania wciśniętego klawisza. W zależności od naciśniętego klawisza określany jest czas trwania interwału. Procedura przerwania wykorzystuje tę wartość do obliczenia ustawień PWM dla dwóch fal sinusoidalnych tonu DTM. Procedurę obsługi przerwania pokazano na rysunkach 7 i 8. Ta procedura oblicza wartość do porównania z wyjściem timera dla następnego okresu PWM. Procedura przerwania najpierw oblicza pozycję następnej wartości próbki w tablicy przeglądowej i odczytuje przechowywaną tam wartość. Pozycja próbki w tablicy przeglądowej jest określana przez czas trwania impulsu, a rzeczywisty czas trwania impulsu jest określany przez generowaną częstotliwość. Ostateczna wartość, która zapisywana jest do rejestru porównania timerów, jest wyznaczana za pomocą wzoru (7), który uwzględnia przykładowe wartości obu częstotliwości DTMF.
Publikacja: cxem.net Zobacz inne artykuły Sekcja Telefonia. Czytaj i pisz przydatne komentarze do tego artykułu. Najnowsze wiadomości o nauce i technologii, nowa elektronika: Otwarto najwyższe obserwatorium astronomiczne na świecie
04.05.2024 Sterowanie obiektami za pomocą prądów powietrza
04.05.2024 Psy rasowe chorują nie częściej niż psy rasowe
03.05.2024
Inne ciekawe wiadomości: ▪ Mieszkańcy krajów z migrantami częściej się uśmiechają ▪ Sen podwaja wydajność pamięci ▪ Inteligentny Projektor Uczestnika M3 Wiadomości o nauce i technologii, nowa elektronika
Ciekawe materiały z bezpłatnej biblioteki technicznej: ▪ sekcja serwisu Audiotechnika. Wybór artykułu ▪ artykuł Zygmunta (Sigmunda) Shlomo Freuda. Słynne aforyzmy ▪ artykuł Cięcie zębów na płótnach. warsztat domowy ▪ artykuł Oscylator kwarcowy. Encyklopedia elektroniki radiowej i elektrotechniki ▪ artykuł Przysłowia i powiedzenia nepalskie. Duży wybór
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 |