|
|
  |
FPGA - Ethernet - PC, Как лучше организовать? |
|
|
|
Apr 14 2008, 16:06
|

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

|
Ситуация Нужно сделать железку (плату), которая могла бы общаться с ПК по Ethernet в целях передачи: - управляющей информации из ПК в железку (менее 1 Мб/с); - информации о состоянии железки в ПК (менее 1 Мб/с); - полезной информации из железки в ПК (~10 Мб/с); - больших объемов информации (в планах несколько ГБ), накопленных на плате, не в режиме реального времени из железки в ПК, по его запросу. Для указанных целей вполне подходит 100 Мб Ethernet. Ethernet выбран как достаточно скоростной интерфейс, позволяющий подключить к компьютеру несколько таких плат. На плате единственный управляющий элемент - это ПЛИС. Ориентировочно XC5VSX50T. Никаких микроконтроллеров и процессоров не планируется.
Мнение Один из подходов в такой ситуации: использовать внешний (для ПЛИС) трансивер Ethernet физического уровня и встроенный в ПЛИС MAC-контроллер. Я так понимаю, имея в руках только кадр MAC-уровня, многого не сделаешь - необходима реализация протоколов. К сожалению, пока не знаком с протоколами сетевого и транспортного уровней, поэтому не знаю всей сложности. Хотелось бы услышать мнение тех, кто сталкивался с подобными вещами.
Вопрос Реально ли вообще обойтись без каких бы то ни было микроконтроллеров/процессоров, имея только MAC-контроллер и программируемую логику, для организации обмена данными по сети? Может быть существуют другие, более оптимальные варианты взаимодействия ПЛИС с ПК по сети Ethernet?
|
|
|
|
|
Apr 14 2008, 18:12
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Apr 14 2008, 19:04
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Цитата(kst @ Apr 14 2008, 20:06)  Вопрос Реально ли вообще обойтись без каких бы то ни было микроконтроллеров/процессоров, имея только MAC-контроллер и программируемую логику, для организации обмена данными по сети? Может быть существуют другие, более оптимальные варианты взаимодействия ПЛИС с ПК по сети Ethernet? В данном случае, насколько я понимаю, потребуется достаточно развитое управление MAC уровнем в части приема/передачи/формирования пакетов, поэтому смотрите в сторону связки Microblaze (встраиваемое в ПЛИС процессорное ядро) + MAC + внешний PHY. При этом не потребуется никаких внешних управляющих микроконтроллеров и т.п.
|
|
|
|
|
Apr 14 2008, 19:43
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Apr 17 2008, 10:15
|

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

|
Огромное спасибо всем ответившим!
Платка должна быть промышленного исполнения. На плату планируется ставить оперативку и FLASH. Никакого интернета и никаких серверов пока не планируется. Конечная система - 4 платы, свитч и 1 компьютер. Все. Можно даже какой-то самодельный протокол обмена данными придумать, главное - платы уметь различать. Хотелось бы узнать какой минимум нужно реализовать в ПЛИС, чтобы обмениваться данными между платой и компьютером?
По поводу Microblaze раздумываю, правда сей зверь мне знаком только понаслышке. Хотелось бы узнать, сколько ресурсов может уйти на его реализацию? И вообще, можно ли как-то спрогнозировать, сколько от ПЛИС откусит все управление Ethernetом в лучшем случае???
Отдельный микроконтроллер ставить - это еще одна отдельная задачка. Плюс на плате придется потесниться. Но тоже, в принципе, вариант.
А вообще есть вариант покупки готовой промышленной процессорной платы с Ethernetом и USB на борту. Тогда нужно будет отлаживать взаимодействие 2х плат - платы с ПЛИС и процессорной платы - по шине, скажем, PCI. Эта задача мне вообще не знакома. Но может быть так проще будет?
|
|
|
|
|
Apr 18 2008, 07:51
|
Местный
  
Группа: Свой
Сообщений: 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МГц
|
|
|
|
|
Apr 19 2008, 08:06
|

Участник

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

|
Может имеет смысл подумать над м\сх контроллера Ethernet совмещенного с процессором ? Например - Mcrel . Тогда Плис только поставщик информации и коммутатор шин, а управление и протоколы за процессором. Несколько смущает могучесть процессора (ARM9) для подобной задачи . но думаю можно найти и более подходящие варианты.
--------------------
Обойденные грабли - недополученный опыт!
|
|
|
|
|
Apr 19 2008, 20:20
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|