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

    

Интерфейс для общения с ПК

Всем привет! Вопрос общего характера, скорее даже желание получить совет от более опытных людей. Есть тестовая задача, которая не предполагает жестких дедлайнов и требований. Хочется сконектить ПЛИС( либо 3 cyclone, либо 4) с ПК для обмена данными между ними. Какой лучше всего использовать для данной задачи интерфейс? Скорости все такие тоже не совсем минимальные должны быть, что-то среднее.

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


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

Вариант с ethernet рассматривается, но насколько реализация сложная, не подскажите? Опыт программирования ПЛИС колоссальным не назовешь, с 0 очень сложно будет Ethernet поднять?

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


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

Входит изготовление платы в этот процесс или нет?

Если есть правильно сделанная плата с физикой, то вам надо воткнуть в ПЛИС IP мак контроллера (у производителей ПЛИС есть готовые, но полнофункциональные обычно платные). Воткнуть в ПЛИС софт процессор (ниос или микроблайз) и поднять на них ТСР стэк. Примеров куча, если совсем с езернетом дела не имели, то за месяц, другой разберетесь. Если имели то делов на пару недель.

 

Можно взять какие-либо преобразователи USB-UART это самое простое для организации интерфейса, если не езернет.

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


Ссылка на сообщение
Поделиться на другие сайты
Входит изготовление платы в этот процесс или нет?

Если есть правильно сделанная плата с физикой, то вам надо воткнуть в ПЛИС IP мак контроллера (у производителей ПЛИС есть готовые, но полнофункциональные обычно платные). Воткнуть в ПЛИС софт процессор (ниос или микроблайз) и поднять на них ТСР стэк. Примеров куча, если совсем с езернетом дела не имели, то за месяц, другой разберетесь. Если имели то делов на пару недель.

 

Можно взять какие-либо преобразователи USB-UART это самое простое для организации интерфейса, если не езернет.

Так если там ничего серьезного не предвидится, то зачем там TCP если можно обойтись UDP....

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


Ссылка на сообщение
Поделиться на другие сайты
Входит изготовление платы в этот процесс или нет?

Если есть правильно сделанная плата с физикой, то вам надо воткнуть в ПЛИС IP мак контроллера (у производителей ПЛИС есть готовые, но полнофункциональные обычно платные). Воткнуть в ПЛИС софт процессор (ниос или микроблайз) и поднять на них ТСР стэк. Примеров куча, если совсем с езернетом дела не имели, то за месяц, другой разберетесь. Если имели то делов на пару недель.

 

Можно взять какие-либо преобразователи USB-UART это самое простое для организации интерфейса, если не езернет.

 

Изготовление платы в этот процесс входит

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


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

если не хочется вообще что-нибудь делать со стороны ПК, то uart (USB->uart). получится стандартный последовательный порт.

если скорости не хватит можно посмотреть на USB->FIFO, вроде FT232H. со стороны плис даже проще. ну и на этом пути есть возможность взять ft601 и получить пару ГБит.

для тестовой задачи можно вообще обойтись JTAG-UART внутри ПЛИС и подключением к ПК через usb blaster. но там и скорости не очень и со стороны ПК есть небольшой геморрой с общением с этим uartом из своего приложения, а не через терминал квартуса.

 

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

http://www.fpga4fun.com/10BASE-T.html

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


Ссылка на сообщение
Поделиться на другие сайты
Хочется сконектить ПЛИС( либо 3 cyclone, либо 4) с ПК для обмена данными между ними. Какой лучше всего использовать для данной задачи интерфейс? Скорости все такие тоже не совсем минимальные должны быть, что-то среднее.

Я предлагаю следующее.

На плате с ПЛИС взять 4 вывода и к ним прицепить стартовый набор с микроконтроллером. И на нем довольно легко получить канал связи с ПК. Хоть USB, хоть Ethernet. А в ПЛИС отправить SPI, причем не 8 бит, а 16 и более. Сделать так, чтобы при передаче ПЛИС отправляла этот же кадр обратно и можно было бы сравнить переданный и принятый...

И уже в ПЛИС сделать разборку кадров будет несложно.

У Ксайлинкса в ISE 14.7 есть образцовый проект, где плата общается с ПК по UART...

 

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


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

1) Если изготовление платы входит в задачу, то зачем ограничиваться одним лишь usb to uart(хотя всё зависит от поставленных задач ). Делайте и ethernet тоже - не купируйте функции и эргономично используйте ресурсы, а то как порой некоторые ставят МК где надо 2 транзистора, а где надо МК - придумывают непонятные извращения с кучей дискретных элементов. Посмотрите на тест бордах для вашей fpga какие банки используются для ethernet и выполняйте разводку. А с протоколом уже потом разберётесь. Для etherneta скорости выше гораздо.

2) В большинстве случаев используется microblaze для обмена информацией и шина axi4 на основе встроенных ядер.

3) Разобраться быстрее конечно с uart - если поверхностно то 2-3 дня, ну а так недельку. С ethernetом - вам уже написали пару месяцев(достаточно сложный стандарт).

 

PS из даташита:

The AXI UART 16550 core performs parallel-to-serial conversion on characters received from the AXI master and serial-to-parallel conversion on characters received from a modem or serial peripheral. The AXI UART 16550 is capable of transmitting and receiving 8, 7, 6, or 5-bit characters, with 2, 1.5 or 1 stop bits and odd, even or no parity. The AXI UART 16550 can transmit and receive independently.

 

The Tri-Mode Ethernet MAC (TEMAC) solution comprises the 10/100/1000 Mb/s, 1 Gb/s and 10/100 Mb/s IP cores which are fully-verified designs that support Verilog-HDL and VHDL. In addition, the example design provided with the core is in both Verilog and VHDL.

 

 

 

 

Всем привет! Вопрос общего характера, скорее даже желание получить совет от более опытных людей. Есть тестовая задача, которая не предполагает жестких дедлайнов и требований. Хочется сконектить ПЛИС( либо 3 cyclone, либо 4) с ПК для обмена данными между ними.

 

У меня просто похожая задачка сейчас, но правда у меня тестовый борд на виртексе 6.

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


Ссылка на сообщение
Поделиться на другие сайты
На плате с ПЛИС взять 4 вывода и к ним прицепить стартовый набор с микроконтроллером. И на нем довольно легко получить канал связи с ПК. Хоть USB, хоть Ethernet. А в ПЛИС отправить SPI, причем не 8 бит, а 16 и более.

можно конечно что угодно использовать для преобразования интерфейсов для связи с ПК, https://marsohod.org/projects/m2rpi-project...61-ma2rpi-first

 

но вот ft232h через усб может прикидываться и SPI мастером/слэйвом, i2c, уартом, параллельным фифо или шиной, без каких-либо дополнительных телодвижений.

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


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

FT2232 (режим Синхронного фифо до 35МБ/с) - рекомендую для старта (board) -- USB 2.0

или

FT601 - тоже режим Синхронного фифо до 5 гигабит/с -- USB 3.0

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


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

я тоже за FTDI в режиме FIFO

 

для FT601 есть мезонинные платы под Альтеру/Ксайлинкс - то есть если ПЛИС тоже на каком-то готовом наборе типа DE* от Terasic - то и паять ничего не надо, воткнул и готово :)

 

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


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

Для 100Мбит Ethernet от ПЛИС к ПК - достаточно 1 витую пару с последовательными резисторами, 2 ноги ПЛИС, и все (даже трансформатор не обязателен). Обратный канал немного сложнее (больше ног и резисторов). Но открытых проектов не видел (сам не выкладывал).

Изменено пользователем Leka

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


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

http://www.fpga4fun.com/10BASE-T.html

Это плохой вариант. А вот хороший вариант - можно легко присобачить Ethernet платку (от STM32 Discovery) прямо к ПЛИС и будет 100 Мбит/с сетка. И да, взять тупо UDP - получится не сложнее чем UART.

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
можно конечно что угодно использовать для преобразования интерфейсов для связи с ПК, https://marsohod.org/projects/m2rpi-project...61-ma2rpi-first

 

но вот ft232h через усб может прикидываться и SPI мастером/слэйвом, i2c, уартом, параллельным фифо или шиной, без каких-либо дополнительных телодвижений.

Вот только прикол в том, что при 8-ми битовом кадре придется делать байт-стаффинг и в ПЛИС заниматься поддержкой протокола. А при 16-ти битовом кадре все можно уложить в этот кадр... И парсить его будет гораздо проще..

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация