Перейти к содержанию
    

Ну ладно, похоже, прямоугольники не прокатят.

 

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

 

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

 

И еще - кто поможет согласовать выход DAC-а с телефонной линией?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Простите. :) Полностью согласен.

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

 

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

:(

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю?

 

s150.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрел только картинку. Прости.

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

 

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

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

 

Таким образом при выводе Fh плывёт фаза сигнала. Высчитать этот "уход" в градусах - элементарно. Таким образом при переходе из одного сигнала в другой - фаза сигнала уплывает и есть некоторый перелом на графике. У вас я его не заметил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если так посмотреть? NEW.ZIP

(Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если так посмотреть? NEW.ZIP

(Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)?

 

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

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

 

у меня было

Скорость передачи - 1200 бод, Fl = 1200, Fh = 2200.

В этом случае на низкой частоте фаза не уплывала.

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

Красиво.

Выборка необходима, по их расчётам 19200. Производительность 2Мипса.

 

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

Никогда бы не подумал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова?

 

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

 

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

 

У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В.

От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том же документе (последний пост zltigo) по моему приведена схема согласования с линией.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том же документе ...

А в предыдущих - ответы и на все остальные вопросы. Ну почитайте наконец-то!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот это:

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 вольт?

 

А не у кого нет осциллограмм?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

От этих децибел скоро с ума сойду...

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

А не у кого нет осциллограмм?

Легко :) :) :)

clip_si3200.wav

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

fsk.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался с "непоняткой" - неправильно отсылал 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...