dima_spb 0 18 мая, 2015 Опубликовано 18 мая, 2015 · Жалоба Приветствую специалистов и тех, кто просто зашел полюбопытствовать! Ситуация следующая. Есть физически 4 провода = 2 дифференциальной пары (LVDS стандарт). Задача: Организовать максимально возможную высокоскоростную передачу (полный дуплекс). Т.е. получается две линии Tx и Rx. --------------------------------------------------------------------------------------------- Передача организовывается между двумя платами по средствам объединительной платы (кросс-плата). Стоит отметить платы имеют свои тактовые генераторы. Т.е. передача и прием - процессы асинхронные друг относительно друга. --------------------------------------------------------------------------------------------- Данные необходимо передавать структуированно, т.е. в соответствии с каким-либо протоколом. --------------------------------------------------------------------------------------------- Этот интерфейс будет реализован на FPGA (Xilinx). --------------------------------------------------------------------------------------------- Есть опыт реализации подобных интерфейсов дедовским способом (т.е. все придумываем сами в том числе и протокол и потом долго и упорно тестируем и ловим уйму баг, потом снова тестируем и снова ловим баги .... и в какой-то момент мне кажется что этот процесс стремиться к бесконечности (ИМХО) ). Чтобы повторно не идти по этому пути прошу совета у опытных людей. Подскажите пожалуйста стандартный последовательный интерфейс, который мог бы мне помочь. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 9 18 мая, 2015 Опубликовано 18 мая, 2015 · Жалоба Если Xilinx, то может Aurora? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 18 мая, 2015 Опубликовано 18 мая, 2015 · Жалоба Если Xilinx, то может Aurora? Возможно. Буду читать. На первый взгляд подходит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 3 18 мая, 2015 Опубликовано 18 мая, 2015 · Жалоба Можете ещё на сериалайзеры посмотреть, типа таких : http://www.symmetron.ru/news/maxim-MAX9257A.shtml. Или других. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 18 мая, 2015 Опубликовано 18 мая, 2015 · Жалоба Можете ещё на сериалайзеры посмотреть, типа таких : http://www.symmetron.ru/news/maxim-MAX9257A.shtml. Или других. Спасибо. Но у меня условие, что реализация на FPGA(Xilinx). Это не мой вариант к сожалению. А вообще интересная "вещица" :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 19 мая, 2015 Опубликовано 19 мая, 2015 · Жалоба Если Xilinx, то может Aurora?А она разве не требует обязательно использования гигабитных трансиверов? Автор, Вас устраивает сделать это на гигабитрых трансиверах? Тогда Аврора - самое то, мы как раз на ней делаем обмены все. Даже в оптику заталкиваем. О каких вообще скоростях идёт речь? Если о гигабитах - то только на этих трансиверах и остаётся гигабитных. Если сотни мегабит - то есть ещё варианты... Какая плисина то у Вас? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба А она разве не требует обязательно использования гигабитных трансиверов? Автор, Вас устраивает сделать это на гигабитрых трансиверах? Какая плисина то у Вас? Трансиверы на борту имеются на сколько мне удалось разобраться. Zynq 7020 SOC CLG400 - тип кристалла О каких вообще скоростях идёт речь? Стараемся протолкнуть гигабиты. А что из этого выйдет посмотрим, когда железо в кучу соберем. Если сотни мегабит - то есть ещё варианты... А какие еще могут быть варианты для скоростей пониже? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба да просто подать на SerDes с линий LVDS. Тоже до гигабита протолкнуть можно, но это при наличии линии синхронизации или CDR. А у Вас без всего этого может мегабит 300 получится с оверсемплингом. Только какой протокол сверху налепить?... А нужен ли он вообще? Пуляй да пуляй данные. Ну 8B/10B не помешает для байтовой синхронизации и ещё нескольких полезных бонусов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба да просто подать на SerDes с линий LVDS. Тоже до гигабита протолкнуть можно, но это при наличии линии синхронизации или CDR. А у Вас без всего этого может мегабит 300 получится с оверсемплингом. Только какой протокол сверху налепить?... А нужен ли он вообще? Пуляй да пуляй данные. Ну 8B/10B не помешает для байтовой синхронизации и ещё нескольких полезных бонусов. Глянул я об SerDes на просторах интернета и в общем стало ясно. Это все можно, но тогда нужно использовать самописные интерфейсы, либо чей-то готовый, либо отдельную микруху (это исключено) . Тем более CDR необходим совершенно точно. У Xilinx это Aurora и другого он не знает и не умеет. Вот сделал скрин из САПРа Xilinx. Т.е. Xilinx в разделе последовательных интерфейсов предлагает Aurora Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Какая скорость нужна? Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima_spb 0 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Какая скорость нужна? Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась. см пост №7 Мы делали подобие UART на обычных LVDS линиях. На частоте 300 МГц тактовой ЕМНИП скорость передачи около 90 МБит/с получалась. Вот UART сюда применять не хочется больше всего. CDR нужен. Полный дуплекс 1 TX и 1 RX ---> CDR. Если самому на основе UART делать, тогда манчестер и т.д. и т.п даже и не хочется все расписывать.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Просто в Zynq020 гигабитных трансиверов нету. А то, что тактовые разные на обоих платах, так UART тем и хорош, что имеет некоторую толерантность к этому. PLLкой можно сформировать нужные частоты. Кстати частоту можно поднять, 300 МГц это как ориентир, Artix7 (на котором сделан Zynq) тянет и больше. Так же можно воспользоваться встроенными SERDES, тогда еще паралелльный интерфейс практически сразу можно получить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Это все можно, но тогда нужно использовать самописные интерфейсы, либо чей-то готовый, либо отдельную микруху (это исключено)А что Вы под интерфейсами понимаете? Чем Вас пугает "самописные"? Подумаешь сигнал подать на SerDes, ну ещё пропустить через IDELAY, немного делов. Тем более CDR необходим совершенно точноПочему совершенно точно? Если без него, то можно несколько сотен мегабит всё равно получить... Тем более CDR необходим совершенно точно. У Xilinx это Aurora и другого он не знает и не умеетДак получается, если пишут, что плисина не имеет гигабитных трансиверов, то и CDR в ней нет. Так что не годится Вам такой вариант. Остаётся на сердесах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба если вам надо прям всё готовенькое, то http://www.xilinx.com/products/intellectua...to1gbsxpcs.html работает через SelectIO-LVDS тоже Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Да, весчь! Надо запомнить для себя... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться