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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> СС1101, устранение коллизий
Mihey_K
сообщение Feb 2 2014, 23:43
Сообщение #16


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

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



Тогда не заморачивайтесь, разве что добавить повторную отправку sm.gif Ошибки в работе таймеров всегда будут набегать, так что коллизии маловероятны. А почему не зигби?


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 07:29
Сообщение #17


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Mihey_K @ Feb 3 2014, 03:43) *
А почему не зигби?

Тогда нужно в сторону STM32Wxxx смотреть - у меня очень хорошо бы легло по ТЗ. Но я не уверен, что смогу обеспечить в этом диапазоне необходимую дальность. Такого опыта в Инете не удалось найти...
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Feb 3 2014, 07:59
Сообщение #18


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

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



Какая дальность требуется? В помещении?


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 08:13
Сообщение #19


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Mihey_K @ Feb 3 2014, 11:59) *
Какая дальность требуется? В помещении?

Соседние помещения, стены железобетон, 50-80метров.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 09:57
Сообщение #20


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Кстати, я вроде понял, почему трансивер вываливается в IDLE при обсуждаемых выше условиях!
Ответ дан на стр. 40 даташита сс1101 (ревизия I) в разделе CRC filtering.
Дело в том, что если принят битый пакет (одновременно или почти одновременно прилетели валидные пакеты), то CRC failed, RXFIFO autoflushed, и состояние трансивера определяется в MCSM1.RXOFF_MODE. А он у меня предполагает IDLE.
Но все равно, это не избавляет от функции контроля нахождения в режиме RX, приведенной выше...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 3 2014, 10:06
Сообщение #21


Гуру
******

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



Почему не избавляет ? Если используется непрерывный прием, то трансивер так и останется в режиме приема, и проверять тут нечего.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 11:54
Сообщение #22


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(rx3apf @ Feb 3 2014, 14:06) *
Почему не избавляет ? Если используется непрерывный прием, то трансивер так и останется в режиме приема, и проверять тут нечего.

1. Мой самопальный протокол предполагает IDLE после приема пакета. Изменять конфигурацию на лету не хотелось бы.
2. Длительное нахождение в RX не рекомендуется.

Если кому не трудно, подскажите еще по режиму WOR в CC1101: при скорости 1.2 кБод как правильно выбрать период пробуждений трансивера, если передача пакета начинается с преамбулы 30 бит и затем sync word 32 бита? Я изучил вроде соот разделы в даташите, но до конца не разобрался сколько времени должен находится сс1101 в режиме приема внутри WOR режима? Вроде он должен определить наличие N sync bits в эфире и выставить уровень на GDOx? Чему равно N? 32 бита sync word будут приниматься из эфира ~27ms при скорости 1200бод и период должен быть меньше? И возможно ли как-то использовать обработку преамбулы с целью увеличения периода пробуждений?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 3 2014, 12:22
Сообщение #23


Гуру
******

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



Зависит от наличия или отсутствия FEC, и я использовал внешнее, принудительное, задание времени приема, не пользуясь внутренними средствами. Можно и "живьем" измерить это время, и ориентироваться (с запасом) на полученные результаты. У меня скорость на два порядка выше, поэтому времянки совсем иные, на малых скоростях не рискну что-то советовать (но напомню, кстати, о высоких требованиях к точности установки частоты на низких скоростях при малой полосе). Использование высокой скорости существенно сокращает потребление при опросе эфира.

Никаких ограничений на время нахождения в состоянии приема нет, насколько помню. Устройства со стационарным питанием у меня находятся в приеме непрерывно, никаких проблем не наблюдалось.

Переходить или не переходить в idle - вопрос удобства. Я, например, в разных частях протокола поступаю по-разному, и переконфигурирование "на лету" происходит постоянно.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 13:13
Сообщение #24


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



И все же. Передатчик передает 4 байта преамбулы и 4 байта синхрослова на скорости 1200 бод/сек. Сколько бит преамбулы и/или синхрослова требуется приемнику сс1101, чтобы определить это как начало пакета??? Это требуется для режима WOR (расчета периода пробуждений).
Я думаю, требуется 8 бит синхрослова минимум...
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Feb 3 2014, 14:05
Сообщение #25


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

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



В регистре MCSM2 же задается таймаут поиска преамбулы для выхода из sleep.


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 14:43
Сообщение #26


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Mihey_K @ Feb 3 2014, 18:05) *
В регистре MCSM2 же задается таймаут поиска преамбулы для выхода из sleep.

Ну и как будете задавать?
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Feb 3 2014, 15:00
Сообщение #27


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

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



Цитата
Ну и как будете задавать?
Даташит, стр. 80, там есть пример, где сказано, что приемник слушает эфир 1.96 мс. с заполнением для пробуждения в 0.195%. Это же поясняется на рис. 28.


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 3 2014, 15:37
Сообщение #28


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Mihey_K @ Feb 3 2014, 19:00) *
Даташит, стр. 80, там есть пример, где сказано, что приемник слушает эфир 1.96 мс. с заполнением для пробуждения в 0.195%. Это же поясняется на рис. 28.


Я ведь даже ситуацию обрисовал:
Цитата
И все же. Передатчик передает 4 байта преамбулы и 4 байта синхрослова на скорости 1200 бод/сек. Сколько бит преамбулы и/или синхрослова требуется приемнику сс1101, чтобы определить это как начало пакета??? Это требуется для режима WOR (расчета периода пробуждений).

Вопросы, если нужно максимально поберечь батарейку для вышеприведенных условий:
1. Чему будет равен максимальный период пробуждений (EVENT0)?
2. Из каких соображений определите содержимое С(RX_TIME,WOR_RES) (стр. 80 даташита)?

При этом учтем, что на скорости 1200 бод/сек время трансляции бита в эфире примерно ~0.8ms !!!

Выше имеется ввиду, что пакет передается в эфире лишь однажды и именно с этой позиции рассматриваются вопросы настроек WOR принимающей стороны...
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Feb 9 2014, 11:40
Сообщение #29


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Если я правильно понял, то устройство B у Вас со стационарным питанием. Зачем в таком случае использовать WOR.
А от коллизии действительно удобно использовать псевдослучайную задержку перед передачей (прослушивание канала не дает особых преимуществ, если только два передающих устройства не находятся близко друг к другу...если же они находятся на разные стороны от приемника, то они могут друг друга и не услышать), время которой находиться в пределах, например, 0..0,5*(длительность пакета).
Плюс, в случае если устройство А не приняло пакета подтверждения, то через какой-то промежуток времени оно делает еще одну попытку передать пакет, затем его отбрасывает(количество переповторов подбирается исходя из важности информации).
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Feb 10 2014, 08:33
Сообщение #30


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Pasha_a13 @ Feb 9 2014, 15:40) *
Если я правильно понял, то устройство B у Вас со стационарным питанием. Зачем в таком случае использовать WOR.

Да, со стац питанием. С WOR я ранее не работал, думал это поможет в моей задаче. Казалось бы, мастером должно быть устройство B, но это больно бьет по энергопотреблению устройств А (датчиков) - они должны отправлять свой пакет 1 раз в минуту - я так и не придумал, как это обыграть, если мастер - устройство В. Получается, датчики должны входить в прием на довольно длительный период + еще потребуется синхронизация... Поэтому мастером (а точнее Инициатором) выступают датчики. Но все не просто. Устройство В тоже должно передавать на датчики их конфигурацию и др данные (изредка). Итак, сделал следующее: датчик инициирует обмен и передает свои данные. База (устройство В) квитирует этот пакет, передавая помимо квитанции специальный служебный байт (команда датчику о его дальнейшем поведении). Если в этом байте передается 0, значит дальнейшие действия датчика - standby mode. Т. е. получается, что большую часть времени датчик передает один лишь пакет своих данных (макс сохр потребления). В итоге имеем "мультимастерную" систему, где база - слэйв, но логически все же база - мастер ибо она руководит обменом по факту... Придумать что-то лучшее пока не смог, может подскажете что-то. Мне не очень нравится "мультимастерность", вот в чем беда. Я думал, что WOR как то поможет эту проблему разрешить...

Цитата
Плюс, в случае если устройство А не приняло пакета подтверждения, то через какой-то промежуток времени оно делает еще одну попытку передать пакет, затем его отбрасывает(количество переповторов подбирается исходя из важности информации).
Датчики и так должны передавать инфу раз в минуту, по условиям ТЗ допускается один пропуск данных, но не реже...
Go to the top of the page
 
+Quote Post

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

 


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


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