DTMF кодеры используются
для формирования стандартного двухчастотного сигнала, который служит для
передачи по каналам связи буквенно-цифровой информации. Типичное применение -
тональный набор номера в телефонах. В современных радиостанциях, применяемых в
радиотелефонных системах также используется DTMF для набора номера и другой
информации. Выпускается большое количество DTMF кодеров, выполненных в виде
отдельного малогабаритного устройства с питанием от батарей для использования
в тех случаях, когда оконечное устройство пользователя не имеет возможности
передавать сигналы DTMF. Такие устройства получили название "биперы".
Используются, например для дистанционного управления автоответчиками,
охранными и другими устройствами, подключенными к телефонной линии. DTMF
сигнал состоит из двух составляющих синусоидальной формы, суммируемых при
формировании. Каждому символу соответствует комбинация частот
:
I II
1 - 697 Гц 1209
Гц 2 - 697 Гц 1336 Гц 3 - 697 Гц 1477 Гц 4 - 770 Гц 1209 Гц 5 -
770 Гц 1336 Гц 6 - 770 Гц 1477 Гц 7 - 852 Гц 1209 Гц 8 - 852 Гц
1336 Гц 9 - 852 Гц 1477 Гц * - 941 Гц 1209 Гц 0 - 941 Гц 1336
Гц # - 941 Гц 1477 Гц A - 697 Гц 1633 Гц B - 770 Гц 1633 Гц C -
852 Гц 1633 Гц D - 941 Гц 1633 Гц
Один из возможных способов
получения DTMF сигналов - цифровой синтез синусоидального сигнала на базе
обратного Z-преобразования. Согласно этого способа выходной сигнал
разбивается на фиксированные временные интервалы T. Каждый последующий отсчет
выходного сигнала Y(n) получается из двух предыдущих отсчетов
:
Y(n)=X(n-1)*sin(w*T)+Y(n-1)*2cos(w*T)-Y(n-2)
X(n) - входной
сигнал, X(n)=1 при n=0 ; X(n)=0 при других значениях n, так называемый
дельта-импульс. Константы A=sin(w*T)=sin(2*pi*Fs/F0) ;
B=2*cos(w*T)=2*cos(2*pi*Fs/F0) вычисляются один раз и используются в
дальнейшем, F0 - частота дискретизации, Fs- частота сигнала. Таким образом
:
Y(n)=A*X(n-1)+B*Y(n-1)-Y(n-2)
Первый отсчет Y(0)=0, второй
Y(1)=A,т.к. X(0)=1, Y(0-1)=0, Y(0-2)=0. Для n=2 и больше, амплитуда отсчета
будет :
Y(n)=B*Y(n-1)-Y(n-2)
За один раз вычисляется один отсчет
для каждой составляющей из пары частот. Затем они суммируются и выдаются на
ЦАП. Для реализации этого алгоритма можно использовать один из современных
однокристальных микроконтроллеров (МК). Очень удобен к примеру AT89c2051 из
широко известного семейства MCS51. Небольшие размеры, малое потребление,
позволяют использовать его в портативных устройствах, питаемых от батарей. Еще
одной важной особенностью этого МК является наличие режима IDLE - с малым
потреблением. При переходе в этот режим МК отключает основные потребители тока
и находится в дежурном режиме до поступления запроса на прерывание, причем
диапазон питающего напряжения составляет от 3 до 6 в.

Схема бипера приведена на
рис.1. Клавиатура содержит только 12 кнопок используемых в телефонных
приложениях. Она состоит из матрицы 6х2, выходы которой подключены ко входам
прерывания INT0 и INT1 МК. На резисторах R1-R9 собран простейший 5-ти
разрядный ЦАП. Добавив еще 4 резистора по аналогии с разрядами Р1.6-Р1.2 можно
задействовать еще и разряды Р1.0, Р1.1. При этом нужно нагрузить эти разряды
резисторами 10 кОм на источник питания, т.к. они не имеют внутренней нагрузки.
В результате уменьшится уровень помех квантования. Однако, как показали
практические испытания, 5-ти разрядов оказывается вполне достаточно. В
таб.1 приведен исходный текст программы для AT89c2051, в таб.2 прошивка ПЗУ
программ. При использовании кварцевого резонатора другой частоты, необходимо
заново пересчитать константы A и B. Для этого можно использовать несложную
программу на языке BASIC, приведенную в таб.3. В первой строке содержится
значение частоты кварцевого резонатора. Результатом ее работы является
текстовый файл, содержащий таблицу коэффициентов A и B. Ее нужно переписать
вместо старой таблицы коэффициентов.


На рис. 2 и 3 приведены
чертежи печатной платы устройства. Размер управляющей программы составляет
около 500 байт. Поэтому можно использовать м/с AT89c1051, имеющую меньший
объем памяти и меньшую стоимость. Приведенный алгоритм открывает большие
возможности для практического применения. К примеру можно сделать несложный
генератор низкой частоты с плавной перестройкой и возможностью работать в
качестве генератора качающейся частоты для настройки различных НЧ устройств.
Там же можно ввести формирование прямоугольных, треугольных и вообще сигналов
любой формы.
|