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

 
 
> Передача сигналов по радиоканалу., Передача на частоте 433.92 МГц
Masterskaia
сообщение Nov 6 2009, 11:28
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452



Описание устройства:
Есть 50 столиков и одна барная стойка. Клиент, сидящий за столиком №3, нажимает на кнопку передатчика. У бармена, любым удобным для меня способом, появляется сигнал о том, что официанта вызывает столик №3.
У меня есть готовая конструкция такого устройства. В конструкции один большой недостаток. Если на столике №2 и №3 одновременно нажали на кнопку, то к бармену поступит только один сигнал, второй потеряется или вообще не поступит ни один сигнал, так как передатчики работают на одной частоте и могут перекрыть друг друга.
Я решил поступить иначе. Буду использовать кнопки с обратной связью. Допустим, столик №3 нажал кнопку, и столик №2 нажал кнопку. Устройство у бармена постоянно по очереди опрашивает все кнопки. Если кнопка №2 была нажата, то при опросе этой кнопки она незамедлительно передаст код. Тем временем кнопка №3 то же была нажата, но пока на неё не поступит её же код, идентификация, она не передаст в эфир свой код обратно на приёмник.
Из всего проекта я не могу решить только одну проблему, о которой я и пишу ниже. Надеюсь на Вашу помощь.
Проект пишу на языке С, он мне достаточно хорошо знаком.

Опишу свою задачу:
1) Цель проекта.
2) Аппаратура.
3) Проделанная работа.
4) Полученный результат.
5) Вопрос.

Цель проекта:
Необходимо по радиоканалу (433.92 МГц) передать сигнал в COM порт компьютера с предварительным редактированием данных.

Аппаратура:
Передатчик – набор брелков от гаражных ворот, автосигнализаций, и ещё от чего то, с частотой 433.92 Мгц.
Приёмник – микросхема RX5000 с преобразователем уровня с 3 вольт до 5 вольт и подключённая к Atmega 8 к UART.
Принципиальная схема:
Прикрепленное изображение


Проделанная работа:
1) Создал проект в CVAVR с именем UART. Сгенерировал первоначальные настройки

Прикрепленное изображение
Прикрепленное изображение


Программа сгенерировала код в который я вставил в бесконечный цикл только вот эту строку:

Код
while (1) //бесконечный цикл
      {
      putchar(getchar()); // Вывод данных в терминал
      };


2) Скомпилировал код программы, стёр микроконтроллер, прошил скомпилированный файл. Прошил фузы и Лок биты:


Lock bits:
LB1=1
LB2=1
BLB01=1
BLB02=1
BLB11=1
BLB12=1


Fuse bit:
CKSEL0=1
CKSEL1=0
CKSEL2=1
CKSEL3=1
SUT0=1
SUT1=1
BODEN=1
BODLEVEL=1
BOOTRST=1
BOOTSZ0=1
BOOTSZ1=1
EESAVE=1
CKOPT=1
WDTON=1
RSTDISBL=1




Включил терминал на ПК, настроил COM порт согласно настройкам МК – 9600, 8N1. В терминал сразу же стал передаваться «мусор» шум эфира. Как только я нажимал кнопки различных передатчиков, в терминал поступали упорядоченные символы. При доскональном рассмотрении ситуации я нашел конец и начало передаваемой передачи кода.
Вернусь немного назад. У меня есть рабочая прошивка устройства, на которой я проверял работу всех имеющихся у меня пультов. Правда схема МК немного отличалась от моей схемы. Отличие состояло в том, что выход приёмника подключен не на вход UART, а к выводам PD2(INT0) и PD3(INT1) через сопротивления. Ниже привожу часть схемы.

Прикрепленное изображение


С этой рабочей прошивкой и этой схемой я принимал на терминал вот такие сигналы в ASCII
0001A46F>
0001A46F>
0002867E<
02C467CE>
02C467FE>
0001A46F>
0001A46F>
И вот такой сигнал я принял в HEX стандарте.
30 0 30 31 41 34 36 46 3E 0D 0A


Полученный результат.
Вернёмся к моему варианту. Как я уже говорил, при включении МК у меня в терминал выводился «мусор» И после нажатия на кнопки различных передатчиков я принимал упорядоченный набор символов. Но этот упорядоченный набор меня ввёл в тупик. Вот он в HEX стандарте при передаче вот этого кода 0001A46F>

F8 F8 F8 C0 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 C0 C0 C0 C0 C0
F8 F8 F8 C0 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 C0 C0 80 C0 C0
F8 F8 F8 C0 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 C0 C0 C0 C0 C0
F8 F8 F8 80 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 C0 80 C0 C0 C0

Я не могу дать объяснение этому сигналу и соответственно сделать какие то выводы.

Вопросы:
1) Что я в своём проекте мог сделать не так?
2) Как мне организовать проект, что бы я выход приёмника смог подключить к любому входу МК, кроме входа UART, а с выхода UART мог передать полученный сигнал от приёмника в терминал?
3) Смогу ли я при решении вопроса №2 предварительно записать принятый с приёмника сигнал в переменную и сделать с ним необходимые мне вычисления?
4) Как мне определить начало и конец посылки сигнала? Я представляю себе определение начала и конца сигнала по стартовому и стоповому биту. Так как они равны 0 то я могу из всего переданного сигнала программой написанной для ПК выделить только один, нужный мне сигнал.
5) Какие есть способы получения нужного мне сигнала из всей повторяющейся посылки?
Прошу всех желающий откликнутся и привести в пример рабочий кусок кода с описанием. Это мой первый проект с AVR, не считая включения светодиодов и кнопок.


--------------------
Всегда в поиске...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Masterskaia
сообщение Nov 6 2009, 13:39
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452



Уважаемые участники данной темы, я искренне признателен Вам всем за присланные Вами советы. Но у меня пока остался открытым следующий вопрос:
Как мне организовать проект, что бы я выход приёмника смог подключить к любому входу МК, кроме входа UART, а с выхода UART мог передать полученный сигнал от приёмника в терминал?


--------------------
Всегда в поиске...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Nov 6 2009, 14:08
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Masterskaia @ Nov 6 2009, 16:39) *
Как мне организовать проект, что бы я выход приёмника смог подключить к любому входу МК, кроме входа UART, а с выхода UART мог передать полученный сигнал от приёмника в терминал?

Начать с правильного выбора элементной базы. Отказаться от дорогого и неудобного RX5000 и уж, разумеется, не стоит полагаться на прозрачную передачу через него асинхронной посылки с UART. Программный-то полудуплексный UART на небольшой скорости сделать не просто, а очень просто. На любой ноге (хотя предпочтительно для этого использовать аппаратные средства, типа ICP). Но не стоит так делать, честное слово. Все ж надо делать модем. А еще лучше, по нынешним временам - взять радиотракт с встроенным модемом. Например, Chipcon/TI CC1100 (или CC2500). Он заодно (и в первую очередь, исходя из озвученных требований) решит и проблему обратного канала. Можно взять и микроконтроллер с встроенным трансивером (из того же выводка от TI), но это получится дороже и может оказаться менее удобным. Atmega8 (или 48 или 88) и CC1100 - очень удобная связка. Но в освоении CC11xx несколько сложнее, да. Зато потом, после освоения - полная свобода (говорю как автор десятка изделий на этой связке, с общим тиражом уже под 100K, если не больше).
Go to the top of the page
 
+Quote Post
Masterskaia
сообщение Nov 6 2009, 14:26
Сообщение #4





Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452



Цитата(rx3apf @ Nov 6 2009, 16:08) *
Начать с правильного выбора элементной базы. Отказаться от дорогого и неудобного RX5000 и уж, разумеется, не стоит полагаться на прозрачную передачу через него асинхронной посылки с UART. Программный-то полудуплексный UART на небольшой скорости сделать не просто, а очень просто. На любой ноге (хотя предпочтительно для этого использовать аппаратные средства, типа ICP). Но не стоит так делать, честное слово. Все ж надо делать модем. А еще лучше, по нынешним временам - взять радиотракт с встроенным модемом. Например, Chipcon/TI CC1100 (или CC2500). Он заодно (и в первую очередь, исходя из озвученных требований) решит и проблему обратного канала. Можно взять и микроконтроллер с встроенным трансивером (из того же выводка от TI), но это получится дороже и может оказаться менее удобным. Atmega8 (или 48 или 88) и CC1100 - очень удобная связка. Но в освоении CC11xx несколько сложнее, да. Зато потом, после освоения - полная свобода (говорю как автор десятка изделий на этой связке, с общим тиражом уже под 100K, если не больше).

Только, что ознакомился сописанием CC2500, приглянулась. Но сейчас я не готов приобрести эту микросхему, но обязательно её на неделе опробую. Если Вы разрабатывали конструкции которые используют часть моей задумки, прошу поделиться опытом. У Вас наверное был опыт работы с моими исходными данными и Вы наверное так же стакивались с моими проблеммами. Я уже отключал от МК приёмник и напрямую аппаратный UART МК подключал к терминалу. В терминале я писал что либо и при отправке в МК я незамедлительно получал то же, что и отправил обратно в терминал. Поэтому осмелюсь сделать вывод:
МК программно правильно настроен на работу с COM потром.
А вот аппаратно не уверен. Так как с приёмника я получаю какую то постоянную последовательность кода, но на совершенно не похожа на то, чего ожидалось получить. Поэтому либо проблемма со скоростью, что мало вероятно, либо, но это вообще абсурд, сигнал с приёмника нужно сначало инвертировать, и только потом отправлять на UART МК. И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает?


--------------------
Всегда в поиске...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Nov 6 2009, 14:50
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Masterskaia @ Nov 6 2009, 17:26) *
Только, что ознакомился сописанием CC2500, приглянулась. Но сейчас я не готов приобрести эту микросхему, но обязательно её на неделе опробую. Если Вы разрабатывали конструкции которые используют часть моей задумки, прошу поделиться опытом.

Поскольку я пишу на asm, то вряд ли мои наработки пригодятся. И, естественно, know how никто не раскрывает wink.gif
Цитата
Так как с приёмника я получаю какую то постоянную последовательность кода, но на совершенно не похожа на то, чего ожидалось получить. Поэтому либо проблемма со скоростью, что мало вероятно, либо, но это вообще абсурд, сигнал с приёмника нужно сначало инвертировать, и только потом отправлять на UART МК. И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает?

Лениво вникать в предисторию, поэтому спрошу, как я понял - так что, Вы ожидаете, что принятый приемником RX5000 сигнал брелка можно передать в компьютер через UART непосредственно ? Просто забудьте это как страшный сон, и больше не вспоминайте. Начинать надо с принципов работы кодера в брелке, с формата его выходных данных. Просто в данном случае это не нужно и неинтересно, поскольку для решения поставленной задачи неприменимо (по причине абсолютной необходимости обратного канала. Которая, кстати, проистекает в первую очередь вовсе не из-за гипотетической возможности одномоментного нажатия кнопок на двух брелках)...
Цитата
И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает?

Это про обработку выхода RX5000 ? Превратить входной сигнал в последовательность "0" и "1", декодировать, превратить в осмысленную посылку для компьютера и передать по UART. А как декодировать - зависит от формата посылки, определяемой кодером. И уж, конечно, это не 115200,8,n,1, и штатный UART тут не в помощь (впрочем, могу представить себе вариант, когда можно было бы применить, в конце концов, UART успешно используют при общении, скажем, с 1-wire).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Masterskaia   Передача сигналов по радиоканалу.   Nov 6 2009, 11:28
- - _dem   Мне кажется, что с вашими исходными данными задача...   Nov 6 2009, 11:37
- - Masterskaia   Я уже морально готов к тому, что бы использовать п...   Nov 6 2009, 11:45
|- - ut1wpr   Цитата(Masterskaia @ Nov 6 2009, 14:45) Я...   Nov 6 2009, 13:13
|- - Masterskaia   Цитата(ut1wpr @ Nov 6 2009, 15:13) Проток...   Nov 6 2009, 13:24
|- - mempfis_   Если готовы поменять радиочастотную часть то проше...   Nov 6 2009, 13:27
- - Vetal-Soft   Так происходит по тому что приемник rx5000 пререда...   Nov 6 2009, 11:58
- - defunct   Цитата(Masterskaia @ Nov 6 2009, 13:28) 1...   Nov 6 2009, 12:03
- - Masterskaia   Вроде при сборке этого приёмника в datasheet ничег...   Nov 6 2009, 12:03
|- - defunct   Цитата(Masterskaia @ Nov 6 2009, 14:03) В...   Nov 6 2009, 12:05
- - Masterskaia   У меня Atmega8L она работает до 8 МГц. Поэтому в с...   Nov 6 2009, 13:00
|- - defunct   Цитата(Masterskaia @ Nov 6 2009, 15:00) П...   Nov 6 2009, 14:06
- - mdmitry   Почитайте статьи по организации систем беспроводны...   Nov 6 2009, 13:49
- - Vetal-Soft   Цитата(Masterskaia @ Nov 6 2009, 18:39) У...   Nov 6 2009, 14:05
|- - Masterskaia   Цитата(Vetal-Soft @ Nov 6 2009, 16:0...   Nov 6 2009, 14:10
|- - defunct   Цитата(Masterskaia @ Nov 6 2009, 16:10) я...   Nov 6 2009, 14:16
- - Vetal-Soft   Цитата(Masterskaia @ Nov 6 2009, 19:10) У...   Nov 6 2009, 14:31
|- - Masterskaia   Цитата(Vetal-Soft @ Nov 6 2009, 16:3...   Nov 6 2009, 14:44
|- - rx3apf   Цитата(Vetal-Soft @ Nov 6 2009, 17:3...   Nov 6 2009, 16:03
- - Masterskaia   Решение с двумя UART конечно же интересное но когд...   Nov 6 2009, 14:31
|- - defunct   Цитата(Masterskaia @ Nov 6 2009, 16:31) н...   Nov 6 2009, 14:40
- - Vetal-Soft   Цитата(Masterskaia @ Nov 6 2009, 19:31) Р...   Nov 6 2009, 14:38
- - Masterskaia   И так, из всего написанного делаю следующие выводы...   Nov 6 2009, 15:27
- - Masterskaia   Проанализировав datasheet HCSxxx стало понятно, чт...   Nov 6 2009, 16:11
|- - rx3apf   Цитата(Masterskaia @ Nov 6 2009, 19:11) Е...   Nov 6 2009, 16:18
- - Masterskaia   Меня непосредственно интересует HCS301 KEELOQ Cod...   Nov 6 2009, 16:29
|- - rx3apf   Цитата(Masterskaia @ Nov 6 2009, 19:29) М...   Nov 6 2009, 16:44
|- - defunct   Цитата(rx3apf @ Nov 6 2009, 18:44) Себест...   Nov 6 2009, 17:28
||- - rx3apf   Цитата(defunct @ Nov 6 2009, 20:28) У CC2...   Nov 6 2009, 17:41
|- - mempfis_   Цитата(rx3apf @ Nov 6 2009, 20:44) Себест...   Nov 6 2009, 17:47
- - demaven   Уважаемые, а можно ли подавать на вход передатчика...   Nov 9 2009, 01:40
|- - niXto   Цитата(demaven @ Nov 9 2009, 04:40) Уважа...   Nov 9 2009, 09:43
- - sensor_ua   ЦитатаДля передачи по радиоканалу, как и по длинны...   Nov 9 2009, 05:55
- - Masterskaia   И так, продолжая тему я закинул техзадание своим к...   Nov 9 2009, 13:24
|- - Qwertty   Цитата(Masterskaia @ Nov 9 2009, 16:24) Е...   Nov 9 2009, 23:17
- - demaven   У родителя темы две проблемы - надежность идентифи...   Nov 10 2009, 01:12
|- - rx3apf   Цитата(demaven @ Nov 10 2009, 04:12) Один...   Nov 10 2009, 09:44
- - Andrew_KMR   А почему не применить скажем nRF2401, на 2.4ГГц......   Nov 29 2009, 01:23
- - V_G   Подкину еще бензинчика в огонь 1. А если не зацикл...   Nov 29 2009, 02:55


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

 


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


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