Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: радиоуправление
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
sgen
Подскажите пожалуйста по созданию правильного кода передачи по UART.
Радиоканал использую от автосигнализации. Как правило, код на приемнике принимается правельный , но при сбоях радиоканала, теряется синхронизация в UART, и на дисплее высвечивается левая информация,т. е. выполняется не првельная команда.
GDI
http://aly.projektas.lt/Projects/SimpleRFNet/SimpleRFNet.htm почитайте, хорошая статья, по-моему то что вам надо. Она же печаталась в журнале http://www.soel.ru/issues/?id=299316 на стр.50
bodja74
1Определение поднесущей (такого в этом модуле похоже нет)
2 Преамбула из последовательности 1 и 0
3 Потом синхрослово (то что написано в статье преамбулой)
4 Адресс пакета (или длина ,или то и другое)
5 собственно сам пакет
6 CRC 16бит

Чипконовские камни к всему этому дают еще идкаторы уровня и качества связи.
Имеют раздельный буфер приема и передачи ,кучу индикаторов ,режимов ,каналов ,настроек и фильтров.И все это естественно аппаратно.

МК с чипконом ,по сравнению с тем как должен трудится МК с этими модулями ,просто отдыхают на гаваях smile.gif

Авторам статьи - респект!

ЗЫ неясно ,что за модуляция ,манчестер - это не модуляция .
srg_co
Цитата(sgen @ May 25 2007, 11:36) *
Подскажите пожалуйста по созданию правильного кода передачи по UART.
Радиоканал использую от автосигнализации. Как правило, код на приемнике принимается правельный , но при сбоях радиоканала, теряется синхронизация в UART, и на дисплее высвечивается левая информация,т. е. выполняется не првельная команда.

Не так давно наступил на аналогичные грабли, делал радиуправление для робота, хороший результат: стартовый маркер + кодирование манчестером +контрольная сумма, ограничелся правда СRC8
Tcom
В некоторых радиоканалах можеш получить на выходе приёмника инверсный код, по отношению к тому котрый подан был на модулятор.
Nanobyte
Цитата(Tcom @ May 26 2007, 16:31) *
В некоторых радиоканалах можеш получить на выходе приёмника инверсный код, по отношению к тому котрый подан был на модулятор.

Если приёмники/передатчики всегда будут использоваться одни и те-же, то достаточно инвертировать сигнал при приёме. Если разные, тогда придётся за преамбулой передовать какой-либо синхробайт, и сравнивать принятый байт с синхро- или его инверсией и, соответственно, инвертировать или нет. (как в разнообразных компьютерах, в которых информация записывалась на магнитную ленту).
sgen
yeah.gif Огромное спасибо всем участникам в помощи!
Надыбал ошибку! Вернее усложнил код. Один раз передаю нормальное байт, затем инверсный.
Теперь нормально синхронизируется при сбоях в радиотракте и восстанавливает команду без ошибок.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.