Продолжим описание исследования 123ksn работы декодера DTMF в каналах сотовой связи начатое в первой части.
Краткая теоретическая часть. Что такое DTMF - сигнал? DTMF - сигнал – это (Dual-Tone Multi-Frequency- двухтональный многочастотный аналоговый сигнал) сумма двух синусоидальных сигналов определенной частоты и определенной амплитуды. Тональные частоты выбраны таким образом, чтобы исключить влияние гармоник. Частоты не кратны друг другу и ни одна из частот DTMF не может быть получена суммированием или вычитанием других частот. Более подробно ознакомиться с определением DTMF можно по данной ссылке.
Я же акцентируюсь на моментах, которые интересны применительно к проблеме работы рассматриваемого устройства. К сожалению, четких характеристик (кроме частот) я на DTMF- сигнал не нашел. Что я искал?
а) длительность DTMF- сигнала (если есть)
б) длительность паузы DTMF- сигнала (если есть)
Вот что я нашел здесь: http://www.gaw.ru/html.cgi/txt/app/micros/msp430/slaae16.htm
Прошу обратить особое внимание на критерии определения длительности DTMF-сигнала на графике!!!. Так, DTMF – символ начинается, когда уровень сигнала превышает 10% от номинального, а заканчивается, когда уровень становится ниже 90% от номинального! Напряжения должны соответствовать следующим уровням:
Номинальный уровень напряжения верхней из 2-х частот должен быть выше как минимум на 0.5 дБ, но не более чем на 3.5 дБ, чем номинальный уровень напряжения нижней из 2-х частот с целью компенсации потерь в длинных линиях
В диапазоне частот 250..4600 Гц, суммарный уровень всех частот, кроме тех, которые формируют набор номера, должен быть как минимум на 23 дБ ниже суммарного уровня частот, формирующих набор номера и как минимум на 20 дБ ниже уровня каждой из таких частот.
Далее я вычитал здесь: http://www.telemak.ru/index.php?page=articles&name=presto
Модуляция двухчастотными посылками — далеко не самый эффективный способ кодирования информации с точки зрения устойчивости к искажениям в канале связи и минимально-допустимого отношения сигнал — шум. Допустимый диапазон изменения амплитуды сигнала, при котором еще обеспечивается устойчивое детектирование DTMF не выше 30 дБ (причем, недопустимо как превышение амплитуды сигнала — сигнал ограничивается, и спектр его необратимо искажается, так и снижение — сигнал теряется на уровне шумов), минимально допустимое отношение сигнал шум — 12 дБ.
Данные ограничения не играют существенной роли в телефонном канале высокого качества — там они с легкостью выполняются, но, увы, на просторах нашей родины телефонные каналы высокого качества пока не очень распространены. Сплошь и рядом встречаются случаи, когда ослабление в канале превышает 30 дБ, особенно в высокочастотной части спектра, а шумы и помехи в канале — 12дБ.
Еще больше данная проблема обостряется при передаче DTMF сигнала по голосовому каналу GSM сети. Дело в том, что голосовой GSM тракт рассчитан исключительно для передачи речевого сигнала, и использует мощные системы вокодерного сжатия с потерями, ориентированными на статистику спектра речи. Вокодерное сжатие обеспечивает очень хорошую компрессию сигнала (голосовой канал кодируется из номинальных 64кб/с в 9600 б/c!) при приемлемом качестве воспроизведения речевого сигнала, но любой модулированный сигнал в таком канале подвергается очень большим искажениям. Особенно это относится к DTMF сигналу, который, как явствует из названия (Dual Tone Multi Frequency), всегда содержит в мгновенном спектре две частоты, а GSM сжатие оптимизировано под передачу сигнала, в мгновенном спектре которого есть одна превалирующая частота. Поэтому способы передачи, основанные на модуляции тем или иным способом (АМ, ФМ, ЧМ) одной несущей частоты, хотя и тоже приводят к значительным искажениям сигнала, но все-таки в меньшей степени, нежели DTMF. Чуть улучшает ситуацию использование EFR2 кодирования, но, опять же, не все операторы сотовой связи и не во всех регионах поддерживают EFR кодирование.
Непонятно: Одна DTMF посылка соответствует 4 битам и передается за 100 мс (50 мс посылка и 50 мс пауза), то есть скорость передачи составляет 40 б/c (в лучшем случае).
Конец цитатам.
В результате прочтения информации выше возникает несколько выводов:
1) В GSM-телефонах, когда мы нажимаем цифровую клавишу в режиме разговора, используется:
а) непрерывный прерывистый DTMF-сигнал, т.е 65мс сигнал+85мс пауза+65мс сигнал+85мс пауза…
б)Одиночный DTMF-сигнал, т.е. сигнал длительностью 65мс
Ну вот теперь можно переходить к практической части.
Во-первых, был изготовлен SOIC-разъем для МТ8870 из бытовой прищепки и PCI-сокета материнской платы.
Во-вторых, изменена схема установки, так как DTMF-сигналы теперь формировались не аппаратно, а подавались из компьютера:
а) из WAV- файла
б) из программы DTMFdial
В-третьих, изменилась методика измерений с появлением еще одного прибора – логического анализатора USBee с программной поддержкой от Saleae Logic
Как видно из схемы, задействованы 3 сигнальных входа USBee, причем 15 вывод МТ8870 использовался как стартовый для начала измерений. Итак, 15выв – канал 0, 11выв-канал1, 12выв- канал2. И еще одна тонкость. Оказывается, на выводах 11-14 МТ8870 всегда «хранится» код последнего опознанного DTMF-символа. Таким образом, если подавать на МТ8870 DTMF-символы в последовательности 1,2,3,4,5,6,7,8,9, то не надо контролировать все разряды, так как всегда будет изменяться младший. На правильность распознавания с большой долей доверия укажут два младших разряда.
Также я попытался использовать в качестве пишущего осциллографа звуковую карточку SB live5! Однако, как вы сможете убедиться сами, результаты измерения таким прибором неудовлетворительные. Поэтому размах DTMF-сигнала по прежнему контролировался аппаратным осциллографом.
Для проведения экспериментов с разных марок мобильников записал их DTMF-сигналы:
а) С нокиа 2600 в режиме долгого удержания 1
б) С нокиа 2600 в режиме медленного набора цифр от 1 до 9
в) С нокиа 2600 в режиме быстрого набора цифр от 1 до 9
Те же самые сигналы получил с Самсунга. Посмотрим на полученные сигналы:
На рисунке представлены два сигнала из WAV-файла. В верхней тонкой полоске видны все DTMF-символы за время записи, а ниже виден «развернутый» единичный DTMF- символ, помеченный в верхнем красной вертикальной линией . Какие выводы можно сделать глядя на этот рисунок?
1) Хорошая скорость нарастания сигнала и его стабильность.
2) Длительность отдельного DTMF- символа от начала до окончания 100мс. По уровню 90% длительность 90мс, что значительно превосходит «стандартные» 65 мс
3) Длительность паузы между DTMF-символами около 700 мс, что также значительно превосходит «стандартные» 80 мс
4) Отличное соотношение сигнал/шум в DTMF-сигнале.
Для полноты вводной части приведу описание некоторых выводов МТ8870 (КР1008ВЖ18) и схемы
Выв15: DSO Выход задержанного управления.
Продолжительность выходного сигнала ("высокий" уровень) на этом выходе соответствует продолжительности тонального сигнала, поступившего на вход ИС. "Высокий" уровень присутствует с момента опознавания сигнала DTMF (длительностью не менее 40 мс) и поступления декодированного двоичного кода на выходы данных Q1 - Q4. Выход DSO возвращается в состояние "низкого" уровня, когда напряжение на выводе 17 (SI/GTO) становится ниже порогового уровня входа управления SI (UTS=2,4 В при UDD = 5 В )
Выв 16 ESO Выход раннего управления.
На этом выходе немедленно появляется "высокий" уровень, когда сигнал DTMF опознаётся схемой обработки цифрового сигнала. Любые мгновенные потери сигнала DTMF вызывают возвращение состояния выхода ESO в "низкий" уровень.
Выв 17 SI/GTO Двунаправленный: Вход управления/Выход установки заданного времени.
При напряжении на этом входе выше уровня UTS (2,4 В при UDD = 5 В) DTMF сигнал обрабатывается по цифровому алгоритму ИС, и обновляется состояние выходов 4-разрядного кода данных (Q1 - Q4). При напряжении ниже UTN регистры ИС освобождаются для принятия нового сигнала, а состояние выходов Q1 - Q4 не изменяется. При помощи внешних элементов на выходе GTO можно установить временные параметры обработки сигнала DTMF, а его состояние определяется функционированием выхода ESO и напряжением на входе SI.
Входной сигнал DTMF через разделительный конденсатор С1 и резистор R1 поступает на инвертирующий вход IN- операционного усилителя. Коэффициент усиления ОУ Ку = R2/R1 (для данной схемы Ку = 1). Для смещения входа ОУ подаётся напряжение 2,5 B c выхода Ust на неинвертирующий вход IN+. Входной импеданс схемы приблизительно равен сопротивлению R1.
Продолжительность выходного сигнала ("высокий." уровень) на выходе DSO (вывод 15) соответствует продолжительности тонального сигнала, поступившего на вход ИС. На этом выходе "высокий" уровень присутствует с момента опознавания сигнала DTMF и поступления декодированного двоичного кода на выходы данных Q1 - Q4. Выход DSO возвращается в состояние "низкого" уровня после опознавания и обработки межцифровой паузы.
Резистор R6 и конденсатор С3, подключенные к выводам ESO и SI/GTO, задают минимальную длительность обработки тонального сигнала или паузы после того, как сигнал или межцифровая пауза были опознаны:
- длительность обработки тонального сигнала tGTP = 0,875хR6хС3 (26 мс);
- длительность обработки межцифровой паузы tGTA = 0,956хR6хС3 (29 мс).
Длительность обработки тонального сигнала и межцифровой паузы для схемы приблизительно равны. Если длительность тонального сигнала больше или меньше межцифровой паузы, то можно . подключить внешние элементы, см ссылки.
Забегая на перёд скажу, что резистор R6 и конденсатор С3 не соответствуют параметрам DTMF-сигнала с мобильников.
Эксперименты я начну с DTMF-сигналов, сформированных программой DTMFdial.
Значения длительностей по умолчанию 60х20х250. Набираемые цифры 12121212121212121…На всеобщее обозрение выношу не все сигналы, а только специфичные, т.е., как правило, ошибочные. Размах сигнала 400мв.
Как видно из рисунка MT8870 отлично справляется с декодированием. Уменьшаю напряжение до 300мв.
Виден "дребезг” сигнала "декодирован”. Уменьшаю напряжение до 200мв.
Длительность сигнала "декодирован” значительно сократилась и сам он превратился в сплошной "дребезг”. В то же время правильность декодирования соблюдается. Попробую привести длительности приблизительно к стандартным. Значения длительностей 70х85х250. Набираемые цифры 12121212121212121… Размах сигнала 200мв.
Сигнала "декодирован” значительно сокращен и много "дребезга”. Правильность декодирования соблюдается. Увеличу размах до 300мв:
Сигнала "декодирован” почти идеален, но встречается "дребезг”. Правильность декодирования соблюдается. Увеличу размах до 400мв:
Сигнала "декодирован” почти идеален, но изредка встречается "дребезг”. Правильность декодирования соблюдается!
Я делал симуляцию в Proteus гораздо проще - вместо МТ8870 - пять кнопок (4 код + 1 строб). Сначала кнопками 1-4 устанавливаем код, соотвествующий любому из 16-ти символов, а затем кнопкой 5 иммитируем стробирующий импульс.
Возможно Вы в курсе, как настроить DTMF симуляцию декодированных сигналов на выходе MT8870 (нажатие каждой кнопки) на цифровом генераторе DC генераторе Proteus. Цель - подключение Atmega16 (ADC), управление нагрузкой 2я DC моторами. Любая (исходники, советы по отладке) информация и советы будут оценены по достоинству.