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

 
 
> Ethernet + Stratix II + Nios
Alexey_Rostov
сообщение Feb 21 2014, 14:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Здравствуйте. Подскажите пожалуйста как увеличить скорость Ethernet по TCP/IP протоколу.

Задача следующая: Есть пример Simple socket server, devboard Stratix II. Использую пример Standart.
SSS изменил след образом: убрал все task в RTOS, кроме инициализации. После инициализации добавил функцию
Код
void sss_send_menu(SSSConn* conn)
{


  alt_u8  *a = TESTSTREAMTOAVALONMM_0_BASE; /* указатель на память с данными */
  alt_u8 strb; // сигнал на отправку пакета

while(1)
{
    IOWR_ALTERA_AVALON_PIO_DATA(SEND_PACKET_BASE, 0); // сигнал об отправке пакета, если единица
    strb = IORD_ALTERA_AVALON_PIO_DATA(STRB_PULSE_BASE); // считываю сигнал на отправку пакета, если 1




if(strb != 65)
{
    send(conn->fd, a, 1452, 0); // отправляю 1452 байта
}


IOWR_ALTERA_AVALON_PIO_DATA(SEND_PACKET_BASE, 1);// формирую сигнал для обнуления strb

}
  return;
}


Записываю в память в НИосе данные, после записи отправляю на компьютер. Данные следуют импульсами по 1024 байта каждые 850 мкс. То есть скорость достигается около 10 Мбит/с.
Ethernet на плате 10/100 Мбит. Тем не менее принимается только один пакет (импульс данных). Другие пакеты иногда можно наблюдать не по TCP протоколу, а по FMTP, но не 1452 байта. а разбитые ппакеты по 509 байт. Другими словами все импульсы подряд выслать не получается.

Что может влиять на скорость передачи данных? Есть предположение, что RTOS ограничивает быстродействие stack'а, выделяя на передачу пакета определенное время.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Golikov A.
сообщение Feb 21 2014, 18:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



размер буферов
размер окна ТСР
так же сетевое оборудование может от себя пакеты резать

также надо проверить кто считает контрольные суммы, это долгая задача
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 24 2014, 06:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(farbius @ Feb 21 2014, 18:10) *
Подскажите пожалуйста как увеличить скорость Ethernet по TCP/IP протоколу.

А какую скорость в итоге хотите, какими пакетами, весь ли TCP/IP протокол нужен?


Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Feb 26 2014, 07:06
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(Serhiy_UA @ Feb 24 2014, 09:42) *
А какую скорость в итоге хотите, какими пакетами, весь ли TCP/IP протокол нужен?


Ethernet рассчитан на 100/10 Мбит/с. Пока получил только 3,5 Мбит/c. Необходимо догнать хотя бы до 20-30 Мбит/с. При попытке увеличить скорость, некоторые пакеты просто теряются (последовательно передаю четыре пакета, и сниффером контролирую содержимое принятых пакетов).

Цитата(Golikov A. @ Feb 21 2014, 21:21) *
размер буферов
размер окна ТСР
так же сетевое оборудование может от себя пакеты резать

также надо проверить кто считает контрольные суммы, это долгая задача

Размер буфера оставил фиксированный 1458 байт, для предотвращения нарезки пакетов сервером (stratix II). Размер окна пока не варьировал. Хочу отказаться от RTOS но пока не понимаю как (мне кажется причина медленной скорости в RTOS???). Может подскажите можно ли переделать Simple socket server под UDP? как один из вариантов повышения скорости?

Цитата(Serhiy_UA @ Feb 24 2014, 09:42) *
весь ли TCP/IP протокол нужен?

Поясните пожалуйста, что значит весь протокол? Я рассматривал в качестве начальной точки сокет Беркли, в SSS он и реализован. Если я правильно понял как то можно уменьшить структуру TCP/IP протокола? Пока на очереди идея только с UDP, сам stack в SSS обрезал до минимума.
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Feb 26 2014, 08:21
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



На осцилограф вывел два сигнала: сигнал о наличии пакета (голубым цветом по rising edge) и сигнал о том что пакет отправлен (желтым цветом)
Для 3.5 Мбит/с
Прикрепленное изображение


Для 7 Мбит/c
Прикрепленное изображение


На 7 Мбит/с происходит пропуск пакетов
Go to the top of the page
 
+Quote Post

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

 


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


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