Reffum2 0 25 декабря, 2017 Опубликовано 25 декабря, 2017 (изменено) · Жалоба Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 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 Мб/с? МБ/с - это мегабит в секунду. Изменено 25 декабря, 2017 пользователем Олег Гаврильченко Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 50-100 МБ/с. Устройства 100 МБ/с - это 100 мегабит в секунду или мегабайт? Даже если это всего лишь 100 мбит/с то это точно не уарт . Может быть SPI . Для работы Aurora на стороне приёмника нужна такая же плис как и на стороне передатчика, правда там не lvds . А ещё есть SerDes . Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Требуется передавать данные от одного устройства на несколько других. В оба направления. Передатчик и приемник - ПЛИС. Для последовательной передачи достаточно скорости 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. Или в личку. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andk 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Манчестер можно попробовать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arhiv6 20 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Можно понизить частоту SPI, используя больше линий данных. Есть же Quad SPI, но линий данных можно и больше сделать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 6 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба SPI стандартный работать не будет на 100 МГц. На 50 может быть. Проблема в обратной по отношению к клоку передаче данных. Можно сделать модифицированный SPI с двумя линиями клоков - в одну и другую строну, тогда проблем не будет. Синхронный UART тоже можно использовать (это, правда, уже не UART, но в смысле клок и данные со старт-стопом). Только с той же оговоркой - в каждую строну свой клок. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба SPI стандартный работать не будет на 100 МГц. На 50 может быть. Проблема в обратной по отношению к клоку передаче данных. SPI-flash вполне себе работают на 100+ МГц. Да, для больших частот предлагается калибровать фазу приемного клока. Но на 100 МГц у меня сейчас просто FPGA грузится без всяких ухищрений. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lembrix 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба SPI-flash вполне себе работают на 100+ МГц. Да, для больших частот предлагается калибровать фазу приемного клока. Но на 100 МГц у меня сейчас просто FPGA грузится без всяких ухищрений. Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FakeDevice 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба uart до 50 не разогнать. без извращений делали на 128 МБит/с, отлично работает без каких-либо извращений. Но при условии, что это действительно UART, а не какой-то синхронный мутант. Единственное ограничение -- на приёмной стороне должна быть возможность работать на тактах 2x. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе. Да, согласен. 0.5 м это уже 7 нс задержки туда-обратно... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FakeDevice 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Да, согласен. 0.5 м это уже 7 нс задержки туда-обратно... если клок только у мастера, тогда да, проблема. если данные в обе стороны со своими клоками, управляющими сигналами и т.д. идут, то +/- одинаковые задержки будут, но в таком случае даже lvds наловит столько помех, что ему хватит (тем более, что проводами качественный lvds не сделать). а UART -- линия туда, линия обратно. обе "молчаливые". для отсеивания "вдруг чего словится" -- можно добавить контрольную сумму. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба а UART -- линия туда, линия обратно. обе "молчаливые". для отсеивания "вдруг чего словится" -- можно добавить контрольную сумму. ..мой опыт говорит - не хочешь проблем , веди синхронные интерфейсы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FakeDevice 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба ..мой опыт говорит - не хочешь проблем , веди синхронные интерфейсы. не вижу никаких проблем кроме той, что нужен клок в 2 раза выше того, на котором сформирована последовательность бит. если сделать всё грамотно, то как раз наоборот: меньше сигналов -- меньше проблем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба .. в таком случае даже lvds наловит столько помех, что ему хватит (тем более, что проводами качественный lvds не сделать).. Напомню про Ultra-640_SCSI: Частота шины: 160 МГц DDR Пропускная способность: 640 Мбайт/сек Максимальная длина кабеля: 10 м Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Завялено требование в 0.5 м, а SPI-flash обычно существенно ближе. Так говорят, что физический уровень lvds а это согласование и никакой отражухи. :) А SPI обычно CMOS3.3 или меньшего напряжения. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться