Наиболее распространенной проблемой беспроводной связи является потеря пакетов. Будь то простая и примитивная связь на частоте 433 МГц или высокоточные сигналы 5G, возникнут проблемы с потерей пакетов.Решение проблемы потери пакетов также является необходимой задачей для инженеров беспроводной связи. Потеря пакетов неизбежна, но о том, что делать, если вы столкнулись с потерей пакетов, и пойдет речь в этой статье.
Самое важное в беспроводной связи - разработать протокол связи, который может удовлетворить потребности приложения, и протокол связи содержит следующие элементы: какая полоса частот используется для беспроводного сигнала, какой метод модуляции не нарушается, кому отправляется беспроводной сигнал, как обеспечить, чтобы беспроводной сигнал передавался достигает цели, что делать, если одновременно используется несколько идентичных устройств, как принимающая сторона определяет, принимается ли принятый сигнал повторно или missed...In на самом деле, все это связано с решением проблемы - потерей пакетов.

Следовательно, любой тип широко используемого протокола беспроводной связи должен быть разделен на несколько логических уровней, каждый логический уровень.Например, обычные Wi-Fi, ZigBee и Bluetooth имеют два общих логических уровня - физический уровень PHY и канальный уровень MAC.Среди них уровень PHY определяет полосу частот, метод модуляции и способ передачи.Уровень MAC определяет, кто будет отправлять сигнал, кто будет принимать сигнал и когда отправлять сигнал.
Базовый уровень PHY и уровень MAC решают распространенную проблему потери физических пакетов, но сценарии применения беспроводных устройств очень сложны. Поэтому к различным протоколам связи были добавлены логические уровни, такие как сетевой уровень, для обеспечения стабильности связи. Например, протокол TCP на Wi-Fi протокол разработан для обеспечения стабильной передачи.Например, PHY-уровень и MAC-уровень ZigBee внедрили некоторые механизмы обработки для уменьшения потери пакетов.
Уменьшите механизм обработки потерь пакетов
① МНОГОСЛОЙНЫЙ механизм для уменьшения потерь плоскостей:
Потеря пакета на физическом уровне означает, что отправитель отправляет сигнал, но получатель его не принимает.Это также самая простая и распространенная причина. Обычно мощность на передающем конце низкая, а передающий конец находится слишком далеко от принимающего конца.
В этом случае обычный способ думать - это увеличить мощность передачи, чтобы сигнал мог передаваться дальше.Однако, согласно закону Шеннона, при той же полосе пропускания канала, чем меньше информации несет сигнал, тем ниже требование к отношению сигнал/шум, а чем ниже требование к отношению сигнал/шум, тем ниже требование к мощности.
В настоящее время, в дополнение к увеличению мощности, существует еще один способ распределения частоты.Например, при использовании расширенного спектра DSSS, используемого в типичном ZigBee, исходная полоса пропускания канала ZigBee составляет 2 МГц, что означает, что он может выводить 2 млн сигналов 0 или 1 в течение 1 секунды.Обычно мы используем 8 сигналов 0 или 1 для представления байта, но под действием DSSS для представления байта требуется 64 сигнала 0 или 1.Таким образом, при использовании беспроводного сигнала для передачи байта требуется 64 нуля или 1 с. Даже если сигнал искажен во время передачи, принимающая сторона может исправить сигнал.Вот почему стабильность передачи данных ZigBee лучше, чем при передаче данных на частоте 433 МГц.При нормальных обстоятельствах дальность передачи ZigBee может достигать 1 километра при мощности передачи 20 дБм.

Также существует ситуация, когда возникает проблема с антенной.Любой тип антенны имеет свой коэффициент усиления и направленность.Обычно коэффициент усиления внешней антенны лучше, чем у антенны на печатной плате. Когда места для оборудования достаточно, попробуйте выбрать внешнюю антенну.Направленность антенны также является фактором, который следует учитывать. Например, зона покрытия стержневой антенны представляет собой плоскую сферу. Сигнал положения параллельной антенны очень хорош, но сигнал положения удлинителя оси антенны намного хуже.
② Механизм уровня MAC для уменьшения потери пакетов:
Если взять в качестве примера протокол ZigBee серии IEEE802.15.4, то MAC-уровень этого протокола выполняет несколько важных функций.
Прослушивание несущей и механизм CSMA:
IEEE802.15.4 имеет механизм CSMA, основанный на прослушивании несущей.Перед каждой передачей сигнала устройство будет прослушивать, занят ли текущий канал, и передавать сигнал, когда канал простаивает.Многие чипы sub-G также имеют функции прослушивания несущей, но в них отсутствует механизм протокола, подобный CSMA.CSMA определяет метод прослушивания канала: продолжайте прослушивать канал в течение случайного времени перед передачей, чтобы можно было соответствующим образом избежать одновременной передачи сигналов двумя идентичными устройствами; попробуйте отправить сигнал по истечении случайного времени, если передача завершилась неудачей, прослушайте еще раз, а затем следующий время диапазон случайного времени продолжает расширяться (в 2 раза), так что можно избежать одновременной передачи сигналов большим количеством устройств; если несколько попыток завершаются неудачей и достигается максимальное ограничение по количеству, сигнал теряется.
Механизм автоматического реагирования:
На уровне IEEE802.15.4-MAC существует два основных метода связи: широковещательная передача и передача по запросу.Когда целевой объект находится по запросу, целевой узел вернет кадр подтверждения.Если отправитель не получит кадр подтверждения, он попытается повторно отправить сигнал. Если подтверждение не будет получено несколько раз, пакет будет потерян.Кроме того, когда принимающая сторона отвечает на MAC-подтверждение, оно не отправляется принудительно механизмом CSMA. После того, как отправитель успешно отправляет сигнал по запросу в соответствии с механизмом CSMA, для получения подтверждения требуется всего 0,2 ~ 0,5 миллисекунды.
Таким образом, распространенными явлениями, вызывающими потерю пакетов на уровне MAC, являются ошибка CSMA и ошибка MAC-ACK. В отличие от потери пакетов на физическом уровне, эти два типа потери пакетов могут быть обнаружены самим отправителем.Обычно при возникновении такого рода потери пакетов обработка приложения заключается в повторной отправке.Однако повторная передача также должна быть научной. Например, сбой CSMA, вызванный вредоносными помехами в сигнале, не может быть устранен; сбой MAC-ACK, вызванный несуществованием принимающей цели, не может быть устранен.
Ряд механизмов обработки на уровне PHY и MAC предназначены для уменьшения потери пакетов, но нет никакой гарантии, что потери пакетов не будет абсолютно никакой. Поэтому при разработке беспроводных приложений наиболее важным является то, что делать, если вы столкнулись с потерей пакетов.
Решение проблемы потери пакетов в беспроводных приложениях
Если взять передачу по ZigBee в качестве примера, то уровни PHY, MAC и NWK реализовали множество механизмов обработки, и уровень потери пакетов почти достиг 0,1% ~0,01%.Однако, если при разработке приложения не будет учтена оставшаяся проблема потери пакетов в размере 0,1% ~0,01%, воздействие на само приложение будет фатальным.Существуют следующие решения для обеспечения общей отказоустойчивости при потере пакетов в приложениях.
① Разумная повторная передача:
Повторная передача - это метод, о котором может подумать каждый, и ZigBee обеспечивает обнаружение сбоев CSMA и обнаружение сбоев ACK.Обычно, сталкиваясь с двумя вышеуказанными ситуациями, обычной практикой для всех является повторная отправка данных.Однако при повторной передаче также необходимо обращать внимание на рациональность. Например, сбой CSMA. В это время возможно, что многие узлы передают сигналы одновременно; например, когда устройство включено, информация во время включения будет передана шлюзу, и у нескольких устройств определенно будет высокая частота конфликтов, когда они включены вместе. Сбой CSMA - очень распространенное явление.Поэтому, обнаружив сбой CSMA в данный момент, не отправляйте его немедленно повторно. Вы можете случайным образом задержать его от 100 миллисекунд до 1 секунды, а затем отправить повторно. Если он снова завершится неудачей, это означает, что действительно одновременно передается слишком много устройств, а затем случайным образом задержать его на 2~ 4 секунды, а затем случайным образом задержите его на 4 ~ 8 секунд, если он не сработает...Если подтверждение завершается неудачей, вы можете задержать передачу на фиксированное время в соответствии с характером передаваемых данных в реальном времени, обычно более 1 секунды и менее 5 секунд, поскольку возможно, что последняя передача завершилась неудачей из-за того, что целевой узел находится “вне состояния”, следующая передача может быть автоматически заполнен.
② Правила определения сроков проектирования:
Применяя передачу данных, вам необходимо подумать о том, что делать в случае потери пакетов, например, обновление OTA и передача файлов.Каждый кадр данных важен, и порядок должен быть правильным.Следовательно, в таких приложениях беспроводной передачи каждый кадр пакета данных должен быть помечен серийным номером.Как только отправитель обнаружит потерю пакета, он может повторно отправить фрейм данных.Принимающая сторона может ошибаться из-за того, что подтверждение не отправлено отправителю, что приводит к неправильному суждению отправителя.Если принимающая сторона получает на один кадр больше или на один кадр меньше данных, об этом можно судить по серийному номеру каждого кадра.
③ Сдавайся , когда придет время сдаваться:
Аналогично отсутствию принимающей стороны или возникновению проблем с помехами в канале, это может быть обнаружено с помощью MAC-уровня.Например, если происходит длительный непрерывный сбой подтверждения, возможно, принимающая сторона не существует; если CSMA выходит из строя в течение длительного времени, возможно, возникают помехи.Если принимающая сторона не существует, вы можете полностью отказаться от отправки сообщений принимающей стороне.В случае возникновения помех в канале вы можете переключить общий канал или приостановить работу всей сети, сохранить текущее состояние и дождаться исчезновения помех, прежде чем возобновлять всю передачу.
Ebyte стремится помогать развитию интернета вещей, интеллекта и автоматизации, улучшая использование ресурсов. Для получения дополнительных продуктов и дополнительной информации вы можете зайти на наш официальный сайт: http://www.ru-ebyte.com чтобы узнать больше, и мы готовы ответить на ваши вопросы онлайн!