AlexandrY 3 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба Just now, Rst7 said: Три же. Или 4 - если по модели OSI. Что, в общем-то, и надо при решении любой задачи. IP и TCP не уровни стека, а протоколы. Современные взгляды на разработку не любят слова "задача", смотреть требуется всегда шире . 9 minutes ago, Rst7 said: Главное, уважаемый, что Вы у нас - великий несамопальщик. Ну а чем вы занимаетесь как не изобретением велосипеда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба 6 minutes ago, AlexandrY said: IP и TCP не уровни стека, а протоколы. О, какие фантазии. Как раз IP и TCP - это как раз составляющие Protocol Stack, соответствующие уровням Network и Transport. 12 minutes ago, AlexandrY said: Ну а чем вы занимаетесь как не изобретением велосипеда? Это называется Cross-layer optimization. Доступно только профессионалам, которые не используют lwip. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nikkolaj 0 16 марта, 2020 Опубликовано 16 марта, 2020 · Жалоба 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мс" и где они находятся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 16 марта, 2020 Опубликовано 16 марта, 2020 · Жалоба 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мс, это с приличным запасом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nikkolaj 0 21 марта, 2020 Опубликовано 21 марта, 2020 · Жалоба Рассматриваю вариант применения внешнего контроллера Ethernet, пока остановился на W5300. Есть по нему пару вопросов. 1. Можно ли в нём организовать "конвеерную" загрузку данных? Например, выделить на ТХ, на 1 SOCKET, 64 KBytes внутренней памяти данных. Загрузить половину этой памяти и дать команду на передачу. Пока идёт передача, загрузить вторую половину памяти, и когда передача первой половины закончится, включить передачу второй половины. Или аналогично сделать с несколькими сокетами, пока идёт передача с одного сокета, загружать данные в другой сокет. Есть ли в W5300 возможность такой работы? 2. Какую максимальную скорость передачи можно организовать на W5300? На сайте WIZnet приводят значение Network Performance = Max 80Mbps. У меня постоянный поток полезной информации 64Mbps. Запас не большой. 80Mbps - это скорость передачи полезной информации, или общей? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 21 марта, 2020 Опубликовано 21 марта, 2020 · Жалоба 17 minutes ago, Nikkolaj said: Рассматриваю вариант применения внешнего контроллера Ethernet, пока остановился на W5300. Но зачем? Вы же не сможете ни шага влево, ни шага вправо ступить с ним. Да и обещанные 80М - скорее всего какой-то сферический конь в вакууме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nikkolaj 0 21 марта, 2020 Опубликовано 21 марта, 2020 (изменено) · Жалоба Вообще то я рассматриваю оба варианта, и вариант 1: Контроллер с внешним контроллером Ethernet, и вариант 2: Контроллер с внутренним контроллером Ethernet + внешний PHY. Решил вначале рассмотреть первый вариант, а затем второй. Хорошо, давайте рассматривать оба эти варианта сразу, преимущества и недостатки каждого из них. Основной параметр, который интересует, это конечно скорость передачи данных. Какую скорость можно получить в каждом из этих вариантов? Как Вы считаете? Второй по важности параметр - простота реализации. Вариант с внешним Ethernet привлекает тем, что TCP/IP в нём реализован внутри аппаратно, и мне надо будет один раз задать нужный режим работы, а дальше только загружать данные, ожидать флаг окончания передачи, и давать команды на пересылки. Такой вариант кажется более простым в реализации. 48 minutes ago, Rst7 said: Вы же не сможете ни шага влево, ни шага вправо ступить с ним. Объясните, пожалуйста, какие ограничения накладывает такой вариант. Чем для меня это будет плохо. Изменено 21 марта, 2020 пользователем Nikkolaj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 21 марта, 2020 Опубликовано 21 марта, 2020 · Жалоба 10 hours ago, Nikkolaj said: Какую скорость можно получить в каждом из этих вариантов? В варианте с контроллером, у которого свой MAC внутри - легко получается wire speed. Т.е. чуть меньше чем, например, 100Мбит/с. Со всякими визнетами сильно повезет, если получится перешагнуть 10М. Это Вам надо будет пробовать бодаться с его параллельной шиной, еще неизвестно, сколько там глюков, народ-то в основном его по последовательным портам гоняет (и то матерится). Вам сильно нужны эти эксперименты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 21 марта, 2020 Опубликовано 21 марта, 2020 · Жалоба 13 hours ago, Nikkolaj said: Вообще то я рассматриваю оба варианта, . . . и вариант 2: Контроллер с внутренним контроллером Ethernet + внешний PHY. NUCLEO_F429ZI (STM32F429ZI), EK-TM4C1294XL (TM4C1294NCPDT, Ti) у второй платы чип трансивера "встроеный" в процессор. Не самое новое, вам для обзора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nikkolaj 0 9 апреля, 2020 Опубликовано 9 апреля, 2020 · Жалоба Спасибо за ответы. 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. Посоветуйте, какой вариант лучше выбрать. Какую реальную скорость удасться добиться в этих вариантах? Какой вариант будет проще в реализации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 9 апреля, 2020 Опубликовано 9 апреля, 2020 · Жалоба 11 minutes ago, Nikkolaj said: Посоветуйте, какой вариант лучше выбрать. CY7C68013A удобно соединять с FPGA или простыми источниками/приемниками данных с параллельным интерфейсом - АЦП, ЦАП, видеосенсоры и т.п. На микроконтроллере предпочтительнее иметь встроенный интерфейс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 9 апреля, 2020 Опубликовано 9 апреля, 2020 (изменено) · Жалоба Quote Правильно ли я понял, чтопо Ethernet реальный потолок скорости - это до 100Мбит\с. Может вам стоит взять два компа, на один поставить как минимум ос, с которой планируется работать и написать программы, которые обмениваются данными с нужной вам скоростью и джиттером? Сами оцените, как это все будет работать. А то вдруг окажется что когда пользователь запустил другую программу и у вас лаги, которые вас абсолютно не устроят. А потом уже придет понимание, что надо делать с внешней частью. Вас могут выбить вовсе не скорость а джиттер в обмене. Изменено 9 апреля, 2020 пользователем Михась Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 9 апреля, 2020 Опубликовано 9 апреля, 2020 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sorok-odin 5 9 апреля, 2020 Опубликовано 9 апреля, 2020 · Жалоба 2 часа назад, Nikkolaj сказал: Сейчас думаю, может лучше передавать информацию не по Ethernet, а по USB2.0 HS. Дальше планирутся задачи, где надо будет передавать информацию на скорости выше 100Мбит\с. Что-то мне подсказывает, что возможно будет проще найти процессор с гигабитным езернетом, чем потом воевать с USB драйвером. Езернет на компе делается элементарно, примеров уйма. Скорость будет зависеть от производительности процессора, там уже wire speed не все вытянут, особенно TCP/IP. Так что при выборе процессора обязательно ищите замеры скорости. Можно сделать гигабитный езернет и на ПЛИС, но порог вхождения в это всё повыше будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nikkolaj 0 9 апреля, 2020 Опубликовано 9 апреля, 2020 · Жалоба 1 hour ago, sorok-odin said: Что-то мне подсказывает, что возможно будет проще найти процессор с гигабитным езернетом Можете подсказать, например какой процессор с гигабитным езернетом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться