Двутональный многочастотный (dtmf) генератор на avr
Ик системы связи и ду с использованием dtmf
Ик системы связи и ду с использованием dtmf
ИК передатчики используются многими авторами для создания систем связи и дистанционного управления (ДУ). Как правило, ИК передатчик модулируется определенными частотами, а ИК приемник использует ИС типа 567, снабженную системой ФАПЧ. Для обеспечения нормальной работы необходимы настройка и согласование каждой пары «приемник-передатчик». Ниже приведены примеры построения подобных систем.
Разработан ряд специализированных широко доступных интегральных схем для применения в сфере телекоммуникаций. Подобные недорогие ИС способны передавать и принимать до 16 различных сигналов без предварительной настройки. Путем соединения подобных ИС со стандартными ИК излучателями и приемниками возможно создание ИК систем связи и дистанционного управления.
Коды DTMF
Сигналы DTMF (dual-tone multifrequency [двухтоновый многочастотный сигнал]) были предложены более 25 лет назад. Это произошло как раз перед тем, как правительство США форсировало расформирование компании Bell Telephone для разделения ее по различным секторам рынка. DTMF обычно известен как способ тонального набора.
Стандартный сигнал DTMF состоит из двух тонов звуковых частот, выбранных из группы восьми различных звуковых сигналов.
Эти сигналы восьми различных частот поделены на две группы: группа сигналов низкого тона и группа сигналов высокого тона (см. табл. 1).
Сигнал DTMF представляет собой комбинацию сигналов звуковых тонов, выбранных из различных групп (см. рис. 1-3). Простейший подсчет показывает, что возможны 4 х 4 = 16 возможных комбинаций.
Рис. 1. Форма колебаний низкого тона
Рис. 2. Форма колебаний высокого тона
Рис. 3. Алгебраическая сумма колебаний высокого и низкого тонов (DTMF)
Сигналы низкого тона (от R1 до R4) относятся к группе рядов. Сигналы высокого тона (от С1 до С4) образуют группу колонок.
Таблица 1
Кодирование сигнала DTMF
Любая комбинация частот может быть получена при использовании матрицы выключателей 4 х 4 или соответствующей клавиатуры (рис. 4). Помните, что эта технология была заимствована из телефонной индустрии, поэтому она была рассчитана на эффективное применение в телефонных линиях достаточно посредственного качества.
Рис. 4. Матрица клавиатуры 4х4, показывающая отдельные частоты DTMF
Стандартные телефоны с тональным набором используют матрицу клавиатуры размером 3х4. Такая матрица позволяет кодировать сигналы частот всех возможных рядов, но только трех вертикальных колонок (см. рис. 5). Клавиатура размером 3х4 более доступна и будет использоваться во всех схемных решениях, описанных ниже.
Рис. 5. Распайка телефонной клавиатуры 3х4
Не все клавиатуры от телефонов работают подобным образом, поэтому некоторые из них окажутся непригодными для наших схем. Например, некоторые клавиатуры имеют отличающуюся распайку выводов и требуют соответствующих ИС. По этой причине, если вы используете клавиатуру, то должны убедиться в ее правильном функционировании.
Изготовление кодера DTMF достаточно просто (см. рис. 6). Для этого потребуются клавиатура, кварцевый резонатор и ИС типа 5089. Цоколевка ИС 5089 показана на рис. 7. При использовании стандартной клавиатуры от телефона размером 3х4 вы потеряете возможность генерации 4-х DTMF кодов, связанных с отсутствующими клавишами, что снижает максимально возможное количество комбинаций до 12.
Рис. 6. Кодер DTMF, использующий матрицу клавиатуры 4х4
Рис. 7. Цоколевка кодера DTMF ИС 5089
На рис. 8 изображена тестовая схема кодера, в которой использованы восемь кнопочных выключателей.
Эти выключатели в данном случае заменяют клавиатуру, с их помощью вы сможете проверить работу кодера и работу схемы приемника (декодера). Помните, что необходимо использовать кнопочные выключатели, работающие на замыкание.
Для нормальной работы необходимо соединение одного из выводов R1-R4 и C1-C4 c землей, что осуществляется соответствующими кнопками.
Рис. 8. Схема кодера, использующего восемь кнопочных переключателей
ИС способна генерировать одиночные тоны, что обычно предпринимается для целей тестирования. Например, чтобы сгенерировать тон частоты 1336 Гц, соответствующий выводу С2, необходимо замкнуть на землю вывод С2 и любые два вывода из группы рядов R1-R4.
Такая операция и приведет к генерации чистого тона 1336 Гц. То же самое можно проделать для генерации тона из группы рядов.
Для этого необходимо заземлить любые два вывода из группы колонок и необходимый для генерации заданной частоты вывод из группы рядов.
Декодирование сигналов DTMF
Декодирование сигналов DTMF является немного более сложным, чем кодирование. Наиболее простым решением может явиться использование единственной ИС, на этот раз типа G8870 (рис. 9).
Рис. 9. Цоколевка декодера DTMF ИС G8870
ИС декодера имеет 4-битный выход с фиксацией состояния, обозначенный Q1-Q4. Q4 является старшим битом. Ток выходов Q1-Q4 достаточен для зажигания маломощных светодиодов. На рис. 10 показана основная схема приемника.
Комбинация зажженных светодиодов, подключенных к выходам Q1-Q4, образует двоичное число. В таблице 2 приведены соответствия между кодами DTMF и соответствующими им двоичными числами.
Схема построена так, что включенному светодиоду соответствует двоичная единица.
Рис. 10. Схема приемника с 4-битным выходом
Таблица 2. Сигналы DTMF
Цифровая индикация
Если чтение двоичного кода представляется слишком утомительным, можно добавить десятичный цифровой индикатор. Выход ИС можно присоединить к двоично-десятичному дешифратору для 7-сегментных индикаторов типа 7448. ИС 7448 в свою очередь соединена с 7-сегментным индикатором типа MAN 74 (с общим катодом). Схема, включающая две ИС, позволяет осуществлять цифровую индикацию (см. рис. 11).
Рис. 11. Схема приемника с цифровой индикацией
Проверка
Для проверки соедините выход ИС 5089 (вывод 16) с входом ИС G8870 и сгенерируйте сигнал DTMF с помощью кнопочных выключателей или клавиатуры. Декодер должен отобразить этот сигнал с помощью светодиодов или цифрового индикатора.
Использование ИК излучателя
Как только вы убедились в работоспособности устройства, можно добавить в схему приемник и передатчик ИК излучения.
Выход ИС 5089 соединяется с базой NPN транзистора, в эмиттер которого включается мощный ИК светодиод (см. рис. 12).
Можно подключить диод непосредственно к выходу ИС 5089, но излучаемая мощность в этом случае будет мала. NPN транзистор производит добавочный ток для питания светодиода.
Рис. 12. Схема ИК передатчика DTMF
На рис. 13 показана входная часть схемы ИК приемника. ИК фототранзистор соединен с КПОП операционным усилителем. Такая комбинация элементов позволяет управлять ИС 8870 через ИК канал на расстоянии порядка метра.
Рис. 13. Схема входной части ИК приемника DTMF
Система дистанционного управления (ДУ)
Используя ИК соединение, вы можете нажать клавишу с определенным номером на клавиатуре и увидеть соответствующую цифру, отображенную на цифровом индикаторе.
Проверьте качество ИК связи по направлению и максимальному расстоянию. Увеличения дальности связи можно добиться, помещая ИК светодиод и фототранзистор в отдельные рефлекторы.
Хорошо подходит для этой цели рефлектор от старой лампы-вспышки.
Устройство ДУ можно получить, добавив в схему ИС 4028, которая представляет собой двоично-десятичный дешифратор. Это означает, что при подаче параллельного двоичного кода на вход ИС (этим кодом зажигались светодиоды на рис.
10) на одном из выходов появится сигнал, соответствующий десятичной цифре. ИС 4028 имеет 10 выходов, обозначенных цифрами от 0 до 9. В зависимости от 4-битного кода на входе 4028, она выдает сигнал высокого уровня на одном из выходов (см.
рис. 14).
Рис. 14. Схема приемника DTMF с преобразованием шестнадцатеричного кода в десятичный
Удалять из схемы ИС 7448 и цифровой индикатор нет необходимости, поскольку ИС 8870 имеет достаточно мощный выход для подачи сигнала на обе ИС 7448 и 4028. При тестировании выхода ИС 4028 цифровой индикатор может оказаться очень удобным. Чтобы не загромождать чертеж, на рис 14 показана связь ИС 8870 только с ИС 4028.
Выходы ИС 4028 могут непосредственно использоваться для управления переключателями или другими частями схемы. Однако это не является удачным решением, поскольку при нажатии следующей клавиши (цифры) выход, соответствующий предыдущей цифре, отключится (сбросится на низкий уровень).
Для решения этой проблемы можно использовать D-триггер типа 4013 (рис. 15). Триггеры являются основными элементами компьютерной памяти. В этой схеме в качестве триггера используется двоичный счетчик.
После первой логической «1» на выходе ИС 4028 выход триггера перебросится также в логическую «1».
Когда на выходе 4028 появится логический «0», что соответствует включению другого канала, ИС 4013 будет удерживать логическую «1» на выходе (фиксация состояния).
Рис. 5.27. Схема триггера ИС 4013
Чтобы опять перебросить выход 4013 в «0», необходимо просто включить соответствующий канал еще раз. Второй импульс, пришедший на вход ИС 4013, переключит ее выход в низкий уровень («0»). Чередование высокого и низкого уровней на выходе ИС 4013 происходит при каждой подаче «1» на ее вход.
Интегральная схема «DTMF-номеронабиратель». Назначение элементов, принцип действия
⇐ ПредыдущаяСтр 3 из 5Следующая ⇒
Этот метод получил название двухтонального многочастотного набора (DTMF) или просто тонального набора.
Телефонные аппараты, использующие этот способ, применяются при работе с квазиэлектронными и электронными АТС.
Передача каждой цифры при частотном наборе номера осуществляется двухчастотным кодом 2 из 8 (стандарт DTMF).
Этот код обеспечивает 16 комбинаций сигнальных частот, 10 из которых используются для набора цифр номера. Остальные кнопки используются при наборе кодов дополнительных видов обслуживания.
Комбинация сигналов и соответствие частот каждой кнопке в соответствии со стандартом DTMF приведены в таблице.
Таблица 2.1. Стандарт DTMF
Нижняя группа частот
Верхняя группа частот
1209 Гц
1336 Гц
1477 Гц
1633 Гц
697Гц
А
770Гц
В
852Гц
С
941 Гц
*
#
D
Стандартная 16-клавишная клавиатура DTMF имеет раскладку клавиш аналогично таблице.
Например, при нажатии клавиши «5» НН вырабатывает сигнал с комбинацией частот 770 и 1336 Гц, который детектируется и интерпретируется электронным оборудованием АТС.
Так как вероятность помехи с заданной комбинацией двух частот близка к нулю, данная система набора является к тому же хорошо защищенной от помех.
DTMF-сигналы вырабатываются звуковым генератором, выполненным на дискретных компонентах с использованием LC-контуров. Если никакая клавиша не нажата, все контакты клавиатуры разомкнуты, конденсаторы отключены от катушек индуктивностей и резонансные контура как таковые отсутствуют. При нажатии клавиши замыкаются два контакта — строковый и столбцовый и образуются два резонансных контура.
Дополнительным переключателем, связанным одновременно со всеми клавишами, к схеме подключаются активные элементы — транзисторы, и в ней начинают генерироваться звуковые колебания с соответствующими частотами. После их суммирования полученный DTMF-сигнал поступает в телефонную линию. При отпускании клавиши генераторы отключаются.
Напряжение, поступающее на конкретный телефон, зависит от длины телефонной линии (удаленности телефона от телефонной станции) и тока, потребляемого самим аппаратом. Поэтому одним из основных требований к DTMF-генераторам является их стабильность в широком диапазоне питающих напряжений. В современных электронных телефонах DTMF-сигналы вырабатываются интегральными схемами.
Использование DTMF-сигналов обеспечивает намного более быстрый набор, нежели с помощью дискового НН. Например, DTMF-цифра может быть послана и интерпретирована телефонной станцией за 100 мс.
Сюда входит и то время, которое необходимо для передачи и декодирования цифры, и межцифровая пауза. А дисковый НН только на один импульс затрачивает 100 мс.
Ясно, что для набора «9» потребуется уже 900 мс.
8.Интегральная схема «Разговорная ИС». Назначение элементов, принцип действия.
Разговорные схемы последними подверглись “интеграции”. Оказалось сложным создать малошумящий интегральный усилитель с большим коэффициентом усиления и малой потребляемой мощностью, который мог бы работать в широком диапазоне питающих напряжений телефонной линии.
ИС: должна усиливать и передавать в линию речевой сигнал, обеспечивать малый уровень местного эффекта, транслировать в линию сигналы номеронабирателя, обеспечивать постоянную нагрузку для линии. Схема разговорной ИС показана на рис.1.
Стабилизатор напряжения –используя телефонную линию, вырабатывает стабильное напряжение для питания усилителей.
Рис. 4.7. Внутренняя структура разговорной ИС
У него имеется дополнительный выход, напряжение с которого можно использовать для питания совместимой ИС DTMF- номеронабирателя. Для обеспечения устойчивости стабилизатора включен корректирующий конденсатор.
Интерфейс – обеспечивает постоянный рабочий ток линии, необходимый для нормальной работы телефона в составе сети. Величина этого тока определяется навесным резистором и конденсатором.
Из усилителей ИС можно выделить два основных: усилитель микрофона (at) и усилитель телефона (АR).
Сигнал с микрофона поступает на усилитель аt. Небольшая часть усиленного сигнала подается на усилитель местного эффекта (As), в то время как основная поступает на управляющий вход стабилизатора, вызывая модуляцию потребляемого им тока. Именно таким способом речевой сигнал вводится в телефонную линию.
Сигнал местного эффекта поступает на простейший сумматор на резисторах (регулятор местного эффекта).
На второй вход подается принимаемый речевой сигнал из линии, после чего через разделительный конденсатор они вместе попадают на вход усилителя телефона АR Усилитель постоянного тока, называемый корректирующим усилителем (АE), используется для подстройки поляризующего напряжения на микрофоне при изменениях постоянного напряжения в линии (то есть при изменениях ее длины). Такая коррекция позволяет компенсировать потери речевого сигнала в линии.
Сигнал отключения приемника/передатчика, вырабатываемый номеронабирателем, используется разговорной схемой для отключения телефона и микрофона бесконтактными переключателями, обозначенными на схеме как “Откл”. При соответствующей настройке регулятора местного эффекта тональные сигналы набора могут прослушиваться в телефоне.
В состав большинства разговорных схем входят дополнительные узлы, обеспечивающие их совместную работу с импульсным или DTMF-номеронабирателем. Если включен DTMF-режим, генерируемые схемой НН тональные сигналы поступают на вход усилителя НН (AD). После усиления они подаются непосредственно в телефонную линию.
Телефонные аппараты
Долгое время единственным способом передачи номера входящего абонента (абонента Б) на станцию был импульсный набор. Цифры передавались с помощью периодического разрыва шлейфа.
При этом на станцию передавались импульсы, число которых было равно значению передаваемой цифры. Требования к временным параметрам импульсов следующие [2.3]. Скорость передачи — 10 импульсов/с, т.е.
время размыкания и замыкания, отводимое на один импульс, равно 100 мс.
Соотношение между временем размыкания и замыкания, составляющее для нормального номеронабирателя 1,5 (60 мс для размыкания, и 40 мс для замыкания), называется импульсным коэффициентом.
Для приведенных выше данных.
Межсерийный интервал — время между набором двух цифр — должен быть не меньше 200 мс. Идеальных номеронабирателей не бывает, поэтому возможны разбросы во временных параметрах.
Современные станции допускают применение дисков со скоростями диска 7 до 12 имп./с; разброс импульсного коэффициента. Этот разброс больше, чем указывается обычно в нормах на номеронабиратели.
Таким образом, самое малое время замыкания равно
Эта формула следует из того, что время интерваларавно
Оно также равно
Откуда время замыкания
Время размыкания определяется из формулы
Самое большое время размыкания равно
Ниже приведена диаграмма, отображающая набор номера, состоящего из двух цифр — 22 (рис. 2.9).
Рис. 2.9. Диаграмма набора с помощью импульсного номеронабирателя.
1 — исходное положение; 2 — испульс (размыканиезамыкание); 3 — межсерийная пауза; 4 — отбой
Электрическое сопротивление постоянному току в режиме набора номера для ТА с импульсным способом набора номера должно быть:
- при замыкании шлейфа и токе питания 35 мА — не более 100 Ом;
- при размыкании шлейфа и напряжении питания 60 В — не менее 200 кОм (так называемое сопротивление утечки между двумя проводами абонентского шлейфа).
Для параметров набора номера установлены следующие нормы:
- период импульсов в серии — 100 мс;
- импульсный коэффициент в пределах 1,4-1,6, пауза между сериями импульсов в пределах от 400 до 1000 мс. Как это указано выше, современные станции с использованием микроэлектроники позволяют иметь разброс параметров гораздо больший, чем указано в норме. Это облегчает эксплуатацию телефонных аппаратов;
- длительность размыкания шлейфа АЛ при отбое должна быть не менее 800 мс.;
- длительность размыкания шлейфа АЛ при калиброванном разрыве (кнопка flash) для получения дополнительных видов обслуживания (ДВО) должна быть в пределах 40-120 мс.
Этот способ набора отличается тем, что информация о набранном номере передается с помощью комбинации двух частот. Этот способ называется двухтональным многочастотным набором (DTMF — Dual Tone Multi-Frequency dialing) и значительно ускоряет набор номера. Длительность посылки сигнала набора номера для ТА ЧНН не менее 50 мс.
Это, как будет показано в дальнейшем, уменьшает вероятность ошибки при передаче цифр набранного номера. Комбинации частот и их закрепление за номерами показаны на рис. 2.10. Код образуется с помощью двух групп частот, для образования комбинации из каждой группы берется по одному сигналу (по координатам,).
Тогда закрепление частот будет следующее:
.
Рис. 2.10. Распределение частот в номеронабирателе
Многочастотный генератор (рис. 2.11) синтезирует частоты с помощью цифровых отсчетов.
Программатор отсчетов по командам управления вырабатывает цифровые значения, соответствующие амплитуде сигнала в данной временной точке, и они последовательно через регистр сдвига поступают на вход цифроаналогового преобразователя. На его выходе получается аналоговый сигнал, который передается в линию.
При использовании цифрового тракта сигнал вводится прямо в цифровой тракт без преобразования.
На рис. 2.12 показана связь генератора с клавиатурой. При нажатии одной клавиши сигнал запуска подается на два входа частотного генератора. Длительность паузы между посылками сигнала набора номера для ТА ЧНН в автоматическом режиме должна быть не менее 50 мс. Они определяются приборами в случае смены одной из частот.
На станции приборы приема номера должны быть рассчитаны на прием как импульсных, так и частотных сигналов абонентского номера. Кроме обычного абонентского аппарата широко применяются таксофоны.
Рис. 2.11. Многочастотный генератор для двухчастотного набора номера
Рис. 2.12. Клавиатура двухчастотного набора и связь ее с многочастным генератором
Двутональный многочастотный (DTMF) генератор на AVR
Отличительные особенности:
- Генерация синусоидальных сигналов с использованием широтно-импульсной модуляции (ШИМ)
- Объединение различных синусоидальных сигналов в один DTMF-сигнал
- Исходные коды на языках ассемблер и Си
- Разработан для совместной работы с STK500
- Размер кода программы 260 байт/размер таблицы констант 128 байт
- Использование метода табличного преобразования
Введение
Данный документ описывает методику генерации DTMF-сигналов (двутональные многочастотные сигналы) с использованием любого AVR-микроконтроллера, содержащего блок широтно-импульсной модуляции (ШИМ) и статическое ОЗУ.
Данные сигналы находят широкое применение в телефонии, где они воспроизводятся при нажатии на кнопки набора номера телефонного аппарата. Для правильной генерации DTMF-сигнала необходимо наложить две частоты вместе: низкую частоту (fb) и высокую частоту (fa).
В таблице 1 показано как смешиваются различные частоты для получения 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 Гц
*
#
D
В строках таблицы 1 представлены значения низкой частоты, а в столбцах – значения высокой частоты. Например, в матрице показано, что при нажатии на кнопку «5» должны смешиваться частоты fb = 770 Гц и fa = 1336 Гц. В результате сложения двух синусоидальных сигналов разных частот образуется DTMF-сигнал
(1)
где отношение амплитуд K=Ab/Aa исходных сигналов должно отвечать условию
(2)
Принцип действия
Помимо общих сведений об использовании широтно-импульсной модуляции далее будет показано как широтно-импульсная модуляция позволяет генерировать синусоидальные сигналы.
В следующем параграфе описывается как, используя базовую частоту ШИМ получить различные частоты. После рассмотрения теоретических основ будет дано описание непосредственно генератора DTMF-сигнала.
Генерация синусоидальных сигналов
В зависимости от соотношения длительности высокого VH и низкого VL уровней напряжения среднее значение на выходе ШИМ изменяется. Если соотношение между длительностями обоих уровней удерживать постоянным, то в результате будет генерироваться постоянный уровень напряжения VAV. Рисунок 2 показывает сигнал с широтно-импульсной модуляцией.
Рисунок 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 кГц.
Рисунок 3 – Генерация синусоидального сигнала с использованием ШИМ
Изменение частоты синусоидального сигнала
Предположим, что синусоидальные выборки считываются из таблицы преобразования не последовательно, а через одну. В этом случае при той же частоте чтения выборок будет генерироваться сигнал с удвоенной частотой (см. рисунок 4).
Рисунок 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 – функция округления.
Рисунок 5 – Схема модуля для подключения к STK500
ШИМ-сигнал формируется на выводе OC1A (PD5). Дополнительный выходной фильтр будет способствовать большему соответствию синусоидальной форме сигнала. При уменьшении частоты ШИМ может возникнуть необходимость применения фильтра с более крутой АЧХ для получения хорошего результата.
Подключение клавиатуры показано на рисунке 1. Работа клавиатуры должна быть организована таким образом, чтобы была возможность определения нажатой клавиши. Это может быть выполнено по следующему алгоритму:
- настроить младшую тетраду порта В на выход и установить лог. «0»
- настроить старшую тетраду порта В на вход с подключением подтягивающих резисторов
- строка с нажатой кнопкой определяется как разряд старшей тетрады с лог. «0»
- настроить старшую тетраду порта В на выход и установить лог. «0»
- настроить младшую тетраду порта В на вход с подключением подтягивающих резисторов
- столбец с нажатой кнопкой определяется как разряд младшей тетрады с лог. «0»
Прим.: В STK200 между выводами разъема PORTB и выводами микроконтроллера BP5, PB6 и PB7 включены последовательно резисторы (см. схему STK200). Это вызовет проблемы если клавиатура подключена к разъему PORTB.
Рисунок 6 иллюстрирует работу подпрограммы по определению нажатой клавиши. В зависимости от нажатой клавиши определяется длительность интервала. Процедура обработки прерывания использует это значение для вычисления установок ШИМ для двух синусоид DTM-тона. Процедура обработки прерывания показана на рисунках 7 и 8.
Эта процедура вычисляет значение для сравнения с выходом таймера на следующий период ШИМ. Процедура обработки прерываний сперва вычисляет позицию значения следующей выборки в таблице преобразования и считывает сохраненное там значение.
Позиция выборки в таблице преобразования определяется длительностью импульса, а собственно длительность импульса определяется генерируемой частотой.
Окончательное значение, которое записывается в регистр сравнения таймера, определяется с использованием формулы (7), где учитываются значения выборок обеих DTMF-частот.
Рисунок 6 – Блок-схема основной программы
Рисунок 7 – Блок-схема процедуры обработки прерывания по переполнению таймера
Рисунок 8 – Блок-схема процедуры чтения выборки “GetSample”
vip-cxema.org – Говорящее дистанционное управление DTMF
Нередко возникает необходимость в дистанционном управлении удалённым объектом, например управление отоплением, сигнализацией загородного дома и т.п. Традицтонные методы управления тут не помогут. В этом случае на помощь придёт сотовая связь.
Но просто взяв сотовый телефон делу не поможет, требуется декодер DTMF кода, который при нажатии той или иной цифры на сотовом телефоне будет переключать тот или иной канал на декодере. Именно этот декодер и представлен вашему вниманию.
Ранее разработанный мною декодер рассмотренный тут полностью выполняет свои функции, но в ходе эксплуатации был выявлен один недостаток. Недостаток заключается в звуковом подтвеждении событий. Иногда, при управлении, становиться неясно какой канал переключил, а так же нет функции опроса состояния.
От этих недостатков лишина вторая версия дистанционного управления, которая оснащена речевым модулем, который все события подтверждает речевыми фразами.
Основные параметры декодера:
- имеет 10 независимых каналов управления;
- звуковое подтверждение всех событий (тоном и фразами);
- автоматическая запись состояния выходов, если включено;
- автоматическая блокировка устройства, если включен доступ по паролю.
Схема декодера довольно проста и не нуждается в наладке. Весь функционал реализован на микроконтроллере PIC16F883. От предыдущей версии схема практически не отличается.
В качестве декодера DTMF сигнала применена специализированная микросхема марки MT8870. На выходе установлены буфферные каскады на ULN2003, что позволяет непоследственно подключать обмотки реле.
Говорящий модуль выполнен на микроконтроллере ATTINY2313, фразы храняться на microSD flash. Схема модуля и прошивка позаимствована отсюда. Схема очень проста, состоит практически из микроконтроллера, флэшки и стабилизатора на 3,3В. Светодиоды с резисторами R3, R4, R5 можно не устанавливать.
Устройство собрано на четырёх печатных платах. На первой плате собран декодер DTMF
На второй плате собран речевой модуль
Фьюзы
На третьей и четвёртой платах собраны идентичные релийные модули
Общий вид на платы
В схеме предусмотрена установка трёх перемычек, их назначение:
- S2 – Включение сохранения состояния выходов;
- S3 – Сброс пароля;
- S4 – Включение доступа по паролю.
Алгоритм работы устройства очень прост:
Звоним на телефон и нажимая кнопки на телефоне управляем устройством. Если установлена перемычка S4, перед переключением состояния выходов необходимо ввести пароль (по умолчанию 0000).
Далее, для включения необходимого канала жмём номер канала и цифру 1. Для выключения – номер выбранного канала и цифру 0. Например включим и выключим канал номер 5. Нажимаем 51, а затем 50.
Если требуется включить все каналы разом, жмём две звёздочки (**). Что бы выключить все каналы разом – две решётки (##).
Для смены кода вводим такую комбинацию: *#*# и следом четыри цифры нового кода. Если вы забыли введённый код, его легко сбросить на стандартный 0000, установив кратковременно перемычку S3.
Как правило, в загородных домах нередки случаи отключения электроэнергии, а так же возможны кратковременные пропадания во время сильных ветров. Для сохранения состояния выходов предусмотрена возможность записи состояния в энергонезависимую память микроконтроллера и при восстановлении электроснабжения восстановить это состояние. Для этого служит перемычка S2.
Во второй версии устройства добавлена функция опроса состояния выходов, включается эта функция нажатием такой комбинации: #*
При включении опроса состояния устройство проговорит состояние каждого канала. При остутствии речевого модуля, устройство выдаст информацию по выходам следующим образом: если канал включен, устройство выдаст один короткий сигнал, если выключено – два коротких сигнала. И так по каждому каналу по очереди.
Хочу обратить особое внимание на распайку разъёма для подключения устройства к сотовому телефону. Разные производители по разному распаивают этот разъём в телефоне! Если устройство не реагирует, меняйте местами выводы, либо ищите распайку именно под ваш телефон. Функция автоподнятия есть практически в любом телефоне!
Файловая система.
В данном устройстве поддерживаются SD карты размером до 2 Гб, включительно, имеющие файловую систему FAT16. Все что выше – не поддерживается. Нет особых требований по форматированию карты – ее можно отформатировать в любом доступном устройстве. Стандартное форматирование Windows вполне подходит для этих целей.
Конвертирование своих треков
Треки нужно переконвертировать в формат который поддерживает устройство. Формат файла должен быть – несжатый WAV 32000Гц, 1 канал, 8 бит (WAV PCM 8U). Для конвертации в такой формат подойдет любой музыкальный редактор, или, если нужно просто преконвертировать трек без его правки – Weeny Free Audio Converter, он бесплатный, маленький и умеет конвертировать сразу пакет файлов.
О модуле подробнее можно почитать тут.
Перечень деталей:
DTMF декодер
Резисторы
R1, R2
100k
2шт
R3
300k
1шт
R4
330
1шт
R5, R6
1k
2шт
Конденсаторы
C1
47n
1шт
C2, С4
18p
2шт
C3
47uF
1шт
C5, С9, С10
100n
3шт
C6, С8
33p
2шт
C7, С11
10uF
2шт
Микросхемы
IC1
MT8870
1шт
IC2
PIC16F883
1шт
IC3, IC4
ULN2003
2шт
IC5
L7805
1шт
Кварцевые резонаторы
Z1
3,5796 MHz
1шт
Z2
4 MHz
1шт
Говорящий модуль
Резисторы
R1, R4, R5
1k
3шт
R2
10k
1шт
R3
300
1шт
Конденсаторы
С1, C3
10uF
2шт
С2
100n
1шт
Микросхемы
IC1
ATTINY2313
1шт
microSD card
1шт
Micro SD card slot connectors
1шт
Небольшой видеообзор по работе с устройством
Дополнительные материалы к статье в архиве
Цифровой генератор на ATMEGA8
Еще один простой цифровой генератор, который позволяет генерировать:
– сигналы разной формы с частотой до 64999 Гц;
– прямоугольные импульсы до 8 МГц
– видеосигнал, вертикальные полосы градации серого.
Не претендую на авторство этого проекта, в интернете много вариантов такого генератора, первоисточник мне установить не удалось. За основу взял эту разработку.
Переделал схему и прошивку под ATMEGA8 (такие переработки тоже попадались), переработал под свои потребности. Генератор собран и испытан.
Если по ходу эксплуатации буду что-то дорабатывать, то все обновления будут выкладываться в этой статье.
Описание генератора.
1. Генерирование сигналов.
– синусоида, диапазон 1 ÷ 64 999 Гц;
– прямоугольные импульсы, диапазон 1 ÷ 64 999 Гц;
– треугольные импульсы, диапазон 1 ÷ 64 999 Гц;
– прямая пила, диапазон 1 ÷ 64 999 Гц;
– обратная пила, диапазон 1 ÷ 64 999 Гц;
– высокочастотные прямоугольные
импульсы. Ступенчато от 1кГц до 8МГц.
– шум;
– видеосигнал вертикальных полос градации серого и звуковой сигнал 1 кГц.
2. Установка.
В основном режиме при остановленном генераторе кнопками UP/DOWN выбор формы сигнала.
Кнопками LEFT/RIGHT перемещение между разрядами частоты. Устанавливаемый разряд мигает. При установке тысяч и десятков тысяч существуют программные ограничения, чтобы максимальная частота не превысила 64 999 Гц.
При установке частоты высокочастотных импульсов частота устанавливается ступенчато из ряда: 8000, 4000, 2000, 1000, 500, 400, 250, 200, 125, 100, 50, 40, 25, 16, 10, 8, 5, 4, 2, 1 кГц.
Запуск/остановка генератора производится кнопкой START.
При запущенном генераторе можно изменять частоту только для высокочастотного генератора. Для изменения других параметров следует сначала остановить генератор.
Выбранные настройки записываются в энергонезависимую память.
Схема генератора:
Осциллограммы работы генератора:
Телевизионный сигнал вертикальные полосы:
В архиве прошивка для микроконтроллера, FUSE, проект в Proteus (почти схема), описание, файл LCDALPHA.DLL для корректного отображения кириллицы при симуляции в Proteus.
—
24.08.2015
Добавил схему, по которой велось изготовление прибора, и печатную плату.
Печатная плата состоит из двух частей – основная и кнопки управления.
Печатаная плата разрабатывалась по имеющиеся в наличии детали и под условия монтажа в конкретный корпус, в котором уже установлен источник стабилизированного питания +-9V.
—
просто двухтональный многочастотный генератор тона
Home » Tools » просто двухтональный многочастотный генератор тона
Simply Advanced
Простой, интуитивно понятный и простой DTMF Tone Generator.Я проверил все другие приложения генератора DTMF тон, увидел, что все они были старые и багги, так что я сделал свою версию значительно лучше. Она включает в себя обратную связь в обзорах других приложений. Если у вас есть какие-либо вопросы, комментарии или предложения, не стесняйтесь, напишите мне. Я надеюсь, вам понравится.
Описание :Играть тон, любой тон. Это приложение является в основном два приложения в одном. Одна сторона просто генератор DTMF тон, и другая сторона производить-любой-Tone, что вы хотите генератор сигналов. Вы можете услышать, что любой частоты звучит. Экран справки в приложении также предоставляет официальные частоты для DTMF тонов.
При воспроизведении записанных номеров DTMF, положить ваш телефон рядом с динамиком аналоговой телефонной, так что вы можете набрать через PSTN (Public коммутируемой телефонной сети) телефон.
Особенности :1. DTMF конкретные тона2.
Возможность сохранения неограниченного DTMF сигналов для общего пользования (и изменить время воспроизведения для тонуса и паузы)3. Правильное воспроизведение записанных номеров, чтобы можно набрать, нажав одну кнопку,4. Возможность играть любой тон на второй странице приложения.Не требуется 5. Никаких разрешений! Нет объявлений!6.
Легко доля, если вам это нравится!
FAQ :Вопрос: Каковы все паузы и воспроизведения раз?: Ставка По умолчанию записываются воспроизведение передает сигнализацию 93 мс за тонну с 40 мс между тонами. Пауза символы 1 секунду.Q: Что DTMF означает?: Dual-Tone Multi-Frequency сигнализации.
Q: Что DTMF используется?: Телекоммуникационные сигнализации по аналоговым телефонным линиям, иначе тональный набор.
Фон :Привет, меня зовут Даниал Гудвин. Я разработчик, который создает множество различных приложений. Я люблю работать на них, что делает их лучше, и поддерживает возможности пользователей даже не знают, что они хотели еще;).
Но, к сожалению, я не имею времени, чтобы постоянно обновлять каждую из них. Хорошей новостью является то, что я люблю получать обратную связь о моих приложений и более обратную связь, я получаю о конкретном приложении, скорее всего, я должен обновить его, особенно если многие пользователи запрашивают те же функции.
=]Более техническая информация:DTMF Тон-генераторы позволяют Dual-Tone Multi-Frequency (DTMF) сигналов, который позволяет контролировать машину удаленно по стандартным телефонным линиям. Некоторые операторы любительского радио использовать это.-Open Source: Я решил поделиться весь исходный код этого приложения на GitHub! https://github.
com/danialgoodwin/android-simply-tone-generatorПолитика конфиденциальности: Это приложение никогда не собирает или продает личные данные.
ПРЕДУПРЕЖДЕНИЕ: Это приложение не предназначено, чтобы быть для всех. Опытно-конструкторские работы происходит в это приложение будет для небольшой процент людей, которые делают это нравится. ?
категория: Free Tools App
Двутональный многочастотный (DTMF) генератор на AVR
Двутональный многочастотный (DTMF) генератор на AVR
Отличительные особенности:
Генерация синусоидальных сигналов с внедрением широтно-импульсной модуляции (ШИМ) Объединение разных синусоидальных сигналов в один DTMF-сигнал Начальные коды на языках ассемблер и Си Разработан для совместной работы с STK500 Размер кода программки 260 б/размер таблицы констант 128 б Внедрение способа табличного преобразования
Введение
Данный документ обрисовывает методику генерации DTMF-сигналов (двутональные многочастотные сигналы) с внедрением хоть какого AVR-микроконтроллера, содержащего блок широтно-импульсной модуляции (ШИМ) и статическое ОЗУ.
Данные сигналы находят обширное применение в телефонии, где они воспроизводятся при нажатии на кнопки набора номера телефонного аппарата. Для правильной генерации DTMF-сигнала нужно наложить две частоты совместно: низкую частоту (fb) и высшую частоту (fa).
В таблице 1 показано как смешиваются разные частоты для получения 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 Гц. В итоге сложения 2-ух синусоидальных сигналов различных частот появляется DTMF-сигнал
(1)
Где отношение амплитуд K=Ab/Aa начальных сигналов должно отвечать условию
(2)
Принцип деяния
Кроме общих сведений об использовании широтно-импульсной модуляции дальше будет показано как широтно-импульсная модуляция позволяет генерировать синусоидальные сигналы. В последующем параграфе описывается как, используя базисную частоту ШИМ получить разные частоты. После рассмотрения теоретических основ будет дано описание конкретно генератора DTMF-сигнала. Генерация синусоидальных сигналов
Зависимо от соотношения продолжительности высочайшего VH и низкого VL уровней напряжения среднее значение на выходе ШИМ меняется. Если соотношение меж длительностями обоих уровней задерживать неизменным, то в итоге будет генерироваться неизменный уровень напряжения VAV. Набросок 2 указывает сигнал с широтно-импульсной модуляцией.
Набросок 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 кГц.
Набросок 3 – Генерация синусоидального сигнала с внедрением ШИМ
Изменение частоты синусоидального сигнала
Представим, что синусоидальные подборки считываются из таблицы преобразования не поочередно, а через одну. В данном случае при той же частоте чтения выборок будет генерироваться сигнал с двойной частотой (см. набросок 4).
Набросок 4 – Удвоение результирующей частоты (XSW = 2)
По аналогии, если считывать не каждое 2-ое значение, а каждое третье, 4-ое, 5-ое (соответственно, ширина шага 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 бит будет то, что сумма значений сигналов высочайшей и низкой частоты имеет размер 1-го б. Для поддержки полного набора DTMF-тонов нужно вычислить 8 значений для каждой DTMF-частоты из таблицы 1 и занести их в таблицу преобразования.
Для заслуги более высочайшей точности выполнено последующее решение: значения, вычисленные по выражению 5 требуют всего 5 б. Для использования всех 8 б, что позволит уменьшить погрешность округления, это значение множится на 8.
Указатель на таблицу преобразования записывается таким же методом. Но в данном случае требуется два б для запоминания 8-кратного значения.
Это значит, что нужно выполнить 3 правосторонних сдвига и операцию модуля по основанию Nc (логическое умножение на Nc-1) перед внедрением этих б как указателя на значения синусоиды в
(10)
где XLUTa, b — текущая позиция элемента в таблице преобразования (фактический формат); XLUTa, bExt — предыдущая позиция элемента в таблице преобразования (расширенный формат); ROUND – функция округления.
Набросок 5 – Схема модуля для подключения к STK500
ШИМ-сигнал формируется на выводе OC1A (PD5). Дополнительный выходной фильтр будет содействовать большему соответствию синусоидальной форме сигнала. При уменьшении частоты ШИМ может появиться необходимость внедрения фильтра с более крутой АЧХ для получения положительного результата.
Подключение клавиатуры показано на рисунке 1. Работа клавиатуры должна быть организована таким макаром, чтоб была возможность определения нажатой кнопки. Это может быть выполнено по последующему методу:
Определение строчки нажатой кнопки настроить младшую тетраду порта В на выход и установить лог. «0» настроить старшую тетраду порта В на вход с подключением подтягивающих резисторов строчка с нажатой кнопкой определяется как разряд старшей тетрады с лог.
«0» Определение столбца нажатой кнопки настроить старшую тетраду порта В на выход и установить лог. «0» настроить младшую тетраду порта В на вход с подключением подтягивающих резисторов столбец с нажатой кнопкой определяется как разряд младшей тетрады с лог.
«0»
Прим.: В STK200 меж выводами разъема PORTB и выводами микроконтроллера BP5, PB6 и PB7 включены поочередно резисторы (см. схему STK200). Это вызовет трудности если клавиатура подключена к разъему PORTB.
Набросок 6 иллюстрирует работу подпрограммы по определению нажатой кнопки. Зависимо от нажатой кнопки определяется продолжительность интервала. Процедура обработки прерывания употребляет это значение для вычисления установок ШИМ для 2-ух синусоид DTM-тона. Процедура обработки прерывания показана на рисунках 7 и 8.
Эта процедура вычисляет значение для сопоставления с выходом таймера на последующий период ШИМ. Процедура обработки прерываний сначала вычисляет позицию значения последующей подборки в таблице преобразования и считывает сохраненное там значение.
Позиция подборки в таблице преобразования определяется продолжительностью импульса, а фактически продолжительность импульса определяется генерируемой частотой.
Окончательное значение, которое записывается в регистр сопоставления таймера, определяется с внедрением формулы (7), где учитываются значения выборок обеих DTMF-частот.
Набросок 6 – Блок-схема основной программки
Набросок 7 – Блок-схема процедуры обработки прерывания по переполнению таймера
Набросок 8 – Блок-схема процедуры чтения подборки “GetSample”
Leave a Comment