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

 
 
> СС1101, устранение коллизий
ivainc1789
сообщение Feb 1 2014, 16:06
Сообщение #1


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

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



Разработал и изготовил 4 устройства на сс1101: устройства A1,A2,A3 посылают на устройство B пакеты, а устройство B квитирует их (передает своему Ax короткий пакет подтверждения). Все работает до тех пор, пока не наступит момент, когда два устрйства Ax пытаются передать свои пакеты одновременно (ну или почти одновременно, тактирование от внутреннего RC STM32F051). В этом случае устройство B "зависает", т. е. его сс1101 не может принять пакет от любого Ax. Помогает только сброс/переинициализация устройства В.
Сейчас усложнять протокол тайм-слотами нет времени, хотелось бы разобраться как можно выявить эту ситуацию коллизии в устройстве В с помощью регистров сс1101 и просто по этому событию перегрузить трансивер. Если такая возможность есть, подскажите в какую сторону смотреть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pasha_a13
сообщение Feb 10 2014, 18:05
Сообщение #2


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

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



В Вашем случае для устройства В WOR не нужен, он больше нужен в случае если устройство ограничено в ресурсах по питанию.
Устроство В пусть постоянно висит в приеме и слушает эфир. Он отвечает за то чтобы в любой произвольный момент времени принять пакет от датчика, обработать его и ответить датчику. Если смотреть в сторону ZigBee и городить чето подобное это только головную боль себе нажить. Определенные вещи можно взять оттуда, но отнють не все.
Не советую делать В мастером и чтобы датчики просыпались и принимали от него запросы, получите головную боль с синронизацией. Проще привязываться к моментам приема последнего пакета от каждого конкретного датчика и уже от них, в случае необходимости, отсчитывать момент когда датчик следующий раз ответит(развивая это направление можно отслеживать пропадание датчиков проверяя периодически промежутки времени с момента последнего выхода датчика на связь).
По поводу посылки параметров датчику - я тоже делал подобным образом...в памяти центрального устройства В хранились очереди команд для каждого датчика и когда датчик присылает пакет я смотрю нет ли для данного датчика управляющих команд и в ответном пакете подтверждения делаю пометку что для него есть управлющие данные и передаю их. Я просто изначально размер пакета сделал с запасом, потому мне не надо было передавать ему дополнительные пакеты.
Сколько служебных(командных) байт Вы планируете ему передавать и какая у Вас длина пакета подтверждения?

Сообщение отредактировал Pasha_a13 - Feb 10 2014, 18:07
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ivainc1789   СС1101   Feb 1 2014, 16:06
- - Pasha_a13   В настройках СС1101 есть флажок, который позволяет...   Feb 1 2014, 17:02
|- - ivainc1789   Цитата(Pasha_a13 @ Feb 1 2014, 21:02) Как...   Feb 1 2014, 18:52
- - Salamander   Цитатапри одновременном/последовательном приеме не...   Feb 2 2014, 08:16
|- - ivainc1789   Цитата(Salamander @ Feb 2 2014, 12:16) Та...   Feb 2 2014, 09:17
- - Mihey_K   Код бы приемника B показали. Как вариант борьбы с ...   Feb 2 2014, 08:35
- - Mihey_K   Посмотрите эррату, для 64 байт может быть похожий ...   Feb 2 2014, 09:34
- - ivainc1789   Написал функцию восстановления RX режима (все же р...   Feb 2 2014, 14:59
- - Salamander   КодПросто раздирает любопытство, почему не связано...   Feb 2 2014, 15:24
|- - FPGAz   Цитата(Salamander @ Feb 2 2014, 18:24) Эл...   Feb 11 2014, 14:13
- - Mihey_K   ЦитатаТак это причина известная. Нигде о подобном ...   Feb 2 2014, 15:30
|- - ivainc1789   ЦитатаЭлементарно, Ватсон, у меня работает один мо...   Feb 2 2014, 15:56
- - Mihey_K   1 мс. хватит. Можно проверить имперически: выстави...   Feb 2 2014, 16:11
- - ivainc1789   ЦитатаПохоже, что у Вас сбор с датчиков, тогда воо...   Feb 2 2014, 16:40
- - Mihey_K   Пробуждение по часовому таймеру? И каким образом р...   Feb 2 2014, 17:10
|- - ivainc1789   Цитата(Mihey_K @ Feb 2 2014, 21:10) И как...   Feb 2 2014, 17:24
- - Mihey_K   Тогда не заморачивайтесь, разве что добавить повто...   Feb 2 2014, 23:43
|- - ivainc1789   Цитата(Mihey_K @ Feb 3 2014, 03:43) А поч...   Feb 3 2014, 07:29
- - Mihey_K   Какая дальность требуется? В помещении?   Feb 3 2014, 07:59
|- - ivainc1789   Цитата(Mihey_K @ Feb 3 2014, 11:59) Какая...   Feb 3 2014, 08:13
- - ivainc1789   Кстати, я вроде понял, почему трансивер вываливает...   Feb 3 2014, 09:57
- - rx3apf   Почему не избавляет ? Если используется непрерывны...   Feb 3 2014, 10:06
|- - ivainc1789   Цитата(rx3apf @ Feb 3 2014, 14:06) Почему...   Feb 3 2014, 11:54
- - rx3apf   Зависит от наличия или отсутствия FEC, и я использ...   Feb 3 2014, 12:22
- - ivainc1789   И все же. Передатчик передает 4 байта преамбулы и ...   Feb 3 2014, 13:13
- - Mihey_K   В регистре MCSM2 же задается таймаут поиска преамб...   Feb 3 2014, 14:05
|- - ivainc1789   Цитата(Mihey_K @ Feb 3 2014, 18:05) В рег...   Feb 3 2014, 14:43
- - Mihey_K   ЦитатаНу и как будете задавать?Даташит, стр. 80, т...   Feb 3 2014, 15:00
|- - ivainc1789   Цитата(Mihey_K @ Feb 3 2014, 19:00) Даташ...   Feb 3 2014, 15:37
- - Pasha_a13   Если я правильно понял, то устройство B у Вас со с...   Feb 9 2014, 11:40
|- - ivainc1789   Цитата(Pasha_a13 @ Feb 9 2014, 15:40) Есл...   Feb 10 2014, 08:33
- - Mihey_K   Да как в ZigBee похоже. Там проснулся датчик, сооб...   Feb 10 2014, 08:44
- - ivainc1789   Цитата(Pasha_a13 @ Feb 10 2014, 22:05) Ск...   Feb 11 2014, 11:33


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

 


RSS Текстовая версия Сейчас: 26th August 2025 - 13:21
Рейтинг@Mail.ru


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