|
(Nios II + Ethernet) на DK-NIOS-2S60N, Кто уже покорил LAN91C111 ? |
|
|
|
Jan 9 2008, 12:22
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Всем привет! Задача, понятно, не новая. Нужно непрерывно передавать пакеты UDP напрямую из одной точки А в точку В через LAN91C111, который входит в DK-NIOS. У меня, конкретно, DK-NIOS-2S60N (точка А), а компьютер (точка В) на расстоянии не дальше 50 метров. Склоняюсь писать свой soft для LAN91C111 на основе hard-примера, из серии NiosII_standard, т.е. не применяя uC/OS-II и NicheStack. Отмечу только, что как пример веб-сервера, DK-NIOS работает нормально, но разобраться в пакете программ uC/OS-II и NicheStack и применить их под свою задачу не удалось. По этому стоя у начала этой дороги, хотел бы спросить, что ждет там впереди, у тех, кто уже по ней возвращается (оборот мною заимствован). То есть, хотел бы знать, как эти и подобные проблемы решали другие. Спасибо за ответы.
|
|
|
|
|
 |
Ответов
|
Jan 10 2008, 00:20
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Волощенко @ Jan 9 2008, 21:22)  Всем привет! Задача, понятно, не новая. Нужно непрерывно передавать пакеты UDP напрямую из одной точки А в точку В через LAN91C111, который входит в DK-NIOS. У меня, конкретно, DK-NIOS-2S60N (точка А), а компьютер (точка В) на расстоянии не дальше 50 метров. Склоняюсь писать свой soft для LAN91C111 на основе hard-примера, из серии NiosII_standard, т.е. не применяя uC/OS-II и NicheStack. Отмечу только, что как пример веб-сервера, DK-NIOS работает нормально, но разобраться в пакете программ uC/OS-II и NicheStack и применить их под свою задачу не удалось. По этому стоя у начала этой дороги, хотел бы спросить, что ждет там впереди, у тех, кто уже по ней возвращается (оборот мною заимствован). То есть, хотел бы знать, как эти и подобные проблемы решали другие. Спасибо за ответы. Ну если с uC/OS-II и NicheStack у вас всё плохо было, то значит и с ecos(rtos +tcp stack любой другой) тоже будет плохо Если же у вас точки А и В не будут менять "своё положение" - IP адреса, подсеть и т.д., то всё хорошо в этом случае стек думаю и не нужен будет. Но такое решение - "решение для одного дня"
--------------------
Cogito ergo sum
|
|
|
|
|
Jan 10 2008, 07:30
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
To Postoroniy_V Спасибо за ответ. Ethernet-100 нужен однонаправленный, непрерывный с максимальной скоростью, в обратном же направлении он используется, но редко. До этого была плата с PCI-интерфейсом, а теперь нужно вынести все аналоговые узлы из системного блока, уж очень много там помех: АЦП на 20МГц и 8 разрядов уже не хватает, требуется АЦП 40МГц на 14 разрядов. Да и аппаратной ЦОС хватит на долго. В проблеме Ethernet-100 смущает то, что, в тексте основного Verilog-модуля, в данном случае NiosII_stratixII_2s60_RoHS_standard.v, обнаруживается следующее. У контроллера LAN91C111 есть достаточно много входов управления (см. например, стр.2-13 в mnl_nios2_board_stratixII_2s60_rohs.pdf), но в списке входов-выходов основного модуля часть этих управляющих входов не значится, они как бы висят в воздухе, но управлять то ими все равно надо, если софт писать самому. В то же время готовые тестовые программы «Web-Server» и «Simple Socket Server» на данном DK-NIOS успешно проходят, но это при работе в uC/OS-II. Думаю, LAN91C111 применяется во многих DK-NIOS, да и аналогичная задача с точками А и В уже наверно встречалась. Как и каким способом ее решили? Только ли с помощью OS и стеков?
|
|
|
|
|
Jan 16 2008, 04:32
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Волощенко @ Jan 10 2008, 16:30)  To Postoroniy_V Спасибо за ответ. Ethernet-100 нужен однонаправленный, непрерывный с максимальной скоростью, в обратном же направлении он используется, но редко. До этого была плата с PCI-интерфейсом, а теперь нужно вынести все аналоговые узлы из системного блока, уж очень много там помех: АЦП на 20МГц и 8 разрядов уже не хватает, требуется АЦП 40МГц на 14 разрядов. Да и аппаратной ЦОС хватит на долго. В проблеме Ethernet-100 смущает то, что, в тексте основного Verilog-модуля, в данном случае NiosII_stratixII_2s60_RoHS_standard.v, обнаруживается следующее. У контроллера LAN91C111 есть достаточно много входов управления (см. например, стр.2-13 в mnl_nios2_board_stratixII_2s60_rohs.pdf), но в списке входов-выходов основного модуля часть этих управляющих входов не значится, они как бы висят в воздухе, но управлять то ими все равно надо, если софт писать самому. В то же время готовые тестовые программы «Web-Server» и «Simple Socket Server» на данном DK-NIOS успешно проходят, но это при работе в uC/OS-II. Думаю, LAN91C111 применяется во многих DK-NIOS, да и аналогичная задача с точками А и В уже наверно встречалась. Как и каким способом ее решили? Только ли с помощью OS и стеков? Ну хорошо что у Вас разрешилось с lan91c111  os и стеки дают "приятную гибкость"  , но мне не ясно почему ос и стек помешает отсылать raw пакеты, и тем более не ясно кто и что мешает использовать dma в ниосе? Тоесть, если нет знакомства с осью и стеками и дровами для езера и т.д., я уже писал Вам что ваше решение - "решение для одного дня". И раз ещё проблема со сроками, то делайте безо всяких осей и стеков. Как бы там ни было, Вам решать. Удачи в реализации!
--------------------
Cogito ergo sum
|
|
|
|
|
Jan 16 2008, 06:48
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Цитата(Postoroniy_V @ Jan 16 2008, 08:32)  ... Как бы там ни было, Вам решать.  Да, режил делать без осей и стеков, сейчас этим и занимаюсь. Цитата(Postoroniy_V @ Jan 16 2008, 08:32)  ... и тем более не ясно кто и что мешает использовать dma в ниосе? Не совсем ясна идея применения здесь dma. Цитата(Postoroniy_V @ Jan 16 2008, 08:32)  ... но мне не ясно почему ос и стек помешает отсылать raw пакеты ... Здесь пока колебания между raw и udp. Параллельно со мной работает программист на Delphi, пока он связывает напрямую два компа, один из которых потом заменит DK-NIOS. До этого он под виндой работал с raw, а сейчас перешел на udp. Обнаружил, что в последнем случае скорость стала выше раз в пять, т.е. сейчас для udp около 75Мбит для Eth-100, даже через LAN. Что-то я уперся в проблему структурирования иерархического проекта на Си в среде Nios II 7.2 IDE. В других средах (IAR и Keil) для МК это проблемы не вызывало, а здесь головная боль. Т.е. есть Си - main и куча подчиненных *.c, которые записаны в main через #include. Далее их нужно подключить-определить в проекте еще и через IDE, и здесь все начинается. Хелры что-то не помогают. Особенно достают глобальные переменные, которые я хочу описать в отдельном файле. Кто-то сталкивался?
|
|
|
|
|
Jan 16 2008, 07:17
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Волощенко @ Jan 16 2008, 15:48)  Да, режил делать без осей и стеков, сейчас этим и занимаюсь.
Не совсем ясна идея применения здесь dma.
Здесь пока колебания между raw и udp. Параллельно со мной работает программист на Delphi, пока он связывает напрямую два компа, один из которых потом заменит DK-NIOS. До этого он под виндой работал с raw, а сейчас перешел на udp. Обнаружил, что в последнем случае скорость стала выше раз в пять, т.е. сейчас для udp около 75Мбит для Eth-100, даже через LAN.
Что-то я уперся в проблему структурирования иерархического проекта на Си в среде Nios II 7.2 IDE. В других средах (IAR и Keil) для МК это проблемы не вызывало, а здесь головная боль. Т.е. есть Си - main и куча подчиненных *.c, которые записаны в main через #include. Далее их нужно подключить-определить в проекте еще и через IDE, и здесь все начинается. Хелры что-то не помогают. Особенно достают глобальные переменные, которые я хочу описать в отдельном файле. Кто-то сталкивался? 1)идея юзать ДМА в том чтобы передачей сырых пакетов из ОЗУ в ЛАН91Ц111 занимался не проц. 2) есть майн, хочется ещё 1 модуль в другом файле определить, создаём файл в ИДЕ, или если он есть переписываем в директорию и жмем рефреш, после это маке файл изменится. затем создает хедер файл с функциями те что определены в этом новом модуле....всё вроде просто и ясно и ОЧЕНЬ очевидно я честно сказать даже не ожидал что это такая проблема - добавить новых модулей и обьявление новых глобальныз переменных
--------------------
Cogito ergo sum
|
|
|
|
Сообщений в этой теме
Волощенко (Nios II + Ethernet) на DK-NIOS-2S60N Jan 9 2008, 12:22  Aprox Цитата(Волощенко @ Jan 10 2008, 10:30) To... Jan 10 2008, 16:23   Волощенко To Aprox.
Спасибо за ответ и свои соображения. Мы... Jan 11 2008, 06:42    Aprox Цитата(Волощенко @ Jan 11 2008, 09:42) По... Jan 11 2008, 12:56   -=Vitaly=- Цитата(Aprox @ Jan 10 2008, 18:23) Зачем ... Jan 11 2008, 08:19      Postoroniy_V Цитата(Волощенко @ Mar 21 2008, 20:12) Си... Mar 28 2008, 04:10       Волощенко Цитата(Postoroniy_V @ Mar 28 2008, 08:10)... Mar 28 2008, 08:23        Postoroniy_V Цитата(Волощенко @ Mar 28 2008, 17:23) Сп... Mar 30 2008, 23:48      Olegovich Цитата(Волощенко @ Mar 21 2008, 15:12) Си... Apr 2 2008, 08:02       Волощенко Цитата(Olegovich @ Apr 2 2008, 11:02) по ... Apr 2 2008, 10:16        Postoroniy_V Цитата(Волощенко @ Apr 2 2008, 19:16) ...... Apr 2 2008, 23:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|