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

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

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

<< Назад

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

Микропластик в атмосфере - скрытый ускоритель глобального потепления 31.05.2026

Микропластик уже давно признан одним из самых масштабных загрязнителей планеты. Он проникает в океаны, почву, организмы животных и даже в тело человека. Однако до недавнего времени мало кто задумывался о его влиянии на климатические процессы. Новое исследование показало, что микро- и нанопластик в атмосфере способен поглощать тепло, тем самым внося дополнительный вклад в глобальное потепление. Ученые обнаружили, что воздействие пластиковых частиц на климат зависит от их цвета. Светлые частицы отражают солнечный свет и способствуют некоторому охлаждению, в то время как более темные - активно поглощают тепло и излучение. Со временем пластик в атмосфере темнеет под воздействием ультрафиолета, что усиливает его согревающий эффект. Этот процесс напоминает пожелтение пластиковых парковочных талонов, оставленных на солнце. Соавтор исследования, заслуженный профессор наук о Земле в Университете Дьюка Дрю Шинделл отметил, что влияние микропластика на изменение климата пока относительно не ...>>

Универсальный бытовой робот-гуманоид GigaAI SeeLight S1 31.05.2026

Развитие робототехники постепенно переносит сложные машины из промышленных цехов прямо в повседневную жизнь людей. Китайская компания GigaAI сделала важный шаг в этом направлении, представив SeeLight S1 - первую в стране модель универсального бытового робота-гуманоида. Эта разработка призвана взять на себя рутинные домашние дела и стать настоящим помощником в повседневной жизни. Уже в конце текущего месяца сотня роботов SeeLight S1 начнет проходить испытания в специализированном жилом комплексе, предназначенном для работников высокотехнологичных отраслей. По словам генерального директора GigaAI Чжу Чжэна, в первой половине 2027 года роботы будут переданы для бесплатного тестирования обычным семьям в Ухане - столице провинции Хубэй. Такой подход позволит собрать реальные данные о работе устройства в домашних условиях. В демонстрационном видео робот, передвигающийся на колесах, уверенно справляется с множеством бытовых задач. Он нарезает овощи, жарит яйца, загружает стиральную маши ...>>

Вкусовые пристрастия формируются еще в утробе 30.05.2026

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

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

NOKIA создала телефон для спортсменов 13.02.2004

Nokia представила мобильный телефон для путешественников и спортсменов.

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

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

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

▪ Трамвай без проводов

▪ Говядина из пробирки

▪ Samsung уже работает над мобильной связью 6G

▪ Новые светодиоды CREE

▪ Раскрыт секрет незамерзающей воды на Марсе

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

 

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

▪ раздел сайта Детекторы напряженности поля. Подборка статей

▪ статья Электрошинковка. Чертеж, описание

▪ статья Почему у кометы есть хвост? Подробный ответ

▪ статья Питьевой режим. Советы туристу

▪ статья Двухкристальный фильтр для SSB. Энциклопедия радиоэлектроники и электротехники

▪ статья Вакуумный люминесцентный индикатор ИЛЦ1-5/7М. Энциклопедия радиоэлектроники и электротехники

[an error occurred while processing this directive] Оставьте свой комментарий к этой статье:

Имя:


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


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





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

www.diagram.com.ua

www.diagram.com.ua
2000-2026