Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 02.06.2016, 17:14   #1
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Вопрос по STM32 + LwIP

Собственно есть данное железо (Phy сделан на lan8710),
LwIP и все чудесно работает.
Оси нет (важно).

Теперь сама проблема:
При активном обмене по сетке проц не вылезает из прерываний!
И это понятно, но есть и другие задачи.
И тут возникает дилемма. С одной стороны я могу другие
процессы поставить в более приоритетные прерывания или
использовать ось и "отжать" процессорное время.
Тут проблем нет - дело техники.
Но тогда возникнет опасность потери ethernet пакетов.
Причем затормозить обмен по ethernet теоретически можно
(не хотелось бы, но можно). Просто задерживая ответы иногда.
Что конечно освободит проц.
Но это только если общение происходит с самим устройством
(браузер открывает страницу или по FTP качают порнуху).
Но если в сетке высокая активность и стоит не роутер а хаб,
то можно пропускать уже редкие запросы к устройству на фоне
высокой активности в среде (кабеле), не относящейся к устройству.
А это тоже как то стратегически неправильно.

Кто что предложит?
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 09:43   #2
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Я смотрю идей нет. Доложу о сделанных пробах по вопросу:

1) Поставил срочные "другие задачи" в более приоритетное прерывание (таймер).
Результат хорош. Пакеты не теряются, все работает.
Но я не забываю, что я то юзаю роутер, а не хаб. Потому решение обладает все теми
же потенциальными недостатками, что я и предполагал.

2) В прерываниях от lan8710 я ставлю таймаут и обрабатываю его уже в прерывании таймера через десяток мкс. Также результат хорош. Но по сути это то же самое, что и вариант 1. С теми же потенциальными проблемами.

3) В обработке пришедших пакетов (RAW интерфейс LwIP) я не отправляю ответ сразу. А ставлю его(ответ) в очередь. А уже она отправляется из main() и имеет общий приоритет с остальными задачами. Тоже результат хорош. Но это замедляет работу по сетке именно с этим устройством (планируемые потери скорости). Но все же неясно что будет при использовании хаба в высоконагруженной сети.
Но тем не менее на данный момент это вроде самое корректное решение.
Но и самое трудоемкое по коду и требует выделения памяти хотя бы под один (а лучше много) буфер для хранения отложенного для передачи пакета.
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 10:22   #3
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,730
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
Кто что предложит?
какой процессор?
Greg вне форума   Ответить с цитированием
Старый 06.06.2016, 10:30   #4
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
какой процессор?
STM32F107
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 10:35   #5
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,730
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
STM32F107
это несерьезно... и поди найди его сейчас
4хх - и по памяти в разы и реально прет
Greg вне форума   Ответить с цитированием
Старый 06.06.2016, 11:06   #6
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
это несерьезно... и поди найди его сейчас
4хх - и по памяти в разы и реально прет
Ну это понятно.
Но к алгоритмам и программам это относится очень косвенно
В данном случае я то полирую софт на макетке,
а не на серийной плате.

Если я поставлю гигабит ethernet к STM32F4** то
проблема в точности повториться.
Тогда совет будет звучать примерно так:
"это несерьезно... atom по памяти на порядки и реально прет"
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 12:44   #7
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,730
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
Ну это понятно.
Но к алгоритмам и программам это относится очень косвенно
В данном случае я то полирую софт на макетке,
а не на серийной плате.
да фиг знает, "решай проблему, когда она появится".
Просто в "данном случае" проц запросто выйдет из прерываний, а гигабит может и не настать никогда.

Ну или взять ртос, и он в них (прерывания) никогда и не зайдет...
Greg вне форума   Ответить с цитированием
Старый 06.06.2016, 13:18   #8
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
да фиг знает, "решай проблему, когда она появится".
Просто в "данном случае" проц запросто выйдет из прерываний, а гигабит может и не настать никогда.

Ну или взять ртос, и он в них (прерывания) никогда и не зайдет...
Как сказать. Отказываться от прерываний аппаратного модуля
довольно глупо при использовании любой ОС. Да и это не требуется.
В либе предусмотрено использование mutex да и запреты
прерываний для критических участков кода тоже предусмотрены.
Так что использование ETH_IRQHandler() совместно с ртос
не вызовет никаких проблем. Более того.
Многие считают, что использование ртос как то ограничивает
использование прерываний. Это не так точно!!!!!!
Я хоть и не любитель ОС (считаю их корявым излишеством),
но использовать умею. Причем с любым количеством прерываний.

В моей системе сама обработка пакетов производится относительно быстро.
Основные тормоза идут на обмене информацией с Phy уровнем.
Причем DMA(а именно он занимается обменом) создает при этом серьезные задержки. В итоге быстрое прерывание("заряжает" DMA ответом) - далее торможение шины - далее снова короткое прерывание и "зарядка" DMA.

Так что действительно это исчерпание возможностей процессора как такового.
Просто думаю как в такой системе (а она по составу классическая) делать грамотное распределение ресурсов. Это скорее академический интерес. Поскольку в серии буду использовать процессоры поновее.

Думаю еще проштудировать доку на Phy уровень. Там вроде есть механизм "корректного" отбрасывания пакетов при занятости проца. Т.е. без каких либо переполнений буферов. Понимание правильного подхода в этой цепочке, на мой взгляд, очень важно при разработке устойчивых систем.
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 15:58   #9
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
и поди найди его сейчас
Я аж забеспокоился...
Проверил STM32F107 - есть в наличии у всех крупных продавцов.
Примерно по 580 рублей в розницу.

А вот STM32F407/417 - есть в наличии только у 2-х продавцов по 1500-2100р в розницу.

Да и на сайте ST F107 это Mainstream
А вот F4** это все же High Performance

Так что мой вопрос по распределению производительности абсолютно актуален на данный момент по составу железа!
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 16:26   #10
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Возраст: 39
Сообщений: 4,477
Вес репутации: 4370/122
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
Я аж забеспокоился...
Проверил STM32F107 - есть в наличии у всех крупных продавцов.
Примерно по 580 рублей в розницу.

А вот STM32F407/417 - есть в наличии только у 2-х продавцов по 1500-2100р в розницу.

Да и на сайте ST F107 это Mainstream
А вот F4** это все же High Performance

Так что мой вопрос по распределению производительности абсолютно актуален на данный момент по составу железа!
Петр, плохо ищете. Посмотрите ассортимент и количество предложений. Я не раз заказывал.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 06.06.2016, 17:30   #11
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Петр, плохо ищете. Посмотрите ассортимент и количество предложений. Я не раз заказывал.
Я ж говорю есть. И это одно из тех мест.
Только незачем. Для того моего девайса и F107 избыточен.
Это я из баловства его туда воткнул.

И по 4000р за штуку.... я по 2000р знаю места....
Petr вне форума   Ответить с цитированием
Старый 06.06.2016, 20:48   #12
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Возраст: 39
Сообщений: 4,477
Вес репутации: 4370/122
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
Я ж говорю есть. И это одно из тех мест.
Только незачем. Для того моего девайса и F107 избыточен.
Это я из баловства его туда воткнул.

И по 4000р за штуку.... я по 2000р знаю места....
Я даже не сразу сообразил про "и по 4000р за штуку...я по 2000р знаю места....", только сейчас дошло. Понял, вы по первой позиции из моей ссылки подумали, что это цена микроконтроллера. А это цена отладочной платы вот для этой борды, там по ссылке вначале идут борды, затем микроконтроллеры STM32F407IG - 176pin, затем STM32F407ZG - 144pin, затем STM32F407VG - 100pin (такой в STM32F4DISCOVERY стоит). Так его можно купить за 659-729р, а за 2000р можно замену STM32F4DISCOVERY купить - STM32F407G-DISC1. Переходите на F4, пора развиваться, будем совместно работать, а то спросить не у кого.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 06.06.2016, 21:05   #13
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 47
Сообщений: 1,734
Вес репутации: 3438/93
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Я даже не сразу сообразил про "и по 4000р за штуку...я по 2000р знаю места....", только сейчас дошло. Понял, вы по первой позиции из моей ссылки подумали, что это цена микроконтроллера. А это цена отладочной платы вот для этой борды, там по ссылке вначале идут борды, затем микроконтроллеры STM32F407IG - 176pin, затем STM32F407ZG - 144pin, затем STM32F407VG - 100pin (такой в STM32F4DISCOVERY стоит). Так его можно купить за 659-729р, а за 2000р можно замену STM32F4DISCOVERY купить - STM32F407G-DISC1. Переходите на F4, пора развиваться, будем совместно работать, а то спросить не у кого.
Уговорил. Куплю борду с F4.

Но этот то девайс пущу с F1 (если конечно заказчик не сдуется...).
Тухлые нынче заказчики пошли....
Petr вне форума   Ответить с цитированием
Старый 13.12.2017, 09:50   #14
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,730
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
это несерьезно... и поди найди его сейчас
4хх - и по памяти в разы и реально прет
не прав про 107, живучий...
что важнее, самый маленький по ногам (64) паябельный корпус с RMII.
Greg вне форума   Ответить с цитированием
Старый 30.12.2017, 20:32   #15
bzx
Senior Member
 
Аватар для bzx
 
Регистрация: 25.02.2007
Адрес: St. Petersburg
Возраст: 45
Сообщений: 471
Вес репутации: 1181/57
bzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud of
Отправить сообщение для bzx с помощью ICQ Отправить сообщение для bzx с помощью Skype™
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Petr Посмотреть сообщение
Собственно есть данное железо (Phy сделан на lan8710),
LwIP и все чудесно работает.
Оси нет (важно).

Теперь сама проблема:
При активном обмене по сетке проц не вылезает из прерываний!
И это понятно, но есть и другие задачи.
...
Кто что предложит?
Использовать dma. Так Вы разгрузите cpu.

Привожу пример, используется dma, без прерываний.

STM32F107RCT6, DP83848IVV, No OS, LwIP 1.4.0 (dhcp, icmp, web, sock tcp:5, sock udp:4).

Тестирование. Контроль траффика - Wireshark. Генератор пакетов Cat KARAT 1.51.200.

1. ARP-флуд: ARP Requst (Dst broadcast), скорость обработки запросов ~15887 пакетов в секунду (по вшарку). Потерь нет, все запросы обработаны.
2. icmp, запрос 1 пакет в секунду, длина 32 Байта, по шарку время ответов на запрос через ~95...121мкс (из ~500 пакетов). Потерь нет, все запросы обработаны.
3. icmp, запрос 1 пакет в секунду, длина 1400 Байта, по шарку время ответов на запрос через ~697...727мкс (из ~500 пакетов). Потерь нет, все запросы обработаны.
4. icmp, запрос 1 пакет в секунду, длина 1400 Байта, ARP Requst (Dst broadcast) максимальная скорость. Статистика пакетов icmp потеряно 52 (4%) из 1158, время ответов на запрос менее 1000мс.
__________________
Для связи email: info собака qbit.su
bzx вне форума   Ответить с цитированием
Старый 08.01.2018, 18:33   #16
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,730
Вес репутации: 5285/161
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от bzx Посмотреть сообщение
Использовать dma. Так Вы разгрузите cpu.

Привожу пример, используется dma, без прерываний.

STM32F107RCT6, DP83848IVV, No OS, LwIP 1.4.0 (dhcp, icmp, web, sock tcp:5, sock udp:4).
а какой расход ОЗУ в этом проекте (под сеть)?
Greg вне форума   Ответить с цитированием
Старый 13.01.2018, 00:28   #17
bzx
Senior Member
 
Аватар для bzx
 
Регистрация: 25.02.2007
Адрес: St. Petersburg
Возраст: 45
Сообщений: 471
Вес репутации: 1181/57
bzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud of
Отправить сообщение для bzx с помощью ICQ Отправить сообщение для bzx с помощью Skype™
По умолчанию Re: Вопрос по STM32 + LwIP

Цитата:
Сообщение от Greg Посмотреть сообщение
а какой расход ОЗУ в этом проекте (под сеть)?
Примерно 36к RAM в релиз-сборке, флэш ~140к, из них больше половины данные. Присутствует ещё ряд отягощающих моментов: работают dns и ntp с unicast и multicast, а самое тяжелое это web - несколько страниц с ajax и много динамических передаваемых параметров, т.е. свой автомат с парсерам.

C web есть непонятки, точнее, подлежит оптимизации и доработке. Долго загружается страница, до 2-3 секунд. Проверено на разных браузерах. По логам видно, что браузер делает паузы до 50-200мс и их много. Лог шарка привожу. Самая большая задержка в этом логе от девайса к компу ~7мс. Короткий css файл стилей быcтро передается за ~210мс.
Вложения
Тип файла: rar q.rar (4.7 Кб, 1 просмотров)
__________________
Для связи email: info собака qbit.su
bzx вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по ПИД в инерциальной, сильношумящей системе. FlashBack Общетехнические вопросы 4 29.04.2011 17:06
Вопрос по прерываниям RB7-RB4 KSB31 Продукция MICROCHIP 4 15.08.2010 23:53
Вопрос по Altium Designer Iptash Печатный монтаж 2 14.09.2008 14:57
вопрос по PICC EXT_INT Вопросы начинающих 13 26.08.2008 07:53
Вопрос новичка по Си ramonchik Продукция MICROCHIP 3 05.03.2007 16:28


Часовой пояс GMT +3, время: 14:49.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot