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

 
 
 
Reply to this topicStart new topic
> Система: N передатчиков - 1 приёмник
koluna
сообщение Mar 25 2007, 22:58
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Здравствуйте!

Имеется система, состоящая из 20 передатчиков и 1 приёмника (используются трансиверы DP1203-C433). Т. е., передатчики работают только на передачу, а приёмник - на приём. Интересует алгоритм работы передатчиков, т. е. как эти 20 передатчиков будут передавать данные приёмнику таким образом, чтобы не было каши, последовательно.

Спасибо заранее!


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Mar 25 2007, 23:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



В настоящее время существуют три основных вида разделения каналов приёма:
- временнОе разделение;
- частотное разделение;
- кодовое разделение.

Насколько я понимаю, Вас интересует первое. Для решения проблеммы в общем, передатчики нужно синхронизировать друг с другом.
Для ответа на Ваш вопрос, однако, требуется грамотная постановка задачи, с указанием основных требований к системе (частота переключения каналов, битовая скорость и т.д.).


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
goodwin
сообщение Mar 25 2007, 23:58
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267



Советую посетить сайт AlexandrY ( http://aly.projektas.lt/ )
Там есть очень достойный свободный проект, где все это реализовано.
Go to the top of the page
 
+Quote Post
deemon
сообщение Mar 26 2007, 01:21
Сообщение #4


Знающий
****

Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888



А тут не так уж много вариантов . Если не нужно передавать много информации , и не нужно делать это часто , то можно просто синхронизировать передатчики по времени с использованием точных часов , притом оставляя хороший запас на уход этих часов . А вот если это невозможно - то нужно ставить приёмопередатчики и посылать с базы запросы на каждый блок . Мы тут однажды разрабатывали один проект - снятие показаний с электросчётчиков , разбросанных по всему городу ( до серии так и не дошло , по организационным причинам sad.gif ) , и сразу решили использовать приёмопередатчики на каждом счётчике ( все они должны работать на одной частоте ) , так там была даже заложена возможность ретрансляции данных . Выглядело это примерно так - база запрашивает датчик , например , номер 5 , но пакет данных от него не удалось принять без ошибок после трёх повторов , тогда мы посылаем на датчик номер 4 такую команду - " братишка , передай запрос 5-му , получи от него пакет данных , сохрани в своей памяти , а потом передай нам " smile.gif Ничего особенно сложного в этом нет , а живучесть сети намного повышается .
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Mar 26 2007, 02:01
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(deemon @ Mar 26 2007, 02:21) *
А тут не так уж много вариантов.
................................................................................
..................................

Ничего особенно сложного в этом нет , а живучесть сети намного повышается .
Описанный Вами способ всё-таки довольно сложен (хотя, конечно, устойчивость работы сети таким образом повышается). Есть и более простые варианты временнОй синхронизации. smile.gif
Правда, применимость их определяется условиями, в которых работает аппаратура.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
koluna
сообщение Mar 26 2007, 09:54
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(Stanislav @ Mar 26 2007, 00:49) *
В настоящее время существуют три основных вида разделения каналов приёма:
- временнОе разделение;
- частотное разделение;
- кодовое разделение.

Насколько я понимаю, Вас интересует первое. Для решения проблеммы в общем, передатчики нужно синхронизировать друг с другом.
Для ответа на Ваш вопрос, однако, требуется грамотная постановка задачи, с указанием основных требований к системе (частота переключения каналов, битовая скорость и т.д.).


Система будет установлена в цеху на предприятии.
Предполагается использовать 20 передатчиков (потом больше) и 1 приёник, подключенный к ЭВМ.
Использую трансиверы DP1203-C433, аппаратный кодек Баркера встроенный, скорость передачи данных 1154 бит/с. Передатчики шлют пакеты по 24 байта, допустим, каждые 5-10 секунд. В каждом пакете, конечно же, есть адрес передатчика и CRC. Приёмник только принимает и транслирует данные в ЭВМ.
Какая ещё информация нужна?

Частотное разделение не подходит.
Кодовое разделение - что это?
Может быть, временное, но только без использования внешнего синхронизатора, часов каких-нибудь и т. п...

Существует какой-то АЛГОРИТМ, я встречал его, но сейчас найти не могу! Передатчики между собой не обмениваются информацией. ЭВМ через приёмник не шлёт никаких запросов. Каждый из передатчиков особым образом по истечению своего заранее установленного периода передачи данных (5-10 секунд, период для всех передатчиков может быть разным) прослушивает эфир и передаёт свои данные. Точность периода опроса не важна, порядок выхода на связь передатчиков не важен. Всё делается по какому-то АЛГОРИТМУ и не происходит "перекрёстной" передачи... Вот меня и интересует этот АЛГОРИТМ... smile.gif

Цитата(deemon @ Mar 26 2007, 02:21) *
А тут не так уж много вариантов . Если не нужно передавать много информации , и не нужно делать это часто , то можно просто синхронизировать передатчики по времени с использованием точных часов , притом оставляя хороший запас на уход этих часов . А вот если это невозможно - то нужно ставить приёмопередатчики и посылать с базы запросы на каждый блок . Мы тут однажды разрабатывали один проект - снятие показаний с электросчётчиков , разбросанных по всему городу ( до серии так и не дошло , по организационным причинам sad.gif ) , и сразу решили использовать приёмопередатчики на каждом счётчике ( все они должны работать на одной частоте ) , так там была даже заложена возможность ретрансляции данных . Выглядело это примерно так - база запрашивает датчик , например , номер 5 , но пакет данных от него не удалось принять без ошибок после трёх повторов , тогда мы посылаем на датчик номер 4 такую команду - " братишка , передай запрос 5-му , получи от него пакет данных , сохрани в своей памяти , а потом передай нам " smile.gif Ничего особенно сложного в этом нет , а живучесть сети намного повышается .


Информации - 24 байта.
Период передачи от 5 секунд до нескольких минут.
Никакие часы нельзя использовать...
Надо осуществлять синхронизацию по периоду передачи и по состоянию эфира (свободен эфир или не свободен).


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
dmivs
сообщение Mar 26 2007, 10:05
Сообщение #7


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

Группа: Свой
Сообщений: 101
Регистрация: 7-09-05
Из: Riga, LV
Пользователь №: 8 333



Цитата(n_bogoyavlensky @ Mar 26 2007, 10:54) *
Существует какой-то АЛГОРИТМ, я встречал его, но сейчас найти не могу! Передатчики между собой не обмениваются информацией. ЭВМ через приёмник не шлёт никаких запросов. Каждый из передатчиков особым образом по истечению своего заранее установленного периода передачи данных (5-10 секунд, период для всех передатчиков может быть разным) прослушивает эфир и передаёт свои данные. Точность периода опроса не важна, порядок выхода на связь передатчиков не важен. Всё делается по какому-то АЛГОРИТМУ и не происходит "перекрёстной" передачи... Вот меня и интересует этот АЛГОРИТМ... smile.gif


Ой, да это же чистой воды "метод коллективного доступа с опознаванием несущей и обнаружением коллизий"

Используется в 10 Мбит Ethernet, но ножки растут именно из радиосетей.


--------------------
Go to the top of the page
 
+Quote Post
AlexanderX
сообщение Mar 26 2007, 11:15
Сообщение #8


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

Группа: Свой
Сообщений: 107
Регистрация: 21-07-05
Из: Киев
Пользователь №: 6 977



Для того чтобы просто прослушивать эфир Вам все равно придется использовать приемники вместе с передатчиками. Но если так, то помоему проще уже опрашивать датчики централизованно. Но если Вы категорически против такой концепции, то Ваш путь пролегает через Ethernet стандарт.
Go to the top of the page
 
+Quote Post
deemon
сообщение Mar 26 2007, 11:25
Сообщение #9


Знающий
****

Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888



Цитата(Stanislav @ Mar 26 2007, 02:01) *
Описанный Вами способ всё-таки довольно сложен (хотя, конечно, устойчивость работы сети таким образом повышается). Есть и более простые варианты временнОй синхронизации. smile.gif
Правда, применимость их определяется условиями, в которых работает аппаратура.


Мы рассуждали так - раз у нас много счётчиков ( до тысячи ) и нет связи между ними , то обеспечить коллективный доступ реально только с методом "запрос-ответ" , а значит , нужны трансиверы . Далее , для сбора и накопления информации со счётчика всё равно нужно ставить микропроцессор с достаточно большим ОЗУ , чтобы хранить информацию до сеанса связи . А раз у нас уже есть трансиверы , процессоры и ОЗУ , то почему бы не сделать и ретрансляцию , так сказать , в виде бонуса ? smile.gif Это ведь не потребует никакого усложнения аппаратной части , а лишь немного увеличит размер кода программы . И пусть себе , мне не жалко ..... да и потом , программу всё равно писал не я smile.gif
Go to the top of the page
 
+Quote Post
cupertino
сообщение Mar 26 2007, 12:37
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 19-12-06
Из: Silicon Valley, California
Пользователь №: 23 683



Цитата(n_bogoyavlensky @ Mar 26 2007, 09:54) *
Кодовое разделение - что это?

CDMA. Сигнал каждого передатчика модулируется своей псевдослучайной последовательностью. Передатчики могут передавать одновременно, приемник разделяет их, так как знает модулирующую последовательность каждого
Цитата
Существует какой-то АЛГОРИТМ, я встречал его, но сейчас найти не могу! Передатчики между собой не обмениваются информацией. ЭВМ через приёмник не шлёт никаких запросов. Каждый из передатчиков особым образом по истечению своего заранее установленного периода передачи данных (5-10 секунд, период для всех передатчиков может быть разным) прослушивает эфир и передаёт свои данные. Точность периода опроса не важна, порядок выхода на связь передатчиков не важен. Всё делается по какому-то АЛГОРИТМУ и не происходит "перекрёстной" передачи... Вот меня и интересует этот АЛГОРИТМ... smile.gif
Информации - 24 байта.
Период передачи от 5 секунд до нескольких минут.
Никакие часы нельзя использовать...
Надо осуществлять синхронизацию по периоду передачи и по состоянию эфира (свободен эфир или не свободен).
Посмотрите WiFi (IEEE 802.11). Там применяется упомянутый Вами алгоритм.
Go to the top of the page
 
+Quote Post
Dr.NoA
сообщение Mar 26 2007, 13:00
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976



Цитата(dmivs @ Mar 26 2007, 10:05) *
Ой, да это же чистой воды "метод коллективного доступа с опознаванием несущей и обнаружением коллизий"

Используется в 10 Мбит Ethernet, но ножки растут именно из радиосетей.

Если быть точным, то это просто Carrier Sense Multiple Access без обнаружения коллиий, т.к. радиоканал все таки отличается от проводного. Чтобы еще снизить вероятность коллизий используется CSMA/CA (Collision Avoidance), например, используется в упомянутом Wi-Fi.
Но как уже сказали, для использования CSMA требуется приемник, чтобы "слушать" канал на предмет наличия сигнала.
Если у Вас просто передатчики, можно использовать самый простой вариант - Aloha. Но нужно считать трафик.
Кроме того, все упомянутые методы не исключают полностью коллизии.
Go to the top of the page
 
+Quote Post
deemon
сообщение Mar 26 2007, 13:42
Сообщение #12


Знающий
****

Группа: Новичок
Сообщений: 642
Регистрация: 30-01-07
Пользователь №: 24 888



Кстати , если в наших приёмопередатчиках применены упрощённые приёмники , которые могут только регистрировать факт передачи - можно проработать вариант , в котором один из передатчиков не передаёт данные , а служит "задатчиком ритма" . Для этого его пакеты должны иметь , например , бОльшую длительность , чтобы приёмники могли просто отличить его сигнал от других . Остальные же - должны , приняв длинный пакет , отсчитать от него нужное количество тактов( для каждого своё ) , и выходит в эфир уже по порядку , без конфликтов . ИМХО , достаточно простое решение , и позволяет теоретически работать без потерь пакетов данных .
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 26 2007, 18:19
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(n_bogoyavlensky @ Mar 25 2007, 21:58) *
Имеется система, состоящая из 20 передатчиков и 1 приёмника
Интересует алгоритм работы передатчиков, т. е. как эти 20 передатчиков будут передавать данные приёмнику таким образом, чтобы не было каши, последовательно.
Поскольку передатчиков у вас мало и объем информации небольшой, можно реализовать такой алгоритм: Каждый передатчик делает три (или больше) повтора своей посылки. Период повтора у каждого передатчика свой, периоды выбираются из ряда простых чисел, что позволяет в случае одновременного выхода в эфир (коллизии) получить гарантированные повторы в разное время. В сообщениях надо предусмотреть алгоритм отделения повтора от нового сообщения.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
koluna
сообщение Mar 28 2007, 16:21
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Мне посоветовали CSMA/CD - это то, про что я справшивал smile.gif


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
Dr.NoA
сообщение Mar 28 2007, 17:01
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976



Цитата(n_bogoyavlensky @ Mar 28 2007, 17:21) *
Мне посоветовали CSMA/CD - это то, про что я справшивал smile.gif

У Вас не получится сделать в радиоканале CSMA/CD, нужно делать CSMA/CA. Это не одно и тоже.
Go to the top of the page
 
+Quote Post

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

 


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


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