|
|
  |
TCP/IP и NIOS2, Возможно ли использование NicheStack без ОС под NIOS2??? |
|
|
|
Oct 11 2012, 05:42
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050

|
Здравствуйте, сейчас занимаюсь разработкой модуля, который имеет на борту 2 Ethernet 1Гбит/с / 100Мбит/с / 10Мбит/с(настраиваемый), шину PCI 64х битную, работающую на частоте 66 МГц, а так же 2а Link порта 4х....
Работать модуль будет так: принимаемые данные по 2м Ethernet, работающим по TCP/IP протоколу, и PCI через DMA кладутся в память DDR, я управляю направлением, сортировкой, анализом информации, получаемой по ним... Link порты используются на передачу информации...
Планировалось использование 2х DDR, одна для получаемых/передаваемых данных, а 2я под программу... в процессе разработки было принято решение оставить одну DDR для данных, а программу разместить во внутренней памяти Stratix 2(EP2S60F484)... Но объем памяти там небезграничен, с моим проектом мне удалось выделить около 120Кбайт внутренней памяти...
Так как я занимался в целом разработкой аппаратуры на контроллерах и их программированием, то для меня эта тема очень нова и пока не изучена, поэтому прошу вашего совета и помощи...
а вопросы следующие с реализацией TCP/IP протокола: 1. Сколько примерно будет занимать место программа, имеющая ОС MicroC и NicheStack, т.е. без учета моего кода? 2. Можно ли запустить NicheStack без ОС MicroC? 3. Насколько можно сжать по минимуму NicheStack, чтобы был только TCP/IP, и сколько примерно он будет весить? 4. Есть ли готовые библиотеки,реализующие TCP/IP под NIOS2, имеющие меньший размер, и работающие без ОС MicroC? 5. Может есть какие-нибудь другие решения, где не требуется вообще NIOS2, т.к. ставил его чисто для того, чтобы реализовать TCP/IP (я имею ввиду уже готовые решения)?
|
|
|
|
|
Oct 11 2012, 06:20
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050

|
Цитата(gosu-art @ Oct 11 2012, 10:06)  Здравствуйте! Хотелось бы поинтересоваться, вы решили свою проблему с компиляцией PCI корки? И не многовато ли для ниоса 2 Гб порта? да еще и с обработкой протокола? Я как то пытался реализовывать огрызок TCP/IP на НИОСЕ (СIII 50МHz) получилось около 1МБ. Хотя.. у меня там была внешняя SDR 32х(отсутствие берста => большая латентность) может быть из-за этого. Да, PCI кора сейчас компилится,почему не компилилась так и не выяснил... построил систему сначала на NIOS + PCI, компиляция прошла успешно, а затем навесил Ethernet и Link порт, все так же откомпилилось... времени было мало, поэтому не стал разбираться, почему так получилось... Насчет Nios2... Nios2 будет задействован только для переключения памятина устройства, т.е. весь обмен реализован через DMA, чтобы минимизировать используемое время проца... Причем насчет того, что 2 Ethernetа не потянет Nios2, я вообще не задумывался... я считал, что по-любому справится... вся система будет работать на 100МГц, память на 150 МГц, только кора PCI по стандарту максимум 66... Тогда еще 1 вопрос))) Были ли у кого разработки с 2мя Ethernet на 1 Гбит/с и с какими проблемами столкнулись???
|
|
|
|
|
Oct 11 2012, 06:51
|
Участник

Группа: Свой
Сообщений: 59
Регистрация: 9-06-05
Из: Киев
Пользователь №: 5 857

|
NicheStack без ОС MicroC : поищите на альтере Superloop Simple Socket Server. TCP/IP без ниоса: не встречал такого, и такое наверное без процессора сделать сложно. Насчёт двух портов Ethernet в одном ниосе, вроде где-то здесь такое обсуждалось. А какую скорость передачи по ethernet вы хотите получить?
|
|
|
|
|
Oct 11 2012, 07:17
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050

|
Цитата(ISK @ Oct 11 2012, 10:51)  NicheStack без ОС MicroC : поищите на альтере Superloop Simple Socket Server. TCP/IP без ниоса: не встречал такого, и такое наверное без процессора сделать сложно. Насчёт двух портов Ethernet в одном ниосе, вроде где-то здесь такое обсуждалось. А какую скорость передачи по ethernet вы хотите получить? Планировалось максимальную, т.е. 1Гбит/с.... но похоже я не добьсь такой скорости никак, используя стэк TCP/IP...
|
|
|
|
|
Oct 11 2012, 07:27
|
Участник

Группа: Свой
Сообщений: 59
Регистрация: 9-06-05
Из: Киев
Пользователь №: 5 857

|
Цитата(xxxmatrixxx @ Oct 11 2012, 10:17)  Планировалось максимальную, т.е. 1Гбит/с.... но похоже я не добьсь такой скорости никак, используя стэк .. У меня на 4-м стратиксе, со всеми оптимизациями, только передача данных, получилось выжать максимум 180 Мбит/с (TCP/IP). Для скоростей до гигабита посмотрите в сторону UDP. Там можно сделать всё аппаратно и без ниоса. Есть опять же на альтере такой проект: udp offload example.
|
|
|
|
|
Oct 11 2012, 15:13
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(xxxmatrixxx @ Oct 11 2012, 08:42)  ... 4. Есть ли готовые библиотеки,реализующие TCP/IP под NIOS2, имеющие меньший размер, и работающие без ОС MicroC? ... Возможно, для Вас будет полезной тема "Самый быстрый и самый маленький TCP-стек., По просьбам трудящихся.".
|
|
|
|
|
Oct 12 2012, 05:25
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050

|
Выяснил у начальства, что требуется в любом виде реализовать TCP/IP, а на какой скорости он будет работать - это уже на практике будем выяснять...
поэтому актуальными остаются следующие вопросы,на которые я не смог получить ответы: Самый важный пока для меня вопрос 1. Сколько примерно будет занимать место программа, имеющая ОС MicroC и NicheStack, т.е. без учета моего кода? 2. Можно ли запустить NicheStack без ОС MicroC? 3. Насколько можно сжать по минимуму NicheStack, чтобы был только TCP/IP, и сколько примерно он будет весить?
4. Есть ли готовые библиотеки,реализующие TCP/IP под NIOS2, имеющие меньший размер, и работающие без ОС MicroC? 5. Может есть какие-нибудь другие решения, где не требуется вообще NIOS2, т.к. ставил его чисто для того, чтобы реализовать TCP/IP (я имею ввиду уже готовые решения)?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|