Перейти к содержанию
    

Вопросы по передаче информации по Ethernet на компьютер

Just now, Rst7 said:

Три же. Или 4 - если по модели OSI.

Что, в общем-то, и надо при решении любой задачи.

IP и TCP не уровни стека, а протоколы.
Современные взгляды на разработку не любят слова "задача", смотреть требуется всегда шире . 

9 minutes ago, Rst7 said:

Главное, уважаемый, что Вы у нас - великий несамопальщик.

Ну а чем вы занимаетесь как не изобретением велосипеда? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, AlexandrY said:

IP и TCP не уровни стека, а протоколы.

О, какие фантазии. Как раз IP и TCP - это как раз составляющие Protocol Stack, соответствующие уровням Network и Transport.

12 minutes ago, AlexandrY said:

Ну а чем вы занимаетесь как не изобретением велосипеда? 

Это называется Cross-layer optimization. Доступно только профессионалам, которые не используют lwip.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/10/2020 at 12:50 PM, Rst7 said:

8 каналов по 32 бита с частотой дискретизации 192кГц. Поток чуть меньше, чем у Вас (примерно 50Мбит/с чистых данных, брутто - повыше, чуть больше 60). Причем, в обе стороны. Сделано на LPC4078 со стомегабитным подключением. Несколько таких плат включено в тупой дешевый 1G свич, и уже он гигабитным линком включен в комп.

Хост - Windows, без особых напрягов ест все эти данные с характерными доп. буферами на 0.5мс. 

Спасибо за ответ, за подробную информацию о Вашем утройстве.

Прочитав все ответы, я понял, что мне вначале надо самостоятельно разобраться хотя бы в самых азах этого вопроса.

Поэтому так долго не отвечал.  Извините.

О Вашей плате.

Правильно ли я понял, что у Вас на плате стоял контроллер LPC4078 с внутренним Ethernet и внешним  PHY на 100Мбит. 

И каждая такая плата обеспечивала поток чистых данных 50 Мбит/с.

Протокол передачи у Вас был ТСР?

Внешнюю память для организации буфера Вы применяли?

Последнее Ваше предложение я не совсем понял.

Объясните пожалуйста, что такое "характерные доп. буфера на 0,5мс" и где они находятся.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

42 minutes ago, Nikkolaj said:

Правильно ли я понял, что у Вас на плате стоял контроллер LPC4078 с внутренним Ethernet и внешним  PHY на 100Мбит. 

И каждая такая плата обеспечивала поток чистых данных 50 Мбит/с.

 Да. Именно так.

42 minutes ago, Nikkolaj said:

Протокол передачи у Вас был ТСР?

Изначально был TCP, потом перешел на UDP, потому что понадобился мультикаст. В общем это непринципиально.

42 minutes ago, Nikkolaj said:

Внешнюю память для организации буфера Вы применяли?

Нет. Буфер там у меня размером 32пакета*8семплов_в_пакете*8каналов_в_семпле*32бита=4килобайта. Таких буферов два, потому что в обе стороны.

42 minutes ago, Nikkolaj said:

Объясните пожалуйста, что такое "характерные доп. буфера на 0,5мс" и где они находятся.

Характерные возможные задержки в Windows, если у Вас более-менее вменяемый компьютер по производительности и сделаны нужные оптимизации, - не более 0.5мс.

Оценить эти задержки в конкретно Вашей системе можно при помощи вот этой софтины - https://www.resplendence.com/latencymon

Вот мои буфера в самом сложном случае (при частоте дискретизации 192кГц) обеспечивают буферизацию на время порядка 1.3мс, это с приличным запасом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рассматриваю вариант применения внешнего контроллера Ethernet, пока остановился на W5300.

Есть по нему пару вопросов.

1. Можно ли в нём организовать "конвеерную" загрузку данных?

   Например, выделить на ТХ, на 1 SOCKET,  64 KBytes внутренней памяти данных.

   Загрузить половину этой памяти и дать команду на передачу. Пока идёт передача, загрузить вторую половину памяти,

   и когда передача первой половины закончится, включить передачу второй половины.

   Или аналогично сделать с несколькими сокетами, пока идёт передача с одного сокета, загружать данные в другой сокет.

   Есть ли в W5300 возможность такой работы?

2. Какую максимальную скорость передачи можно организовать на W5300?

    На сайте WIZnet приводят значение Network Performance  = Max 80Mbps.

    У меня постоянный поток полезной информации 64Mbps. Запас не большой.

    80Mbps - это скорость передачи полезной информации, или общей?

   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 minutes ago, Nikkolaj said:

Рассматриваю вариант применения внешнего контроллера Ethernet, пока остановился на W5300.

Но зачем? Вы же не сможете ни шага влево, ни шага вправо ступить с ним. Да и обещанные 80М - скорее всего какой-то сферический конь в вакууме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще то я рассматриваю оба варианта,

и вариант 1: Контроллер с внешним контроллером Ethernet,

и вариант 2: Контроллер с внутренним  контроллером Ethernet + внешний PHY.

Решил вначале рассмотреть первый вариант, а затем второй.

Хорошо, давайте рассматривать оба эти варианта сразу, преимущества и недостатки каждого из них.

 

Основной параметр, который интересует, это конечно скорость передачи данных.

Какую скорость можно получить в каждом из этих вариантов?

Как Вы считаете?

 

Второй по важности параметр - простота реализации.

Вариант с внешним Ethernet  привлекает тем, что TCP/IP в нём реализован внутри аппаратно,

и мне надо будет  один раз задать нужный режим работы,

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

Такой вариант кажется более простым в реализации.

48 minutes ago, Rst7 said:

Вы же не сможете ни шага влево, ни шага вправо ступить с ним.

Объясните, пожалуйста, какие ограничения накладывает такой вариант.

Чем для меня это будет плохо.

 

Изменено пользователем Nikkolaj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, Nikkolaj said:

Какую скорость можно получить в каждом из этих вариантов?

В варианте с контроллером, у которого свой MAC внутри - легко получается wire speed. Т.е. чуть меньше чем, например, 100Мбит/с.

Со всякими визнетами сильно повезет, если получится перешагнуть 10М. Это Вам надо будет пробовать бодаться с его параллельной шиной, еще неизвестно, сколько там глюков, народ-то в основном его по последовательным портам гоняет (и то матерится). Вам сильно нужны эти эксперименты? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, Nikkolaj said:

Вообще то я рассматриваю оба варианта,

. . . 

и вариант 2: Контроллер с внутренним  контроллером Ethernet + внешний PHY.

NUCLEO_F429ZI (STM32F429ZI), EK-TM4C1294XL (TM4C1294NCPDT, Ti)  у второй платы чип трансивера "встроеный" в процессор. Не самое новое, вам для обзора.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы.
 

On 3/21/2020 at 10:52 PM, Rst7 said:

Со всякими визнетами сильно повезет, если получится перешагнуть 10М. Это Вам надо будет пробовать бодаться с его параллельной шиной, еще неизвестно, сколько там глюков, народ-то в основном его по последовательным портам гоняет (и то матерится). Вам сильно нужны эти эксперименты? 

Я и думал работать с ним только по параллельной шине 16 бит. 
Почитал на форуме информацию по W5300.
Информации очень много и проблем у людей очень много.
Понял что лучше мне с ним не связываться.

On 3/22/2020 at 1:40 AM, k155la3 said:

NUCLEO_F429ZI (STM32F429ZI), EK-TM4C1294XL (TM4C1294NCPDT, Ti)  у второй платы чип трансивера "встроеный" в процессор. Не самое новое, вам для обзора.

Спасибо за информацию, посмотрел и отладочную плату.

Сейчас думаю, может лучше передавать информацию не по Ethernet, а по USB2.0 HS.

Дальше планирутся задачи, где надо будет передавать информацию на скорости выше 100Мбит\с.
Правильно ли я понял, что
по Ethernet реальный потолок скорости - это до 100Мбит\с.
Выше можно передавать только с применением ПЛИС?

Посмотрел на форуме информацию по USB2.0 HS.
Понял, что тут, как и в варианте с Ethernet тоже есть два пути.
Либо отдельный контроллер USB2.0 HS.
Большинство используют микросхему CY7C68013A.
Читал на форуме, что на ней можно добиться скорости передачи информации 200-300Мбит\с.
Но сделать это совем не просто.


Либо быстрый контроллер с встроенным контроллером USB2.0 HS  +  внешний PHY.
Например семейство STM32H7.

Посоветуйте, какой вариант лучше выбрать.
Какую реальную скорость удасться добиться в этих вариантах?
Какой вариант будет проще в реализации?

 


  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, Nikkolaj said:

Посоветуйте, какой вариант лучше выбрать.

CY7C68013A удобно соединять с FPGA или простыми источниками/приемниками данных с параллельным интерфейсом - АЦП, ЦАП, видеосенсоры и т.п.

На микроконтроллере предпочтительнее иметь встроенный интерфейс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Quote

Правильно ли я понял, что
по Ethernet реальный потолок скорости - это до 100Мбит\с.

Может вам стоит взять два компа, на один поставить как минимум ос, с которой планируется работать и написать программы, которые обмениваются данными с нужной вам скоростью и джиттером? Сами оцените, как это все будет работать. А то вдруг окажется что когда пользователь запустил другую программу и у вас лаги, которые вас абсолютно не устроят.

 

А потом уже придет понимание, что надо делать с внешней частью. Вас могут выбить вовсе не скорость а джиттер в обмене.

Изменено пользователем Михась

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Nikkolaj said:

Либо быстрый контроллер с встроенным контроллером USB2.0 HS  +  внешний PHY.

Какой-нибудь i.MX RT1010...1020 Вам вполне подойдет. Там PHY под Hi Speed уже внутри есть.

Например, каких-нибудь 60 евро - и уже можете пробовать - https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1020-evaluation-kit:MIMXRT1020-EVK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Nikkolaj сказал:

Сейчас думаю, может лучше передавать информацию не по Ethernet, а по USB2.0 HS.

Дальше планирутся задачи, где надо будет передавать информацию на скорости выше 100Мбит\с.

Что-то мне подсказывает, что возможно будет проще найти процессор с гигабитным езернетом, чем потом воевать с USB драйвером. Езернет на компе делается элементарно, примеров уйма. Скорость будет зависеть от производительности процессора, там уже wire speed не все вытянут, особенно TCP/IP. Так что при выборе процессора обязательно ищите замеры скорости. Можно сделать гигабитный езернет и на ПЛИС, но порог вхождения в это всё повыше будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, sorok-odin said:

Что-то мне подсказывает, что возможно будет проще найти процессор с гигабитным езернетом

Можете подсказать, например какой процессор с гигабитным езернетом.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...