|
Реализация Ethernet на Spartan 3 |
|
|
|
Dec 9 2012, 19:04
|
Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726

|
Добрый день. Прошу не закидывать камнями - знаю, уже были похожие темы, смотрел, пробовал, ничего не выходит либо возникает много вопросов. Хотелось бы здесь их прояснить. Есть плата на основе Spartan 3 со встроенным PHY модулем. Нужно посылать данные с компьютера на ПЛИС через Ethernet, там обрабатывать и получать обратно результат. Насколько я понял есть три варианта реализовать передачу: - Ethernet Lite + MicroBlaze - Tri-Mode Ethernet MAC - написать что-то свое. при этом можно использовать что-то из открытого кода. На данный момент знания hdl минимальные, понимание работы Ethernet тоже. Хотелось бы сделать это быстро и без заморочек. Посоветуйте наиболее легкий способ. Или возможно уже имеется готовые наработки. Или какой-то туториал по созданию ядра конкретно под этот ПЛИС. Буду очень благодарен за любую помощь. П.С.: я уже пробовал разные варианты, но везде что-то не выходит или не понятно из-за отсутствия опыта и нужных знаний.
Сообщение отредактировал bush - Dec 9 2012, 19:05
|
|
|
|
|
Dec 9 2012, 19:25
|
Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726

|
Цитата(troiden @ Dec 9 2012, 23:19)  Для начала опрелитесь что вы хотите получить от Ethernet. Формат обмена с ПК, требуемые скорости передачи - это минимум. Без этого сделать выбор реализации затруднительно. PHY модуль типа MII, позволяет работать на скоростях 10 и 100мбит/с. Мне скорость не важна, достаточно и 10. Главное чтобы происходила передача данных. Формат данных? Т.е. какие пакеты будут передаваться? Что проще, то пусть и будет. Если UDP,то UDP.
|
|
|
|
|
Dec 9 2012, 19:40
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Вообще предложу для пути: 1. Сгенерить проект EDK визардом, и включить туда TEMAC. Вместе с проектом создадутся приложения для тестирования периферии, в т.ч. TEMAC. из приложений можно сделать прием и отправление пакетов. Кстати, автосгенеренный код снабжен комментариями. 2. Использование библиотеки lwIP. (См. xapp1026). Более сложный путь, однако более стандартизированный. Там уже есть ARP, ICMP, UDP, TCP и др.
Если вы пойдете первым путем, то это фактически будет работа на MAC-уровне. Т.е. задаете себе MAC-адрес, и дальше придется вручную формировать заголовки UDP и ARP.
|
|
|
|
|
Dec 9 2012, 21:05
|
Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726

|
Цитата(troiden @ Dec 9 2012, 23:36)  В каком виде планируются данные с ПК? Просто поток байт или же какая-то сложная структура с заголовками, кадрами, кучей полей? Для первого случая проще будет вариант с Tri-Mode Ethernet MAC + логика, для второго может быть сподручней контроллер. Скорость имелась ввиду средняя. Одиночные пакеты или непрерывный высокоскоростной поток, который обрабатывается на лету. В идеале - работа со схемами в Simulink (таково задание). ПЛИС должен выполнять функции регулятора для схем созданных в симулинке. Если исходить из задания - будет поток данных с компьютера на протяжении какого-то времени (~10-20сек), и эти данные нужно сразу обрабатывать и отсылать результат назад. Данный проект был уже реализован с использованием RS232, теперь возникло желание перейти на Ethernet. Цитата(aabmail @ Dec 9 2012, 23:40)  Вообще предложу для пути: 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. Есть ли альтернативные варианты?
Сообщение отредактировал bush - Dec 9 2012, 21:06
|
|
|
|
|
Dec 9 2012, 22:53
|
Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726

|
Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite. При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic. Я так понимаю они отличаются только названиями, или нет?
|
|
|
|
|
Dec 10 2012, 08:30
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647

|
Цитата При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic. Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux Цитата Я так понимаю они отличаются только названиями, или нет? Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты  )
|
|
|
|
|
Dec 10 2012, 09:09
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056

|
Цитата(bush @ Dec 10 2012, 02:53)  Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite. Если не стремиться к высокой производительности, то XPS Ethernet Lite м.б. в чем-то и лучше. Там кажется, можно даже без прерываний обойтись
|
|
|
|
|
Dec 10 2012, 10:24
|
Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726

|
Цитата(xor.kruger @ Dec 10 2012, 12:30)  Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты  ) Т.е. не получится просто выбрать Generic и прописать ему нужные констрейнты? Еще пару вопросов вдогонку. Нужно ли подключать какую-то память для него, или он использует только ресурсы самой ПЛИС? Можно ли в BSB создать проект с Ethernet lite для spartan 3e starter kit, а потом переписать под себя файл ограничений? Или там логика тоже будет меняться? Цитата(xor.kruger @ Dec 10 2012, 13:20)  Ну если решились или решили использовать Tri-mode Ethernet MAC, то вот на эту тему статья. Правда там под версию EDK 10 но суть остается та же. Смотрел раньше уже... Но статья под виртекс и 1Гбит. Наверняка многое придется изменять под себя, а с моими знаниями это будет обречено на провал. xor.kruger, а с какой ПЛИС вы работали?
Сообщение отредактировал bush - Dec 10 2012, 10:25
|
|
|
|
|
Dec 10 2012, 10:42
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(bush @ Dec 9 2012, 23:04)  Есть плата на основе Spartan 3 со встроенным PHY модулем. Нужно посылать данные с компьютера на ПЛИС через Ethernet, там обрабатывать и получать обратно результат. Вообще то Вам для начала надо понять, что если делать так, как Вы написали, то половина ПЛИС будет занята только "получить и отправить...". Надо сделать МАС и контроллер. К нему - встроенный софт... Внешняя память будет нужна и для хранения-разборки пакетов. Так что почитайте, сколько ресурсов займет МикроБлэйз, МАС и т.д. А есть ли в этом смысл? Может дешевле поставить внешний контроллер с МАС и PHY, например Люминари или PIC? Или хотя бы контроллер ethernet с PHY, например от Микрел... А уж то, что это для начинающего будет быстрее в отладке и проще, так это точно...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 10 2012, 10:44
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647

|
Цитата а с моими знаниями это будет обречено на провал. В корне не правильная позиция! А как еще учится ? Нужно брать и пробовать, набивать шишки и снова пробовать  ) Цитата xor.kruger, а с какой ПЛИС вы работали? Там где юзался Ethernet это были чипы XC3SD1800A и XC3S500E Цитата Нужно ли подключать какую-то память для него, или он использует только ресурсы самой ПЛИС? В моем случае именно для Ethernet внешняя память не использовалась Цитата Т.е. не получится просто выбрать Generic и прописать ему нужные констрейнты? Скорее всего получиться, нуна пробовать, сейчас уже сходу не вспомню. Цитата а потом переписать под себя файл ограничений? Что вы подразумеваете под файлом ограничений ?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|