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

LVDS протокол для передачи на 50-100 МБ/с

Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 50-100 Мб/с. Устройства связаны кабелем или шлейфом и расстояние между ними до 0,5 м.

В качестве физического протокола я выбрал LVDS. У меня возникли такие вопросы:

1. Можно ли передавать данные по обычному SPI. Т.е. использовать 3 линии SCK, MOSI, MISO(через LVDS)? Или это слишком высокая скорость?

2. Можно ли использовать синхронный или асинхронный UART на 50-100 Мб/с?

3. Какие еще варианты посоветуете?

 

Я работал с SPI только на скоростях до 25 Мб/с и только через КМОП. Разумеется, есть быстрые последовательные протоколы(RapidIO, PCI-E, Aurora и др). Но в спецификациях на них указано что они разработаны для скоростей в 10 раз выше нужной мне, и для их использования нужна будет более дорогая ПЛИС на стороне приемника. И отлаживать их дольше.

 

Еще хочу задать вопрос по протоколам. Мне известны протоколы для низких скоростей: RS-4.., CAN, SPI, I2C и др. И известны высокоскоростные: PCI-E, Ethernet. Существуют ли решения для скоростей именно 25-~ 200 Мб/с?

МБ/с - это мегабит в секунду.

Изменено пользователем Олег Гаврильченко

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


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

Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 50-100 МБ/с. Устройства

100 МБ/с - это 100 мегабит в секунду или мегабайт?

Даже если это всего лишь 100 мбит/с то это точно не уарт . Может быть SPI . Для работы Aurora на стороне приёмника нужна такая же плис как и на стороне передатчика, правда там не lvds .

А ещё есть SerDes .

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


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

Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 50-100 Мб/с. Устройства связаны кабелем или шлейфом и расстояние между ними до 0,5 м.

В качестве физического протокола я выбрал LVDS. У меня возникли такие вопросы:

1. Можно ли передавать данные по обычному SPI. Т.е. использовать 3 линии SCK, MOSI, MISO(через LVDS)? Или это слишком высокая скорость?

да можно.

 

2. Можно ли использовать синхронный или асинхронный UART на 50-100 Мб/с?

uart до 50 не разогнать. без извращений

 

3. Какие еще варианты посоветуете?

по простому - double или quad spi.

 

Еще хочу задать вопрос по протоколам. Мне известны протоколы для низких скоростей: RS-4.., CAN, SPI, I2C и др. И известны высокоскоростные: PCI-E, Ethernet. Существуют ли решения для скоростей именно 25-~ 200 Мб/с?

МБ/с - это мегабит в секунду.

Ethernet 100 - как раз оно. Возможно идеальный путь, если места на плате не жалко под phy и пинов на плисе. Или SpaceWire. Или перепиливать UART. Или в личку.

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


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

Можно понизить частоту SPI, используя больше линий данных. Есть же Quad SPI, но линий данных можно и больше сделать.

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


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

SPI стандартный работать не будет на 100 МГц. На 50 может быть. Проблема в обратной по отношению к клоку передаче данных. Можно сделать модифицированный SPI с двумя линиями клоков - в одну и другую строну, тогда проблем не будет. Синхронный UART тоже можно использовать (это, правда, уже не UART, но в смысле клок и данные со старт-стопом). Только с той же оговоркой - в каждую строну свой клок.

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


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

SPI стандартный работать не будет на 100 МГц. На 50 может быть. Проблема в обратной по отношению к клоку передаче данных.

 

SPI-flash вполне себе работают на 100+ МГц. Да, для больших частот предлагается калибровать фазу приемного клока. Но на 100 МГц у меня сейчас просто FPGA грузится без всяких ухищрений.

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


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

SPI-flash вполне себе работают на 100+ МГц. Да, для больших частот предлагается калибровать фазу приемного клока. Но на 100 МГц у меня сейчас просто FPGA грузится без всяких ухищрений.

Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе.

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


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

uart до 50 не разогнать. без извращений

делали на 128 МБит/с, отлично работает без каких-либо извращений. Но при условии, что это действительно UART, а не какой-то синхронный мутант. Единственное ограничение -- на приёмной стороне должна быть возможность работать на тактах 2x.

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


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

Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе.

 

Да, согласен. 0.5 м это уже 7 нс задержки туда-обратно...

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


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

Да, согласен. 0.5 м это уже 7 нс задержки туда-обратно...

если клок только у мастера, тогда да, проблема. если данные в обе стороны со своими клоками, управляющими сигналами и т.д. идут, то +/- одинаковые задержки будут, но в таком случае даже lvds наловит столько помех, что ему хватит (тем более, что проводами качественный lvds не сделать).

а UART -- линия туда, линия обратно. обе "молчаливые". для отсеивания "вдруг чего словится" -- можно добавить контрольную сумму.

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


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

а UART -- линия туда, линия обратно. обе "молчаливые". для отсеивания "вдруг чего словится" -- можно добавить контрольную сумму.

..мой опыт говорит - не хочешь проблем , веди синхронные интерфейсы.

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


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

..мой опыт говорит - не хочешь проблем , веди синхронные интерфейсы.

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

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


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

.. в таком случае даже lvds наловит столько помех, что ему хватит (тем более, что проводами качественный lvds не сделать)..

Напомню про Ultra-640_SCSI:

Частота шины: 160 МГц DDR

Пропускная способность: 640 Мбайт/сек

Максимальная длина кабеля: 10 м

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


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

Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе.

Так говорят, что физический уровень lvds а это согласование и никакой отражухи. :)

А SPI обычно CMOS3.3 или меньшего напряжения.

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


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...