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

Высокоскоростной однопроводный интерфейс

Здравствуйте, уважаемые форумчане!

Пришла в голову идея разработать высокоскоростной однопроводный интерфейс, передающий и часы, и данные от мастера к слэйву по одной витой паре RS-485 со со скоростью до 20 МБит/сек (12,5 МБит/сек в номинале). Сразу оговорюсь: у слэйва нет тактового генератора!

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

У меня уже есть пара вариантов, как это сделать, но они пока вызывают сомнения в плане надёжности.

И ещё детали: мастер - SpartanII с тактовым генератором 50 МГц, слэйв - XC9572 без тактового генератора, RS-485 - MAX3062.

Буду премного благодарен, если поможете решить эту хитрую задачку!

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


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

грубо говоря телевизеру от антенны приходят частоты и повыше, но... коаксиал. контраргумент - хорошая витая пара тоже в экране. впринципе, передать такой сигнал по обычному проводу не проблема, но вопрос помехозащищенности и предельной длины выходят на первый план. хотелось бы услышать подробней чего хочеца.

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


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

както на приемном конце немного ресурсов нехватает.

В голову пришла одна идейка с методом похожим на методы советских инженегров.

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

В результате к следующему такту на выходе интегратора будет 0 или 1. Сам неискаженный сигнал из линии подавать на тактовый вход.

Не очень красиво но может получиться.

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


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

Стык согласно ГОСТ 18977-79 не требует на приемном конце тактового генератора, реализуется элементарно на рассыпухе... Но насчет таких скоростей - есть сомнения, он в номинале работает на 100 кбит.

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


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

грубо говоря телевизеру от антенны приходят частоты и повыше, но... коаксиал. контраргумент - хорошая витая пара тоже в экране. впринципе, передать такой сигнал по обычному проводу не проблема, но вопрос помехозащищенности и предельной длины выходят на первый план. хотелось бы услышать подробней чего хочеца.

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

както на приемном конце немного ресурсов нехватает.

В голову пришла одна идейка с методом похожим на методы советских инженегров.

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

В результате к следующему такту на выходе интегратора будет 0 или 1. Сам неискаженный сигнал из линии подавать на тактовый вход.

Не очень красиво но может получиться.

Вы почти угадали пока самое близкое к идеалу из моих решений:

Кодируем 0 скважностью 1/4, 1 - скважностью 3/4, разделяя соседние "биты" импульсами со скважностью 1/2 (для наглядности при отладке). На слэйве по переднему фронту T-триггером выделяем синхроимпульсы и задерживаем их на четверть периода. Данные считываем из входного потока по положительному фронту синхроимпульсов. Для наглядности надо было бы временные диаграммы нарисовать, но сейчас некогда, да и алгоритм нехитрый, можно и без них понять.

Сомнительным элементом является задержка на 1/4 периода, которая при максимальной скорости составит 100 нс. Чем её наиболее точно реализовать? На логических элементах - стрёмно, RC-цепочкой - неточно, ЛЗ в схеме пока не предусмотрена. Какие идеи?

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


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

Доработал интерфейс на идейном уровне: :smile3046:

Так как всё равно внутри ПЛИС XC9572XL работаю только по положительному фронту, решил выбросить T-триггер (он только создаёт дополнительную погрешность в задержке сигнала и уменьшает скорость интерфейса в два раза). Описанный в верхнем посте цифровой поток корректирую, выбрасываю пустые импульсы со скважностью 1/2, и подаю на входы ПЛИС без задержки и с задержкой 180°. Данные выделяю по положительному фронту задержанного сигнала.

В качестве ЛЗ пока буду использовать LC-цепочку, а в профессиональном исполнении - ЦЛЗ. Для повышения надёжности можно изменить скважность ценою снижения скорости.

При скважностях 1/4 для 0 и 3/4 для 1 скорость такого интерфейса может достигнуть 5 Мбит/сек на максимальной скорости MAX3062, но учитывая передачу фронта часов информативная скорость будет вдвое выше. Если всё гладко получится, то, по-моему - неплохо, но интуиция мне подсказывает, что я сейчас велосипед изобретаю! :cranky:

Неужели такого никто ещё не делал? Поиск в Google мне пока не дал ответа на этот вопрос! :laughing:

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


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

а зачем нужен такой геморрой?

Это не "геморрой", а "находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ. По-хорошему, такое надо патентовать и наухавить, но уверен, что такое уже существует, просто Google привык замечать ширпотреб, а узкоспециализированные решения не замечает... :)

...Всё дело в том, что в СМШУ и синтезаторах тактовый генератор создаёт ненужные наводки и биения (даже если выход последнего отключен от входа синхронизации), а так как ими иногда приходится управлять на приличном расстоянии, интерфейс неизбежен. Выхода 2: передавать SDATA, SCLK и SEN по трём витым парам или всё это "сжать" в одну витую пару. Когда речь идёт о двухкратном-трёхкратном резервировании контактов на разъёмах управляющего устройства и объектов управления, которых может быть несколько десятков, и минимизации размеров аппаратуры, выглядит весьма актуально. А так как архивысокая скорость интерфейса не нужна, последнее решение кажется оптимальным.

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


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

Это не "геморрой", а "находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ. По-хорошему, такое надо патентовать и наухавить, но уверен, что такое уже существует, просто Google привык замечать ширпотреб, а узкоспециализированные решения не замечает... :)

...Всё дело в том, что в СМШУ и синтезаторах тактовый генератор создаёт ненужные наводки и биения (даже если выход последнего отключен от входа синхронизации), а так как ими иногда приходится управлять на приличном расстоянии, интерфейс неизбежен. Выхода 2: передавать SDATA, SCLK и SEN по трём витым парам или всё это "сжать" в одну витую пару. Когда речь идёт о двухкратном-трёхкратном резервировании контактов на разъёмах управляющего устройства и объектов управления, которых может быть несколько десятков, и минимизации размеров аппаратуры, выглядит весьма актуально. А так как архивысокая скорость интерфейса не нужна, последнее решение кажется оптимальным.

Да все это есть. Присмотритесь повнимательней не физическом уровне к USB, SATA, ETHERNET. Читайте литературу по кодированию и передаче информации.

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


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

"находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ

Чегооо? Вы с электроникой современной вообще знакомы? Как Ethernet к примеру решает проблемы высокоскоростной передачи при помехах, как ATM работает...

 

А про езернет сказали, ну, повторенье - мать ученья.

 

просто Google привык замечать ширпотреб

если каша не по вкусу, то есть ее не надо.

 

 

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


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

Да все это есть. Присмотритесь повнимательней не физическом уровне к USB, SATA, ETHERNET.

Вам тоже стоит присмотреться повнимательней к теме. Ещё в первом посте я сразу сказал: у слэйва нет тактового генератора!

Насчёт SATA не вкурсе (это короткий и ненадёжный интерфейс, он меня не интересует), а USB и ETHERNET, равно как и классический RS-485 требуют наличия у слэйва тактового генератора.

Чегооо? Вы с электроникой современной вообще знакомы? Как Ethernet к примеру решает проблемы высокоскоростной передачи при помехах, как ATM работает...

Не хотелось на такое отвечать, но по ходу - Вы не в теме и суть разработки не понимаете или игнорируете...

Что Вы имеете ввиду под современной электроникой, если компьютерную технику, то на PC мир клином не сошёлся! Кроме того, Ethernet - слишком громоздкий и неудобный для меня интерфейс: при скорости до 10 Гбит/сек имеет достаточно ощутимое время групповой задержки, для управления он неудобен и избыточен, по нему только потоки данных перегонять удобно, а мне иногда 8 бит вполне достаточно.

Физическую среду для интерфейса я уже выбрал: RS-485 и точка. Просьба ко Всем быть повнимательнее к сути задачи!

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


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

Физическую среду для интерфейса я уже выбрал: RS-485 и точка.

 

Неудачнее выбор было сложно сделать...

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


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

Физическую среду для интерфейса я уже выбрал: RS-485 и точка. Просьба ко Всем быть повнимательнее к сути задачи!

Если мастер и слейв в системе одни и расстояния между ними не сотни метров, то в качестве физической среды неплохо будет смотреться LVDS. Скорости можно достичь порядка 800 Мбит/сек(правда на небольших растояниях).

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


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

Вот мне тоже непонятно. Если "только одна витая пара" это не цель, а средство получить минимальные наводки, то почему выбран RS485 а не LVDS, у которого гораздо меньше размах сигнала?

Мне кажется, что стоит попробовать вернуться к двум парам, но LVDS и такое (кажется, в IEEE1394-ом используется)

По одной из линий передаются данные.

По второй - дополнительные перепады. Вот так

   101011001111000011111111
D  -_-_--__----____--------
C  _____--__-_--_-__-_-_-_-

На приёме (D xor C) работает как DDR такт для D, только задержать нужно немножко (но «лишь бы за setup-hold выйти», а не нужная доля периода).

Количество любых перепадов на обеих линиях вместе в два раза меньше, чем у Вас сейчас на одной линии (один перепад на бит вместо двух). Соответственно падает энергия помех. Плюс LVDS не такой шумный, как RS485.

 

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


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

Вам тоже стоит присмотреться повнимательней к теме. Ещё в первом посте я сразу сказал: у слэйва нет тактового генератора!

Насчёт SATA не вкурсе (это короткий и ненадёжный интерфейс, он меня не интересует), а USB и ETHERNET, равно как и классический RS-485 требуют наличия у слэйва тактового генератора.

Если передача в одну сторону, может подойти M-II.

Самосинхронизирующийся код, можно обойтись вместо ТГ в приёмнике линией задержки на 3/4 периода.

 

И вообще, интерфейс у 485 как минимум 2-проводный, а в общем случае 3-х.

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


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

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

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

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

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

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

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

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

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

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