EKirshin 0 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба Нужна пропускная способность по протоколу TCP/IP порядка 1-2 МБайт/с. Нужно передавать данные с контроллера на PC (в одну сторону). Размер пакета не важен (видимо, нужен большой для высокой пропускной способности). Нужно только одно соединение. + хочется использовать стек без операционки. Рассматривался uIP. Но, как видно, он больше оптимизирован для 8-битных контроллеров. Настроить его на большую пропускную способность пока не удалось. Примеры на его основе - в основном, web-сервера, не требующие большой пропускной способности канала. Когда они переделываются на передачу данных, выясняется, что пропускная способность всего несколько килобайт/c. :( Есть вариант с использованием операционки. Например, тот же RTX Kernel со стеком. Вопрос, какую пропускную способность эта связка сможет обеспечить и какая загрузка процессора будет при требуемой пропускной способности в 1-2 Мбайт/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба На STR91x стек TCP/IP от Micrium дает 2.3 Мбайта в секунду c длиной пакетов 1024 байта. У них на сайте выложен для STR91x весь проект включая TCP стек, RTOS и исходники тестирующей программы. Проект для IAR EWB, легко переносится и на RVDK. Нужна пропускная способность по протоколу TCP/IP порядка 1-2 МБайт/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба Если все в локалке ( в одном сегменте ) можно использовать UDP ( плюс простая проверка потерянных пакетов, которых по идее быть не должно если сеть правильно настроена). Тогда можете сами формировать пакеты и не надо никакого стека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 27 февраля, 2007 Опубликовано 27 февраля, 2007 · Жалоба Потеряете большинство пакетов, либо будете изобретать вилосипед. PC слишком быстро отправляет UDP один за другим. Контроллер все потеряет кроме первого. Если все в локалке ( в одном сегменте ) можно использовать UDP ( плюс простая проверка потерянных пакетов, которых по идее быть не должно если сеть правильно настроена). Тогда можете сами формировать пакеты и не надо никакого стека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
КонстантинТ 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба Нужна пропускная способность по протоколу TCP/IP порядка 1-2 МБайт/с. Нужно передавать данные с контроллера на PC (в одну сторону). Размер пакета не важен (видимо, нужен большой для высокой пропускной способности). Нужно только одно соединение. + хочется использовать стек без операционки. Рассматривался uIP. Но, как видно, он больше оптимизирован для 8-битных контроллеров. Настроить его на большую пропускную способность пока не удалось. Примеры на его основе - в основном, web-сервера, не требующие большой пропускной способности канала. Когда они переделываются на передачу данных, выясняется, что пропускная способность всего несколько килобайт/c. :( Есть вариант с использованием операционки. Например, тот же RTX Kernel со стеком. Вопрос, какую пропускную способность эта связка сможет обеспечить и какая загрузка процессора будет при требуемой пропускной способности в 1-2 Мбайт/с. LWIP - 3 мбайта в секунду, очень быстрый и хороший стек. Можно и больше , еслт оптимизировать CRC и драйвер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба Потеряете большинство пакетов, либо будете изобретать вилосипед. PC слишком быстро отправляет UDP один за другим. Контроллер все потеряет кроме первого. Если все в локалке ( в одном сегменте ) можно использовать UDP ( плюс простая проверка потерянных пакетов, которых по идее быть не должно если сеть правильно настроена). Тогда можете сами формировать пакеты и не надо никакого стека. Требовалось то передавать данные как раз в сторону PC! И потом то что контроллер потеряет все пакеты, кроме 1 - это не так! Можно несколько пакетов в очереди держать... И потом когда данные идут пакетами и в одной сети ( нет марщрутизации, мостов и каналов с разной скоростью... ) гораздо эффективнее использовать UDP (можно вытащить из любого стека) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dopler 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба Требовалось то передавать данные как раз в сторону PC! И потом то что контроллер потеряет все пакеты, кроме 1 - это не так! Можно несколько пакетов в очереди держать... И потом когда данные идут пакетами и в одной сети ( нет марщрутизации, мостов и каналов с разной скоростью... ) гораздо эффективнее использовать UDP (можно вытащить из любого стека) Соглавсен с вами. Если есть устройство, которое напрямую подключается к компьютеру через Ethernet (у нас было именно так), UDP прекрасно справляется. Реализация UDP в разы проще, в хороших Emac он поддерживается почти аппаратно, нужно только заголовок сформировать, да ввести поле номера пакета, для возможного контроля пропавших (хотя за период тестирования устройства ни одного пропавшего пакета замечено не было). Даже контрольную сумму UDP можно не считать (даже нужно не считать, так как смысла нет). Реализация UDP с нуля займет примерно неделю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба LWIP - 3 мбайта в секунду, очень быстрый и хороший стек. Можно и больше , еслт оптимизировать CRC и драйвер Очень интересно. можно подробнее? Использовали ОС или без нее обошлись? Что за оптимизация такая хитрая? Если использовали uC/OS не поделитесь портом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
КонстантинТ 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба LWIP - 3 мбайта в секунду, очень быстрый и хороший стек. Можно и больше , еслт оптимизировать CRC и драйвер Очень интересно. можно подробнее? Использовали ОС или без нее обошлись? Что за оптимизация такая хитрая? Если использовали uC/OS не поделитесь портом? Наибольшие тормоза вызывают функция подсчета CRC и драйвер передачи данных. Я взял готовую неоптимизированную функцию написанную на С . В драйвере можно эффективно использовать DMA, те предавать указатель на сегмент данных со сформированным пакетом( а не прегружать в отдельную область и оттуда по DMA слать в сеть, как я сделал для простоты). По прерыванию DMA освобождать память. Если в процессе передачи сформировался новый пакет, то его ставить в очередь на передачу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба На STR91x стек TCP/IP от Micrium дает 2.3 Мбайта в секунду c длиной пакетов 1024 байта. У них на сайте выложен для STR91x весь проект включая TCP стек, RTOS и исходники тестирующей программы. Имелся в виду порт для STR91x или что? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EKirshin 0 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба Порт Micrium uC/OS-II со стеком TCP/IP на STR912 нашел. Есть примеры для IAR для платы от ST. По описанию внутри этого архива видно (на скриншотах), что у них TCP/IP на тесте передачи из контроллера в PC дает даже 2.9 Мбайт/с. Глянул исходники - они используют оптимизированную ассемблерную функцию вычисления контрольной суммы. + реализация всяких вещей TCP таких как окно на много сегментов. Сделано, конечно, профессионально. куча комментариев, которые пронумерованы, ..., документация... Но уж очень большой исходник у них. Хочется взять какой-нибудь стек без наворотов и "добавить" в уже существующий проект без операционки, чтоб не переписывать уже написанный код под эту операционку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 28 февраля, 2007 Опубликовано 28 февраля, 2007 · Жалоба У вас нет выбора. Это единственный нормальный стек доступный в исходниках и реально безопасный в многопоточных приложениях. Быстрые стеки однозначно требуют операционку. Открытые стеки типа uIP и lwIP очень кривые. Взять к примеру блокирующиеся сокеты без таймаута в lwIP, это гемороя на месяц не меньше чтоб обойти связанные с этим проблемы. И так по мелочи там много проблем. Порт Micrium uC/OS-II со стеком TCP/IP на STR912 нашел. Есть примеры для IAR для платы от ST. По описанию внутри этого архива видно (на скриншотах), что у них TCP/IP на тесте передачи из контроллера в PC дает даже 2.9 Мбайт/с. Глянул исходники - они используют оптимизированную ассемблерную функцию вычисления контрольной суммы. + реализация всяких вещей TCP таких как окно на много сегментов. Сделано, конечно, профессионально. куча комментариев, которые пронумерованы, ..., документация... Но уж очень большой исходник у них. Хочется взять какой-нибудь стек без наворотов и "добавить" в уже существующий проект без операционки, чтоб не переписывать уже написанный код под эту операционку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Velund 0 1 марта, 2007 Опубликовано 1 марта, 2007 · Жалоба Порт Micrium uC/OS-II со стеком TCP/IP на STR912 нашел. А может кто нибудь на фтп это добро выложит? Что то на микриуме стали пароли с логинами спрашивать... :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex B._ 0 1 марта, 2007 Опубликовано 1 марта, 2007 · Жалоба >> Что то на микриуме стали пароли с логинами спрашивать... Угу, причем еще и не регистрируют =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shamil 2 1 марта, 2007 Опубликовано 1 марта, 2007 · Жалоба А может кто нибудь на фтп это добро выложит? Что то на микриуме стали пароли с логинами спрашивать... :blink: Положил в /upload/TcpStacks/Micrium-uC-TCP-IP.exe Зарегистрироваться мне удалось только с нормального почтового ящика. С ящиком на mail.ru мой запрос на регистрацию был проигнорирован. To AlexandrY - большой :a14: за наводку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться