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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Реализация Ethernet на Spartan 3
bush
сообщение Dec 9 2012, 19:04
Сообщение #1





Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
troiden
сообщение Dec 9 2012, 19:19
Сообщение #2


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

Группа: Свой
Сообщений: 108
Регистрация: 19-02-09
Из: Москва
Пользователь №: 45 069



Для начала опрелитесь что вы хотите получить от Ethernet. Формат обмена с ПК, требуемые скорости передачи - это минимум. Без этого сделать выбор реализации затруднительно.
Go to the top of the page
 
+Quote Post
bush
сообщение Dec 9 2012, 19:25
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726



Цитата(troiden @ Dec 9 2012, 23:19) *
Для начала опрелитесь что вы хотите получить от Ethernet. Формат обмена с ПК, требуемые скорости передачи - это минимум. Без этого сделать выбор реализации затруднительно.

PHY модуль типа MII, позволяет работать на скоростях 10 и 100мбит/с. Мне скорость не важна, достаточно и 10. Главное чтобы происходила передача данных.
Формат данных? Т.е. какие пакеты будут передаваться? Что проще, то пусть и будет. Если UDP,то UDP.
Go to the top of the page
 
+Quote Post
troiden
сообщение Dec 9 2012, 19:36
Сообщение #4


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

Группа: Свой
Сообщений: 108
Регистрация: 19-02-09
Из: Москва
Пользователь №: 45 069



Формат - тип пакета и его содержимое. UDP будет проще с чисто железной реализации, но он не гарантирует доставку и очередность пакетов в общем случае.
В каком виде планируются данные с ПК? Просто поток байт или же какая-то сложная структура с заголовками, кадрами, кучей полей? Для первого случая проще будет вариант с Tri-Mode Ethernet MAC + логика, для второго может быть сподручней контроллер.
Скорость имелась ввиду средняя. Одиночные пакеты или непрерывный высокоскоростной поток, который обрабатывается на лету.
Go to the top of the page
 
+Quote Post
aabmail
сообщение Dec 9 2012, 19:40
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Вообще предложу для пути:
1. Сгенерить проект EDK визардом, и включить туда TEMAC. Вместе с проектом создадутся приложения для тестирования периферии, в т.ч. TEMAC. из приложений можно сделать прием и отправление пакетов. Кстати, автосгенеренный код снабжен комментариями.
2. Использование библиотеки lwIP. (См. xapp1026). Более сложный путь, однако более стандартизированный. Там уже есть ARP, ICMP, UDP, TCP и др.

Если вы пойдете первым путем, то это фактически будет работа на MAC-уровне. Т.е. задаете себе MAC-адрес, и дальше придется вручную формировать заголовки UDP и ARP.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Dec 9 2012, 19:41
Сообщение #6


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684




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.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
bush
сообщение Dec 9 2012, 21:05
Сообщение #7





Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
bush
сообщение Dec 9 2012, 22:53
Сообщение #8





Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726



Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite.
При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic. Я так понимаю они отличаются только названиями, или нет?
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 10 2012, 08:30
Сообщение #9


Местный
***

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



Цитата
При этом можно выбрать три варианта PHY модуля: Broadcom, Intel и Generic.

Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux

Цитата
Я так понимаю они отличаются только названиями, или нет?

Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты sm.gif)
Go to the top of the page
 
+Quote Post
aabmail
сообщение Dec 10 2012, 09:09
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Цитата(bush @ Dec 10 2012, 02:53) *
Единственное ядро Ethernet, которое можно сгенерировать в BSB для кастомной платы на основе XC3S400 - XPS Ethernet Lite.


Если не стремиться к высокой производительности, то XPS Ethernet Lite м.б. в чем-то и лучше. Там кажется, можно даже без прерываний обойтись
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 10 2012, 09:20
Сообщение #11


Местный
***

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



Ну если решились или решили использовать Tri-mode Ethernet MAC, то вот на эту тему статья. Правда там под версию EDK 10 но суть остается та же.
Go to the top of the page
 
+Quote Post
bush
сообщение Dec 10 2012, 10:24
Сообщение #12





Группа: Новичок
Сообщений: 6
Регистрация: 5-12-12
Пользователь №: 74 726



Цитата(xor.kruger @ Dec 10 2012, 12:30) *
Реально с Microblaze и EthernetLite работал на ура с фитерами SMSC и ТI - все отлично работало как с использованием Standalone-приложений так и с ОС GNU/Linux


Не совсем, в основном отличаются особенностью конфигурирования и тонкой настройкой. В общем нуна смотреть даташиты sm.gif)

Т.е. не получится просто выбрать 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
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 10 2012, 10:42
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 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
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 10 2012, 10:44
Сообщение #14


Местный
***

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



Цитата
а с моими знаниями это будет обречено на провал.

В корне не правильная позиция! А как еще учится ? Нужно брать и пробовать, набивать шишки и снова пробовать sm.gif)
Цитата
xor.kruger, а с какой ПЛИС вы работали?

Там где юзался Ethernet это были чипы XC3SD1800A и XC3S500E
Цитата
Нужно ли подключать какую-то память для него, или он использует только ресурсы самой ПЛИС?

В моем случае именно для Ethernet внешняя память не использовалась
Цитата
Т.е. не получится просто выбрать Generic и прописать ему нужные констрейнты?

Скорее всего получиться, нуна пробовать, сейчас уже сходу не вспомню.
Цитата
а потом переписать под себя файл ограничений?

Что вы подразумеваете под файлом ограничений ?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Dec 10 2012, 11:16
Сообщение #15


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (iosifk @ Dec 10 2012, 13:42) *
А есть ли в этом смысл? Может дешевле поставить внешний контроллер с МАС и PHY, например Люминари или PIC?
Или хотя бы контроллер ethernet с PHY, например от Микрел...
А уж то, что это для начинающего будет быстрее в отладке и проще, так это точно...

..посоветуйте контроллер с PHY для 1G ?
так чтобы новичёк смог на основе какой отладочной платы поднять сеть у себя в устройстве.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:53
Рейтинг@Mail.ru


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