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

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

|
Начитался всякой доки, примеров по RC-5 ... ничего пока не получилось.
Передатчик у меня - Mega8515L, приемник - Mega32. Сигнальный провод повесил на INT1 Mega32, прерывание возникает (светодиод моргает, на LCD сообщения правильные идут), таймер запускается, а потом - пропасть. Такое ощущение, что где-то я во временных интервалах путаюсь. На LCD все сообщения выводит главная программа, а не обработчики.
Нет ли у кого готовой реализации или чего?
Спасибо.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
 |
Ответов
|
Jan 29 2008, 10:54
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(hd44780 @ Jan 29 2008, 13:22)  Да согласен я. Но любой радиообмен этим чреват. Одно дело терять 1% пакетов и совсем другое 50% или еще хуже. Вы смотрели что творится на приемнике когда нет передачи ? Посмотрите, очень позновательно... Если все же решите делать прием через UART, то можете попробовать следующее: первый байт отправлять типа 0b00001111 а за ним отправлять уже значимую часть на приеме изначально UART выключен на прием и нога RX сконфигурированна как вход с подтяжкой первый байт(0b00001111) принимаете ручками(прерываниями) как просто импульс 0 длинной 5бит(4+1старт) отсчитывая время таймером если импульс такой(чуть меньшей) длинны был принят, за время пока идут 1111 включаете прием UART на RX и всю значащую последовательность принимаете UARTом. Только нужно иметь в виду что 0 на UART должен быть активным уровнем для передатчика/приемника, те возможно понадобятся инверторы
|
|
|
|
|
Jan 29 2008, 11:21
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(=GM= @ Jan 29 2008, 14:12)  Тоже плохо. Кто мешает помехе налететь, пока идут эти 1111 или даже когда идёт стоп-бит? Уарт зацепится за ложный старт-бит и весь байт, а с ним и весь пакет- псу под хвост. Мешает АРУ, который за время 00000 настроится на наш сигнал и уже не будет ловить маломощные помехи со всей округи на полном усилении. Конечно это не панацея и при наличии других передатчиков в зоне видимости пакеты все равно будут пропадать, но такой настроечный байт позволит уменьшить вероятность пропадания пакетов в разы. А по хорошему конечно нужно ловить каждый битик отдельно.
|
|
|
|
|
Jan 29 2008, 12:35
|

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

|
Цитата(singlskv @ Jan 29 2008, 11:21)  Мешает АРУ, который за время 00000 настроится на наш сигнал и уже не будет ловить маломощные помехи со всей округи на полном усилении Похоже вы хотите бороться только с шумами, которые вытягивает ару, когда нет сигнала. Но в жизни всё не совсем так происходит. Ещё есть помехи, сопоставимые по уровню с вашим сигналом, они легко пролезут на выход приёмника, и никакое ару ничего с ними поделать не сможет. Выглядеть это будет так: идёт уровень логической 1, потом вдруг, раз, и врезка, и вы получаете ложный стартовый бит и так много раз. Подавитель импульсных помех, о котором я писал, легко подавляет такие врезки и вырезки, потерь пакетов будет 0,1% или меньше...Подавитель тоже не панацея, но гораздо лучше, чем передавать 0х07 в начале пакета и, тем более, манчестер под рс-232. Конечно, лучше всего сделать согласованный или корреляционный фильтр с решающим устройством, но на атмеловском мк это сложная задача, хотя и подъёмная.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jan 29 2008, 13:34
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(=GM= @ Jan 29 2008, 15:35)  Похоже вы хотите бороться только с шумами, которые вытягивает ару, когда нет сигнала. Но в жизни всё не совсем так происходит. Ещё есть помехи, сопоставимые по уровню с вашим сигналом, они легко пролезут на выход приёмника, и никакое ару ничего с ними поделать не сможет. Выглядеть это будет так: идёт уровень логической 1, потом вдруг, раз, и врезка, и вы получаете ложный стартовый бит и так много раз. Не только бороться с шумами, но и еще точно определять момент включения UART на прием. Если его включение будет в районе 5%длительности бита от начала предполагаемой посылки то вероятность поймать шум становится очень маленькой. Цитата Подавитель импульсных помех, о котором я писал, легко подавляет такие врезки и вырезки, потерь пакетов будет 0,1% или меньше... Такой фильтр у меня стоит в каждой проге, например как подавитель дребезга кнопок, дискретных входов, итд Цитата Подавитель тоже не панацея, но гораздо лучше, чем передавать 0х07 в начале пакета и, тем более, манчестер под рс-232. Конечно, лучше всего сделать согласованный или корреляционный фильтр с решающим устройством, но на атмеловском мк это сложная задача, хотя и подъёмная. Посылка 0x07 это только как вариант прикручивания всего к UART, и использовать его нужно совместно с манчестером. Кстати, не забывайте что у UART тоже голосующая схема работы, так что на небольших скоростях все должно быть Ok. Ну а сам я реализовывал все чуть по другому...
|
|
|
|
|
Jan 29 2008, 14:05
|

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

|
Цитата(singlskv @ Jan 29 2008, 13:34)  Кстати, не забывайте что у UART тоже голосующая схема работы, так что на небольших скоростях все должно быть Ok. Ну а сам я реализовывал все чуть по другому... Голосующая схема останется ни при чём, если уарт захватился за ложный старт-бит. Честная реализация должна быть такой: преамбула-подходящая модуляция (бпск, кпск,...), снятие допплера-модем, фазовый пуск, свёрточное декодирование, перемежение, блочное декодирование, данные-контрсумма. Ну это, конечно, для серьёзных задач, типа 256 каналов, два скачка до исз,...и не по зубам авр.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
hd44780 Помогите с реализацией Манчестерского кода Jan 27 2008, 09:55 =VRA= Я все понимаю - бывает очень нужно, но зачем траха... Jan 27 2008, 10:37 hd44780 Да радиомодули есть самодельные (http://cxem.net/r... Jan 27 2008, 10:42 AVR Цитата(hd44780 @ Jan 27 2008, 13:42) Да р... Jan 27 2008, 11:20  mrKirill Цитата(AVR @ Jan 27 2008, 16:20) Прошу пр... Jan 27 2008, 19:08 =VRA= Тоже не шибко оптимально - лучше уж бы FSK тогда, ... Jan 27 2008, 11:05 hd44780 Почитаю, спасибо. Jan 27 2008, 11:11 hd44780 Народ пишет, что работает нормально.
Насчет упрощ... Jan 27 2008, 13:40 Kuzmi4 2 hd44780 - посмотрив в теме "Исходники прог... Jan 28 2008, 14:47 hd44780 Да, я видел.
Но тут в интернете заманчивое решени... Jan 29 2008, 08:07 singlskv Цитата(hd44780 @ Jan 29 2008, 11:07) Но т... Jan 29 2008, 09:16 hd44780 Не знаю пока.
Хоть через UART, он тоже может всяк... Jan 29 2008, 09:41 singlskv Цитата(hd44780 @ Jan 29 2008, 12:41) Пока... Jan 29 2008, 09:58  =GM= Цитата(hd44780 @ Jan 29 2008, 08:07) Но т... Jan 29 2008, 10:47       singlskv Цитата(=GM= @ Jan 29 2008, 17:05) Голосую... Jan 29 2008, 19:35 hd44780 Спасибо, когда начну экспериментировать - проверю ... Jan 29 2008, 11:11 GDI Если есть он, этот АРУ....
Я вот тут в другом сооб... Jan 29 2008, 11:33 _Pasha Вставлю и свои 5 коп.
1. Преамбула(продувка канала... Jan 29 2008, 20:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|