|
CLIP для SIEMENS S150, Конвертер DTMF-FSK |
|
|
|
Oct 22 2008, 17:58
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Добрый день. Суть проблемы. Телефон 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 - ткните носом.
|
|
|
|
|
Oct 22 2008, 21:54
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
C DTMF мега8 справляется достаточно легко без обвески. Я делал несколькими способами, но найболее толковый - на фильтрах. Правда делал их не 8 а 10. Ещё предварительно фильтровал полосу верхних и нижних частот. FSK я встречал как вид модуляции сигнала. Если речь идёт о низкочастотной FSK типа коммутации нескольких частот, то, я думаю, реализовать можно. Если же там пойдёт речь о фазовых коррекциях и более сложных типах, то вряд ли это себя окупит. Легче купить таку фишку за 5 р, чем отдать пол года жизни. Кроме того, в связи с тем, что у AVR отсутствует DAC, то придётся ставить внешний. Развязка с тел. линией, тоже не из простых. ну и т.д.
|
|
|
|
|
Oct 23 2008, 05:45
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 18-09-08
Из: Киев
Пользователь №: 40 317

|
Я на PIC16F628 (4МГц) делал CLIP на FSK. В качестве датчика сигнала работал встроенный компаратор, определившийся номер выдавал "непрерывным пакетом" для "Русского АОНа". Особых проблем с декодированием небыло (но я тогда еще писал все на асме). Что касается генерирования FSK - полностью согласен, это будет сложно. Ведь там 1/2 периода колебания всего чуть-чуть меньше длительности одного бита и реализовать красивый плавный-быстрый переход синусоиды с одной частоты на другую будет не очень просто. Возможно и удастся с тактовой частотой не менее 20МГц красиво нарисовать синусоиду... спорить не буду.
|
|
|
|
|
Oct 24 2008, 16:33
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Цитата(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.
Сообщение отредактировал ochkarik_ - Oct 24 2008, 16:41
|
|
|
|
|
Oct 24 2008, 18:25
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(ochkarik_ @ Oct 24 2008, 18:33)  Я не думаю, что человек разводом занимается. Обычное радиолюбительство - "я тут с каким-то железом в своих конкретных условиях повозился и у меня заработало, ну почти заработало..." Цитата В стандарте FSK данные передаются со скоростью 1200 бит/сек. Логическая 1 (MARK) кодируется частотой 1300 Гц, логический 0 (SPACE) – 2100 Гц. Это "штатовский" cтандарт соответствующий модуляции 1200 ака Bell 212, в Европе в основном частоты, как V.22. В остальном в первом приближении одинаково, но форматов и подмножеств форматов данных достаточно много. Некоторые монстральные операторы типа British Telecом у себя отступают от более менее общепринятых вариантов и соответственно с телефонами маркированными логотипом оператора могут быть дополнительные проблемы. В Россию по серому зачастую возят все, что попало...
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 24 2008, 22:57
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(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 в приложении.
Прикрепленные файлы
clip.rar ( 425.28 килобайт )
Кол-во скачиваний: 75
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 25 2008, 07:44
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала. Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела.
Или я все таки ошибаюсь?
|
|
|
|
|
Oct 25 2008, 08:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(ochkarik_ @ Oct 25 2008, 09:44)  Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Вы вольны издеваться и над собой и над телефоном в любой форме. Что касается стандартов и реализации FSK, то документы я дал. Если у Вас есть калькулятор, то просьба разделить 1200/2200, после чего подумать над получившимся числом и соответственно о частоте сигнала длительность которого немногим больше его полупериода. Цитата ..его не устроят? Ну так и спрашивайте об этом свой телефон  , а не на форуме. Что его точно устроит я Вам ответил. Если узнаете конкретную реализацию FSK/CLIP и сделаете - будет точно работать. Все остальное - махровое радиолюбительство.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 25 2008, 09:01
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(ochkarik_ @ Oct 25 2008, 10:44)  Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала. Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела.
Или я все таки ошибаюсь? Да нет не ошибаетесь. Даже не шимом а прямоугольником делают, а на операционниках сигнал этот немного "прихорашивают". Вам то просто сформировать, а я потом разбираю.  При реализации столкнулся с разным бредом.  Датчики то делают все кому не лень. Поляки и наши. Некоторые даже стандарт поленились читать. И вот начинаются подгонки. Чаще всего встречал, когда вместо 2200 гонят 2400 для простоты реализации. Но простоты там не получается в результате меняется длительность как бита так и посылки. Короче, по видимому берут модем и в лоб подгоняют сигнал так, чтобы он "понимал" что они там передают.  Хороший модем разбирает практически любую бредятину. В результате у меня эта примитивная задачка отняла месяца два времени и что-то версий 30 было различных. Причём полностью переписывал. Так, порой, даже в ручную восстановить инфу было затруднительно. Изделие отдал - уже выпускают. Но, честно говоря, осадок остался. Спасибо zltigo. Покопаюсь почитаю. Кстати "фирменный" модем был на msp430.  PS: Просмотрел файл. Вот любят они ассемблер.  Я кстати DTMF реализацию тоже брал с сайта TI. Ошибочка там была. И модифицировать пришлось, а так всё нормально.  Очень интересно. Я что-то подобное и предполагал. А то я уже и статистику применял и повторный разбор делал и разбор в 2 стороны.
|
|
|
|
|
Oct 25 2008, 17:18
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 18-09-08
Из: Киев
Пользователь №: 40 317

|
Цитата Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала я думаю - следует провести эксперимент - взять любую FSK посылку, усилить ее превратив в "прямогольник" и послать телефону. Во всяком случае - моя бы приставка все распознала, т.к. я просто замерял время между переходами синусоиды через ноль.
|
|
|
|
|
Oct 26 2008, 15:56
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Ну ладно, похоже, прямоугольники не прокатят.
А как такой вариант - DAC MCP4921 (12-ти разрядный с SPI интерфейсом, почему этот - просто есть в наличии). Микросхема 5-ти вольтовая. Алгоритм - синусоида в памяти, выводим на ЦАП, меняя частоту выборки для МARK и SPACE.
На какое минимально количество интервалов можно разбить синусоиду, чтобы было плавненько?
И еще - кто поможет согласовать выход DAC-а с телефонной линией?
|
|
|
|
|
Oct 26 2008, 17:30
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(zltigo @ Oct 25 2008, 16:31)  Давайте Вы не будете переносить свои наблюдения над Hart-модемовскими поделками на то, что используется на телефонных сетях общего пользования. Я не владею ситуацией по стыковке с технологическим оборудованием, но на ТфОП официально всякие радиолюбительские поделки не проходят. Ибо сертификация коммуникационного оборудования худо-бедно в России работает. Простите.  Полностью согласен. Мы кое-что делали по телефонии и сартифицировали в том числе. Действительно в телефонии старались максимально обеспечивать стандарт. Правда проблемы есть и с этими стандартами и с их доставаемостью, и с работой самого оборудования, и с кадрами там работающими. Они как раз стандарты не читают и не хотят. А ремонт оборудования осуществляют как придётся и как попало. Результаты бывают весьма плачевны и доказать "не соответствие" практически нереально. Есть претензии и к сартификации. В 99% требуется подать комплект документов и оплатить. Бывали случаи когда образцы у нас даже и не забирали. Кстати HART тоже предполагает синус. Согласно стандарту. Но все 100% модемов и датчиков, которые я держал в руках - это не обеспечивают. Возможно это связано с малым потреблением устройств работающих в линии. На модем выделяется не более 1ма.
|
|
|
|
|
Oct 27 2008, 18:27
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю?
s150.zip ( 134.37 килобайт )
Кол-во скачиваний: 159
|
|
|
|
|
Oct 28 2008, 03:29
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
А если так посмотреть?
NEW.ZIP ( 96.3 килобайт )
Кол-во скачиваний: 166 (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты.
|
|
|
|
|
Oct 28 2008, 10:18
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(ochkarik_ @ Oct 28 2008, 06:29)  А если так посмотреть?
NEW.ZIP ( 96.3 килобайт )
Кол-во скачиваний: 166 (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты. Если у вас такое соотношение частот, то всё правильно походу. у меня было Скорость передачи - 1200 бод, Fl = 1200, Fh = 2200. В этом случае на низкой частоте фаза не уплывала. Согласно документа, предоставленного zltigo они не полупериод мерят, как это в простых подходах реализуется, а берут несущую частоту Fn = (Fl+Fh)/2 (В вашем случае 1750) и получают частоты +/- 450Гц от несущей. Их и выделяют с помощью фильтра. Красиво. Выборка необходима, по их расчётам 19200. Производительность 2Мипса. Это я уже проходил, в принципе. DTMF реализовывал 3 алгоритмами. Самое качественное распознавание и самое быстрое получилось на фильтрах. При этом реализация этого алгоритма оказалась самая малая по ресурсам. Никогда бы не подумал.
|
|
|
|
|
Oct 28 2008, 20:28
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова?
Я это к тому, что желательно бы протестировать, нужно соорудить железку. А в схемотехнике не очень силен. Как усилить сигнал, я еще понимаю, но как согласовать это все с телефонной линией, догадываюсь смутно. Может, пока без линии попробовать?
А если с линией, то как?
У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В. От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением?
|
|
|
|
|
Nov 2 2008, 14:12
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Вот это: 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 вольт?
А не у кого нет осциллограмм?
|
|
|
|
|
Nov 2 2008, 17:37
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
То есть, если смотреть осциллографом в телефонной линии, то должно получиться так?
fsk.zip ( 11.61 килобайт )
Кол-во скачиваний: 195
|
|
|
|
|
Aug 21 2017, 08:07
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 4-10-10
Из: г.Псков
Пользователь №: 59 908

|
Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала 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
|
|
|
|
|
Feb 22 2018, 07:41
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 4-10-10
Из: г.Псков
Пользователь №: 59 908

|
[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. Можно работать не по переполнению таймера микроконтроллера, а по совпадению, тогда номинал кварца можно понизить в несколько раз.
|
|
|
|
|
Apr 26 2018, 07:32
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 4-10-10
Из: г.Псков
Пользователь №: 59 908

|
Разобрался с "непоняткой" - неправильно отсылал 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.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|