Проблемы с радиочастотным шумом 433 МГц

Я знаю, что это нубский вопрос. Я пытаюсь установить беспроводную связь между двумя микроконтроллерами 8051, используя радиочастотный модуль 433 МГц. Но так как 433 МГц — достаточно шумная частота, ресивер сразу же начинает собирать вокруг себя мусор. В этом случае поможет ли программный фильтр избавиться от ненужных данных, или мои данные полностью искажаются по пути? Заранее спасибо.

Можете ли вы охарактеризовать источник(и) шума?
На самом деле я отправляю символы ascii с одного микроконтроллера на другой, а затем отображаю их на ЖК-дисплее. Но символы, которые отображаются на ЖК-дисплее, не такие, как ожидалось. Я не знаю, связано ли это с шумом, искажающим данные, или это просто проблема передачи с оборудованием, которое я использую. Что касается источника шумов, я не могу указать определенный источник, который использует 433 МГц для связи в среде, которая доминирует над моим модулем.

Ответы (4)

Используете ли вы такие модули?

введите описание изображения здесь

Если да, то не ожидайте, что они будут работать без надлежащих алгоритмов фильтрации программного шума. Этот модуль будет выдавать данные на выходе Rx, даже если нет другого передатчика, работающего на частоте 433 МГц. Это связано с тем, что это устройство работает в режимах OOK (вкл./выкл. манипуляции) и AGC (автоматическая регулировка усиления). Таким образом, если Rx не обнаружит никакого сигнала в течение некоторого времени, он автоматически уменьшит порог, и как только порог приблизится к уровню шума, шум будет интерпретирован как битовый поток 1 'песок 0 с.

Чтобы правильно идентифицировать ваши пакеты, добавьте 3-4 байта идентификации к каждому из передаваемых вами кадров. Добавление большего количества байтов идентификации уменьшит вероятность того, что шум будет интерпретирован как ваш пакет. Обычно достаточно 3-4 байт.

Кроме того, требуется некоторое время (несколько длительностей в битах), чтобы отрегулировать порог с уровнем передаваемого сигнала, поэтому, если вы не ведете непрерывную передачу, лучше отправить 1 или 2 ненужных байта перед передачей любого кадра (поскольку начальные биты имеют некоторые значения). вероятность повреждения из-за неправильного начального порогового уровня).

Аппаратное решение: Обычный набор микросхем, используемый в таком модуле приемника, — PT4317. Если вы проверите таблицу данных , то увидите, что входы слайсера данных доступны вне кристалла. Таким образом, порог нарезки можно отрегулировать вручную, правильно назначив пороговое напряжение на вывод DSN. Но это поставит под угрозу чувствительность приемника и, следовательно, самый большой диапазон, с которым он может работать. Вам придется поэкспериментировать с различными значениями напряжения на этом выводе и диапазоном, который он производит.

Да и это именно так. Например, когда я отправляю 6 байтов данных, последние байты всегда благополучно прибывают и появляются на ЖК-дисплее, но первые два байта очень противоречивы, они могут быть истинными или ложными. Спасибо за ваш совет.

Это не обязательно должна быть шумная среда, это также сам приемник, который производит шум. В большинстве устройств с частотой 433 МГц это решается с помощью кодирования данных . Таким образом, пакеты данных состоят из самих данных и дополнительного кода, чтобы микроконтроллер мог распознавать пакеты данных и отличать их от шума.

Существуют библиотеки для Arduino для передачи данных свыше 433 (или 315) МГц. Одним из примеров является библиотека Virtualwire . Я предлагаю вам изучить их, чтобы увидеть, как это делается.

Просто не ожидайте «чистого» канала, когда вы не отправляете данные. Связь на частоте 433 МГц так не работает. Они спроектированы с чрезвычайно простым (и дешевым) приемником и передатчиком с использованием модуляции OOK (также простой), «умный» бит затем выполняется в программном обеспечении путем корреляции, распознавания образов и т. д. Поскольку это для низких скоростей передачи данных, это можно сделать даже в простом микроконтроллере.

В диапазоне 433 МГц нет ничего, что делало бы его особенно шумным, хотя время от времени возможны помехи от других пользователей этого диапазона, вероятно, это не то, что вы видите.

Простые приемники могут увеличивать усиление в отсутствие сигнала до тех пор, пока их собственный внутренний шум не будет декодирован как ложный сигнал, и, вероятно, именно это вы и видите: программная фильтрация вряд ли поможет.

Проверьте техническое описание вашего приемника: там может быть выход RSSI - (Индикатор силы принятого сигнала) - обычно аналоговое напряжение, представляющее силу входящего сигнала (и не очень точно).

Один из подходов состоит в том, чтобы считать это в аналоговом (АЦП) канале и игнорировать выходной сигнал приемника, если RSSI ниже определенного уровня. Если вы не пытаетесь достичь максимального диапазона, вы можете установить этот уровень достаточно высоким, чтобы декодировать только сильный сигнал с небольшим количеством ошибок.

В противном случае вам может потребоваться комбинировать с какой-либо другой схемой устранения ошибок, например, повторной передачей ошибочных сообщений или кодов исправления ошибок.

Дешевые приемники 433 МГц, как правило, представляют собой регенеративные конструкции, которые, по сути, всегда что-то «принимают» и затихают только при наличии определяющего сигнала. Это отдаленно похоже на гиперактивную АРУ на лучшем приемнике, но немного отличается и гораздо более примитивно.
@ChrisStratton Правильно (хотя я думаю, вы имеете в виду сверхрегенеративный). И не у всех есть RSSI: лучше найти тот, у которого он есть.

Мысленный эксперимент: снять антенну приемника, заменить на короткое замыкание от соединения антенны на печатной плате к земле на печатной плате. Поместите приемник в идеальную клетку Фарадея, и только когда вы охладите его до температуры, близкой к абсолютному нулю, автоматическая регулировка усиления в приемнике не будет достаточно чувствительной, чтобы уловить шум и усилить его.

Обычно это регенеративные приемники, так что это не просто шум, а реальное поведение самого приемника в отсутствие сигнала.