Jump to content

    

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

Just now, Rst7 said:

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

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

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

9 minutes ago, Rst7 said:

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

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

Share this post


Link to post
Share on other sites
6 minutes ago, AlexandrY said:

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

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

12 minutes ago, AlexandrY said:

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

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

Share this post


Link to post
Share on other sites
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мс" и где они находятся.

 

Share this post


Link to post
Share on other sites
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мс, это с приличным запасом.

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

   

Share this post


Link to post
Share on other sites
17 minutes ago, Nikkolaj said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

48 minutes ago, Rst7 said:

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

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

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

 

Edited by Nikkolaj

Share this post


Link to post
Share on other sites
10 hours ago, Nikkolaj said:

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

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

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

 

Share this post


Link to post
Share on other sites
13 hours ago, Nikkolaj said:

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

. . . 

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

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now