Самая низкая задержка среди стандартов Wi-Fi 802.11


8

Я делаю проект, используя Arduino и модуль ESP8266 с прошивкой esp-link, что дает мне возможность использовать MQTT для управления Arduino. Вместо этого я посмотрел на что-то вроде модуля XBee - но они чертовски дороги по сравнению с ESP8266! ( Если вы не знаете, что такое ESP8266 или MQTT, не беспокойтесь - достаточно знать, что он использует TCP через Wi-Fi ).

Пакеты MQTT крошечные, поэтому пропускная способность сети Wi-Fi никогда не будет проблемой. Но задержка и надежность являются важными факторами. Система MQTT использует TCP, поэтому она должна быть достаточно надежной, но я не уверен в задержке.

У меня есть выбор использования соединения 802.11b, .11g или .11n для сети, которую использует ESP8266. Есть ли в каком-либо из этих стандартов что-либо, что делает один из них более низким, чем любой другой? Какую производительность можно ожидать для очень маленьких и редких пакетов?


1
Что касается задержек, то есть и другая сторона, а также проблема качества реализации. Я не думаю, что теоретические цифры уведут вас очень далеко.
PlasmaHH

Google для статьи LWN под названием "сделать Wi-Fi быстро".
user3528438

Ответы:


10

Прежде всего, вы делаете что-то ОЧЕНЬ правильно, чего не делают многие разработчики и пользователи IoT: вы учитываете тот факт, что работа должна быть надежной и ограниченной по времени. Это делают не все, и поэтому многие устройства IoT действительно плохие.

Выбор стандарта 802.11 b / g / n не сильно повлияет на вашу задержку. Я предполагаю, что мы ограничиваем время ожидания <10 мс, потому что все в этом случае «просто будет работать в 99,5% случаев при использовании хорошего оборудования WiFi».

Если вы находитесь в сценарии с задержкой, вы, конечно, не будете

  • использовать TCP (и, следовательно, MQTT, который строит поверх этого)
  • используйте устройство, которое эмулирует медленную последовательную связь - если ваши пакеты имеют, скажем, 4 символа, а у вас 9600 бод, то вы потратите миллисекунду только на передачу данных с µC на устройство WiFi
  • использовать Wi-Fi, так как нет гарантии, что ваша станция сможет отправлять в течение ограниченного времени, вообще (только вероятность)

Если вам нужна надежность, с другой стороны, вы не должны

  • использовать чистый UDP (поскольку нет гарантии или обратной связи о том, что пакеты достигают места назначения)
  • использовать чистый односторонний протокол радиосвязи (по той же причине)
  • используйте ESP8266, что дает ему ценовое преимущество в связи с отсутствием тестирования, проектирования и сертификации для высоконадежной работы (и, следовательно, ни один крупный производитель электроники не будет использовать это, не выполняя это тестирование самостоятельно, и в этом случае готовые модули от надежных производителей обычно становятся дешевле)

Итак, прежде всего, определите ваши требования к задержке и ваши требования к надежности. У вас должен быть лист бумаги с надписью

Задержка для {one | two} двусторонней связи должна составлять <{max latency} в {допустимом проценте}% случаев. Не должно быть вероятности потери пакета более чем на {допустимый процент}.

Затем вы можете взглянуть на теоретические ограничения систем, а затем посмотреть на практические пределы реализации тех, кто соответствует этому.


Прежде всего, вы делаете что-то очень хорошо ... Спасибо! :) Пока это просто игрушечный пример, более чем то, что я планирую сделать доступным в качестве реального продукта. Выбор стандарта 802.11 b / g / n не сильно повлияет на вашу задержку. Я не думал, что это будет иметь слишком большое значение, но подумал, что я спрошу. Я все еще буду проводить некоторые собственные тесты, но, очевидно, у меня нет оборудования для такого тщательного тестирования, как в лаборатории. Что касается EPS8266 и Wi-Fi - я подумал, что поскольку он дешевле, я бы сначала попробовал - и попробовал бы что-нибудь еще, если это было бы неприемлемо.
seanlano

Я определенно определю заявление о моей приемлемой задержке и вероятности потери пакетов - и использую это в качестве критерия для продолжения использования ESP8266 или нет.
seanlano
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.