bush 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 (изменено) · Жалоба Добрый день. Прошу не закидывать камнями - знаю, уже были похожие темы, смотрел, пробовал, ничего не выходит либо возникает много вопросов. Хотелось бы здесь их прояснить. Есть плата на основе Spartan 3 со встроенным PHY модулем. Нужно посылать данные с компьютера на ПЛИС через Ethernet, там обрабатывать и получать обратно результат. Насколько я понял есть три варианта реализовать передачу: - Ethernet Lite + MicroBlaze - Tri-Mode Ethernet MAC - написать что-то свое. при этом можно использовать что-то из открытого кода. На данный момент знания hdl минимальные, понимание работы Ethernet тоже. Хотелось бы сделать это быстро и без заморочек. Посоветуйте наиболее легкий способ. Или возможно уже имеется готовые наработки. Или какой-то туториал по созданию ядра конкретно под этот ПЛИС. Буду очень благодарен за любую помощь. П.С.: я уже пробовал разные варианты, но везде что-то не выходит или не понятно из-за отсутствия опыта и нужных знаний. Изменено 9 декабря, 2012 пользователем bush Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troiden 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба Для начала опрелитесь что вы хотите получить от Ethernet. Формат обмена с ПК, требуемые скорости передачи - это минимум. Без этого сделать выбор реализации затруднительно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bush 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба Для начала опрелитесь что вы хотите получить от Ethernet. Формат обмена с ПК, требуемые скорости передачи - это минимум. Без этого сделать выбор реализации затруднительно. PHY модуль типа MII, позволяет работать на скоростях 10 и 100мбит/с. Мне скорость не важна, достаточно и 10. Главное чтобы происходила передача данных. Формат данных? Т.е. какие пакеты будут передаваться? Что проще, то пусть и будет. Если UDP,то UDP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
troiden 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба Формат - тип пакета и его содержимое. UDP будет проще с чисто железной реализации, но он не гарантирует доставку и очередность пакетов в общем случае. В каком виде планируются данные с ПК? Просто поток байт или же какая-то сложная структура с заголовками, кадрами, кучей полей? Для первого случая проще будет вариант с Tri-Mode Ethernet MAC + логика, для второго может быть сподручней контроллер. Скорость имелась ввиду средняя. Одиночные пакеты или непрерывный высокоскоростной поток, который обрабатывается на лету. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба Вообще предложу для пути: 1. Сгенерить проект EDK визардом, и включить туда TEMAC. Вместе с проектом создадутся приложения для тестирования периферии, в т.ч. TEMAC. из приложений можно сделать прием и отправление пакетов. Кстати, автосгенеренный код снабжен комментариями. 2. Использование библиотеки lwIP. (См. xapp1026). Более сложный путь, однако более стандартизированный. Там уже есть ARP, ICMP, UDP, TCP и др. Если вы пойдете первым путем, то это фактически будет работа на MAC-уровне. Т.е. задаете себе MAC-адрес, и дальше придется вручную формировать заголовки UDP и ARP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба http://www.fpga4fun.com/10BASE-T.html 10BASE-T FPGA interface The Ethernet full-duplex protocol is easy to implement in an FPGA. The goal here is to interface an FPGA to a 10BASE-T connection. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bush 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 (изменено) · Жалоба В каком виде планируются данные с ПК? Просто поток байт или же какая-то сложная структура с заголовками, кадрами, кучей полей? Для первого случая проще будет вариант с Tri-Mode Ethernet MAC + логика, для второго может быть сподручней контроллер. Скорость имелась ввиду средняя. Одиночные пакеты или непрерывный высокоскоростной поток, который обрабатывается на лету. В идеале - работа со схемами в Simulink (таково задание). ПЛИС должен выполнять функции регулятора для схем созданных в симулинке. Если исходить из задания - будет поток данных с компьютера на протяжении какого-то времени (~10-20сек), и эти данные нужно сразу обрабатывать и отсылать результат назад. Данный проект был уже реализован с использованием RS232, теперь возникло желание перейти на Ethernet. Вообще предложу для пути: 1. Сгенерить проект EDK визардом, и включить туда TEMAC. Вместе с проектом создадутся приложения для тестирования периферии, в т.ч. TEMAC. из приложений можно сделать прием и отправление пакетов. Кстати, автосгенеренный код снабжен комментариями. 2. Использование библиотеки lwIP. (См. xapp1026). Более сложный путь, однако более стандартизированный. Там уже есть ARP, ICMP, UDP, TCP и др. Если вы пойдете первым путем, то это фактически будет работа на MAC-уровне. Т.е. задаете себе MAC-адрес, и дальше придется вручную формировать заголовки UDP и ARP. xapp1026 не подходит для древнего спартана 3. http://www.xilinx.com/products/intellectua...ps_ll_temac.htm - судя по данной ссылке, спартан 3 не поддерживается облегченной версией TEMAC. Есть ли альтернативные варианты? Изменено 9 декабря, 2012 пользователем bush Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bush 0 9 декабря, 2012 Опубликовано 9 декабря, 2012 · Жалоба Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite. При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic. Я так понимаю они отличаются только названиями, или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xor.kruger 0 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic. Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux Я так понимаю они отличаются только названиями, или нет? Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aabmail 0 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite. Если не стремиться к высокой производительности, то XPS Ethernet Lite м.б. в чем-то и лучше. Там кажется, можно даже без прерываний обойтись Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xor.kruger 0 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба Ну если решились или решили использовать Tri-mode Ethernet MAC, то вот на эту тему статья. Правда там под версию EDK 10 но суть остается та же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bush 0 10 декабря, 2012 Опубликовано 10 декабря, 2012 (изменено) · Жалоба Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты :)) Т.е. не получится просто выбрать Generic и прописать ему нужные констрейнты? Еще пару вопросов вдогонку. Нужно ли подключать какую-то память для него, или он использует только ресурсы самой ПЛИС? Можно ли в BSB создать проект с Ethernet lite для spartan 3e starter kit, а потом переписать под себя файл ограничений? Или там логика тоже будет меняться? Ну если решились или решили использовать Tri-mode Ethernet MAC, то вот на эту тему статья. Правда там под версию EDK 10 но суть остается та же. Смотрел раньше уже... Но статья под виртекс и 1Гбит. Наверняка многое придется изменять под себя, а с моими знаниями это будет обречено на провал. xor.kruger, а с какой ПЛИС вы работали? Изменено 10 декабря, 2012 пользователем bush Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба Есть плата на основе Spartan 3 со встроенным PHY модулем. Нужно посылать данные с компьютера на ПЛИС через Ethernet, там обрабатывать и получать обратно результат. Вообще то Вам для начала надо понять, что если делать так, как Вы написали, то половина ПЛИС будет занята только "получить и отправить...". Надо сделать МАС и контроллер. К нему - встроенный софт... Внешняя память будет нужна и для хранения-разборки пакетов. Так что почитайте, сколько ресурсов займет МикроБлэйз, МАС и т.д. А есть ли в этом смысл? Может дешевле поставить внешний контроллер с МАС и PHY, например Люминари или PIC? Или хотя бы контроллер ethernet с PHY, например от Микрел... А уж то, что это для начинающего будет быстрее в отладке и проще, так это точно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xor.kruger 0 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба а с моими знаниями это будет обречено на провал. В корне не правильная позиция! А как еще учится ? Нужно брать и пробовать, набивать шишки и снова пробовать :)) xor.kruger, а с какой ПЛИС вы работали? Там где юзался Ethernet это были чипы XC3SD1800A и XC3S500E Нужно ли подключать какую-то память для него, или он использует только ресурсы самой ПЛИС? В моем случае именно для Ethernet внешняя память не использовалась Т.е. не получится просто выбрать Generic и прописать ему нужные констрейнты? Скорее всего получиться, нуна пробовать, сейчас уже сходу не вспомню. а потом переписать под себя файл ограничений? Что вы подразумеваете под файлом ограничений ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 10 декабря, 2012 Опубликовано 10 декабря, 2012 · Жалоба А есть ли в этом смысл? Может дешевле поставить внешний контроллер с МАС и PHY, например Люминари или PIC? Или хотя бы контроллер ethernet с PHY, например от Микрел... А уж то, что это для начинающего будет быстрее в отладке и проще, так это точно... ..посоветуйте контроллер с PHY для 1G ? так чтобы новичёк смог на основе какой отладочной платы поднять сеть у себя в устройстве. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться