Menu English Ukrainian Russian 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.04.2024

В мире современных технологий, где удаленность становится все более обыденной, сохранение связи и чувства близости играют важную роль. Недавние разработки немецких ученых из Саарского университета в области искусственной кожи представляют новую эру в виртуальных взаимодействиях. Немецкие исследователи из Саарского университета разработали ультратонкие пленки, которые могут передавать ощущение прикосновения на расстоянии. Эта передовая технология предоставляет новые возможности для виртуального общения, особенно для тех, кто оказался вдали от своих близких. Ультратонкие пленки, разработанные исследователями, толщиной всего 50 микрометров, могут быть интегрированы в текстильные изделия и носиться как вторая кожа. Эти пленки действуют как датчики, распознающие тактильные сигналы от мамы или папы, и как исполнительные механизмы, передающие эти движения ребенку. Прикосновения родителей к ткани активируют датчики, которые реагируют на давление и деформируют ультратонкую пленку. Эта ...>>

Кошачий унитаз Petgugu Global 15.04.2024

Забота о домашних животных часто может быть вызовом, особенно когда речь заходит о поддержании чистоты в доме. Представлено новое интересное решение стартапа Petgugu Global, которое облегчит жизнь владельцам кошек и поможет им держать свой дом в идеальной чистоте и порядке. Стартап Petgugu Global представил уникальный кошачий унитаз, способный автоматически смывать фекалии, обеспечивая чистоту и свежесть в вашем доме. Это инновационное устройство оснащено различными умными датчиками, которые следят за активностью вашего питомца в туалете и активируются для автоматической очистки после его использования. Устройство подключается к канализационной системе и обеспечивает эффективное удаление отходов без необходимости вмешательства со стороны владельца. Кроме того, унитаз имеет большой объем смываемого хранилища, что делает его идеальным для домашних, где живут несколько кошек. Кошачий унитаз Petgugu разработан для использования с водорастворимыми наполнителями и предлагает ряд доп ...>>

Привлекательность заботливых мужчин 14.04.2024

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

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

На Эвересте тают ледники 26.03.2019

На склонах горы Эверест (Джомолунгма) в последние годы все чаще находят тела погибших альпинистов. Это происходит из-за таяния ледников. Все больше данных указывает на быстрое таяние ледников в районе Эвереста и в целом в Гималаях

За десятилетия, прошедшие с начала восхождений на пик, в этих местах погибло почти 300 альпинистов. Две трети из них остаются погребенными под толщей снега и льда. Рекордным по количеству смертей был сезон 2015 года, когда из-за оползней и лавин при восхождении погибло 24 человека.

Всего вершину Эвереста пытались покорить больше 4 тысяч человек.

В 2016 году непальские военные осушили озеро Имджа у подножия горы, которое переполнилось водой в результате быстрого таяния соседних ледников.

Другая группа гляциологов из Британии в прошлом году провела бурение на поверхности ледника Кхумбу и обнаружила, что лед в нем имеет более высокую температуру, чем ожидалось. Поднятые пробы льда показали температуру всего минус 3,3 градуса Цельсия, что на 2 градуса превышает среднюю годовую температуру воздуха в этом районе. "Из-за глобального потепления ледники на горных склонах быстро тают, и тела погибших, которые были скрыты льдом все эти годы, становятся видимыми", - говорит Анг Тенцинг, бывший президент Непальской альпинистской ассоциации.

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

▪ Энергоэффективный LTE-модем со скоростью до 450 Мбит/с

▪ Кишечные бактерии управляют кишечными часами

▪ Плазма идет на взлет

▪ Графическая карта AMD FirePro W4300

▪ Счастью можно научиться

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

 

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

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

▪ статья Древнейшая в мире профессия. Крылатое выражение

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

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

▪ статья Доработка акустических систем Амфитон 25АС-027. Энциклопедия радиоэлектроники и электротехники

▪ статья УМЗЧ с индуктивной коррекцией. Энциклопедия радиоэлектроники и электротехники

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

Имя:


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


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





All languages of this page

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

www.diagram.com.ua

www.diagram.com.ua
2000-2024