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

|
Задача передачи телеметрии от экскаваторов/бульдозеров/самосвалов в карьере в диспетчерскую. Сразу скажу, что GSM там нет, иначе было бы просто, а Ирридиум дорог. Вот подумываю о ZigBee, прочитал описание XBee. Но, насколько я понимаю, это не совсем то, т.к. сеть должна постоянно перенастраиваться - никаких роутеров, закреплённых в фиксированном месте, там быть не должно. Так же подумываю использовать только физику ZigBee, а всё остальное сделать самому (на базе готового стека, конечно). Получается, что в сети должны быть только broadcast сообщения т.к. маршруты будут постоянно меняться. И наличие координатора тут не имеет смысла. Понравился вариант на ATmega128RFR2, смущает только низкая максимальная выходная мощность передатчика. Какая реально дальность связи достижима? Или можно усилить? Про ограничения в курсе.
|
|
|
|
|
 |
Ответов
|
Aug 5 2013, 18:06
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Добрый вечер! Возник такой вопрос связанный с маршрутизацией пакетов. Например у нас узлы расположены как показано на рисунке:  Штриховкой показаны зоны покрытия узлов. Узел 0 начинает искать узел 4. При этом он посылает броадкаст. Его слышит только узел 1, который в свою очередь ретранслирует этот броадкаст дальше. Далее ретранслированный узлом 1 пакет принимают узлы 2 и 3, которые в свою очередь ретранслируют пакет дальше. Однако нюанс в зонах покрытия - узлы 1 и 3 находятся на краях зон покрытия друг друга и соответственно качество этого участка варьируется довольно сильно от окружающей радиочастотной обстановки, т.к. уровень приема на границе шумов фактически. Однако броадкаст от узла 1 доходит до узла 3 быстрее, т.к. узел 2 ретранслирует пакет, а следовательно вносит задержку. По принципам маршрутизации броадкаст пакетов узел 3 ретранслирует броадкаст полученный от узла 1 и дальше отсекает все остальные броадкасты, в том числе и от узла 2. В итоге путь от узла 0 до узла 4 выстраивается по цепочке 0-1-3-4, хотя с точки зрения качества связи пожалуй лучше было бы выстроить по пути 0-1-2-3-4...хоть узел 2 и увеличивает путь, однако обеспечивает более качественную связь. Как решаются подобного рода проблемы в беспроводных сетях? Дело в том что у меня фактически именно топология где нет возможности размещать большое количество узлов чтобы у пакета была большая вариативность маршрута(т.к. каждый узел это деньги), а в основном узлы расположены по цепочке.
|
|
|
|
|
Aug 5 2013, 18:17
|

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

|
QUOTE (Pasha_a13 @ Aug 5 2013, 11:06)  Однако броадкаст от узла 1 доходит до узла 3 быстрее, т.к. узел 2 ретранслирует пакет, а следовательно вносит задержку. По принципам маршрутизации броадкаст пакетов узел 3 ретранслирует броадкаст полученный от узла 1 и дальше отсекает все остальные броадкасты, в том числе и от узла 2. В итоге путь от узла 0 до узла 4 выстраивается по цепочке 0-1-3-4, хотя с точки зрения качества связи пожалуй лучше было бы выстроить по пути 0-1-2-3-4...хоть узел 2 и увеличивает путь, однако обеспечивает более качественную связь. Тут много не верных предположений. 1. Для поиска маршрута используется не настоящий броадкаст, а локальный, который принимактся только узлами, которые в непосредственной зоне слышимости. 2. Каждое принимающее устройство генерирует новый Route Discovery Request, так как в нем меняется полезная нагрузка - суммарный LQI или число хопов через которые прошел пакет или любая другая метрика показывающая качество связи. Для фиксации повторов используется Route Discovery Table, из которой по адресу источника и назначения ясно участвуем мы уже в этом поиске или еще нет. 3. Устройство назначения принимает все ответы не зависимо от времени их прихода (в переделах максимального времени поиска маршрута, конечно). 4. Устройство назначения отвечает только если у нового пакета показатель качества (всего маршрута) лучше чем у того, на который ответили ранее. Таким образом ответ на самый лучший маршрут уйдет последним.
|
|
|
|
|
Aug 5 2013, 18:51
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Цитата(Taradov Alexander @ Aug 5 2013, 21:17)  Тут много не верных предположений. 1. Для поиска маршрута используется не настоящий броадкаст, а локальный, который принимактся только узлами, которые в непосредственной зоне слышимости. 2. Каждое принимающее устройство генерирует новый Route Discovery Request, так как в нем меняется полезная нагрузка - суммарный LQI или число хопов через которые прошел пакет или любая другая метрика показывающая качество связи. Для фиксации повторов используется Route Discovery Table, из которой по адресу источника и назначения ясно участвуем мы уже в этом поиске или еще нет. я наверное просто неправильно сформулировал по поводу route request. Узел 0 шлет RREQ, его принимает узел 1, изменяет в нем число хопов, фиксирует качество связи, фиксирует этот пакет в своей таблице маршрутизации и сам снова генерирует RREQ с тем же порядковым номером и тем же NWKsrc, однако с новым числом хопов. Далее этот пакет принимают узлы 2 и 3, каждый из которых так же в свою очередь изменяет пакет, фиксируют в таблицах и отправляют далее. Однако узел 3 приняв пакет от узла 1 запомнил комбинацию "номер пакета+NWKsrc" и уже не пропустит пакет от узла 2, т.к. у него будет такая же комбинация "номер пакета+NWKsrc" как и у пакета от узла 1, да и в таблице узел 3 зафиксирует что когда нужно будет пересылать пакет с NWKdst=0, то его нужно отправлять узлу 1....а если он примет и перешлет еще пакет от узла 2, то тогда затрется эта запись. Наверное я тут немного не до конца понял процесс фиксации записей в таблице... Цитата(Taradov Alexander @ Aug 5 2013, 21:17)  Для фиксации повторов используется Route Discovery Table, из которой по адресу источника и назначения ясно участвуем мы уже в этом поиске или еще нет. Я не понял что Вы имеете ввиду под тем участвуем ли мы уже в поиске или нет. Если можно, опишите пожалуйста поподробнее. Я просто не соображу как фиксируются повторы в таблице. Ведь вроде бы в таблице фиксируется узел источник NWKsrc и NextHop к этому узлу.
|
|
|
|
|
Aug 5 2013, 18:59
|

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

|
QUOTE (Pasha_a13 @ Aug 5 2013, 11:49)  Узел 0 шлет RREQ, его принимает узел 1, изменяет в нем число хопов, фиксирует качество связи, фиксирует этот пакет в своей таблице маршрутизации и сам снова генерирует RREQ с тем же порядковым номером и тем же NWKsrc, однако с новым числом хопов. Нет, так делать нельзя ни в коем случае. Если содержимое изменилось - это новый кадр с новым порядковым номером. QUOTE (Pasha_a13 @ Aug 5 2013, 11:49)  Я не понял что Вы имеете ввиду под тем участвуем ли мы уже в поиске или нет. Если можно, опишите пожалуйста поподробнее. Теперь, так как номер изменился, все остальные устройства тоже примут этот запрос еще раз. Чтобы его не передавать еще раз на время поиска маршрута в Route Discovery Table (это не тоже самое что Routing Table и Dplicate Rejection Table) создается запись, ключом в этой таблице является пара (NwkSrc, NwkDst), где NwkSrc - адрес запрашивающего узла, NwkDst - адрес узла до которого ищем маршрут. Причем такая запись будет всегда уникальна, так как запрашивающее устройство не будет слать повторный запрос пока на нем самом есть запись в Route Discovery Table о том, что оно уже ищет этот маршрут. QUOTE (Pasha_a13 @ Aug 5 2013, 11:51)  Я просто не соображу как фиксируются повторы в таблице. Ведь вроде бы в таблице фиксируется узел источник NWKsrc и NextHop к этому узлу. Уже как минимум 3 таблицы, уточняйте какая имеется в виду.
|
|
|
|
|
Aug 5 2013, 19:22
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Я делал так что узел 0 шлет RREQ: (NWKsrc=0, MACsrc=0, NumberPacket=1, NWKdst=4, MACdst=0xFF, hop_cnt=0 ) принял узел 1, сделал у себя запись (destination = NWKsrc(из пакета=0), nextHop = MACsrc(из пакета=0)), посылает дальше RREQ: (NWKsrc=0, MACsrc=1, NumberPacket=1, NWKdst=4, MACdst=0xFF, hop_cnt=1 ), принял узел 2 сделал у себя запись (destination = NWKsrc(из пакета=0), nextHop = MACsrc(из пакета=1)), посылает дальше RREQ: (NWKsrc=0, MACsrc=2, NumberPacket=1, NWKdst=4, MACdst=0xFF, hop_cnt=2), в это же время пакет принял и узел 3, сделал у себя запись (destination = NWKsrc(из пакета=0), nextHop = MACsrc(из пакета=1)), посылает дальше RREQ: (NWKsrc=0, MACsrc=3, NumberPacket=1, NWKdst=4, MACdst=0xFF, hop_cnt=2), просто дальше в моем варианте получается если узел 3 принял ретранслированный пакет от узла 2, то фактически ему нужно затереть запись (destination (=0), nextHop (=1)) и вместо нее будет запись (destination(=0), nextHop (=2)). Однако когда будет идти RREQ от узла 4 через узел 3, то он пойдет только по последнему пути, т.к. через 2, а не через 1. Цитата(Taradov Alexander @ Aug 5 2013, 21:59)  Теперь, так как номер изменился, все остальные устройства тоже примут этот запрос еще раз. Чтобы его не передавать еще раз на время поиска маршрута в Route Discovery Table (это не тоже самое что Routing Table и Dplicate Rejection Table) создается запись, ключом в этой таблице является пара (NwkSrc, NwkDst), где NwkSrc - адрес запрашивающего узла, NwkDst - адрес узла до которого ищем маршрут. Причем такая запись будет всегда уникальна, так как запрашивающее устройство не будет слать повторный запрос пока на нем самом есть запись в Route Discovery Table о том, что оно уже ищет этот маршрут. Начинаю понимать что я упустил основной момент - именно что есть 3 таблицы а не одна.... Александр, посоветуйте пожалуйста хороший источник где было бы подробно описано по поводу этих трех таблиц, потому что из оригинального описания AODV маршрутизации я так до конца и не понял по поводу этих таблиц.
|
|
|
|
|
Aug 5 2013, 19:55
|

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

|
QUOTE (Pasha_a13 @ Aug 5 2013, 12:22)  Александр, посоветуйте пожалуйста хороший источник где было бы подробно описано по поводу этих трех таблиц, потому что из оригинального описания AODV маршрутизации я так до конца и не понял по поводу этих таблиц. AODV - это только поиск маршрута, к нему относится только одна таблица - Route Discovery Table. Независимо от способа поиска маршрута (хоть руками вбивайте) для маршрутизации необходима Routing Table. AODV в эту таблицу заносит информацию о найденном маршруте. И независимо даже от наличия маршрутизации требуется Duplicate Rejection Table - для удаления повторных кадров. Я не знаю описано-ли все это где-нибудь в одном месте. Скорее всего если и описано, то это академический труд из которого что-то понять сложно.
|
|
|
|
Сообщений в этой теме
galjoen Mesh сеть между подвижными объектами. Apr 6 2013, 15:00 Taradov Alexander Какие скорости передачи данных интересуют? Можно в... Apr 7 2013, 03:27 galjoen Скорость небольшая. От каждого объекта передаётся ... Apr 7 2013, 12:02  Taradov Alexander QUOTE (galjoen @ Apr 7 2013, 06:02) Но по... Apr 7 2013, 19:41   galjoen Цитата(Taradov Alexander @ Apr 7 2013, 23... Apr 8 2013, 17:44    Taradov Alexander QUOTE (galjoen @ Apr 8 2013, 11:44) А что... Apr 8 2013, 22:54     galjoen Цитата(Taradov Alexander @ Apr 9 2013, 02... Apr 9 2013, 09:55 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 Цитата(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 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|