|
|
  |
СС1101, устранение коллизий |
|
|
|
Feb 2 2014, 23:43
|

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

|
Тогда не заморачивайтесь, разве что добавить повторную отправку  Ошибки в работе таймеров всегда будут набегать, так что коллизии маловероятны. А почему не зигби?
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Feb 3 2014, 12:22
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Зависит от наличия или отсутствия FEC, и я использовал внешнее, принудительное, задание времени приема, не пользуясь внутренними средствами. Можно и "живьем" измерить это время, и ориентироваться (с запасом) на полученные результаты. У меня скорость на два порядка выше, поэтому времянки совсем иные, на малых скоростях не рискну что-то советовать (но напомню, кстати, о высоких требованиях к точности установки частоты на низких скоростях при малой полосе). Использование высокой скорости существенно сокращает потребление при опросе эфира.
Никаких ограничений на время нахождения в состоянии приема нет, насколько помню. Устройства со стационарным питанием у меня находятся в приеме непрерывно, никаких проблем не наблюдалось.
Переходить или не переходить в idle - вопрос удобства. Я, например, в разных частях протокола поступаю по-разному, и переконфигурирование "на лету" происходит постоянно.
|
|
|
|
|
Feb 3 2014, 15:00
|

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

|
Цитата Ну и как будете задавать? Даташит, стр. 80, там есть пример, где сказано, что приемник слушает эфир 1.96 мс. с заполнением для пробуждения в 0.195%. Это же поясняется на рис. 28.
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Feb 3 2014, 15:37
|

Профессионал
    
Группа: Свой
Сообщений: 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 принимающей стороны...
|
|
|
|
|
Feb 9 2014, 11:40
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Если я правильно понял, то устройство B у Вас со стационарным питанием. Зачем в таком случае использовать WOR. А от коллизии действительно удобно использовать псевдослучайную задержку перед передачей (прослушивание канала не дает особых преимуществ, если только два передающих устройства не находятся близко друг к другу...если же они находятся на разные стороны от приемника, то они могут друг друга и не услышать), время которой находиться в пределах, например, 0..0,5*(длительность пакета). Плюс, в случае если устройство А не приняло пакета подтверждения, то через какой-то промежуток времени оно делает еще одну попытку передать пакет, затем его отбрасывает(количество переповторов подбирается исходя из важности информации).
|
|
|
|
|
Feb 10 2014, 08:33
|

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

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