DTMF КОДЕР .
DTMF кодеры используются для формирования стандартного двухчастотного сигнала , который служит для передачи по каналам связи буквенно-цифровой информации . Типичное применение - тональный набор номера в телефонах . В современных радиостанциях , применяемых в радиотелефонных системах также используется DTMF для набора номера и другой информации . Выпускается большое количество DTMF кодеров , выполненных в виде отдельного малогабаритного устройства с питанием от батарей для использования в тех случаях , когда оконечное устройство пользователя не имеет возможности передавать сигналы DTMF. Такие устройства получили название "биперы" . Используются , например для дистанционного управления автоответчиками , охранными и другими устройствами , подключенными к телефонной линии . DTMF сигнал состоит из двух составляющих синусоидальной формы , суммируемых при формировании . Каждому символу соответствует комбинация частот :
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)
За один раз вычисляется один отсчет для каждой составляющей из пары частот . Затем они суммируются и выдаются на ЦАП . Для реализации этого алгоритма можно использовать один из современных однокристальных микроконтроллеров (МК). Очень удобен к примеру AT89c1051 из широко известного семейства 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 приведен исходный текст программы для AT89c1051 , в таб.2 прошивка ПЗУ программ . При использовании кварцевого резонатора другой частоты , необходимо заново пересчитать константы A и B . Для этого можно использовать несложную программу на языке BASIC , приведенную в таб.3 . В первой строке содержится значение частоты кварцевого резонатора . Результатом ее работы является текстовый файл , содержащий таблицу коэффициентов A и B . Ее нужно переписать вместо старой таблицы коэффициентов в программе на ассемблере . После компиляции получится прошивка для нового значения частоты кварца . На рис. 2 и 3
приведены чертежи печатной платы устройства . Размер управляющей программы составляет около 500 байт . Приведенный способ формирования сигналов открывает большие возможности для практического применения . К примеру можно сделать несложный генератор низкой частоты с плавной перестройкой и возможностью работать в качестве генератора качающейся частоты для настройки различных НЧ устройств . Там же можно ввести формирование прямоугольных , треугольных и вообще сигналов любой формы .