Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Двутональный многочастотный (DTMF) генератор на AVR. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Телефония

Комментарии к статье Комментарии к статье

Отличительные особенности

  • Генерация синусоидальных сигналов с использованием широтно-импульсной модуляции (ШИМ)
  • Объединение различных синусоидальных сигналов в один DTMF-сигнал
  • Исходные коды на языках ассемблер и Си
  • Разработан для совместной работы с STK500
  • Размер кода программы 260 байт/размер таблицы констант 128 байт
  • Использование метода табличного преобразования

Введение

Данный документ описывает методику генерации DTMF-сигналов (двутональные многочастотные сигналы) с использованием любого AVR-микроконтроллера, содержащего блок широтно-импульсной модуляции (ШИМ) и статическое ОЗУ. Данные сигналы находят широкое применение в телефонии, где они воспроизводятся при нажатии на кнопки набора номера телефонного аппарата. Для правильной генерации DTMF-сигнала необходимо наложить две частоты вместе: низкую частоту (fb) и высокую частоту (fa). В таблице 1 показано как смешиваются различные частоты для получения DTMF-тонов при нажатии на различные клавиши.

Двутональный многочастотный (DTMF) генератор на AVR. Схема генератора DTMF-сигнала
Рисунок 1. Схема генератора DTMF-сигнала

Таблица 1. Матрица формирования тонального сигнала

fb/fa 1209 Гц 1336 Гц 1477 Гц 1633 Гц
697 Гц 1 2 3 A
770 Гц 4 5 6 B
852 Гц 7 8 9 C
941 Гц * 0 # D

В строках таблицы 1 представлены значения низкой частоты, а в столбцах - значения высокой частоты. Например, в матрице показано, что при нажатии на кнопку "5" должны смешиваться частоты fb = 770 Гц и fa = 1336 Гц. В результате сложения двух синусоидальных сигналов разных частот образуется DTMF-сигнал

(1)

где отношение амплитуд K=Ab/Aa исходных сигналов должно отвечать условию

(2)

Принцип действия

Помимо общих сведений об использовании широтно-импульсной модуляции далее будет показано как широтно-импульсная модуляция позволяет генерировать синусоидальные сигналы. В следующем параграфе описывается как, используя базовую частоту ШИМ получить различные частоты. После рассмотрения теоретических основ будет дано описание непосредственно генератора DTMF-сигнала. Генерация синусоидальных сигналов

В зависимости от соотношения длительности высокого VH и низкого VL уровней напряжения среднее значение на выходе ШИМ изменяется. Если соотношение между длительностями обоих уровней удерживать постоянным, то в результате будет генерироваться постоянный уровень напряжения VAV. Рисунок 2 показывает сигнал с широтно-импульсной модуляцией.

Двутональный многочастотный (DTMF) генератор на AVR. Генерация уровня постоянного напряжения
Рисунок 2. Генерация уровня постоянного напряжения

Уровень напряжения определяется выражением:

(3)

Синусоидальный сигнал может генерирован при условии, что среднее значение напряжения, генерируемого широтно-импульсной модуляцией будет изменяться каждый период ШИМ. Соотношение между высоким и низким уровнями должно задаваться в соответствие с уровнем напряжения синусоидального сигнала при соответствующем времени. На рисунке 3 иллюстрируется данный процесс. Исходные данные для ШИМ вычисляются для каждого ее периода и записываются в таблицу преобразования (ТП).

Рисунок 3 также иллюстрирует зависимость между частотой основного синусоидального сигнала и количеством выборок. Чем выше число выборок (Nc) - тем выше точность моделирования результирующего сигнала:

(4)

где f - частота синусоидального сигнала (1/T)
f1 - частота ШИМ (fCK/510)
T - период основного синусоидального сигнала;
fCK - тактовая частота таймера;
NC - количество выборок (=12 на рис. 3)

Частота ШИМ зависит от разрешающей способности ШИМ. При 8-разрядном разрешении, конечное значение (вершина счета) таймера равно 0xFF (255). Т.к. таймер выполняет счет в прямом и обратном направлениях, то данное значение должно быть удвоено. Поэтому, частота ШИМ может быть вычислена путем деления тактовой частоты таймера fCK на 510. Таким образом, при частоте тактирования таймера 8 МГц результирующая частота ШИМ составит 15.6 кГц .

Двутональный многочастотный (DTMF) генератор на AVR
Рисунок 3. Генерация синусоидального сигнала с использованием ШИМ

Изменение частоты синусоидального сигнала

Предположим, что синусоидальные выборки считываются из таблицы преобразования не последовательно, а через одну. В этом случае при той же частоте чтения выборок будет генерироваться сигнал с удвоенной частотой (см. рисунок 4).

Двутональный многочастотный (DTMF) генератор на AVR
Рисунок 4. Удвоение результирующей частоты (XSW = 2)

По аналогии, если считывать не каждое второе значение, а каждое третье, четвертое, пятое (соответственно, ширина шага 3, 4, 5…) и т.д. можно генерировать Nc-частот в диапазоне [1/T Гц .. 0 Гц]. Обратите внимание, что для высоких частот результирующая форма сигнала не будет синусоидальной. Ширину шага по таблице преобразования обозначим как XSW, где

(5)

Вычисление текущей позиции в ТП для следующего периода ШИМ (при переполнении таймера) выполняется с помощью выражения (6). Новое значение в позиции XLUT зависит от его предыдущего состояния в позиции X'LUT с прибавлением ширины шага XSW

(6)

где XLUT - предыдущая позиция в таблице преобразования;
X'LUT - текущая позиция в таблице преобразования.

Сложение разных частот для получения 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)

где XLUTa,b - текущая позиция элемента в таблице преобразования (фактический формат);
XLUTa,bExt -предыдущая позиция элемента в таблице преобразования (расширенный формат);
ROUND - функция округления.

Двутональный многочастотный (DTMF) генератор на AVR. Схема модуля для подключения к STK500
Рисунок 5. Схема модуля для подключения к STK500

ШИМ-сигнал формируется на выводе OC1A (PD5). Дополнительный выходной фильтр будет способствовать большему соответствию синусоидальной форме сигнала. При уменьшении частоты ШИМ может возникнуть необходимость применения фильтра с более крутой АЧХ для получения хорошего результата.

Подключение клавиатуры показано на рисунке 1. Работа клавиатуры должна быть организована таким образом, чтобы была возможность определения нажатой клавиши. Это может быть выполнено по следующему алгоритму:

  1. Определение строки нажатой клавиши
    • настроить младшую тетраду порта В на выход и установить лог. "0"
    • настроить старшую тетраду порта В на вход с подключением подтягивающих резисторов
    • строка с нажатой кнопкой определяется как разряд старшей тетрады с лог. "0"
  2. Определение столбца нажатой клавиши
    • настроить старшую тетраду порта В на выход и установить лог. "0"
    • настроить младшую тетраду порта В на вход с подключением подтягивающих резисторов
    • столбец с нажатой кнопкой определяется как разряд младшей тетрады с лог. "0"

Прим.: В STK200 между выводами разъема PORTB и выводами микроконтроллера BP5, PB6 и PB7 включены последовательно резисторы (см. схему STK200). Это вызовет проблемы если клавиатура подключена к разъему PORTB.

Рисунок 6 иллюстрирует работу подпрограммы по определению нажатой клавиши. В зависимости от нажатой клавиши определяется длительность интервала. Процедура обработки прерывания использует это значение для вычисления установок ШИМ для двух синусоид DTM-тона. Процедура обработки прерывания показана на рисунках 7 и 8.

Эта процедура вычисляет значение для сравнения с выходом таймера на следующий период ШИМ. Процедура обработки прерываний сперва вычисляет позицию значения следующей выборки в таблице преобразования и считывает сохраненное там значение.

Позиция выборки в таблице преобразования определяется длительностью импульса, а собственно длительность импульса определяется генерируемой частотой.

Окончательное значение, которое записывается в регистр сравнения таймера, определяется с использованием формулы (7), где учитываются значения выборок обеих DTMF-частот.

Двутональный многочастотный (DTMF) генератор на AVR. Блок-схема основной программы
Рисунок 6. Блок-схема основной программы

Двутональный многочастотный (DTMF) генератор на AVR. Блок-схема процедуры обработки прерывания по переполнению таймера
Рисунок 7. Блок-схема процедуры обработки прерывания по переполнению таймера

Двутональный многочастотный (DTMF) генератор на AVR. Блок-схема процедуры чтения выборки "GetSample"
Рисунок 8. Блок-схема процедуры чтения выборки "GetSample"

Публикация: cxem.net

Смотрите другие статьи раздела Телефония.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Хорошо управляемые луга могут компенсировать выбросы от скота 15.02.2026

Животноводство, особенно разведение крупного рогатого скота, часто обвиняют в значительном вкладе в глобальное потепление из-за мощного парникового газа - метана, который выделяется при пищеварении у жвачных животных. Это вызывает острые политические споры и призывы к сокращению потребления мяса. Однако ученые напоминают, что полная картина климатического воздействия отрасли не ограничивается только выбросами от животных: огромную роль играет окружающая экосистема - пастбища, почва и растительность, которые способны активно поглощать углекислый газ из атмосферы. Исследователи из Университета Небраски-Линкольна решили глубже изучить этот баланс. Группа под руководством профессора Галена Эриксона сосредоточилась на том, как правильно организованные пастбища накапливают углерод в растениях и грунте благодаря естественным процессам, стимулируемым выпасом скота. Ученые подчеркивают, что при достаточном уровне осадков и грамотном управлении такие луга превращаются в мощные природные погло ...>>

NASA тестирует инновационную технологию крыла 15.02.2026

Коммерческая авиация ежегодно расходует колоссальные объемы керосина, что сказывается не только на бюджете авиакомпаний, но и на состоянии окружающей среды. В 2024 году глобальные затраты на авиационное топливо достигли 291 миллиарда долларов, и эта сумма продолжает расти. Чтобы справиться с этими вызовами, NASA активно работает над технологиями, способными заметно повысить аэродинамическую эффективность самолетов. Одним из самых перспективных направлений стало создание специальной конструкции крыла, которая максимизирует естественный ламинарный поток воздуха и минимизирует сопротивление. В январе 2026 года специалисты NASA Armstrong Flight Research Center успешно провели важный этап наземных испытаний концепции Crossflow Attenuated Natural Laminar Flow (CATNLF). Для эксперимента под фюзеляж исследовательского самолета F-15B закрепили вертикально ориентированную масштабную модель высотой около 0,9 м (3 фута), напоминающую узкий киль. Такая компоновка позволила подвергнуть прототип р ...>>

Забота о внуках очень полезна для здоровья мозга 14.02.2026

Общение между поколениями приносит радость всей семье, но мало кто задумывается, насколько активно бабушки и дедушки, заботящиеся о внуках, поддерживают свою умственную форму. Регулярное взаимодействие с детьми стимулирует мозг пожилых людей, помогая сохранять память, скорость мышления и общую когнитивную активность. Новые научные данные подтверждают, что такая добровольная помощь не только важна для общества, но и может замедлять возрастные изменения в мозге. Исследователи из Тилбургского университета в Нидерландах провели анализ, чтобы понять, приносит ли уход за внуками реальную пользу здоровью пожилых людей. Ведущий автор работы Флавия Черечес отметила, что многие бабушки и дедушки регулярно присматривают за детьми, и оставался открытым вопрос, насколько это положительно сказывается на их собственном благополучии, особенно в плане когнитивных функций. Ученые поставили цель выяснить, способен ли регулярный уход за внуками замедлить снижение памяти и других умственных способ ...>>

Случайная новость из Архива

Усталость от мыслей 21.08.2022

Устать можно не только от физической работы, но и от мыслей - не от каких-то определенных тяжелых мыслей, а от умственного напряжения.

Многие знают, что вечером хуже соображаешь, чем утром, что вечером бывает трудно вспомнить, что ты ел сегодня на завтрак, не говоря уже о том, чтобы спланировать следующий день. Кто-то объясняет это тем, что мозг расходует энергию - а он действительно расходует энергию - и на сложные умственные задачи энергии уходит больше, чем на простые.

Когнитивная усталость - признак истощения мозга, и избавиться от нее можно, снабдив мозг едой, например, глюкозой. Но энергетическую гипотезу, несмотря на ее очевидность, экспериментально подтвердить не удалось. Мозг-то расходует энергию, но умственное утомление возникает не от этого.

Исследователи из парижского Института мозга, больницы Питье-Сальпетриер и Университета Сорбонны пишут в Current Biology, что причина здесь может быть в нейромедиаторе глутамате. Глутамат (глутаминовая кислота) используют самые разные нейронные цепи, в том числе и те, которые участвуют в памяти и обучении. При этом избыток глутамата вредит нейронам - из-за него они перевозбуждаются и гибнут. В своих экспериментах исследователи использовали магнитную резонансную спектроскопию, которая с помощью радиоволн и магнитного поля позволяет оценить количество и распределение глутамата в мозге.

Тридцать девять подопытных добровольцев выполняли разные задания, которые должны были утомить их мозг. В одном случае на экране перед человеком быстро мелькали цифры и буквы, и нужно было так же быстро определить, какого цвета была цифра или буква, была ли буква строчной или прописной и т. д.

В другом случае нужно было сравнивать цифру, которую ты видишь прямо сейчас, с цифрой, которую ты видел три символа назад - то есть тут надо было постоянно держать в уме появляющиеся и исчезающие цифры. Для сравнения другая группа добровольцев выполняла те же задания, но в более простом варианте.

Другие интересные новости:

▪ Отсрочить глобальное потепление

▪ Видеонаблюдение в московских школах

▪ Microsoft Windows Phone 7

▪ Мозговой имплант для слепых

▪ Мозг, переживший сотрясение, стареет быстрее

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Зрительные иллюзии. Подборка статей

▪ статья Следствие ведут знатоки. Крылатое выражение

▪ статья Какой христианский лидер публично поцеловал Коран? Подробный ответ

▪ статья Функциональный состав телевизоров Sony. Справочник

▪ статья Кварцевый резонатор преобразует неэлектрические величины в электрические. Энциклопедия радиоэлектроники и электротехники

▪ статья Dendy: выбор, эксплуатация, ремонт. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026