реклама на сайте
подробности

 
 
> LwIP на STM32F4: потери UDP-пакетов
maxpow
сообщение Sep 1 2018, 10:12
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 1-09-18
Пользователь №: 107 157



Доброго времени суток. Использую STM32F407 и код, собранный в CubeMX. Вкратце, в проекте подняты Ethernet (LwIP) и USB CDC (RTOS не используется); по приходу UDP-пакета в Ethernet по USB на ПК отправляется диагностическое сообщение о том, что пакет успешно принят.
Проблема состоит в следующем. В случае, если UDP-пакеты приходят с фиксированным интервалом (1 мс), всё работает правильно. Но при отправке данных без интервала (используется самописная программа на Qt) большая часть UDP-пакетов не обрабатывается (на 10 пакетов приходится 3-4 сообщения о приёме). Опытным путём было установлено, что проблема возникает только тогда, когда сообщение отправляется после каждого пришедшего пакета, т.е., если отправлять, например, одно сообщение на 255 пакетов, всё работает правильно. Предположительно, получается, что проблема в том, что контроллер не принимает или не обрабатывает пакет, пока идёт отправка сообщения по USB.
Вопрос -- в следующем: правильно ли я понимаю суть проблемы, и, если да, то как её решить? Может, можно увеличить какие-то буферы или поднять скорость обработки данных каким-либо способом? Заранее спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Sep 3 2018, 01:50
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (maxpow @ Sep 1 2018, 18:12) *
пока идёт отправка сообщения по USB.

Я бы отделил мух от котлет. Сейчас не понятно, где у вас проблема: в ETH, USB или и там и там. Поэтому, сделайте вывод о статистике работы сети через простой и надёжный USART. Скажем так, там ломаться нечему. Если проблема останется, то я бы начал с драйвера MAC, PHY. Сам lwip вроде как годами откатан и его надёжность не вызывает сомнений. Но может быть необходимо подкрутить настройки, коих довольно много. Если wireshark позволяет создавать сырые пакеты, то можно ей потестировать работоспособность MAC, выводя статистику в консоль через usart. А вообще данных дейсвительно мало. Мы ведь даже не знаем, как у вас организованы обработчики прерываний.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01335 секунд с 7
ELECTRONIX ©2004-2016