Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интерфейс для общения с ПК
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Ink1918
Всем привет! Вопрос общего характера, скорее даже желание получить совет от более опытных людей. Есть тестовая задача, которая не предполагает жестких дедлайнов и требований. Хочется сконектить ПЛИС( либо 3 cyclone, либо 4) с ПК для обмена данными между ними. Какой лучше всего использовать для данной задачи интерфейс? Скорости все такие тоже не совсем минимальные должны быть, что-то среднее.
Lmx2315
100 мбит ethernet
Ink1918
Цитата(Lmx2315 @ Feb 26 2018, 11:40) *
100 мбит ethernet

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

Можно взять какие-либо преобразователи USB-UART это самое простое для организации интерфейса, если не езернет.
el.d
Цитата(Golikov A. @ Feb 26 2018, 11:02) *
Входит изготовление платы в этот процесс или нет?
Если есть правильно сделанная плата с физикой, то вам надо воткнуть в ПЛИС IP мак контроллера (у производителей ПЛИС есть готовые, но полнофункциональные обычно платные). Воткнуть в ПЛИС софт процессор (ниос или микроблайз) и поднять на них ТСР стэк. Примеров куча, если совсем с езернетом дела не имели, то за месяц, другой разберетесь. Если имели то делов на пару недель.

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

Так если там ничего серьезного не предвидится, то зачем там TCP если можно обойтись UDP....
Ink1918
Цитата(Golikov A. @ Feb 26 2018, 13:02) *
Входит изготовление платы в этот процесс или нет?
Если есть правильно сделанная плата с физикой, то вам надо воткнуть в ПЛИС IP мак контроллера (у производителей ПЛИС есть готовые, но полнофункциональные обычно платные). Воткнуть в ПЛИС софт процессор (ниос или микроблайз) и поднять на них ТСР стэк. Примеров куча, если совсем с езернетом дела не имели, то за месяц, другой разберетесь. Если имели то делов на пару недель.

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


Изготовление платы в этот процесс входит
_pv
если не хочется вообще что-нибудь делать со стороны ПК, то uart (USB->uart). получится стандартный последовательный порт.
если скорости не хватит можно посмотреть на USB->FIFO, вроде FT232H. со стороны плис даже проще. ну и на этом пути есть возможность взять ft601 и получить пару ГБит.
для тестовой задачи можно вообще обойтись JTAG-UART внутри ПЛИС и подключением к ПК через usb blaster. но там и скорости не очень и со стороны ПК есть небольшой геморрой с общением с этим uartом из своего приложения, а не через терминал квартуса.

ну а с езернетом для совсем простой передачи данных можно и не только без TCP, но и без ниоса обойтись.
http://www.fpga4fun.com/10BASE-T.html
iosifk
Цитата(Ink1918 @ Feb 26 2018, 11:20) *
Хочется сконектить ПЛИС( либо 3 cyclone, либо 4) с ПК для обмена данными между ними. Какой лучше всего использовать для данной задачи интерфейс? Скорости все такие тоже не совсем минимальные должны быть, что-то среднее.

Я предлагаю следующее.
На плате с ПЛИС взять 4 вывода и к ним прицепить стартовый набор с микроконтроллером. И на нем довольно легко получить канал связи с ПК. Хоть USB, хоть Ethernet. А в ПЛИС отправить SPI, причем не 8 бит, а 16 и более. Сделать так, чтобы при передаче ПЛИС отправляла этот же кадр обратно и можно было бы сравнить переданный и принятый...
И уже в ПЛИС сделать разборку кадров будет несложно.
У Ксайлинкса в ISE 14.7 есть образцовый проект, где плата общается с ПК по UART...
fertna18
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.




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


У меня просто похожая задачка сейчас, но правда у меня тестовый борд на виртексе 6.
_pv
Цитата(iosifk @ Feb 26 2018, 17:08) *
На плате с ПЛИС взять 4 вывода и к ним прицепить стартовый набор с микроконтроллером. И на нем довольно легко получить канал связи с ПК. Хоть USB, хоть Ethernet. А в ПЛИС отправить SPI, причем не 8 бит, а 16 и более.

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

но вот ft232h через усб может прикидываться и SPI мастером/слэйвом, i2c, уартом, параллельным фифо или шиной, без каких-либо дополнительных телодвижений.
Maverick
FT2232 (режим Синхронного фифо до 35МБ/с) - рекомендую для старта (board) -- USB 2.0
или
FT601 - тоже режим Синхронного фифо до 5 гигабит/с -- USB 3.0
yes
я тоже за FTDI в режиме FIFO

для FT601 есть мезонинные платы под Альтеру/Ксайлинкс - то есть если ПЛИС тоже на каком-то готовом наборе типа DE* от Terasic - то и паять ничего не надо, воткнул и готово sm.gif
Leka
Для 100Мбит Ethernet от ПЛИС к ПК - достаточно 1 витую пару с последовательными резисторами, 2 ноги ПЛИС, и все (даже трансформатор не обязателен). Обратный канал немного сложнее (больше ног и резисторов). Но открытых проектов не видел (сам не выкладывал).
AVR
Цитата(_pv @ Feb 26 2018, 13:31) *
ну а с езернетом для совсем простой передачи данных можно и не только без TCP, но и без ниоса обойтись.
http://www.fpga4fun.com/10BASE-T.html

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

Но когда я только начинал с этим - была куча вопросов. Сейчас эти вопросы можно задать мне.
iosifk
Цитата(_pv @ Feb 26 2018, 17:27) *
можно конечно что угодно использовать для преобразования интерфейсов для связи с ПК, https://marsohod.org/projects/m2rpi-project...61-ma2rpi-first

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

Вот только прикол в том, что при 8-ми битовом кадре придется делать байт-стаффинг и в ПЛИС заниматься поддержкой протокола. А при 16-ти битовом кадре все можно уложить в этот кадр... И парсить его будет гораздо проще..
_pv
Цитата(AVR @ Feb 27 2018, 15:31) *
Это плохой вариант. А вот хороший вариант - можно легко присобачить Ethernet платку (от STM32 Discovery) прямо к ПЛИС и будет 100 Мбит/с сетка. И да, взять тупо UDP - получится не сложнее чем UART.

я эту ссылку и привел как пример простой передачи данных через udp, а не как пример подключения без phy на 10мбит, и тем более 100мбит как предложил Leka.
на phy экономить не надо.
Leka
Цитата(_pv @ Feb 27 2018, 12:03) *
на phy экономить не надо

Большая экономия получается на отладке:
медленный канал управления от ПК к ПЛИС через virtual JTAG,
и быстрый канал данных от ПЛИС к ПК с использованием всего 2х ног ПЛИС.
Дешево и сердито, минимум ног/деталей/ЛЕ.
_pv
Цитата(Leka @ Feb 27 2018, 23:00) *
Большая экономия получается на отладке:
медленный канал управления от ПК к ПЛИС через virtual JTAG,
и быстрый канал данных от ПЛИС к ПК с использованием всего 2х ног ПЛИС.
Дешево и сердито, минимум ног/деталей/ЛЕ.

ну если никому этот интерфейс не давать, а использовать только самому исключительно для отладки, то да, передатчик 100baset используя только два резистора - идея в принципе неплохая.
new123
Последние несколько месяцев работал над таким вопросом.

Сначала на циклоне 4 поднял 10Base-T. Канал на отправку сделать очень легко, использовал UDP через 2 пина, резистор и конденсатор. Прием сделать было гораздо сложнее. Куча помех. Пришлось все таки купить разъем RJ-45 со встроенным magnetic, и подбирал долго тактовую частоту для захвата данных.

Потом в руки попала другая карта, на борту есть phy чип от marvell. Поднял канал передачи данных аж 1000Base-T. Делаю высокоскоростные логи (с большой частотой дискретизации). Очень доволен пока этим решением. Незнаю как ваш циклон поведет себя на 1000Base-T. Можно ограничиться 100мбит/с

Кстати на алиекспрессе есть микроплатки с таким PHY + MAC чипом. В Мск тоже есть, по моему рублей 800. Можно посадить на пользовательские пины на циклоне и иметь готовый 100Base-T уже с MAC
пример
likeasm
LAN 8720

300р


dtmf73
FT2232H

Single channel synchronous FIFO mode for transfers up to 40 Mbytes/sec
+ JTAG (использовав второй канал)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.