Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Двутональний багаточастотний (DTMF) генератор на AVR. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / телефонія Відмінні особливості
Запровадження Даний документ описує методику генерації DTMF-сигналів (двотональні багаточастотні сигнали) з використанням будь-якого AVR-мікроконтролера, що містить блок широтно-імпульсної модуляції (ШІМ) та статичну ОЗУ. Дані сигнали знаходять широке застосування телефонії, де вони відтворюються при натисканні на кнопки набору номера телефону. Для правильної генерації DTMF-сигналу необхідно накласти дві частоти: низьку частоту (fb) і високу частоту (fa). У таблиці 1 показано, як змішуються різні частоти для отримання DTMF-тонів при натисканні на різні клавіші.
Таблиця 1. Матриця формування тонального сигналу
У рядках таблиці 1 представлені значення низької частоти, а стовпцях - значення високої частоти. Наприклад, у матриці показано, що при натисканні на кнопку "5" повинні змішуватись частоти fb = 770 Гц та fa = 1336 Гц. В результаті складання двох синусоїдальних сигналів різних частот утворюється DTMF-сигнал. (1) де відношення амплітуд K=Ab/Aa вихідних сигналів має відповідати умові (2) Принцип дії Крім загальних відомостей про використання широтно-імпульсної модуляції, далі буде показано як широтно-імпульсна модуляція дозволяє генерувати синусоїдальні сигнали. У наступному параграфі описується як, використовуючи базову частоту ШІМ отримати різні частоти. Після розгляду теоретичних основ буде надано опис безпосередньо генератора DTMF-сигналу. Генерація синусоїдальних сигналів Залежно від співвідношення тривалості високого VH та низького VL рівнів напруги середнє значення на виході ШІМ змінюється. Якщо співвідношення між тривалостями обох рівнів утримувати постійним, то в результаті генеруватиметься постійний рівень напруги VAV. Малюнок 2 показує сигнал із широтно-імпульсною модуляцією.
Рівень напруги визначається виразом: (3) Синусоїдальний сигнал може генеруватися за умови, що середнє значення напруги, що генерується широтно-імпульсною модуляцією, буде змінюватися кожен період ШІМ. Співвідношення між високим і низьким рівнями має задаватися у відповідність до рівня напруги синусоїдального сигналу при відповідному часі. На малюнку 3 ілюструється цей процес. Вихідні дані для ШІМ обчислюються кожного її періоду і записуються в таблицю перетворення (ТП). Рисунок 3 також ілюструє залежність між частотою основного синусоїдального сигналу та кількістю вибірок. Чим вища кількість вибірок (Nc) - тим вища точність моделювання результуючого сигналу: (4)
Частота ШІМ залежить від роздільної здатності ШІМ. При 8-розрядній роздільній здатності, кінцеве значення (вершина рахунку) таймера дорівнює 0xFF (255). Т.к. таймер виконує рахунок у прямому та зворотному напрямках, то дане значення має бути подвоєне. Тому частота ШІМ може бути обчислена шляхом поділу тактової частоти таймера fCK на 510. Таким чином, при частоті тактування таймера 8 МГц результуюча частота ШІМ становитиме 15.6 кГц.
Зміна частоти синусоїдального сигналу Припустимо, синусоїдальні вибірки зчитуються з таблиці перетворення не послідовно, а через одну. В цьому випадку при тій же частоті читання вибірок генеруватиметься сигнал з подвоєною частотою (див. рисунок 4).
За аналогією, якщо зчитувати не кожне друге значення, а кожне третє, четверте, п'яте (відповідно ширина кроку 3, 4, 5 ...) і т.д. можна генерувати Nc-частот у діапазоні [1/T Гц.. 0 Гц]. Зауважте, що для високих частот результуюча форма сигналу не буде синусоїдальною. Ширину кроку за таблицею перетворення позначимо як XSW, Де (5) Обчислення поточної позиції ТП для наступного періоду ШІМ (при переповненні таймера) виконується за допомогою виразу (6). Нове значення у позиції XЛЮТ залежить від його попереднього стану позиції X'ЛЮТ з додаванням ширини кроку XSW (6)
Складання різних частот для отримання сигналу DTMF DTMF-сигнал може бути згенерований за допомогою виразів (1) та (2). Для простоти арифметичних дій значення коефіцієнта приймається рівним 0.75, щоб арифметичну дію замінити логічними зрушеннями. З урахуванням виразу (6) поточне значення для управління ШІМ може бути обчислено за виразом: (7) а з урахуванням, що XLUTa=X'LUTa + XSWA,XLUTb=X'LUTb + XSWb, остаточно запишемо (8) Реалізація DTMF-генератора У цьому додатку розглядається побудова DTMF тонального генератора з використанням виходу 8-розрядної ШІМ (OC1A) та таблиці зі 128 вибірками значень синусоїдальної функції (Nc), кожна з яких задається 7 бітами (n). Наступні вирази показують цю залежність, а також показують, як обчислити елементи таблиці перетворення: (9) Перевагою використання 7 біт є те, що сума значень сигналів високої та низької частоти має розмір одного байта. Для підтримки повного набору DTMF-тонів необхідно обчислити 8 значень кожної DTMF-частоти з таблиці 1 і занести їх у таблицю перетворення. Для досягнення вищої точності виконано наступне рішення: значення, обчислені за виразом 5, вимагають всього 5 байт. Для використання всіх 8 байт, що дозволить зменшити похибку округлення, це значення множиться на 8. Покажчик таблицю перетворення записується в такий же спосіб. Але в цьому випадку потрібно два байти для запам'ятовування 8-кратного значення. Це означає, що необхідно виконати 3 правосторонніх зсуву та операцію модуля з підстави Nc (логічне множення на Nc-1) перед використанням цих байт як покажчика на значення синусоїди в (10)
ШИМ сигнал формується на виведенні OC1A (PD5). Додатковий вихідний фільтр сприятиме більшій відповідності синусоїдальної форми сигналу. При зменшенні частоти ШІМ може виникнути необхідність застосування фільтра з крутішим АЧХ для отримання хорошого результату. Підключення клавіатури показано на малюнку 1. Робота клавіатури має бути організована таким чином, щоб була можливість визначення натиснутої кнопки. Це може бути виконано за таким алгоритмом:
Примітка: В STK200 між виводами роз'єму PORTB і виводами мікроконтролера BP5, PB6 та PB7 включені послідовно резистори (див. схему STK200). Це викликає проблеми, якщо клавіатура підключена до гнізда PORTB. Малюнок 6 ілюструє роботу підпрограми визначення натиснутої клавіші. Залежно від натиснутої кнопки визначається тривалість інтервалу. Процедура обробки переривання використовує це значення для обчислення установок ШІМ для двох синусоїд DTM-тону. Процедуру обробки переривання показано на рисунках 7 та 8. Ця процедура обчислює значення для порівняння з виходом таймера наступного періоду ШІМ. Процедура обробки переривань спочатку обчислює позицію значення наступної вибірки таблиці перетворення і зчитує збережене там значення. Позиція вибірки в таблиці перетворення визначається тривалістю імпульсу, а власне тривалість імпульсу визначається частотою, що генерується. Остаточне значення, яке записується в регістр порівняння таймера, визначається з використанням формули (7), де враховуються значення вибірок обох частот DTMF.
Публікація: cxem.net Дивіться інші статті розділу телефонія. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Запрацювала найвища у світі астрономічна обсерваторія
04.05.2024 Управління об'єктами за допомогою повітряних потоків
04.05.2024 Породисті собаки хворіють не частіше, ніж безпородні
03.05.2024
Інші цікаві новини: ▪ Жителі країн із мігрантами посміхаються частіше ▪ Сон подвоює ефективність пам'яті Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Аудіотехніка. Добірка статей ▪ стаття Сигізмунд (Зигмунд) Шломо Фрейд. Знамениті афоризми ▪ стаття Вирубування зубів на полотнах. Домашня майстерня ▪ стаття Кварцовий генератор. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Непальські прислів'я та приказки. Велика добірка
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |