Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: О реализации Ethernet интерфейса
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Veg@
Планируется использовать ПЛИС (StratixII, LAN91C111, NiosII) для обработки видео с камеры (камера пока не выбрана, разрешение не определено) и передачи его в реальном времени по интерфейсу Ethernet. Насколько оправдано в данном случае применение MicroC-OS для реализации NicheStack TCP/IP (или других подобных механизмов) в плане скорости передачи данных в сравнении с реализацией этой же системы на основе каких-либо библиотек без использования ОС ? Или же есть какие-то другие варианты ? Спасибо.
faa
Как бы у Андрея Филиппова всё уже сделано.
Didro
Цитата(faa @ Dec 11 2009, 21:44) *
Как бы у Андрея Филиппова всё уже сделано.

Меня изначальный вопрос тоже интересует и пока я не вижу, чем (безусловно интересный) проект Филиппова может помочь ? Ответа на вопрос я там не нашел.
Вижу выложены прошивки на Верилоге (но ПЛИС - Xlilinx, не Altera, которая в вопросе была изначально), вижу модули все используются открытые.
Т.е. как вариант решения задачи - создание собственной цифровой видеокамеры - проект весьма интересны.

Но исходный вопрос все-таки был другой, по крайней мере как я его понял -

какие есть на данный момент доступные варианты реализации Ethernet интерфейса на плате с StratixII (NIOS II) и сетевым контроллером LAN91C111 ?

Одним из вариантов это использовать решения на базе ОС MicroC-OS - эти варианты мне тоже понятны.
Можно еще использовать Nios Legacy SDK, но он уже устарел и Altera не рекомендует использовать его для новых проектов. А все последующие варианты (LWIP, NicheStack) требуют использования MicroC-OS.
faa
ИМХО, вопрос звучал:
Цитата
Планируется использовать ПЛИС (StratixII, LAN91C111, NiosII) для обработки видео с камеры (камера пока не выбрана, разрешение не определено) и передачи его в реальном времени по интерфейсу Ethernet.

LAN91C11 - это, если склероз не изменяет, и логика (MAC) и физика (PHY) в одном флаконе. И шина у него вполне EBI. Может NIOS и не надо громоздить?

ЗЫ: Насчет verilog-а - HDL, он и в африке HDL, - что для альтеры, что для хилых. Если не пользовать примитивов уж на совсем низком уровне.
Veg@
Цитата
Насчет verilog-а - HDL, он и в африке HDL, - что для альтеры, что для хилых. Если не пользовать примитивов уж на совсем низком уровне.

Я думаю, это уже совсем "низко" для знакомства с работой Ethernet-контроллера. Есть ли какие-либо исходники и библиотеки для реализации Ethernet интерфейса без ОС под Nios ?
P.S. Читая темы форума, я понял, что применение ОС дает существенное снижение скорости передачи. Или же это связано с характеристиками самого контроллера ?
vadimuzzz
Цитата(Veg@ @ Dec 12 2009, 02:16) *
Читая темы форума, я понял, что применение ОС дает существенное снижение скорости передачи. Или же это связано с характеристиками самого контроллера ?

само по себе применение ОС не ведет к снижению скорости передачи, можно лишь говорить о конкретной реализации. ниос сам по себе, да еще на стратиксе штука очень гибкая. во всяком случае загрузить 100-Мбит канал может легко. выбор в пользу ОС нужно делать по другим критериям: нужны ли в проекте другие функции, которые она предоставляет, например, многопоточное окружение? нужен ли полновесный tcp/ip? если нет - то можно написать свой драйвер и огрызок tcp/ip, благо все исходники есть в наличии. если нужна ОСь, то их под ниос есть несколько http://nioswiki.com/OperatingSystems. в пользу готовой ОСи выбор м.б. сделан, если захотите использовать готовую веб-камеру, для большинства из них есть готовые драйверы.
Serhiy_UA
Цитата(Veg@ @ Dec 11 2009, 23:16) *
...Есть ли какие-либо исходники и библиотеки для реализации Ethernet интерфейса без ОС под Nios ?

Выполнил Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N. Использовал NiosII, драйвера писал свои на основе примеров, которых много.
TCP/IP усеченный: ARP, RARP, ICMP (для ping), UDP. Была задача передавать без подтверждения на расстояние до 50 м. В итоге скорость до 80 Мбит/с, пока больше не надо. Вычисление контрольной суммы выполнил аппаратно, так как программно это занимало много времени. В целом система вышла аппаратная, а NiosII в ней небольшая часть, в основном для Ethernet-100 и управления, которое тоже построено на применении UDP.
Думаю, использование ОС универсально, тем более, что есть примеры с уже готовым и полным TCP/IP, но там много разбираться в чужих кодах, а нужно было как можно быстрее получить результат для конкретной задачи.
Veg@
Цитата
драйвера писал свои на основе примеров, которых много.

Все примеры, которые я нашел, выдают много ошибок при компиляции или требуют дополнительных библиотек. Приведите плз несколько ссылок на готовые работающие примеры, если вы ими располагаете.
Veg@
Вот несколько ссылок на эти примеры :
__1
__2
__3
Serhiy_UA
Цитата(Veg@ @ Dec 14 2009, 17:19) *
Приведите плз несколько ссылок на готовые работающие примеры

У Вас все уже есть, это superloop_1_1.zip, что был выложен Вами в следующем посте.
Там в superloop_1_1.zip\superloop_1_1\altera_avalon_lan91c111\HAL\ все, что нужно.

Основное - вот эти файлы, коды которых надо переделать "под себя", что я и сделал:
HAL\src\iniche\smsc91x.c
HAL\src\iniche\smsc_mem.c
HAL\src\iniche\smsc_phy.c


Другие примеры работают аналогично, но эти коды как бы проще.
iosifk
Цитата(Veg@ @ Dec 11 2009, 20:41) *
... Или же есть какие-то другие варианты ? Спасибо.

А если посмотреть стартовый набор на bf537?
Он вроде как специально под это и делался...
Serhiy_UA
Цитата(iosifk @ Dec 15 2009, 10:44) *
А если посмотреть стартовый набор на bf537?


Кстати, коды для этого набора были выложены здесь:
http://electronix.ru/forum/index.php?showt...mp;hl=lan91c111
iosifk
Цитата(Serhiy_UA @ Dec 15 2009, 10:29) *
Кстати, коды для этого набора были выложены здесь:
http://electronix.ru/forum/index.php?showt...mp;hl=lan91c111

Да ведь для 537 никакой Lan91... и не нужен. Там на борту есть МАС. Снаружи только трансивер и трансформатор...
Veg@
Цитата
Основное - вот эти файлы, коды которых надо переделать "под себя", что я и сделал:
HAL\src\iniche\smsc91x.c
HAL\src\iniche\smsc_mem.c
HAL\src\iniche\smsc_phy.c

Спасибо, буду пробовать.
Veg@
Пропатчил необходимые директории (Nios II IDE 9.0) для использования SuperLoop и, в частности, вышеперечисленных трех файлов. При компиляции пустого проекта со включенным в него файлом altera_avalon_lan91c111.h Nios II IDE выдает среди прочих ошибку :
Код
/cygdrive/d/altera/90/ip/altera/sopc_builder_ip/altera_avalon_lan91c111/HAL/inc/iniche/altera_avalon_lan91c111_iniche.h alt_iniche_dev.h: No such file or directory

Данный файл находится в папке ...\nios2eds\components\altera_iniche\HAL\inc\. Почему IDE его не находит ? Может быть нужно вручную указать путь к нему (напр., в свойствах проекта - хотя у меня не получилось) ? Можно вручную скопировать этот файл в требуемую папку, но он также включает файлы, которые тоже нужно копировать вручную, что неприемлемо.
Didro
Цитата(Veg@ @ Dec 18 2009, 20:38) *
Данный файл находится в папке ...\nios2eds\components\altera_iniche\HAL\inc\. Почему IDE его не находит ?

Я тоже столкнулся с подобными проблемами, и вообщем-то мы не одиноки:
Цитата
>I can not find the header-files ipport.h, alt_iniche_dev.h and tcpport.h. What is wrong?
...
I had tried too to compile this example.
I think NIOS II IDE is not the environnement where this example is designed (a lot of patches, deep modifications, relative path, risky commands ..... that makes me crazy :-) ).
Да и в целом как-то не очень жалуют этот superloop - возможно стоит посмотреть в сторону lwIP (как, например, советуют тут) ?

Хотелось бы услышать ответ от Serhiy_UA, который, как я понял, работал с superloop!

Спасибо
Serhiy_UA
К Didro

Superloop я не использовал.
Советую брать фрагменты файлов из HAL.
Начните с освоения функции s91_phy_init(), что в smsc_phy.c. Она применяется почти без изменений. Потом s91_readphy() и s91_writephy(), немного изменяется. Затем надо проинициализировать и добиться обращения к LAN91C111, это уже функции из файла smsc91x.c и т.д..
Это если идти моим путем, то есть писать свое, перерабатывая HAL. Хотя я вижу, Вы намерены делать иначе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.