|
Mesh сеть между подвижными объектами., Подходит ли ZigBee? |
|
|
|
Apr 6 2013, 15:00
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Задача передачи телеметрии от экскаваторов/бульдозеров/самосвалов в карьере в диспетчерскую. Сразу скажу, что GSM там нет, иначе было бы просто, а Ирридиум дорог. Вот подумываю о ZigBee, прочитал описание XBee. Но, насколько я понимаю, это не совсем то, т.к. сеть должна постоянно перенастраиваться - никаких роутеров, закреплённых в фиксированном месте, там быть не должно. Так же подумываю использовать только физику ZigBee, а всё остальное сделать самому (на базе готового стека, конечно). Получается, что в сети должны быть только broadcast сообщения т.к. маршруты будут постоянно меняться. И наличие координатора тут не имеет смысла. Понравился вариант на ATmega128RFR2, смущает только низкая максимальная выходная мощность передатчика. Какая реально дальность связи достижима? Или можно усилить? Про ограничения в курсе.
|
|
|
|
|
 |
Ответов
|
Apr 7 2013, 12:02
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Скорость небольшая. От каждого объекта передаётся порядка 50 байт примерно раз в 10 сек, всего около 100 объектов. Но получается много ретрансляторов, а в случае броадкаста это напряжно.
Обязательно нужно как то усиливать. Китайцы продают свои поделия типа DRF2617 и др. на базе CC2530, так у них реально до 500 м работает (четвертьволновая антенна в зеркале заднего вида самосвала) - пробовал. А параболы вообще на 8 км связываются, может и больше - дальше не проверял. Я понимаю, что оно не соответствует никакому стандарту (сконфигурировано на макс мощность). А уж как это Китайское чудо работает... Реально только броадкаст до 32 байт (причём обязательно без координатора в сети, а то всё заткнётся), да и то всё равно периодически затыкается без видимых причин, помогает только выкл/вкл питание (только за счёт этого и работает). Хотя такая тестовая системка (всего 6 подвижных и 1 неподвижный ZigBee) на Китайских изделиях уже успешно работает, но делать так - себя не уважать. XBee вроде тоже можно сконфигурировать на существенно бОльшую мощность, чем по стандарту, но с ним не экспериментировал. Опасаюсь, что работать не будет вообще - там похоже всё по стандарту сделано, в отличие от того, что у Китайцев. Хотя периодические выкл/вкл питания должны помочь (заново сконфигурируются), но тогда с ретрансляцией проблемы будут (ретранслятор неожиданно пропадать может). Но почему же у Атмела возможности увеличить мощность нет? Или я не нашёл? Честно признаться не специалист я в этом - как усилить даже не представляю. Ещё есть 433 мГц и др. варианты, но там пока вообще не смотрел...
С LwMesh пока не разбирался. По прикидке планирую делать так: 1. У каждого девайса имеется жёсткий адрес 1 байт (хватит, более 256 устройств в сети точно не будет). 2. Передающий и каждый ретранслирующий добавляет в посылку свой адрес. 3. Если ретранслятор видит, что его адрес в посылке уже есть, то ретранслирует эту посылку ещё 2 раза. 4. Ещё ограничение по вложенности наверное придётся сделать. Не более 50 ретрансляций в посылке (по кол-ву добавленных адресов), например. 5. Возможно и оптимизацию по излишним ретрансляциям (если прямая связь есть) сделать, но придётся запоминать маршруты недавно ретранслированных посылок. Для этого ОЗУ может не хватить, его там 8 или 16 кБ всего. 6. То, что каждой посылке отправитель присваивает уникальный TAG (точнее не скоро повторяющийся), это само собой.
|
|
|
|
|
Apr 7 2013, 19:41
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
QUOTE (galjoen @ Apr 7 2013, 06:02)  Но почему же у Атмела возможности увеличить мощность нет? Или я не нашёл? Только внешними усилителями. Делать большую выходную мощность на одном чипе сложно, а мест где ее можно легально использовать без дорогого процесса сертификации не так много. Обычно аналоговые фронтенды дают +15 - +17 dB усиления. Я слышал от клиентов, что в чистом поле это работает на 2-3 км, но своими глазами не видел. QUOTE (galjoen @ Apr 7 2013, 06:02)  1. У каждого девайса имеется жёсткий адрес 1 байт (хватит, более 256 устройств в сети точно не будет). Лучше оставить 2 байта и использовать аппаратный фильтр адресов. QUOTE (galjoen @ Apr 7 2013, 06:02)  2. Передающий и каждый ретранслирующий добавляет в посылку свой адрес. Обычно для этого пакетам назначают счетчика, а на устройстве заводят таблицу, по которой определяют был ли уже обработан кадр с определенного адреса с определенным счетчиком. QUOTE (galjoen @ Apr 7 2013, 06:02)  3. Если ретранслятор видит, что его адрес в посылке уже есть, то ретранслирует эту посылку ещё 2 раза. Зачем? Вероятность доставки броадкаста доствточно велика, так как его пересылают очень много устройств. QUOTE (galjoen @ Apr 7 2013, 06:02)  5. Возможно и оптимизацию по излишним ретрансляциям (если прямая связь есть) сделать, но придётся запоминать маршруты недавно ретранслированных посылок. Для этого ОЗУ может не хватить, его там 8 или 16 кБ всего. Это дофига даже для полноценных протоколов. LwMesh может хранить маршруты для 120 устройств в 1 кБ.
|
|
|
|
|
Apr 8 2013, 17:44
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Taradov Alexander @ Apr 7 2013, 23:41)  Обычно аналоговые фронтенды дают +15 - +17 dB усиления. А что такое аналоговые фронтенды и где их взять? У XBee и DTK они используются? Там за счёт них такая высокая мощность получена? Понимаю, что это ламерский вопрос, но с радиосвязью до этого дело не имел. +15 Дб - это будет даже с избытком. А как там на 433 МГц? Там ведь разрешённая мощность, а значит и дальность, побольше. Цитата(Taradov Alexander @ Apr 7 2013, 23:41)  Обычно для этого пакетам назначают счетчика, а на устройстве заводят таблицу, по которой определяют был ли уже обработан кадр с определенного адреса с определенным счетчиком. Счётчик - это присваивание отправляющим каждому сообщению своего TAGа? Да, конечно, такая таблица тоже должна быть, но по ней ретранслятор не может сделать вывод кто его слышит, и вообще слышит ли его кто-нибудь. Цитата(Taradov Alexander @ Apr 7 2013, 23:41)  Зачем? Вероятность доставки броадкаста доствточно велика, так как его пересылают очень много устройств. Но на пути следования сообщения может встретится узкое место. Т.е. всего 1 ретранслятор между 2-мя группами устройств, да и у того связь на грани слышимости. Цитата(Taradov Alexander @ Apr 7 2013, 23:41)  Это дофига даже для полноценных протоколов. LwMesh может хранить маршруты для 120 устройств в 1 кБ. 9 ретрансляций (7*9=63) максимум? Я то подумывал выделить в каждом сообщении битовое поле по числу устройств (128 устройств - 16 байт) - это позволит отправителю узнавать дошло ли его сообщение до адресата, т.е. отказаться от ACK вообще, но требует более продвинутый алгоритм работы ретрансляторов. Чтобы они понимали "туда" или "назад" идёт сообщение (по последовательности адресов ретрансляторов) и не делали излишних ретрансляций. Но что то слишком сложный алгоритм получается, и ОЗУ много нужно. А может что-нибудь и придумается...
|
|
|
|
|
Apr 8 2013, 22:54
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
QUOTE (galjoen @ Apr 8 2013, 11:44)  А что такое аналоговые фронтенды и где их взять? По сути чип усилителя мощности на передачу (PA) + малошумящий усилитель на прием (LNA). Называются front end module (FEM). Например аппнот AVR2080 описывает как сделать систему с Skyworks SE2431L, но в целом все зависит от цены и возможности достать конкретный чип. QUOTE (galjoen @ Apr 8 2013, 11:44)  А как там на 433 МГц? Там ведь разрешённая мощность, а значит и дальность, побольше. Я не знаю, я с 433 МГц плотно не работал. QUOTE (galjoen @ Apr 8 2013, 11:44)  Счётчик - это присваивание отправляющим каждому сообщению своего TAGа? Да, конечно, такая таблица тоже должна быть, но по ней ретранслятор не может сделать вывод кто его слышит, и вообще слышит ли его кто-нибудь. А зачем ему это знать? QUOTE (galjoen @ Apr 8 2013, 11:44)  Но на пути следования сообщения может встретится узкое место. Т.е. всего 1 ретранслятор между 2-мя группами устройств, да и у того связь на грани слышимости. Но в это узкое место будут долбиться сразу несколько устройств. QUOTE (galjoen @ Apr 8 2013, 11:44)  9 ретрансляций (7*9=63) максимум? Не понял.
|
|
|
|
|
Apr 9 2013, 09:55
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Taradov Alexander @ Apr 9 2013, 02:54)  А зачем ему это знать? В общих чертах опишу как я представляю представляю броадкаст между подвижными объектами. Вот мой домодощенный, упрощённый за счёт отказа от маршрутов (не хватит ОЗУ и вычислительной мощности), алгоритм (сделаны и ещё кое-какие упрощения для простоты восприятия): 1. У каждого девайса имеется свой жёсткий N. Допустим, в сети может быть не более 256 устройств, тогда этот N будет размером в 1 байт. 2. Каждый отправляющий присваивает сообщению TAG (для примера - 2 байта), состоящий из своего фиксированного номера (1 байт) и N-ра отправленной посылки (циклический сч-к, тоже 1 байт - в реале, конечно, не так примитивно, но писать много...). По этому TAGу ретрансляторы идентифицируют посылку. 3. В каждой посылке имеется битовое поле, число бит в котором соответствует макс возможному числу устройств в сети. Т.е. если в сети может быть максимум 256 устройств, то поле будет иметь размер 32 байта. И каждый бит жёстко соответствует N устройства. 4. Отправляющий сообщение, и каждый ретранслирующий его, сбрасывает бит, соответствующий своему N, в 0. Изначально, при отправке сообщения, все биты, кроме бита отправителя, =1 (тут возможна оптимизация, но пока не будем об этом). 5. Отправляющий сообщение так же работает как ретранслятор. 6. Если девайс видит, что у принятого и отправленного им сообщение отличается битовое поле, то он производит 2 ретрансляции. Первую сразу же, а 2-ю милисекунд через 5 (так же возможна оптимизация). 7. Таким образом сообщение будет циркулировать (ретранслироваться) по сети пока в нём не окажутся сброшенными все биты, соответствующие устройствам, которые хоть кто-нибудь слышит. А устройства, которые слышат других, а их никто не слышит, поймут сложившуюся ситуацию. 8. ACK при таком алгоритме не нужен. Сообщение гарантировано будет услышано всеми девайсами, присутствующими в сети, и вернётся к отправителю со сброшенными битами всех девайсов, получившись его. 9. Сколько времени каждый девайс должен хранить сообщение (идентифицируемое по TAGу) у себя в ОЗУ - пока не решил. Скорее всего - бесконечно. Т.е. зависит от объёма выделенного ОЗУ - новое сообщение от данного девайса затирает предыдущее. Тогда объём потребного ОЗУ будет зависеть от кол-ва устройств в сети, умноженного на макс размер сообщения (без оптимизации - заранее выделенная таблица). Девайс не должен слать след. сообщение (с другим TAGом) пока не получит предыдущее сообщение со сброшенным битом желаемого приёмника, или у него не закончится таймаут. Если в сети 256 девайсов и длина сообщения со служебными битами, такими как TAG (только 1 байт) и битовое поле, равна 128 байт, то нужно 256*128=32 кБ ОЗУ. Всё это в общих чертах, конечно, но надеюсь, что мысль понятна. Так же понятно, что при таком подходе кол-во ретрансляций, а значит и время бродкаста, будет весьма велико. Но такова плата за упрощённый алгоритм с гарантированной доставкой.
|
|
|
|
Сообщений в этой теме
galjoen Mesh сеть между подвижными объектами. Apr 6 2013, 15:00 Aner Делали раньше несколько аналогичных проектов как с... Apr 8 2013, 18:14 galjoen Про сложность я уже понял. Поэтому вполне возможно... Apr 8 2013, 18:37 Aner Да тут сотни, десятки мегагерц не пройдут. Подойдё... Apr 8 2013, 21:27 Aner Без ACK не пройдет. Думаю вам нужно заняться и под... Apr 9 2013, 12:08 galjoen ACK не панацея, даже наоборот. Там весьма времязат... Apr 9 2013, 12:49 Aner Раньше не писали про GPS. Тогда вообще можете дела... Apr 9 2013, 13:53 Taradov Alexander Вы очень все усложняете. Делайте как работают броа... Apr 9 2013, 15:43 galjoen Цитата(Taradov Alexander @ Apr 9 2013, 19... Apr 10 2013, 07:33  Taradov Alexander В общем вам виднее как это сделать, не видя конкр... Apr 10 2013, 15:37   galjoen Я тоже не сторонник нестандартного, но тут сам слу... Apr 11 2013, 13:39 dbush Цитата(galjoen @ Apr 6 2013, 19:00) Задач... May 9 2013, 18:24 Taradov Alexander QUOTE (dbush @ May 9 2013, 11:24) По мимо... May 9 2013, 18:30  dbush Цитата(Taradov Alexander @ May 9 2013, 22... May 10 2013, 10:14   Taradov Alexander QUOTE (dbush @ May 10 2013, 03:14) Если 6... May 10 2013, 17:31  dbush Цитата(Taradov Alexander @ May 9 2013, 22... May 14 2013, 12:19   Taradov Alexander QUOTE (dbush @ May 14 2013, 05:19) К сожа... May 14 2013, 15:48 Aner Это все проделки тексаса, которому не терпиться бы... May 9 2013, 21:33 Taradov Alexander QUOTE (Aner @ May 9 2013, 14:33) Это все ... May 9 2013, 21:38 Aner Также как и IPv6 не получила столь широких и массо... May 9 2013, 22:08 Taradov Alexander QUOTE (Aner @ May 9 2013, 15:08) Также ка... May 9 2013, 22:17 Aner Exegin, Grid2Home, Sensinode ... эти мелкие, карма... May 9 2013, 22:23 Taradov Alexander Exegin в Канаде, Sensinode в Финляндии
Тут +25 -... May 9 2013, 22:40 Aner Exegin в Канаде точно. Остальные есть в USA, CA.
S... May 9 2013, 23:20 Aner Частотный диапазон тут не причем, дальность связи ... May 10 2013, 10:54 dbush Цитата(Aner @ May 10 2013, 14:54) Частотн... May 14 2013, 11:27  Aner QUOTE (dbush @ May 14 2013, 14:27) В форм... May 14 2013, 11:53 Aner Например ZigBee хорош для небольшой группы летател... May 10 2013, 18:19 Taradov Alexander QUOTE (Aner @ May 10 2013, 11:19) Наприме... May 10 2013, 18:28 DASM Цитата(Aner @ May 10 2013, 22:19) Наприме... Aug 5 2013, 19:03 Aner Программа загружается каждому своя. ZigBee использ... May 10 2013, 21:30 Aner А у вас значит аргументировано. И где это? ... пра... May 14 2013, 13:14 dbush Цитата(Aner @ May 14 2013, 17:14) А у вас... May 14 2013, 19:02  Aner QUOTE (dbush @ May 14 2013, 22:02) Если В... May 14 2013, 20:18   dbush Цитата(Aner @ May 15 2013, 00:18) Похоже ... May 15 2013, 06:36    Taradov Alexander QUOTE (dbush @ May 14 2013, 23:36) Посмот... May 15 2013, 06:42     dbush Цитата(Taradov Alexander @ May 15 2013, 10... May 15 2013, 06:49      Taradov Alexander QUOTE (dbush @ May 14 2013, 23:49) Да и р... May 15 2013, 07:01       dbush Цитата(Taradov Alexander @ May 15 2013, 11... May 15 2013, 08:32 vladec У Atmel есть доступный для скачивания стек Zigbee ... May 15 2013, 07:22 Pasha_a13 galjoen,
если не секрет, расскажите удалось ли Ва... Jul 27 2013, 17:45 Taradov Alexander Обычно каждый пересылающий узел добавляет случайну... Jul 27 2013, 18:14 Pasha_a13 Цитата(Taradov Alexander @ Jul 27 2013, 21... Jul 27 2013, 19:14 x893 Я делал в таксопарке обмен данными.
По приезду (ил... Jul 27 2013, 18:34 Pasha_a13 Цитата(x893 @ Jul 27 2013, 21:34) Я делал... Jul 27 2013, 19:57  Taradov Alexander QUOTE (Pasha_a13 @ Jul 27 2013, 12:57) А ... Jul 27 2013, 20:09   Pasha_a13 Цитата(Taradov Alexander @ Jul 27 2013, 23... Jul 27 2013, 20:28    Taradov Alexander Сеть из 204 узлов в одной комнате https://dl.dropb... Jul 27 2013, 20:35     Pasha_a13 Цитата(Taradov Alexander @ Jul 27 2013, 23... Jul 27 2013, 20:51      Taradov Alexander В ZigBee - да, в LwMesh - нет.
Тут демо приложени... Jul 27 2013, 20:54      jcxz Цитата(Pasha_a13 @ Jul 28 2013, 02:51) За... Jul 29 2013, 07:54       Taradov Alexander QUOTE (jcxz @ Jul 29 2013, 00:54) В ZigBe... Jul 29 2013, 15:41 Taradov Alexander Абсолютно надежной доставки не будет по понятным п... Jul 27 2013, 19:21 Pasha_a13 Александр, спасибо большое за ответы!
Перед да... Jul 27 2013, 21:10 Pasha_a13 Александр, добрый день!
Я прочитал документац... Jul 30 2013, 19:48 Taradov Alexander QUOTE (Pasha_a13 @ Jul 30 2013, 12:48) Пе... Jul 30 2013, 20:02  Pasha_a13 Цитата(Taradov Alexander @ Jul 30 2013, 23... Jul 30 2013, 20:38   Taradov Alexander QUOTE (Pasha_a13 @ Jul 30 2013, 13:30) Ил... Jul 30 2013, 20:50    Pasha_a13 Цитата(Taradov Alexander @ Jul 30 2013, 23... Jul 30 2013, 20:59     Taradov Alexander QUOTE (Pasha_a13 @ Jul 30 2013, 13:59) По... Jul 30 2013, 21:09      Pasha_a13 Александр, спасибо Вам большое! Понял свои оши... Jul 30 2013, 21:22       Taradov Alexander Опять-же при рассылке unicast-ов аппаратный Ack ис... Jul 30 2013, 21:35 Pasha_a13 У меня используется TRC102 и диапазон 433МГц.
При... Jul 31 2013, 05:13 Pasha_a13 В процессе дальнейшей работы над ретрансляцией воз... Aug 1 2013, 15:37 Taradov Alexander Не нужно ждать освобождения канала, так вы никогда... Aug 1 2013, 16:19 Pasha_a13 я уже понял что как ни крути придется добавлять бу... Aug 1 2013, 16:25 Taradov Alexander CSMA/CA - это не пауза, это то самое прослушивание... Aug 1 2013, 16:38  Pasha_a13 Понял. Спасибо.
Я думал за счет задержек на ретра... Aug 1 2013, 17:10 Taradov Alexander Эти задержки тоже нужны.
Алгоритм передачи кадра:... Aug 1 2013, 17:37 Pasha_a13 Цитата(Taradov Alexander @ Aug 1 2013, 19... Aug 1 2013, 19:24  Taradov Alexander QUOTE (Pasha_a13 @ Aug 1 2013, 12:24) Так... Aug 1 2013, 19:56 Pasha_a13 Добрый день, Александр!
Я пошел немного по дру... Aug 2 2013, 14:44 Pasha_a13 Добрый вечер!
Возник такой вопрос связанный с ... Aug 5 2013, 18:06 Taradov Alexander QUOTE (Pasha_a13 @ Aug 5 2013, 11:06) Одн... Aug 5 2013, 18:17  Pasha_a13 Цитата(Taradov Alexander @ Aug 5 2013, 21... Aug 5 2013, 18:51   Taradov Alexander QUOTE (Pasha_a13 @ Aug 5 2013, 11:49) Узе... Aug 5 2013, 18:59    Pasha_a13 Я делал так что узел 0 шлет RREQ: (NWKsrc=0, MACsr... Aug 5 2013, 19:22     Taradov Alexander QUOTE (Pasha_a13 @ Aug 5 2013, 12:22) Але... Aug 5 2013, 19:55      Pasha_a13 Цитата(Taradov Alexander @ Aug 5 2013, 22... Aug 5 2013, 20:00       Taradov Alexander QUOTE (Pasha_a13 @ Aug 5 2013, 13:00) У П... Aug 5 2013, 20:10        Pasha_a13 Цитата(Taradov Alexander @ Aug 5 2013, 23... Aug 5 2013, 20:23         Taradov Alexander В IEEE 802.15.4 довольно навороченный способ опред... Aug 5 2013, 20:28          Pasha_a13 Цитата(Taradov Alexander @ Aug 5 2013, 23... Aug 5 2013, 20:36           Taradov Alexander QUOTE (Pasha_a13 @ Aug 5 2013, 13:33) я п... Aug 5 2013, 20:44 Pasha_a13 Александр, добрый день!
Посидел поразбирался н... Aug 7 2013, 17:23 Taradov Alexander QUOTE (Pasha_a13 @ Aug 7 2013, 10:23) Я п... Aug 7 2013, 17:40  Pasha_a13 Цитата(Taradov Alexander @ Aug 7 2013, 20... Aug 7 2013, 17:54   Taradov Alexander QUOTE (Pasha_a13 @ Aug 7 2013, 10:54) Но ... Aug 7 2013, 17:59 Pasha_a13 а в функции nwkRouteFrameReceived(frame) какой алг... Aug 7 2013, 17:47 Taradov Alexander QUOTE (Pasha_a13 @ Aug 7 2013, 10:47) а в... Aug 7 2013, 17:51 Pasha_a13 Я правильно понял последовательность вызова процед... Aug 7 2013, 18:03 Taradov Alexander QUOTE (Pasha_a13 @ Aug 7 2013, 11:03) Я п... Aug 7 2013, 18:07 Pasha_a13 Если Вам не сложно, можете пожалуйста, в двух слов... Aug 7 2013, 18:11 Taradov Alexander NWK_OpenEndpoint() регистрирует обработчик приняты... Aug 7 2013, 18:17
2 страниц
1 2 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|