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

Последовательный высокоскоростной интерфейс

Приветствую специалистов и тех, кто просто зашел полюбопытствовать! :biggrin:

 

Ситуация следующая. Есть физически 4 провода = 2 дифференциальной пары (LVDS стандарт). Задача: Организовать максимально возможную высокоскоростную передачу (полный дуплекс). Т.е. получается две линии Tx и Rx.

---------------------------------------------------------------------------------------------

Передача организовывается между двумя платами по средствам объединительной платы (кросс-плата).

Стоит отметить платы имеют свои тактовые генераторы. Т.е. передача и прием - процессы асинхронные друг относительно друга.

---------------------------------------------------------------------------------------------

Данные необходимо передавать структуированно, т.е. в соответствии с каким-либо протоколом.

---------------------------------------------------------------------------------------------

Этот интерфейс будет реализован на FPGA (Xilinx).

---------------------------------------------------------------------------------------------

 

Есть опыт реализации подобных интерфейсов дедовским способом (т.е. все придумываем сами в том числе и протокол и потом долго и упорно тестируем и ловим уйму баг, потом снова тестируем и снова ловим баги .... и в какой-то момент мне кажется что этот процесс стремиться к бесконечности (ИМХО) :wacko: ).

Чтобы повторно не идти по этому пути прошу совета у опытных людей. Подскажите пожалуйста стандартный последовательный интерфейс, который мог бы мне помочь. Спасибо.

 

 

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


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

Если Xilinx, то может Aurora?

 

Возможно. Буду читать. На первый взгляд подходит

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


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

Можете ещё на сериалайзеры посмотреть, типа таких : http://www.symmetron.ru/news/maxim-MAX9257A.shtml.

Или других.

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


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

Можете ещё на сериалайзеры посмотреть, типа таких : http://www.symmetron.ru/news/maxim-MAX9257A.shtml.

Или других.

 

Спасибо. Но у меня условие, что реализация на FPGA(Xilinx). Это не мой вариант к сожалению. А вообще интересная "вещица" :laughing:

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


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

Если Xilinx, то может Aurora?
А она разве не требует обязательно использования гигабитных трансиверов? Автор, Вас устраивает сделать это на гигабитрых трансиверах? Тогда Аврора - самое то, мы как раз на ней делаем обмены все. Даже в оптику заталкиваем.

О каких вообще скоростях идёт речь? Если о гигабитах - то только на этих трансиверах и остаётся гигабитных. Если сотни мегабит - то есть ещё варианты...

Какая плисина то у Вас?

 

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


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

А она разве не требует обязательно использования гигабитных трансиверов? Автор, Вас устраивает сделать это на гигабитрых трансиверах?

Какая плисина то у Вас?

Трансиверы на борту имеются на сколько мне удалось разобраться.

Zynq 7020 SOC CLG400 - тип кристалла

 

О каких вообще скоростях идёт речь?

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

 

Если сотни мегабит - то есть ещё варианты...

А какие еще могут быть варианты для скоростей пониже?

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


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

да просто подать на SerDes с линий LVDS. Тоже до гигабита протолкнуть можно, но это при наличии линии синхронизации или CDR. А у Вас без всего этого может мегабит 300 получится с оверсемплингом. Только какой протокол сверху налепить?... А нужен ли он вообще? Пуляй да пуляй данные. Ну 8B/10B не помешает для байтовой синхронизации и ещё нескольких полезных бонусов.

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


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

да просто подать на SerDes с линий LVDS. Тоже до гигабита протолкнуть можно, но это при наличии линии синхронизации или CDR. А у Вас без всего этого может мегабит 300 получится с оверсемплингом. Только какой протокол сверху налепить?... А нужен ли он вообще? Пуляй да пуляй данные. Ну 8B/10B не помешает для байтовой синхронизации и ещё нескольких полезных бонусов.

 

Глянул я об SerDes на просторах интернета и в общем стало ясно. Это все можно, но тогда нужно использовать самописные интерфейсы, либо чей-то готовый, либо отдельную микруху (это исключено) . Тем более CDR необходим совершенно точно. У Xilinx это Aurora и другого он не знает и не умеет.

 

Вот сделал скрин из САПРа Xilinx. Т.е. Xilinx в разделе последовательных интерфейсов предлагает Aurora

post-74498-1432104650_thumb.png

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


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

Какая скорость нужна? Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась.

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


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

Какая скорость нужна? Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась.

см пост №7

 

Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась.

Вот UART сюда применять не хочется больше всего. CDR нужен. Полный дуплекс 1 TX и 1 RX ---> CDR. Если самому на основе UART делать, тогда манчестер и т.д. и т.п даже и не хочется все расписывать.. :wacko:

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


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

Просто в Zynq020 гигабитных трансиверов нету. А то, что тактовые разные на обоих платах, так UART тем и хорош, что имеет некоторую толерантность к этому. PLLкой можно сформировать нужные частоты. Кстати частоту можно поднять, 300 МГц это как ориентир, Artix7 (на котором сделан Zynq) тянет и больше. Так же можно воспользоваться встроенными SERDES, тогда еще паралелльный интерфейс практически сразу можно получить.

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


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

Это все можно, но тогда нужно использовать самописные интерфейсы, либо чей-то готовый, либо отдельную микруху (это исключено)
А что Вы под интерфейсами понимаете? Чем Вас пугает "самописные"? Подумаешь сигнал подать на SerDes, ну ещё пропустить через IDELAY, немного делов.

 

Тем более CDR необходим совершенно точно
Почему совершенно точно? Если без него, то можно несколько сотен мегабит всё равно получить...

 

 

Тем более CDR необходим совершенно точно. У Xilinx это Aurora и другого он не знает и не умеет
Дак получается, если пишут, что плисина не имеет гигабитных трансиверов, то и CDR в ней нет. Так что не годится Вам такой вариант. Остаётся на сердесах?

 

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


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

если вам надо прям всё готовенькое, то

http://www.xilinx.com/products/intellectua...to1gbsxpcs.html

работает через SelectIO-LVDS тоже

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


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

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

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

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

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

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

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

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

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

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