ochkarik_ 0 26 октября, 2008 Опубликовано 26 октября, 2008 · Жалоба Ну ладно, похоже, прямоугольники не прокатят. А как такой вариант - DAC MCP4921 (12-ти разрядный с SPI интерфейсом, почему этот - просто есть в наличии). Микросхема 5-ти вольтовая. Алгоритм - синусоида в памяти, выводим на ЦАП, меняя частоту выборки для МARK и SPACE. На какое минимально количество интервалов можно разбить синусоиду, чтобы было плавненько? И еще - кто поможет согласовать выход DAC-а с телефонной линией? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 26 октября, 2008 Опубликовано 26 октября, 2008 · Жалоба Давайте Вы не будете переносить свои наблюдения над Hart-модемовскими поделками на то, что используется на телефонных сетях общего пользования. Я не владею ситуацией по стыковке с технологическим оборудованием, но на ТфОП официально всякие радиолюбительские поделки не проходят. Ибо сертификация коммуникационного оборудования худо-бедно в России работает. Простите. :) Полностью согласен. Мы кое-что делали по телефонии и сартифицировали в том числе. Действительно в телефонии старались максимально обеспечивать стандарт. Правда проблемы есть и с этими стандартами и с их доставаемостью, и с работой самого оборудования, и с кадрами там работающими. Они как раз стандарты не читают и не хотят. А ремонт оборудования осуществляют как придётся и как попало. Результаты бывают весьма плачевны и доказать "не соответствие" практически нереально. Есть претензии и к сартификации. В 99% требуется подать комплект документов и оплатить. Бывали случаи когда образцы у нас даже и не забирали. :( Кстати HART тоже предполагает синус. Согласно стандарту. Но все 100% модемов и датчиков, которые я держал в руках - это не обеспечивают. Возможно это связано с малым потреблением устройств работающих в линии. На модем выделяется не более 1ма. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ochkarik_ 0 27 октября, 2008 Опубликовано 27 октября, 2008 · Жалоба Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю? s150.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 27 октября, 2008 Опубликовано 27 октября, 2008 · Жалоба Смотрел только картинку. Прости. Если исходить из реализации, которую я осиливал, то картинка на мой взгляд выглядит не правильно. Поясню. 1) Имеется частота Fl = 1200 (у меня). Длина бита соответствует периоду. 2) Имеется частота Fh = 2200 (у меня) Длина бита см. выше. Таким образом при выводе Fh плывёт фаза сигнала. Высчитать этот "уход" в градусах - элементарно. Таким образом при переходе из одного сигнала в другой - фаза сигнала уплывает и есть некоторый перелом на графике. У вас я его не заметил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ochkarik_ 0 28 октября, 2008 Опубликовано 28 октября, 2008 · Жалоба А если так посмотреть? NEW.ZIP (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 28 октября, 2008 Опубликовано 28 октября, 2008 · Жалоба А если так посмотреть? NEW.ZIP (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты. Если у вас такое соотношение частот, то всё правильно походу. у меня было Скорость передачи - 1200 бод, Fl = 1200, Fh = 2200. В этом случае на низкой частоте фаза не уплывала. Согласно документа, предоставленного zltigo они не полупериод мерят, как это в простых подходах реализуется, а берут несущую частоту Fn = (Fl+Fh)/2 (В вашем случае 1750) и получают частоты +/- 450Гц от несущей. Их и выделяют с помощью фильтра. Красиво. Выборка необходима, по их расчётам 19200. Производительность 2Мипса. Это я уже проходил, в принципе. DTMF реализовывал 3 алгоритмами. Самое качественное распознавание и самое быстрое получилось на фильтрах. При этом реализация этого алгоритма оказалась самая малая по ресурсам. Никогда бы не подумал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ochkarik_ 0 28 октября, 2008 Опубликовано 28 октября, 2008 · Жалоба А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова? Я это к тому, что желательно бы протестировать, нужно соорудить железку. А в схемотехнике не очень силен. Как усилить сигнал, я еще понимаю, но как согласовать это все с телефонной линией, догадываюсь смутно. Может, пока без линии попробовать? А если с линией, то как? У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В. От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 28 октября, 2008 Опубликовано 28 октября, 2008 · Жалоба В том же документе (последний пост zltigo) по моему приведена схема согласования с линией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 28 октября, 2008 Опубликовано 28 октября, 2008 · Жалоба В том же документе ... А в предыдущих - ответы и на все остальные вопросы. Ну почитайте наконец-то! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ochkarik_ 0 2 ноября, 2008 Опубликовано 2 ноября, 2008 · Жалоба Вот это: 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 0 2 ноября, 2008 Опубликовано 2 ноября, 2008 · Жалоба От этих децибел скоро с ума сойду... 0dB это 1mW. На нагрузке 600 Ohm ~0,775V Отчего с ума-то сходить? Что-же дальше будет, если уже сразу такое.... А не у кого нет осциллограмм? Легко :) :) :) clip_si3200.wav Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ochkarik_ 0 2 ноября, 2008 Опубликовано 2 ноября, 2008 · Жалоба То есть, если смотреть осциллографом в телефонной линии, то должно получиться так? fsk.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ESN 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала 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 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала 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. Можно работать не по переполнению таймера микроконтроллера, а по совпадению, тогда номинал кварца можно понизить в несколько раз. sinus_caller_ID.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ESN 0 26 апреля, 2018 Опубликовано 26 апреля, 2018 · Жалоба Разобрался с "непоняткой" - неправильно отсылал 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться