|
Высокоскоростной однопроводный интерфейс, Нужно часы и данные передать по одному проводу со скоростью до 20 Mb/s |
|
|
|
Aug 19 2010, 08:02
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Здравствуйте, уважаемые форумчане! Пришла в голову идея разработать высокоскоростной однопроводный интерфейс, передающий и часы, и данные от мастера к слэйву по одной витой паре RS-485 со со скоростью до 20 МБит/сек (12,5 МБит/сек в номинале). Сразу оговорюсь: у слэйва нет тактового генератора! Возможно, что-либо подобное уже есть или кто-либо такой интерфей уже разрабатывал, тогда прошу поделиться знаниями или опытом. У меня уже есть пара вариантов, как это сделать, но они пока вызывают сомнения в плане надёжности. И ещё детали: мастер - SpartanII с тактовым генератором 50 МГц, слэйв - XC9572 без тактового генератора, RS-485 - MAX3062. Буду премного благодарен, если поможете решить эту хитрую задачку!
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Aug 20 2010, 07:03
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Цитата(smalcom @ Aug 20 2010, 03:20)  грубо говоря телевизеру от антенны приходят частоты и повыше, но... коаксиал. контраргумент - хорошая витая пара тоже в экране. впринципе, передать такой сигнал по обычному проводу не проблема, но вопрос помехозащищенности и предельной длины выходят на первый план. хотелось бы услышать подробней чего хочеца. Телесигнал не в счёт, в видеоимпульс встроить синхросигнал не проблема. В моём случае - чистая цифра, встроить синхроимпульсы без серьёзного снижения скорости намного сложнее. Хочется именно узнать, как наиболее эффективней слить в единый цифровой поток часы и данные в мастере, а затем их наиболее достоверно растащить в слэйве без существенного снижения скорости передачи полезной информации. Цитата(AndriAno @ Aug 20 2010, 06:39)  както на приемном конце немного ресурсов нехватает. В голову пришла одна идейка с методом похожим на методы советских инженегров. Метод решения полуаналоговый. Если на приемном конце, к линии подцепить чтото наподобие интегратора с постоянной времени порядка периода тактовой. на него подавать принятый сигнал. В сигнале менять скважность. В результате к следующему такту на выходе интегратора будет 0 или 1. Сам неискаженный сигнал из линии подавать на тактовый вход. Не очень красиво но может получиться. Вы почти угадали пока самое близкое к идеалу из моих решений: Кодируем 0 скважностью 1/4, 1 - скважностью 3/4, разделяя соседние "биты" импульсами со скважностью 1/2 (для наглядности при отладке). На слэйве по переднему фронту T-триггером выделяем синхроимпульсы и задерживаем их на четверть периода. Данные считываем из входного потока по положительному фронту синхроимпульсов. Для наглядности надо было бы временные диаграммы нарисовать, но сейчас некогда, да и алгоритм нехитрый, можно и без них понять. Сомнительным элементом является задержка на 1/4 периода, которая при максимальной скорости составит 100 нс. Чем её наиболее точно реализовать? На логических элементах - стрёмно, RC-цепочкой - неточно, ЛЗ в схеме пока не предусмотрена. Какие идеи?
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Aug 22 2010, 04:42
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Доработал интерфейс на идейном уровне: Так как всё равно внутри ПЛИС XC9572XL работаю только по положительному фронту, решил выбросить T-триггер (он только создаёт дополнительную погрешность в задержке сигнала и уменьшает скорость интерфейса в два раза). Описанный в верхнем посте цифровой поток корректирую, выбрасываю пустые импульсы со скважностью 1/2, и подаю на входы ПЛИС без задержки и с задержкой 180°. Данные выделяю по положительному фронту задержанного сигнала. В качестве ЛЗ пока буду использовать LC-цепочку, а в профессиональном исполнении - ЦЛЗ. Для повышения надёжности можно изменить скважность ценою снижения скорости. При скважностях 1/4 для 0 и 3/4 для 1 скорость такого интерфейса может достигнуть 5 Мбит/сек на максимальной скорости MAX3062, но учитывая передачу фронта часов информативная скорость будет вдвое выше. Если всё гладко получится, то, по-моему - неплохо, но интуиция мне подсказывает, что я сейчас велосипед изобретаю! Неужели такого никто ещё не делал? Поиск в Google мне пока не дал ответа на этот вопрос!
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Aug 25 2010, 18:02
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Цитата(smalcom @ Aug 25 2010, 18:59)  а зачем нужен такой геморрой? Это не "геморрой", а "находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ. По-хорошему, такое надо патентовать и наухавить, но уверен, что такое уже существует, просто Google привык замечать ширпотреб, а узкоспециализированные решения не замечает... ...Всё дело в том, что в СМШУ и синтезаторах тактовый генератор создаёт ненужные наводки и биения (даже если выход последнего отключен от входа синхронизации), а так как ими иногда приходится управлять на приличном расстоянии, интерфейс неизбежен. Выхода 2: передавать SDATA, SCLK и SEN по трём витым парам или всё это "сжать" в одну витую пару. Когда речь идёт о двухкратном-трёхкратном резервировании контактов на разъёмах управляющего устройства и объектов управления, которых может быть несколько десятков, и минимизации размеров аппаратуры, выглядит весьма актуально. А так как архивысокая скорость интерфейса не нужна, последнее решение кажется оптимальным.
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Aug 25 2010, 18:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134

|
Цитата(YIG @ Aug 25 2010, 22:02)  Это не "геморрой", а "находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ. По-хорошему, такое надо патентовать и наухавить, но уверен, что такое уже существует, просто Google привык замечать ширпотреб, а узкоспециализированные решения не замечает... ...Всё дело в том, что в СМШУ и синтезаторах тактовый генератор создаёт ненужные наводки и биения (даже если выход последнего отключен от входа синхронизации), а так как ими иногда приходится управлять на приличном расстоянии, интерфейс неизбежен. Выхода 2: передавать SDATA, SCLK и SEN по трём витым парам или всё это "сжать" в одну витую пару. Когда речь идёт о двухкратном-трёхкратном резервировании контактов на разъёмах управляющего устройства и объектов управления, которых может быть несколько десятков, и минимизации размеров аппаратуры, выглядит весьма актуально. А так как архивысокая скорость интерфейса не нужна, последнее решение кажется оптимальным. Да все это есть. Присмотритесь повнимательней не физическом уровне к USB, SATA, ETHERNET. Читайте литературу по кодированию и передаче информации.
|
|
|
|
|
Aug 25 2010, 18:53
|

Профессионал
    
Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718

|
Цитата "находка" для сверхмалошумящих устройств (СМШУ) ВЧ и СВЧ Чегооо? Вы с электроникой современной вообще знакомы? Как Ethernet к примеру решает проблемы высокоскоростной передачи при помехах, как ATM работает... А про езернет сказали, ну, повторенье - мать ученья. Цитата просто Google привык замечать ширпотреб если каша не по вкусу, то есть ее не надо.
|
|
|
|
|
Aug 26 2010, 03:39
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Цитата(MaslovVG @ Aug 25 2010, 22:35)  Да все это есть. Присмотритесь повнимательней не физическом уровне к USB, SATA, ETHERNET. Вам тоже стоит присмотреться повнимательней к теме. Ещё в первом посте я сразу сказал: у слэйва нет тактового генератора! Насчёт SATA не вкурсе (это короткий и ненадёжный интерфейс, он меня не интересует), а USB и ETHERNET, равно как и классический RS-485 требуют наличия у слэйва тактового генератора. Цитата(smalcom @ Aug 25 2010, 22:53)  Чегооо? Вы с электроникой современной вообще знакомы? Как Ethernet к примеру решает проблемы высокоскоростной передачи при помехах, как ATM работает... Не хотелось на такое отвечать, но по ходу - Вы не в теме и суть разработки не понимаете или игнорируете... Что Вы имеете ввиду под современной электроникой, если компьютерную технику, то на PC мир клином не сошёлся! Кроме того, Ethernet - слишком громоздкий и неудобный для меня интерфейс: при скорости до 10 Гбит/сек имеет достаточно ощутимое время групповой задержки, для управления он неудобен и избыточен, по нему только потоки данных перегонять удобно, а мне иногда 8 бит вполне достаточно. Физическую среду для интерфейса я уже выбрал: RS-485 и точка. Просьба ко Всем быть повнимательнее к сути задачи!
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Aug 26 2010, 04:22
|
.NET developer
  
Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532

|
Цитата Физическую среду для интерфейса я уже выбрал: RS-485 и точка. Неудачнее выбор было сложно сделать...
|
|
|
|
|
Aug 26 2010, 04:36
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(YIG @ Aug 26 2010, 07:39)  Физическую среду для интерфейса я уже выбрал: RS-485 и точка. Просьба ко Всем быть повнимательнее к сути задачи! Если мастер и слейв в системе одни и расстояния между ними не сотни метров, то в качестве физической среды неплохо будет смотреться LVDS. Скорости можно достичь порядка 800 Мбит/сек(правда на небольших растояниях).
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Aug 26 2010, 07:29
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Вот мне тоже непонятно. Если "только одна витая пара" это не цель, а средство получить минимальные наводки, то почему выбран RS485 а не LVDS, у которого гораздо меньше размах сигнала? Мне кажется, что стоит попробовать вернуться к двум парам, но LVDS и такое (кажется, в IEEE1394-ом используется) По одной из линий передаются данные. По второй - дополнительные перепады. Вот так Код 101011001111000011111111 D -_-_--__----____-------- C _____--__-_--_-__-_-_-_- На приёме (D xor C) работает как DDR такт для D, только задержать нужно немножко (но «лишь бы за setup-hold выйти», а не нужная доля периода). Количество любых перепадов на обеих линиях вместе в два раза меньше, чем у Вас сейчас на одной линии (один перепад на бит вместо двух). Соответственно падает энергия помех. Плюс LVDS не такой шумный, как RS485.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Aug 26 2010, 07:43
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(YIG @ Aug 26 2010, 07:39)  Вам тоже стоит присмотреться повнимательней к теме. Ещё в первом посте я сразу сказал: у слэйва нет тактового генератора! Насчёт SATA не вкурсе (это короткий и ненадёжный интерфейс, он меня не интересует), а USB и ETHERNET, равно как и классический RS-485 требуют наличия у слэйва тактового генератора. Если передача в одну сторону, может подойти M-II. Самосинхронизирующийся код, можно обойтись вместо ТГ в приёмнике линией задержки на 3/4 периода. И вообще, интерфейс у 485 как минимум 2-проводный, а в общем случае 3-х.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|