реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> FPGA - Ethernet - PC, Как лучше организовать?
kst
сообщение Apr 14 2008, 16:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Ситуация
Нужно сделать железку (плату), которая могла бы общаться с ПК по Ethernet в целях передачи:
- управляющей информации из ПК в железку (менее 1 Мб/с);
- информации о состоянии железки в ПК (менее 1 Мб/с);
- полезной информации из железки в ПК (~10 Мб/с);
- больших объемов информации (в планах несколько ГБ), накопленных на плате, не в режиме реального времени из железки в ПК, по его запросу.
Для указанных целей вполне подходит 100 Мб Ethernet.
Ethernet выбран как достаточно скоростной интерфейс, позволяющий подключить к компьютеру несколько таких плат.
На плате единственный управляющий элемент - это ПЛИС. Ориентировочно XC5VSX50T. Никаких микроконтроллеров и процессоров не планируется.

Мнение
Один из подходов в такой ситуации: использовать внешний (для ПЛИС) трансивер Ethernet физического уровня и встроенный в ПЛИС MAC-контроллер.
Я так понимаю, имея в руках только кадр MAC-уровня, многого не сделаешь - необходима реализация протоколов. К сожалению, пока не знаком с протоколами сетевого и транспортного уровней, поэтому не знаю всей сложности.
Хотелось бы услышать мнение тех, кто сталкивался с подобными вещами.

Вопрос
Реально ли вообще обойтись без каких бы то ни было микроконтроллеров/процессоров, имея только MAC-контроллер и программируемую логику, для организации обмена данными по сети?
Может быть существуют другие, более оптимальные варианты взаимодействия ПЛИС с ПК по сети Ethernet?
Go to the top of the page
 
+Quote Post
ASN
сообщение Apr 14 2008, 16:28
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



kst
Вопрос по ситуации: кроме FPGA вообще ничего нет? Всяких там FLASH, SDRAM и т.п.
Вопрос по мнению: а почему Вы не желаете использовать какой-нибудь MCU?
Дополнительный вопрос: все приборы будут работать в одной сегменте сети без выхода в другие сегменты?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Apr 14 2008, 18:12
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Если требуется поддержка стека TCP/IP то совсем без подобия MCU обойтись будет сложно.
Но при этом сам MCU может быть частью FPGA. Для основных функций в принципе даже на ядре типа PicoBlaze (правда програмить только на асме) можно соорудить что-то поддерживающие медленный командный канал (ARP, ICMP , UDP управления и статуса). Большой поток данных при этом можно формировать аппаратно автоматом формируя например UDP пакеты. В свое врем я делал похожее на Spartan3-400 обработка данных с радиолокатора. Правда потом от внутреннего контроллера отказался - так как снаружи поставил ADuC841 в основном из за встроенных ADC,DAC. Выходной поток данных был до 6 Мбайт/сек.

Хотя если не хочется связыватся с MCU -
посмотри сдесь синтезируемый . TCP/IP stack VHDL

Успехов! Rob.
Go to the top of the page
 
+Quote Post
sazh
сообщение Apr 14 2008, 18:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Если на киты посмотреть. Можно lan91c111 задействовать.
На входе например имитируете isa шину.
Go to the top of the page
 
+Quote Post
:-)
сообщение Apr 14 2008, 18:50
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006



Тоже интересуюсь данной темой. Есть корыстный вопрос: Нет ли у кого рабочего примера примера посылки UDP пакетов (формирования кадра, расчёта CRC и т.д.) с помощью ПЛИС и микросхемы phy-уровня? И если есть, то могли бы вы им поделиться. Для тестов планирую использовать отладочную плату на spartan3e500.
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 14 2008, 19:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(kst @ Apr 14 2008, 20:06) *
Вопрос
Реально ли вообще обойтись без каких бы то ни было микроконтроллеров/процессоров, имея только MAC-контроллер и программируемую логику, для организации обмена данными по сети?
Может быть существуют другие, более оптимальные варианты взаимодействия ПЛИС с ПК по сети Ethernet?


В данном случае, насколько я понимаю, потребуется достаточно развитое управление MAC уровнем в части приема/передачи/формирования пакетов, поэтому смотрите в сторону связки Microblaze (встраиваемое в ПЛИС процессорное ядро) + MAC + внешний PHY. При этом не потребуется никаких внешних управляющих микроконтроллеров и т.п.
Go to the top of the page
 
+Quote Post
0xFF
сообщение Apr 14 2008, 19:18
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984



Доброго здравия!

Из моего личного опыта применения для связи ПЛИС и ПЦ наиболее оптимальным оказалось использование внешнего Ethernet PHY к плис и EthernetLite для микроблейза. (готовых примеров в сети предостаточно хотя бы на том же xilinx.com ) Организовывать различные виды tcp/ip стэков тоже конечно можно хоть софтов хоть аппаратно было бы желание, из личного опыта для опознования устройства компьютером можно приделать софтовую обработку ICMP и ARP пакетов , и UDP для связи а остальное просто игнорировать. Обмен по UDP вполне позволит просто работать с пакетами на Winsocketе.

Но вот лично моё мнение: если не нужно организовывать передачи данных в интернет, связывать устройство с удалёным сервером, а нужно только построить простой обмен данными, то
а) обмен данными просто на Ethernet Frame со своей удобной структурой что позволит софтово на микроблейзе быстро и со вкусом паковать и распаковывать пакеты и обойтись без упаковки в пакет с трудоёмкой CRC и т.д.
б)на стороне компьютера ставим всеми любимый winpcap и работаем через его сокет. C ними работают Wireshark бывш. Ethereal, кстати xilinx ставит его для организации Co-Simulation со связью с target по Ethernet
в) При всём этом, если всё аккуратно написать в плис, то 5-7Мбайт в сек получить вполне возможно

Успехов!
Go to the top of the page
 
+Quote Post
CodeWarrior1241
сообщение Apr 14 2008, 19:43
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Цитата(:-) @ Apr 14 2008, 14:50) *
Тоже интересуюсь данной темой. Есть корыстный вопрос: Нет ли у кого рабочего примера примера посылки UDP пакетов (формирования кадра, расчёта CRC и т.д.) с помощью ПЛИС и микросхемы phy-уровня? И если есть, то могли бы вы им поделиться. Для тестов планирую использовать отладочную плату на spartan3e500.
Занимаюсь тем же самым. Единственное нО - ИС для phy-уровня содежит в себе и mac-уровень тоже. Пользуюсь WIZnet W5100 - http://www.ewiznet.com. Предыстория - меня попросили взять существущие тест-инструменты, и дать возможность управлять ими дистанционно, через TCP или UDP - им без разницы. Инструменты разработанны нами, и содержут ПЛИС который управляет разной фигней. Я беру схемы существующих плат с плис'ом, и добовляю W5100. Конкретно мне оказалось удобнее использовать TCP для этой задачи, и 10Mbs для меня достаточно. Пользоватся W5100 - совершенно примитивно, выставлять TCP/IP, UDP, keepalive, итд опции тоже легко. Рекоммендую, если у Вас нету жестких требованей насчет скорости.


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 15 2008, 03:16
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



ИМХО от времени и условий все у вас зависит.

отлаживать логику протоколов класса TCP-IP на проце намного легче чем на фпга.

Если время ограничено и нет человека который вариться в кухне EDK/SOPC то поставте внешний арм(например LPC2478 + бесплатный ничи стек).

Если запас есть то освоите EDK, пригодиться (да и чип у вас толстый). На форуме кстати темы про TCP/IP на микроблейзе были.

Можно конечно использовать опенсорсный проц класса AVR, MSP430, но думаю что по затратам времени это эквивалентно освоению микроблейза ( правда совесть будет более чистой %) )

TCP/IP stack VHDL кстати синтезируемый но проверен авторами на 10 мегабит эзернете.

ЗЫ. Сам использую частично переписанную корку от Igor Mohor.

Удачи!!!


--------------------
Go to the top of the page
 
+Quote Post
druzhin
сообщение Apr 15 2008, 07:19
Сообщение #10


druzhin
***

Группа: Свой
Сообщений: 286
Регистрация: 18-06-04
Из: Москва
Пользователь №: 58



Цитата(:-) @ Apr 14 2008, 22:50) *
Тоже интересуюсь данной темой. Есть корыстный вопрос: Нет ли у кого рабочего примера примера посылки UDP пакетов (формирования кадра, расчёта CRC и т.д.) с помощью ПЛИС и микросхемы phy-уровня? И если есть, то могли бы вы им поделиться. Для тестов планирую использовать отладочную плату на spartan3e500.


У меня есть отсылка пакетов со скоростью 30 Мб/с TCP, используется спартан3+wiznet3150. Кстати, тоже данные от радара. Весь интеллект уместился в фсм на 24 состояния, полученный переложением на верилог фирменных Си-исходников. Могу намылить верилог, схему и описалово.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Apr 15 2008, 09:33
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(kst @ Apr 14 2008, 20:06) *
- информации о состоянии железки в ПК (менее 1 Мб/с);
- полезной информации из железки в ПК (~10 Мб/с);
Для указанных целей вполне подходит 100 Мб Ethernet.


Не хочу показаться занудливым, но есть мнение, что 11 Мб/с через 100 Mbit ethernet может и не пролезть, особенно для протоколов верхнего уровня (могут начаться проблемы со стороны ПК). Я бы рассчитывал на 8-9 Мб/с как реальный максимум.

Сообщение отредактировал alexadmin - Apr 15 2008, 09:34
Go to the top of the page
 
+Quote Post
kst
сообщение Apr 17 2008, 10:15
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Огромное спасибо всем ответившим!

Платка должна быть промышленного исполнения.
На плату планируется ставить оперативку и FLASH.
Никакого интернета и никаких серверов пока не планируется. Конечная система - 4 платы, свитч и 1 компьютер. Все.
Можно даже какой-то самодельный протокол обмена данными придумать, главное - платы уметь различать.
Хотелось бы узнать какой минимум нужно реализовать в ПЛИС, чтобы обмениваться данными между платой и компьютером?

По поводу Microblaze раздумываю, правда сей зверь мне знаком только понаслышке. Хотелось бы узнать, сколько ресурсов может уйти на его реализацию?
И вообще, можно ли как-то спрогнозировать, сколько от ПЛИС откусит все управление Ethernetом в лучшем случае???

Отдельный микроконтроллер ставить - это еще одна отдельная задачка. Плюс на плате придется потесниться. Но тоже, в принципе, вариант.

А вообще есть вариант покупки готовой промышленной процессорной платы с Ethernetом и USB на борту. Тогда нужно будет отлаживать взаимодействие 2х плат - платы с ПЛИС и процессорной платы - по шине, скажем, PCI. Эта задача мне вообще не знакома. Но может быть так проще будет?
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Apr 18 2008, 07:51
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



Добрый день !
Мы пользуемся следующим набором:

HW - Virtex4FX, внутри PowerPC и железный MAC, собран MPMC3 и LL_TEMAC в режиме DMA, память DDR, системная тактовая и тактовая MPMC 100МГц, тактовая проца - 300МГц.

Стек - доработанная LWIP в режиме SOCKET API.

Передача - 80Мбит по 100Мбит линку.

Получали и 94Мбита при работе MPMC на 200МГц smile.gif
Go to the top of the page
 
+Quote Post
AndruB
сообщение Apr 19 2008, 08:06
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 31-07-07
Из: Москва
Пользователь №: 29 490



Может имеет смысл подумать над м\сх контроллера Ethernet совмещенного с процессором ? Например - Mcrel . Тогда Плис только поставщик информации и коммутатор шин, а управление и протоколы за процессором. Несколько смущает могучесть процессора (ARM9) для подобной задачи . но думаю можно найти и более подходящие варианты.


--------------------
Обойденные грабли - недополученный опыт!
Go to the top of the page
 
+Quote Post
CodeWarrior1241
сообщение Apr 19 2008, 20:20
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Цитата(AndruB @ Apr 19 2008, 04:06) *
Может имеет смысл подумать над м\сх контроллера Ethernet совмещенного с процессором?
Так ведь это уже говорилось - можно micrel, realtek, я предложил wiznet... Варианты есть.


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 05:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016