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

 
 
> Сеть радиодатчиков, 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
Yogen
сообщение Jan 5 2016, 09:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 16-11-09
Из: Омск
Пользователь №: 53 657



Читал внимательно.
Цитата(jcxz @ Nov 23 2015, 07:31) *
...Когда у него есть данные на передачу, он слушает эфир, ловит ближайшую метку...


Я про то и говорю, что ваше периодическое пробуждение "Когда у него есть данные на передачу" да ещё и с прослушкой эфира, ничем не экономичнее моих "случайных пробуждений от помех", которых возможно на практике не будет rolleyes.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 5 2016, 11:32
Сообщение #5


Гуру
******

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



Цитата(Yogen @ Jan 5 2016, 15:22) *
Я про то и говорю, что ваше периодическое пробуждение "Когда у него есть данные на передачу" да ещё и с прослушкой эфира, ничем не экономичнее моих "случайных пробуждений от помех", которых возможно на практике не будет rolleyes.gif

Ничем????
Я не знаю каково потребление в Вашем чипе, но например в одном из самых экономичных (имхо) - nRF24L01+ приёмник потребляет около 10мА, а в выключенном состоянии - менее 1мкА.
Если для Вас разница в 10000 раз - это ничто, то и разговаривать дальше бессмысленно.
И хоть мне и лень читать даташит на Ваш МК, но я сильно сомневаюсь, что потребление его приёмника будет существенно меньше. И что он сможет определить хоть что-то происходящее в эфире, не включая приёмник.

А то что Вы выделили, если разжевать, означает что:
в начальное время инициализации, когда слэйв только включился и ещё не принял ни одной метки таймслота от мастера, он находится в непрерывном приёме (либо в непрерывно-периодическом режиме -
например: каждые 20 секунд включается на время немного большее длительности одного таймслота и непрерывно слушает эфир ищя хотя-бы один таймслот от мастера). Получив хотя-бы одну метку таймслота от мастера, он уже:
во-первых - знает время мастера и имея RTC-может просыпаться синхронно с его метками;
во-вторых - может определить расположение своего таймслота и просыпаться не на каждый таймслот, а только непосредственно пеерд своим таймслотом.
Таким образом, получив метку от мастера, слэйв будет включаться только тогда, когда действительно необходимо.
Если длительное время от мастера не получена ни одна метка таймслота, то слэйв также должен переходить в режим непрерывного приёма (см. выше - это не означает что приёмник должен быть постоянно включен),
ну или назовём это - "режим поиска мастера". А время работы приёмника в этом случае и периоды его просыпания тоже определяете Вы, и можете период сделать большим, да и время прослушивания эфира уменьшить.
И тоже получить небольшое потребление.

Цитата(Aner @ Jan 5 2016, 16:50) *
Это на каком таком чипе у приёмника потребление менее 15 uA и какой бэнд? Средне за сколько таймслотов? 1:1000, ...
И у какого приемника непрерывное потребление меньше 6-8mA? ... с той вашей широкой полосой еще и чувство укажите, может он Rx совсем тупенький?

Я для себя, в качестве хобби, делал домашнюю погодную станцию на MSP430 + nRF24L01+. Она периодически просыпается, делается замер и ложится спать.
Кроме того, у неё есть связные просыпания - каждые 20сек она просыпается, включает приёмник и 4.5мсек ждёт команды "Старт сеанса" от центра сбора.
Если команда получена - начинается обмен и тогда времена таймаутов ожидания увеличиваются до 13мсек, но сеансы бывают редко.
Так что среднее потребление примерно == 4.5/20000*11 мА (приёмник nRF24L01+ в непрерывном режиме потребляет вроде 11мА насколько помню).
Полоса там - или 1 или 2 мБита/сек.
Конечно тратится время на включение/выключение приёмника и есть потребление в "power down" (0.1мкА), но в сумме у меня, по измерениям, среднее потребление nRF24L01+ получалось немного больше 7 мкА.

Цитата(Aner @ Jan 5 2016, 16:50) *
10 ms получить трудно, если из сна или из выключенного состояния, кварцу нужно примерно столько времени или поболее на разгон или выбег на стабильную частоту генерации.

10 мсек период просыпания для задачи ТС - это конечно глупо, но не невозможно.
Например у nRF24L01+ время просыпания из "power down" == 1.5мсек.
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
|- - turnon   Цитата(jcxz @ Nov 23 2015, 08:31) Раз мас...   Nov 23 2015, 07:37
||- - jcxz   Цитата(turnon @ Nov 23 2015, 13:37) А по ...   Nov 23 2015, 14:17
||- - Ariel   Похожая тема здесь   Nov 23 2015, 17:23
||- - turnon   Цитата(jcxz @ Nov 23 2015, 18:17) Не обяз...   Nov 24 2015, 11:22
|- - 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
- - 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 Текстовая версия Сейчас: 20th July 2025 - 21:56
Рейтинг@Mail.ru


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