реклама на сайте
подробности

 
 
> Кодер и декодер на AVR
Alex_1811
сообщение Nov 1 2006, 09:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



Хочу сделать 4-канальную систему радиоуправления на AVR (ATtiny2313, 90S2113)
Радиомудули есть но проблема с програмой для МК (кодер декодер).
Буду благодарен любой помощи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
singlskv
сообщение Nov 1 2006, 22:28
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 2 2006, 07:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Nov 2 2006, 05:28) *
Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
Для этого существуют протоколы типа 1 мастер - несколько слэйвов, например тот же MODBUS


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 2 2006, 22:22
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Nov 2 2006, 10:03) *
Цитата(singlskv @ Nov 2 2006, 05:28) *
Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
Для этого существуют протоколы типа 1 мастер - несколько слэйвов, например тот же MODBUS

ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 2 2006, 22:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 2 2006, 22:53
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Nov 3 2006, 01:30) *
Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?

prottoss
А Вы пробовали реально(в железе) использовать UART для передачи данных по RF ?
Если пробовали, то раскажите что получилось.
Очень интересно.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 2 2006, 22:59
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Nov 3 2006, 05:53) *
Цитата(prottoss @ Nov 3 2006, 01:30) *

Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?

prottoss
А Вы пробовали реально(в железе) использовать UART для передачи данных по RF ?
Если пробовали, то раскажите что получилось.
Очень интересно.
Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 2 2006, 23:31
Сообщение #8


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Nov 3 2006, 01:59) *
Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?

Да, у меня есть некоторый опыт в этом вопросе.
ИМХО:
1. RF каналы очень "шумные"(особенно в "открытых" диапазонах например: 433Мгц-сигнализации)
2. Основная задача отделить "свое" от "чужого".
3. Собственно из первых двух пунктов и следует, что желательно(по возможности),
отслеживать принимаемый сигнал в реалтайме, с возможностью рестарта, если начали
принимать что-то не то...
Собственно, UART, к сожалению не дает нам такой возможности sad.gif

P.S. Проводил следующий эксперимент:
ловим переход 0->1 на внешнем прерывании и запускаем таймер на опрос по
серединкам битов в посылке(то есть без контроля длительности стартового бита), так
вот, оказалось что нужный нам код приходит за единицы секунд, хотя мы его
не посылали blink.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 3 2006, 07:40
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Nov 3 2006, 06:31) *
Цитата(prottoss @ Nov 3 2006, 01:59) *

Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?

Да, у меня есть некоторый опыт в этом вопросе.
ИМХО:
1. RF каналы очень "шумные"(особенно в "открытых" диапазонах например: 433Мгц-сигнализации)
2. Основная задача отделить "свое" от "чужого".
3. Собственно из первых двух пунктов и следует, что желательно(по возможности),
отслеживать принимаемый сигнал в реалтайме, с возможностью рестарта, если начали
принимать что-то не то...
Собственно, UART, к сожалению не дает нам такой возможности sad.gif

P.S. Проводил следующий эксперимент:
ловим переход 0->1 на внешнем прерывании и запускаем таймер на опрос по
серединкам битов в посылке(то есть без контроля длительности стартового бита), так
вот, оказалось что нужный нам код приходит за единицы секунд, хотя мы его
не посылали blink.gif
Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?


--------------------
Go to the top of the page
 
+Quote Post
xemul
сообщение Nov 3 2006, 15:23
Сообщение #10



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(prottoss @ Nov 3 2006, 10:40) *
Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?

Неужели обязательно самому наступать на все возможные и невозможные приборы, предназначенные преимущественно для удаления продуктов жизнедеятельности растительных организмов?smile.gif
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
U_S_ART в контексте треда поминать вообще не стОит.
Или посмотрите в каком-нибудь MicroCap'e, Proteus'e etc на картинки сигнала UART, пропущенного через диф. цепочку и восстановленного компаратором - это процентов на 50 покажет проблемы передачи и приема ASK сигнала. Останется только шум наложить.smile.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 4 2006, 11:39
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)


--------------------
Go to the top of the page
 
+Quote Post
Alex_1811
сообщение Nov 6 2006, 09:26
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



Цитата(prottoss @ Nov 4 2006, 15:39) *
Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)



За форумом я слежу. Конкретных предложений по реализации устройства пока не вижу.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 6 2006, 21:30
Сообщение #13


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Alex_1811 @ Nov 6 2006, 12:26) *
Цитата(prottoss @ Nov 4 2006, 15:39) *

Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)



За форумом я слежу. Конкретных предложений по реализации устройства пока не вижу.

А каких конкретных предложений по реализации Вы ожидаете после вот такого
первого поста:
Цитата
Хочу сделать 4-канальную систему радиоуправления на AVR (ATtiny2313, 90S2113)
Радиомудули есть но проблема с програмой для МК (кодер декодер).
Буду благодарен любой помощи.

А какие есть радиомодули?
А какая Вам необходима скорость передачи ?
Какие данные нужно передавать и как часто?
Главное доставить данные, или у Вас некоторый "реалтайм"?
и т.д. и т.п.

Если Вы хотите ответов по существу, то и вопросы задавайте поконкретнее... smile.gif
Go to the top of the page
 
+Quote Post
Alex_1811
сообщение Nov 7 2006, 08:25
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



[/quote]
А какие есть радиомодули?
А какая Вам необходима скорость передачи ?
Какие данные нужно передавать и как часто?
Главное доставить данные, или у Вас некоторый "реалтайм"?
и т.д. и т.п.

Если Вы хотите ответов по существу, то и вопросы задавайте поконкретнее... smile.gif
[/quote]

Микросборки FRM RX5000 TX5000.
Скорость ~ 20 пакетов/сек, 16-бит пакет (ID пульта+состаяние кнопок+проверка на четность).
Посылка данных передается только после нажатия кнопки пульта.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 7 2006, 22:27
Сообщение #15


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Alex_1811 @ Nov 7 2006, 11:25) *
Микросборки FRM RX5000 TX5000.
Скорость ~ 20 пакетов/сек, 16-бит пакет (ID пульта+состаяние кнопок+проверка на четность).
Посылка данных передается только после нажатия кнопки пульта.

Откуда поступает тактовая на мк в передатчике/приемнике ?
Кварц, или внутренний RC генератор ?
Если RC генератор, то нужно озаботиться синхронизацией по стартовому биту, а если
кварц, тогда все намного проще

ИМХО, TX/RX5000 для Вашей задачи дороговатое решение
Go to the top of the page
 
+Quote Post
Alex_1811
сообщение Nov 8 2006, 07:38
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



Цитата(singlskv @ Nov 8 2006, 02:27) *
Откуда поступает тактовая на мк в передатчике/приемнике ?
Кварц, или внутренний RC генератор ?
Если RC генератор, то нужно озаботиться синхронизацией по стартовому биту, а если
кварц, тогда все намного проще

ИМХО, TX/RX5000 для Вашей задачи дороговатое решение


Тактовая частота от кварца.

TX/RX5000 дорого, предложите модули дешевле.
Go to the top of the page
 
+Quote Post
ReM37
сообщение Dec 11 2006, 01:10
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 3-11-06
Пользователь №: 21 954



Мне нужно передавать данные по радиоканалу (скорость 1200-4800). Пробовал такие модули
http://home.att.net/~wzmicro/rf_xmitter_receiver.htm
но приемник шумит и принимает что угодно даже если передатчик выключен. Подключал к USART'у. Передать хоть байт правильно неполучаеться. Растояние было не больше 2 метров. sad.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 11 2006, 10:15
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(ReM37 @ Dec 11 2006, 01:10) *
но приемник шумит и принимает что угодно даже если передатчик выключен.

Возможно, Вы не поверите, но так должно быть! laugh.gif Это происходит, так как АРУ повышает чувствительность приемника при снижении можности принимаемого сигнала. В таком ценовом диапазоне радиомодули настолько просты, что предполагается, что Вы сами будете контролировать достоверность приема сигнала. Например, путем анализа аналогового сигнала, а не цифрового. Или и того, и другого. И, конечно же, добавлением в поток специальной служебной информации, алгоритмов перезапросов и проч.
Я использовал приемники Linx с кодированием Holtec, 300 метров открытого пространства обеспечивается легко и непринужденно. Дальность сильно зависит от условий.
А уж советы по поводу выбора микроконтроллера... Что тут сказать? smile.gif Я использовал AtMega 32.
P.S. Кстати, создание помех радиобрелку активно используется при кражах автомашин.
В автоматизации, как медицине - должен работать принцип - "НЕ НАВРЕДИ!" w00t.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex_1811   Кодер и декодер на AVR   Nov 1 2006, 09:49
- - Deka   Может начать хотя-бы с блок схемы? А не с кодеров/...   Nov 1 2006, 11:29
- - Alex_1811   Нужно просто включать и выключать 4 устройства.   Nov 1 2006, 14:30
|- - Nanobyte   Цитата(Alex_1811 @ Nov 1 2006, 18:30) Нуж...   Nov 1 2006, 14:51
||- - prottoss   Цитата(Nanobyte @ Nov 1 2006, 21:51) Цита...   Nov 1 2006, 16:19
||- - Alex_1811   Я НЕ ТОРОРИСТ!!!!!!!...   Nov 1 2006, 17:44
||- - prottoss   Цитата(Alex_1811 @ Nov 2 2006, 00:44) Я Н...   Nov 1 2006, 17:57
|||- - singlskv   Цитата(prottoss @ Nov 1 2006, 20:57) Цита...   Nov 1 2006, 21:23
|||- - Nanobyte   Цитата(singlskv @ Nov 2 2006, 01:23) UART...   Nov 1 2006, 21:34
|||- - singlskv   Цитата(Nanobyte @ Nov 2 2006, 00:34) Цита...   Nov 1 2006, 21:41
|||- - Nanobyte   Цитата(singlskv @ Nov 2 2006, 01:41) Я ко...   Nov 1 2006, 22:13
||- - =GM=   Цитата(Alex_1811 @ Nov 1 2006, 17:44) Я Н...   Nov 2 2006, 10:35
|- - =GM=   Цитата(Alex_1811 @ Nov 1 2006, 14:30) Нуж...   Nov 1 2006, 15:28
- - xemul   Если не требуется особой защищенности кода, посмот...   Nov 1 2006, 14:51
- - Harbinger   Радиовзрыватели, к сожалению, только включаются - ...   Nov 1 2006, 15:53
- - xemul   UART, конечно, хорошо и просто, но в чистом виде е...   Nov 1 2006, 17:27
|- - singlskv   Цитата(prottoss @ Nov 3 2006, 10:40) Ну а...   Nov 3 2006, 10:50
||- - prottoss   Цитата(singlskv @ Nov 3 2006, 17:50) Цита...   Nov 3 2006, 14:51
||- - singlskv   Цитата(prottoss @ Nov 3 2006, 17:51) .......   Nov 3 2006, 15:21
|- - ReM37   Верю, что так и должно быть. Вот прочитал в фор...   Dec 11 2006, 11:41
- - Валентиныч   Для начала познакомтесь со стандартными принципами...   Nov 2 2006, 11:27
|- - singlskv   Цитата(Валентиныч @ Nov 2 2006, 14:27) Но...   Nov 2 2006, 22:35
- - Harbinger   Скорость 2400 устроит? Есть лобовое решение, одно ...   Nov 4 2006, 11:17
- - GDI   http://aly.projektas.lt/Projects/SimpleRFNet/Simpl...   Dec 11 2006, 18:18


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01631 секунд с 7
ELECTRONIX ©2004-2016