|
Помогите с реализацией Манчестерского кода, Для односторонней связи 2-х AVR |
|
|
|
Jan 27 2008, 09:55
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Начитался всякой доки, примеров по RC-5 ... ничего пока не получилось.
Передатчик у меня - Mega8515L, приемник - Mega32. Сигнальный провод повесил на INT1 Mega32, прерывание возникает (светодиод моргает, на LCD сообщения правильные идут), таймер запускается, а потом - пропасть. Такое ощущение, что где-то я во временных интервалах путаюсь. На LCD все сообщения выводит главная программа, а не обработчики.
Нет ли у кого готовой реализации или чего?
Спасибо.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
Guest_=VRA=_*
|
Jan 27 2008, 10:37
|
Guests

|
Я все понимаю - бывает очень нужно, но зачем трахаться и тратить ресурсы с манчестером, когда на борту уже есть готовые аппаратные UART/I2C/SPI? Если все это добро уже занято, то почему бы не сделать дополнительный программный UART/SPI/I2C - опять же манчестер-то зачем?
|
|
|
|
|
Jan 27 2008, 19:08
|
Местный
  
Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391

|
Цитата(AVR @ Jan 27 2008, 16:20)  Прошу прощения за оффтоп, давно уже мечтаю слепить радиомодуль себе какой-нибудь. Интересует насколько хорошо работает схема по этой ссылке? Возможно ли её ещё больше упростить? Работа конкретно чего интересует? Передатчик типовой, сам не раз подобные собирал, начинали работать сразу, без проблем. Приемник еще не собирал, руки не дошли. А вот насчет упрощать, неужели и это сложно? Проще уж точно не найти.
|
|
|
|
|
Jan 29 2008, 09:16
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(hd44780 @ Jan 29 2008, 11:07)  Но тут в интернете заманчивое решение нарыл - RF over UART. Идея в том, что данные кодируются так, что на выходе UART-а получается манчестер. С отправкой через UART никаких проблем нет. А вот с приемом... Подумайте, как Вы будете выделять начало приема данных на фоне помех ?
|
|
|
|
|
Jan 29 2008, 09:58
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(hd44780 @ Jan 29 2008, 12:41)  Пока видится только одно решение - CRC и прочие проверки на уровне всего пакета. Проблема в том, что Вы будете терять кучу пакетов. Если менее чем за длительность передачи одного байта перед реальной посылкой будет помеха которую UART примет за стартовый бит, Вы потеряете весь пакет. А такие помехи будут постоянно...
|
|
|
|
|
Jan 29 2008, 10:47
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(hd44780 @ Jan 29 2008, 08:07)  Но тут в интернете заманчивое решение нарыл - RF over UART. Идея в том, что данные кодируются так, что на выходе UART-а получается манчестер. При этом один байт данных превращается в 2, т.к. в манчестере по сути одному инф. биту соответствует 2 бита Невероятно, самосинхронизирующийся код манчестера передают с помощью асинхронного рс-232 по каналу с импульсными шумами. Извините, но это не просто дурь, а дурь образцово-показательная. Обе кодировки принципиально не подходят к передаче по каналу с импульсными помехами. Вам singlskv правильно сказал, что вы будете терять кучу пакетов. И что помехи будут постоянно. Если уж непременно хотите передавать данные с помощью рс-232, сделайте простейший подавитель импульсных помех, аппаратный или программный. Аппаратный - это просто счётчик с насыщением в 0 и в МАХ, на D-вход которого подаётся входной сигнал от приёмника, а на С-вход подаётся меандр с частотой в 10-20 и более раз выше, чем частота рс-232. Выход берётся со старшего разряда счётчика. Надеюсь, работа такого подавителя интуитивно понятна - он подавляет все импульсные помехи с длительностью не более Тсч*2^(N-1), где N-ёмкость счётчика. Еще проще сделать такой подавитель программно, единственное но - придётся делать программный уарт.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|