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

 
 
> Сеть радиодатчиков, collision и SimpiciTI
turnon
сообщение Nov 22 2015, 18:49
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Нужно реализовать систему, которая будет собирать данные с датчиков температуры. Самая простая топология - звезда. Мастер - постоянно запитан. Слейвы (до 100 шт.) имеют батарейное питание и включаются на короткое время раз в 5-10 мин для передачи текущей температуры мастеру.

Собираюсь использовать CC1101 и протокол SimpliciTI, у него есть даже ретрансляторы, но они не нужны.

Но возникает одна проблема. Как избежать одновременной работы нескольких слейвов. Ведь при одновременной работе вместо пакета от одного слейва мастер получит кашу/мешанину и скорее всего не примет пакет вообще или отбросит его из-за несоответствия CRC.

И как я понял, в SimpliciTI эта проблема (коллизии) никак не решается.

Пока видится несколько вариантов решения, но ни один из них не вдохновляет.

1. В том же СС1101 есть технология под названием Clear Channel Assessment (CCA). Т.е. слейв перед отправкой может проверить, не занят ли канал другим слейвом. Но в этом случае при большом количестве слейвов некоторые могут очень долго ожидать свободного канала. К тому же во время ожидания будет использоваться батарейка. А слейв должен работать минимально возможное время, в отстальное время - сон.

2. Разделение по времени отправки пакета каждым слейвом. Непонятно как синхронизировать время. Даже если на каждом слейве есть RTC и время одинаковое, непонятно в какой момент слейв должен выполнять отправку.

Если у кого есть опыт реализации подобного, буду очень благодарен если поделитесь опытом/протоколом.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mcheb
сообщение Nov 23 2015, 03:20
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



По прошествии некоторого времени датчики выстроятся во времени и коллизий не будет
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 23 2015, 04:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Раз мастер имеет неограниченное питание, пусть управляет всем обменом - распределяет тайм-слоты в эфире. Выбираете некоторый период опроса, разбиваете его на тайм-слоты количеством равным максимальному кол-ву слэйвов. В начале каждого слота мастер пусть передаёт короткую посылку, содержащую номер слота и его длительность и общее кол-во слотов и после этого переходит на приём до конца слота. Каждый слэйв имеет свой уникальный номер. Когда у него есть данные на передачу, он слушает эфир, ловит ближайшую метку - начало слота, определяет по ней сколько осталось времени до слота с номером, равным его уникальному номеру и засыпает на время чуть меньшее, чтобы проснуться перед началом своего слота.
Для такого алгоритма не нужен никакой беспроводной протокол, достаточно простого приёмо-передатчика типа nRF24L01.
Go to the top of the page
 
+Quote Post
turnon
сообщение Nov 23 2015, 07:37
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(jcxz @ Nov 23 2015, 08:31) *
Раз мастер имеет неограниченное питание, пусть управляет всем обменом - распределяет тайм-слоты в эфире. Выбираете некоторый период опроса, разбиваете его на тайм-слоты количеством равным максимальному кол-ву слэйвов. В начале каждого слота мастер пусть передаёт короткую посылку, содержащую номер слота и его длительность и общее кол-во слотов и после этого переходит на приём до конца слота. Каждый слэйв имеет свой уникальный номер. Когда у него есть данные на передачу, он слушает эфир, ловит ближайшую метку - начало слота, определяет по ней сколько осталось времени до слота с номером, равным его уникальному номеру и засыпает на время чуть меньшее, чтобы проснуться перед началом своего слота.
Для такого алгоритма не нужен никакой беспроводной протокол, достаточно простого приёмо-передатчика типа nRF24L01.

Похоже на рабочий сценарий.
А по этому сценарию просыпаться слейву надо всегда два раза? Один раз для ловли метки, второй раз - для собственно передачи пакета во время своей метки?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 23 2015, 14:17
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(turnon @ Nov 23 2015, 13:37) *
А по этому сценарию просыпаться слейву надо всегда два раза? Один раз для ловли метки, второй раз - для собственно передачи пакета во время своей метки?

Не обязательно. Так как после первой передачи слэйв уже знает размер слота и кол-во слотов, он может сразу рассчитать следующую точку просыпания.
И, если у Вас в системе в процессе работы не меняются эти параметры, просыпаться будет уже только один раз на передачу.
Go to the top of the page
 
+Quote Post
turnon
сообщение Nov 24 2015, 11:22
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(jcxz @ Nov 23 2015, 18:17) *
Не обязательно. Так как после первой передачи слэйв уже знает размер слота и кол-во слотов, он может сразу рассчитать следующую точку просыпания.
И, если у Вас в системе в процессе работы не меняются эти параметры, просыпаться будет уже только один раз на передачу.

Ну или просыпаться через каждые N отправок для синхронизации меток (времени).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- turnon   Сеть радиодатчиков, collision и SimpiciTI   Nov 22 2015, 18:49
- - rx3apf   Рандомизируйте момент отправки пакета. Привязав к ...   Nov 22 2015, 19:17
- - x893   Это всё есть уже в SimpliciTi. задается #define .....   Nov 22 2015, 19:29
||- - Ariel   Похожая тема здесь   Nov 23 2015, 17:23
|- - Yogen   Цитата(jcxz @ Nov 23 2015, 07:31) Раз мас...   Jan 5 2016, 04:02
||- - jcxz   Цитата(Yogen @ Jan 5 2016, 10:02) Но в чё...   Jan 5 2016, 08:12
||- - Yogen   Цитата(jcxz @ Jan 5 2016, 12:12) 1. Не зн...   Jan 5 2016, 08:41
||- - jcxz   Цитата(Yogen @ Jan 5 2016, 14:41) 1. Дума...   Jan 5 2016, 08:50
||- - Yogen   Цитата(jcxz @ Jan 5 2016, 11:50) Как опр...   Jan 5 2016, 09:00
||- - jcxz   Цитата(Yogen @ Jan 5 2016, 15:00) Но пред...   Jan 5 2016, 09:08
|- - Yogen   Читал внимательно. Цитата(jcxz @ Nov 23 2015...   Jan 5 2016, 09:22
|- - jcxz   Цитата(Yogen @ Jan 5 2016, 15:22) Я про т...   Jan 5 2016, 11:32
- - x893   Мне кажется что с 2.4GHz дальность больше 100 м - ...   Jan 5 2016, 07:24
- - rx3apf   Приемник по-любому надо включить, чтобы понять, пе...   Jan 5 2016, 09:40
|- - Yogen   Цитата(rx3apf @ Jan 5 2016, 12:40) Если и...   Jan 5 2016, 09:56
- - rx3apf   Как вариант - да. У себя я использовал ежесекундны...   Jan 5 2016, 10:07
|- - Yogen   Цитата(rx3apf @ Jan 5 2016, 13:07) Как ва...   Jan 5 2016, 10:20
|- - Aner   QUOTE (rx3apf @ Jan 5 2016, 14:07) Как ва...   Jan 5 2016, 10:50
|- - Yogen   Цитата(Aner @ Jan 5 2016, 13:50) 10 ms по...   Jan 5 2016, 11:43
|- - rx3apf   Цитата(Yogen @ Jan 5 2016, 14:43) Рисунок...   Jan 5 2016, 12:16
|- - jcxz   Цитата(Yogen @ Jan 5 2016, 17:43) Почему ...   Jan 5 2016, 13:48
- - Aner   Как во многом, - "палка о двух концах". ...   Jan 5 2016, 12:13
|- - Yogen   Цитата(Aner @ Jan 5 2016, 15:13) 1...2 Мб...   Jan 5 2016, 12:32
- - Aner   jcxz догадаться, додумать самому никак? От проблем...   Jan 5 2016, 14:09
|- - jcxz   Цитата(Aner @ Jan 5 2016, 20:09) jcxz дог...   Jan 5 2016, 14:37
|- - Yogen   Цитата(jcxz @ Jan 5 2016, 17:37) Сделайте...   Jan 5 2016, 14:48
- - Yogen   Даже при таком тайминге 10/1000 ms и потреблении R...   Jan 5 2016, 14:27
- - Yogen   К вопросу «использовать режим WOR или запускать ре...   Jan 7 2016, 15:18


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

 


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


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