Как отсеять мусор на приемнике при беспроводной передаче на частоте 433Мгц?
Собрал устройство беспроводного приема передачи на основе приемника MR-RM-5V и передатчика FS100A. Есть анализ преамбулы, то есть устройство считывает данные, только если им предшевствовала определенная последовательность битиков. По проводу все передается отлично. Но приемник, еще до передачи, ловит в постоянном режиме кучу мусора (случайную последовательность 1 и 0). Вопрос: как мне отсеять этот мусор, чтобы смочь принять передаваемые данные?
Сделайте детектор преамбулы. В радиоэфире всегда будут случайные данные, вы в них должны искать определенную последовательность бит (преамбулу), причем на битовом уровне. Пока преамбула не обнаружена, побайтовый прием не включаем.
towin , я так и сделал, жду определенной последовательности бит (в моем случае, 10101010) и после считываю 8 бит данных. Но считывается мусор, так как за преамбулой не обязательно последовательно идут мои 8 бит
impressive17, преамбула должна быть не 10101010, а что-то более сложное, например 10110010. Это обеспечит более точное позиционирование на уровне битов.
Искать её нужно постоянно, сдвигая биты. UART для этого не подходит.
Далее, обязательно нужна контрольная сумма для пакета данных.
towin, преамбулу поменял. Теперь дольше ждет на линии, потом опять ловит преамбулу, но данные также всегда разные и не верные. Если я правильно понимаю, контрольная сумма позволит выявить наличие ошибки, но так как я передаю всего 8 бит, я и так вижу, что я принял, и что там есть ошибки. Вопрос в том, что между моими битами данных приходят еще и мусор, поэтому в данных в итоге ошибка.
У приемника есть АРУ, которая автоматически настраивается по уровням 0 и 1. Для этого приемнику отправляют 16 чередующихся 0 и 1.
Сама посылка должна быть за кодирована например манчестерским кодированием, т.е. смена 0 на 1 или на оборот должна быть каждый такт передачи, иначе АРУ собьется и появятся ошибки.
Ну и обязательно CRC.