Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CLIP для SIEMENS S150
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ochkarik_
Добрый день.

Суть проблемы. Телефон Siemens Gigaset S150. Цифровая АТС (какого конкретно типа - не скажу). По утверждению инженеров, АТС передает Caller ID в формате DTMF. Труба поддерживает Caller ID в формате FSK.

Для этих телефонов проблема должна бы решаться перепрошивкой : (изменением одного байта в EEPROM)

Но есть проблема: по всей вероятности, из-за другого типа процессора (PCD8016) епромки на плате нет.
Определитель же поиметь хочется. Хотелось бы услышать мнение знающих - как можно на атмеге реализовать конвертор DTMF-> FSK, и стоит ли игра свеч?

Читал здесь: http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm

И здесь: http://www.picbasic.nl/frameload_uk.htm?ht...ermelder_uk.htm

Что думаю.
В качестве декодера DTMF взять микросхему MT8870 или CM8870 (как во втором варианте) и выдать сигнал FSK (как в варианте с araxinfo.com). Но пока не понятно, как схематически реализовать выдачу FSK в линию. Так же ничего не знаю про формат FSK.


Пока только представляю общий алгоритм - дождаться сигнала DTMF, определить номер телефона, после первого гудка выдать FSK.

Поскольку на araxinfo.com исходников не лежит, мне пока тяжело сообразить, что там и куда.
Может, кто поможет со схемотехникой? Еще просьба - может где есть на понятном языке инфа по FSK - ткните носом.
zltigo
Цитата(ochkarik_ @ Oct 22 2008, 19:58) *
Хотелось бы услышать мнение знающих - как можно на атмеге реализовать конвертор DTMF-> FSK, и стоит ли игра свеч?

На голой - нет. Обвеска будет дикая и кроме приемника DTMF придется задерживать вызывной сигнал, да и генерацию даже 1200/2200Hz 1200бод FSK не левой ногой писать. Не стоит.
SasaVitebsk
C DTMF мега8 справляется достаточно легко без обвески. Я делал несколькими способами, но найболее толковый - на фильтрах. Правда делал их не 8 а 10. Ещё предварительно фильтровал полосу верхних и нижних частот. FSK я встречал как вид модуляции сигнала. Если речь идёт о низкочастотной FSK типа коммутации нескольких частот, то, я думаю, реализовать можно. Если же там пойдёт речь о фазовых коррекциях и более сложных типах, то вряд ли это себя окупит. Легче купить таку фишку за 5 р, чем отдать пол года жизни. Кроме того, в связи с тем, что у AVR отсутствует DAC, то придётся ставить внешний. Развязка с тел. линией, тоже не из простых. ну и т.д.
Сергей К
Я на PIC16F628 (4МГц) делал CLIP на FSK. В качестве датчика сигнала работал встроенный компаратор, определившийся номер выдавал "непрерывным пакетом" для "Русского АОНа". Особых проблем с декодированием небыло (но я тогда еще писал все на асме).
Что касается генерирования FSK - полностью согласен, это будет сложно. Ведь там 1/2 периода колебания всего чуть-чуть меньше длительности одного бита и реализовать красивый плавный-быстрый переход синусоиды с одной частоты на другую будет не очень просто.
Возможно и удастся с тактовой частотой не менее 20МГц красиво нарисовать синусоиду... спорить не буду.
ochkarik_
Цитата(SasaVitebsk @ Oct 23 2008, 00:54) *
Легче купить таку фишку ...


ГДЕ??? Хочу... (Украина, Кривой Рог)


2ALL

А что тогда здесь?
http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm

Я не думаю, что человек разводом занимается. Как ему на пике с 4 мегагерцами удалось сделать такое устройство? Что за FSK в телефонной линии? Может, там не все так страшно? Может, ему обычный ШИМ кормить, чуть сгладив( не жирно ли будет чистую синусоиду)?

Цитата
В стандарте FSK данные передаются со скоростью 1200 бит/сек. Логическая 1 (MARK) кодируется частотой 1300 Гц, логический 0 (SPACE) – 2100 Гц. Информация передается побайтно, каждый байт начинается стартовым битом SPACE и заканчивается стоповым битом MARK.
zltigo
Цитата(ochkarik_ @ Oct 24 2008, 18:33) *
Я не думаю, что человек разводом занимается.

Обычное радиолюбительство - "я тут с каким-то железом в своих конкретных условиях повозился и у меня заработало, ну почти заработало..."
Цитата
В стандарте FSK данные передаются со скоростью 1200 бит/сек. Логическая 1 (MARK) кодируется частотой 1300 Гц, логический 0 (SPACE) – 2100 Гц.

Это "штатовский" cтандарт соответствующий модуляции 1200 ака Bell 212, в Европе в основном частоты, как V.22. В остальном в первом приближении одинаково, но форматов и подмножеств форматов данных достаточно много. Некоторые монстральные операторы типа British Telecом у себя отступают от более менее общепринятых вариантов и соответственно с телефонами маркированными логотипом оператора могут быть дополнительные проблемы. В Россию по серому зачастую возят все, что попало...
SasaVitebsk
Нет но я думаю там чтото простое. Я где-то видел просто 2 частоты на цифру. Частот не больше чем в DTMF. Для этого нет необходимости в v.22.

А абревиатура FSK просто сообщает о частотной модуляции. Под это и сам Bell подпадает. Я вон реализовывал HART протокол, там тоже написано FSK и Bell. Ну на 7 МГц вполне реализуемо в 2 стороны. Со всеми делами. Но сама фишка неприятная.

Сделать можно, но отдашь пол года жизни. Я просматривал факсовые протоколы, на предмет реализации (там уже фазовая модуляция) - тоже реализуемо.... Но надо оборудование толковое и куча времени.

А сдругой стороны чип, с такими характеристиками - 5$ будет стоить. Так стоит ли за это бороться?
zltigo
Цитата(SasaVitebsk @ Oct 24 2008, 23:16) *
Нет но я думаю там чтото простое. Я где-то видел просто 2 частоты на цифру. Частот не больше чем в DTMF. Для этого нет необходимости в v.22.

Тфу, за давностью лет ошибся в цифирях стандартов - Bell 202 и V.23
Соответственно частоты
Mark: 1200 Hz 1300 Hz
Space: 2200 Hz 2100 Hz
Номинальный уровень -13,5dB
Диапазон принимаемых уровней Mark -40...-14dB, Space -36...-8dB
Требования ETS 300 659-1 и некоторые другие документы из личной коллекции использованной при реализации CLIP в приложении.
SasaVitebsk
Простите за bb-offtopic.gif
А не сталкивался ли кто с реализацией bell 202. Особенно интересуют подходы "древних" времён.
Там есть бредятина одна, что частоты не кратны. Думаю это сделано, чтобы от гармоник отфильтровать сигнал. Но при реализации - некоторые проблемы, учитывая, что 1-2 периода частоты всего.
Вот непонятно как они раньше распознавали сигнал. По 1 периоду фильтр не работает. smile.gif

Может кто сталкивался с теорией. А то мне что-то моя реализация не нравится. Такое ощущение, что я чего то не знаю. Причём это что-то корнями упирается в дела давно минувших дней. smile.gif

Лучше бы это была теория, а не реализация. А то в чужом коде разбираться не очень хочется. smile.gif
zltigo
Про "древность" не совсем понял, но примерно так
http://focus.ti.com/mcu/docs/mcusupporttec...actName=slaa037
ochkarik_
Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала.
Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела.

Или я все таки ошибаюсь?
zltigo
Цитата(ochkarik_ @ Oct 25 2008, 09:44) *
Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида?

Вы вольны издеваться и над собой и над телефоном в любой форме. Что касается стандартов и реализации FSK, то документы я дал. Если у Вас есть калькулятор, то просьба разделить 1200/2200, после чего подумать над получившимся числом и соответственно о частоте сигнала длительность которого немногим больше его полупериода.
Цитата
..его не устроят?

Ну так и спрашивайте об этом свой телефон sad.gif, а не на форуме. Что его точно устроит я Вам ответил. Если узнаете конкретную реализацию FSK/CLIP и сделаете - будет точно работать. Все остальное - махровое радиолюбительство.
SasaVitebsk
Цитата(ochkarik_ @ Oct 25 2008, 10:44) *
Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала.
Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела.

Или я все таки ошибаюсь?

Да нет не ошибаетесь. Даже не шимом а прямоугольником делают, а на операционниках сигнал этот немного "прихорашивают".

Вам то просто сформировать, а я потом разбираю. smile.gif

При реализации столкнулся с разным бредом. smile.gif Датчики то делают все кому не лень. Поляки и наши. Некоторые даже стандарт поленились читать. И вот начинаются подгонки. Чаще всего встречал, когда вместо 2200 гонят 2400 для простоты реализации. Но простоты там не получается в результате меняется длительность как бита так и посылки. Короче, по видимому берут модем и в лоб подгоняют сигнал так, чтобы он "понимал" что они там передают. smile.gif

Хороший модем разбирает практически любую бредятину. В результате у меня эта примитивная задачка отняла месяца два времени и что-то версий 30 было различных. Причём полностью переписывал. Так, порой, даже в ручную восстановить инфу было затруднительно.

Изделие отдал - уже выпускают. Но, честно говоря, осадок остался. Спасибо zltigo. Покопаюсь почитаю. Кстати "фирменный" модем был на msp430.
smile.gif

PS: Просмотрел файл.
Вот любят они ассемблер. smile.gif
Я кстати DTMF реализацию тоже брал с сайта TI. Ошибочка там была. И модифицировать пришлось, а так всё нормально. smile.gif
Очень интересно. Я что-то подобное и предполагал. А то я уже и статистику применял и повторный разбор делал и разбор в 2 стороны. smile.gif
zltigo
Цитата(SasaVitebsk @ Oct 25 2008, 11:01) *
Да нет не ошибаетесь. Даже не шимом а прямоугольником делают, а на операционниках сигнал этот немного "прихорашивают".

Давайте Вы не будете переносить свои наблюдения над Hart-модемовскими поделками на то, что используется на телефонных сетях общего пользования. Я не владею ситуацией по стыковке с технологическим оборудованием, но на ТфОП официально всякие радиолюбительские поделки не проходят. Ибо сертификация коммуникационного оборудования худо-бедно в России работает.
Сергей К
Цитата
Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала
я думаю - следует провести эксперимент - взять любую FSK посылку, усилить ее превратив в "прямогольник" и послать телефону. Во всяком случае - моя бы приставка все распознала, т.к. я просто замерял время между переходами синусоиды через ноль.
ochkarik_
Ну ладно, похоже, прямоугольники не прокатят.

А как такой вариант - DAC MCP4921 (12-ти разрядный с SPI интерфейсом, почему этот - просто есть в наличии). Микросхема 5-ти вольтовая. Алгоритм - синусоида в памяти, выводим на ЦАП, меняя частоту выборки для МARK и SPACE.

На какое минимально количество интервалов можно разбить синусоиду, чтобы было плавненько?

И еще - кто поможет согласовать выход DAC-а с телефонной линией?
SasaVitebsk
Цитата(zltigo @ Oct 25 2008, 16:31) *
Давайте Вы не будете переносить свои наблюдения над Hart-модемовскими поделками на то, что используется на телефонных сетях общего пользования. Я не владею ситуацией по стыковке с технологическим оборудованием, но на ТфОП официально всякие радиолюбительские поделки не проходят. Ибо сертификация коммуникационного оборудования худо-бедно в России работает.

Простите. smile.gif Полностью согласен.
Мы кое-что делали по телефонии и сартифицировали в том числе. Действительно в телефонии старались максимально обеспечивать стандарт. Правда проблемы есть и с этими стандартами и с их доставаемостью, и с работой самого оборудования, и с кадрами там работающими. Они как раз стандарты не читают и не хотят. А ремонт оборудования осуществляют как придётся и как попало. Результаты бывают весьма плачевны и доказать "не соответствие" практически нереально.

Есть претензии и к сартификации. В 99% требуется подать комплект документов и оплатить. Бывали случаи когда образцы у нас даже и не забирали.
sad.gif

Кстати HART тоже предполагает синус. Согласно стандарту. Но все 100% модемов и датчиков, которые я держал в руках - это не обеспечивают. Возможно это связано с малым потреблением устройств работающих в линии. На модем выделяется не более 1ма.
ochkarik_
Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю?

Нажмите для просмотра прикрепленного файла
SasaVitebsk
Смотрел только картинку. Прости.
Если исходить из реализации, которую я осиливал, то картинка на мой взгляд выглядит не правильно. Поясню.

1) Имеется частота Fl = 1200 (у меня). Длина бита соответствует периоду.
2) Имеется частота Fh = 2200 (у меня) Длина бита см. выше.

Таким образом при выводе Fh плывёт фаза сигнала. Высчитать этот "уход" в градусах - элементарно. Таким образом при переходе из одного сигнала в другой - фаза сигнала уплывает и есть некоторый перелом на графике. У вас я его не заметил.
ochkarik_
А если так посмотреть? Нажмите для просмотра прикрепленного файла
(Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)?

На графике красная линия - моменты перехода частоты.
SasaVitebsk
Цитата(ochkarik_ @ Oct 28 2008, 06:29) *
А если так посмотреть? Нажмите для просмотра прикрепленного файла
(Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)?

На графике красная линия - моменты перехода частоты.

Если у вас такое соотношение частот, то всё правильно походу.

у меня было
Скорость передачи - 1200 бод, Fl = 1200, Fh = 2200.
В этом случае на низкой частоте фаза не уплывала.
Согласно документа, предоставленного zltigo они не полупериод мерят, как это в простых подходах реализуется, а берут несущую частоту Fn = (Fl+Fh)/2 (В вашем случае 1750) и получают частоты +/- 450Гц от несущей. Их и выделяют с помощью фильтра.
Красиво.
Выборка необходима, по их расчётам 19200. Производительность 2Мипса.

Это я уже проходил, в принципе. DTMF реализовывал 3 алгоритмами. Самое качественное распознавание и самое быстрое получилось на фильтрах. При этом реализация этого алгоритма оказалась самая малая по ресурсам.
Никогда бы не подумал.
ochkarik_
А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова?

Я это к тому, что желательно бы протестировать, нужно соорудить железку. А в схемотехнике не очень силен. Как усилить сигнал, я еще понимаю, но как согласовать это все с телефонной линией, догадываюсь смутно. Может, пока без линии попробовать?

А если с линией, то как?

У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В.
От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением?
SasaVitebsk
В том же документе (последний пост zltigo) по моему приведена схема согласования с линией.
zltigo
Цитата(SasaVitebsk @ Oct 28 2008, 23:50) *
В том же документе ...

А в предыдущих - ответы и на все остальные вопросы. Ну почитайте наконец-то!
ochkarik_
Вот это:
Signal Level: -13,5 dBm ± 1,5 dB (When the line is looped on an impedance equivalent to the
source impedance)

то же самое, что и это:

Mark level -40dBV -14 dBV
Space level -36 dBV -8 dBV

???

Сколько это в вольтах?
От этих децибел скоро с ума сойду...
По моим подсчетам, это должно быть около 0.5 вольт (во втором случае даже ниже).
Я правильно посчитал?
То есть, получается, что на 60 В в состоянии покоя накладываются колебания амплитудой 0.5 вольт?

А не у кого нет осциллограмм?
zltigo
Цитата(ochkarik_ @ Nov 2 2008, 17:12) *
От этих децибел скоро с ума сойду...

0dB это 1mW. На нагрузке 600 Ohm ~0,775V Отчего с ума-то сходить? Что-же дальше будет, если уже сразу такое....
Цитата
А не у кого нет осциллограмм?

Легко smile.gif smile.gif smile.gif
ochkarik_
То есть, если смотреть осциллографом в телефонной линии, то должно получиться так?

Нажмите для просмотра прикрепленного файла
ESN
Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала caller FSK. Как частный случай, возьмем кварц частотой 3 686 400 Гц = 1200 (бит или бод -скорость передачи данных в формате FSK) *256 (ШИМ PWM 0-255) *12 (количество точек синуса при формировании бода Маrk или Space) и таблицу sin[] состоящую из 144 восьми разрядных значений. Для получения частот FSK используем ШИМ в который будут заноситься значения из таблицы sin с разными соответствующими частотам шагами: Шаг_Mark(1200)=12, Шаг_Mark(1300)=13, Шаг_Space(2100)=21, Шаг_Space(2200)=22. 12 последовательных значений с одинаковым шагом сформируют сигнал Mark или Space. Меняя значения кварца и длину таблицы sin[] можно сформировать эти сигналы более точно. Поправьте меня, если я где-то ошибся в своих "умозаключениях" по формированию cаller FSK.

Код
;------------------------------------------------------------------
;   1200(бод) * 12(точек синуса) * 256 (циклов ШИМ) = Кварц 3 686 400 Герц
sinus_144:
.db 128,133,139,144,150,155,160,166,171,176,181,186,191,196,201,205
.db 209,214,218,222,225,229,232,235,238,241,243,245,247,249,251,252
.db 253,254,255,255,255,255,255,254,253,252,251,249,247,245,243,241
.db 238,235,232,229,225,222,218,214,209,205,201,196,191,186,181,176
.db 171,166,160,155,150,144,139,133,128,122,116,111,105,100,95,89
.db 84,79,74,69,64,59,54,50,46,41,37,33,30,26,23,20
.db 17,14,12,10,8,6,4,3,2,1,0,0,0,0,0,1
.db 2,3,4,6,8,10,12,14,17,20,23,26,30,33,37,41
.db 46,50,54,59,64,69,74,79,84,89,95,100,105,111,116,122
ESN
[quote name='ESN' date='Aug 21 2017, 11:07' post='1514326']
Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала caller FSK. Как частный случай, возьмем кварц частотой 3 686 400 Гц = 1200 (бит или бод -скорость передачи данных в формате FSK) *256 (ШИМ PWM 0-255) *12 (количество точек синуса при формировании бода Маrk или Space) и таблицу sin[] состоящую из 144 восьми разрядных значений. Для получения частот FSK используем ШИМ в который будут заноситься значения из таблицы sin с разными соответствующими частотам шагами: Шаг_Mark(1200)=12, Шаг_Mark(1300)=13, Шаг_Space(2100)=21, Шаг_Space(2200)=22. 12 последовательных значений с одинаковым шагом сформируют сигнал Mark или Space. Меняя значения кварца и длину таблицы sin[] можно сформировать эти сигналы более точно.
Решил дописать это свое сообщение, вместо нового. Недавно раздобыл микросхему HT9032C - демодулятор V.23 (1300-2100 Герц) и Bell 202 (1200-2200 Герц), на которую подавал сигнал FSK по правилам изложенным выше. Правда, Atmega тактировалась кварцем 11 059 600 Герц и данные из табл. синуса по переполнению таймера выдавались в Port, cоединенный через ЦАП R/2R (10K) c HT9032C. Все замечательно работает, но осталась одна "непонятка". На демодулятор посылались следующие данные: заголовок(preamble) cостоящий из 30 байт $55 и 18 байт $ff и произвольные байты(сaller ID message). Каждый байт информации передавался так: 1 бод Space, 8 информационных бод соответствующих битам передаваемого байта,1 бод Mark, т.e. чтобы передать один байт информации нужно сформировать 10 бод. "Непонятка" заключается в том, что HT9032C выдает несколько искаженный заголовок: 28 байт $55, 1 байт $d5, 18 байт $ff. Если же эти данные заголовка разместить в информационном поле несколько раз, то никаких искажений при приеме в информационном поле не наблюдается, строго принимаются 30 байт $55 и 18 байт $ff. ??? В присоединенном файле хранятся таблицы синуса для ряда кварцев, частоты которых кратны числу 1200*256. Можно работать не по переполнению таймера микроконтроллера, а по совпадению, тогда номинал кварца можно понизить в несколько раз.

ESN
Разобрался с "непоняткой" - неправильно отсылал 18 байт $ff, соответствущих Mark Signal ( то что в литературе встречается, как ETSI 180+/-25 mark) Там ведь не должно быть Space -бод (никаких старт-бит), только Маrk-боды: 1 бод Mark, 8 информационных бод - 1, 1 бод Mark. В общем, на выходе HT9032C получил: 28 байт $55, 1 байт $f5 и Саller ID message, которое формировал посредством микроконтроллера AVR.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.