Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART --> WiFi, Rn171ek
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Wireless/Optic
iakovlev
Добрый день!
задача в следующем, ПЛИС с периодом примерно 2 мс выдаёт по UART (желательно 921600 b/s) пачку данных в 20 байт. Эти данные надо передать по WiFi на ПК до прихода следующей пачки.
Пытаюсь приспособить для этого Rn-171-EK; увеличил период посылки с 2 до 20 мс (и больше), пробовал UART на скоростях 115, 250, 500 kb/s, с контролем потока. Размер буфера задал 20.
Всё равно приходит много пакетов из 19 байтов и много пакетов с перепутанными байтами (не тот порядок или просто не те).

Как лучше сконфигурировать, чтобы совсем уж не проиграть в быстродействии? с периодом посылок 150 мс ошибок нет, но это слишком медленно.
Или в настройках сети что-то можно покрутить? Сейчас через USB донгл D-link 131 и Connectify создана точка доступа, модуль с ней соединяется при запуске.

Приёмная часть на ПК реализована в LabView - TCP Open, TCP Read.

Спасибо за помощь
d-f-m
Цитата(iakovlev @ Apr 15 2014, 12:22) *
Добрый день!
задача в следующем, ПЛИС с периодом примерно 2 мс выдаёт по UART (желательно 921600 b/s) пачку данных в 20 байт. Эти данные надо передать по WiFi на ПК до прихода следующей пачки.
Пытаюсь приспособить для этого Rn-171-EK; увеличил период посылки с 2 до 20 мс (и больше), пробовал UART на скоростях 115, 250, 500 kb/s, с контролем потока. Размер буфера задал 20.
Всё равно приходит много пакетов из 19 байтов и много пакетов с перепутанными байтами (не тот порядок или просто не те).

Как лучше сконфигурировать, чтобы совсем уж не проиграть в быстродействии? с периодом посылок 150 мс ошибок нет, но это слишком медленно.
Или в настройках сети что-то можно покрутить? Сейчас через USB донгл D-link 131 и Connectify создана точка доступа, модуль с ней соединяется при запуске.

Приёмная часть на ПК реализована в LabView - TCP Open, TCP Read.

Спасибо за помощь

Экспериментировал с WiFi DV102412 на MRF24WG0 с периодом посылок от 125мс до 1000мс.
Пакет почти всегда дробится.
Отправляю например 1000 байт а приходит 768 байт.
Так может продолжаться сотни пакетов, а потом недостающие килобайты приходят одним или несколькими кусками.
Но при этом в сумме информация не искажается и не пропадает.
Пришлось буферизировать и добавить преамбулу для определения начала пакета.
Это может быть связано с особенностью WiFi на PC.
iakovlev
спасибо за ответ

в общем, самым оптимальным решением оказалось каждые 2 мс передавать с ПЛИС по UART (250kb/s) пачки по 20 байт, в модуле их накапливать и по наполнению буфера 1400 байт посылать большой пакет по TCP, то есть примерно раз в 150 мс. С маленькими пакетами TCP очень нестабильная работа.

В итоге, в реальном времени на графике рисуется не очень плавно, но в файл пишутся все данные, ничего не теряется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.