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

|
Задача передачи телеметрии от экскаваторов/бульдозеров/самосвалов в карьере в диспетчерскую. Сразу скажу, что GSM там нет, иначе было бы просто, а Ирридиум дорог. Вот подумываю о ZigBee, прочитал описание XBee. Но, насколько я понимаю, это не совсем то, т.к. сеть должна постоянно перенастраиваться - никаких роутеров, закреплённых в фиксированном месте, там быть не должно. Так же подумываю использовать только физику ZigBee, а всё остальное сделать самому (на базе готового стека, конечно). Получается, что в сети должны быть только broadcast сообщения т.к. маршруты будут постоянно меняться. И наличие координатора тут не имеет смысла. Понравился вариант на ATmega128RFR2, смущает только низкая максимальная выходная мощность передатчика. Какая реально дальность связи достижима? Или можно усилить? Про ограничения в курсе.
|
|
|
|
|
 |
Ответов
|
Jul 30 2013, 20:02
|

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

|
QUOTE (Pasha_a13 @ Jul 30 2013, 12:48)  Первый вопрос - я не совсем понял как ведет себя координатор после того как он инициировал route discovery, сколько времени он ожидает route reply от узла назначения и если route reply не пришел(узел назначения вне зоны досягаемости сети либо выключен), то делает ли он повторные попытки поиска узла назначения? Все ответы ожидаются NWK_ROUTE_DISCOVERY_TIMEOUT мс. По истечении этого времени если не было принято ни одного ответа, то запрос подтверждается со статусом NWK_NO_ROUTE_STATUS. Никаких попыток повторно послать запрос не производится - приложение само может это сделать если хочет. Так же можно раскомментировать строку 353 в nwkRouteDiscovery.c, тогда первый же принятый маршрут будет использован для отправки данных, но остальные ответы все-равно будут приняты для поиска более оптимального пути. Недостаток - пакету придется пробиваться сквозь тучу броадкастов от route discovery. QUOTE (Pasha_a13 @ Jul 30 2013, 12:48)  Второй вопрос - "4. If native route discovery is used and received frame had a unicast network address and broadcast MAC address (route discovery). In this case acknowledgment is used to facilitate discovery of the reverse route."(стр.20, вверху) - здесь под acknowledgment понимается пакет route reply или есть еще какие-то другие acknowledgment сообщения? Я просто не совсем понял какие есть acknowledgment пакеты в сети, т.е. в каких случаях они посылаются и понимаются ли под acknowledgment пакеты route reply и route error? В native route discovery нет route request и route reply кадров. Каждый кадр сам себе пробивает дорогу - если маршрут не известен, то он просто отправляется с MAC Dst = 0xffff (broadcast). Таким образом когда кадр доходит до назначения маршрут в одну сторону известен. И чтобы завершить поиск маршрута (найти маршрут назад) отправляется обычное сетевое подтверждение, даже если подтверждение не запрашивали. Так как к подтверждениям применяются те же правила, оно самим фактом доставки прокладывает маршрут.
|
|
|
|
|
Jul 30 2013, 20:38
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Цитата(Taradov Alexander @ Jul 30 2013, 23:02)  Все ответы ожидаются NWK_ROUTE_DISCOVERY_TIMEOUT мс. Спасибо за такой быстрый ответ! Тоесть NWK_ROUTE_DISCOVERY_TIMEOUT это фиксированная величина (1000мс) независимо от количества узлов и скорости передачи данных между узлами? Просто ведь если в сети например 300 узлов, задержка перед ретрансляцией пакета в диапазоне 1..32 мс....пусть мы берем плохой вариант - например средняя задержка 20 мс+5мс(сам пакет)=25 мс. Пусть топология сети выстроена таким образом что она растянута вдоль одной какой-то оси, т.е. узлы выстроены практически в линию. При этом даже если узел назначения будет находиться на расстоянии 50 узлов от координатора, то задержка от момента отправки запроса координатором до момента получения route reply составит 50*25мс*2(туда-обратно)=2500мс. Или подразумевается что пользователь при настройке системы сам устанавливает NWK_ROUTE_DISCOVERY_TIMEOUT исходя из топологии сети и приблизительно оценив возможную задержку? Цитата(Taradov Alexander @ Jul 30 2013, 23:02)  По истечении этого времени если не было принято ни одного ответа, то запрос подтверждается со статусом NWK_NO_ROUTE_STATUS. Никаких попыток повторно послать запрос не производится - приложение само может это сделать если хочет. Запрос подтверждается это имеется ввиду что уровень приложения получит ответ от более низкого уровня а не от другого устройства? Цитата(Taradov Alexander @ Jul 30 2013, 23:02)  Так же можно раскомментировать строку 353 в nwkRouteDiscovery.c, тогда первый же принятый маршрут будет использован для отправки данных, но остальные ответы все-равно будут приняты для поиска более оптимального пути. Недостаток - пакету придется пробиваться сквозь тучу броадкастов от route discovery. Я понял что узел назначения приняв пакет route discovery от одного из узлов ожидает некоторое время других пакетов, тем самым во первых имея альтернативу для выбора пути с лучшими показателями качества, а во вторых за время ожидания большая часть броадкастов перестанет бегать по сети и пакету route reply(unicast)(либо просто пакет подтверждения) проще будет вернуться к кооординатору. Пакет route reply идет без всяких подтверждений? Просто ж во время движения если он наткнется на остатки броадкастов, то координатор его никогда не получит..... Цитата(Taradov Alexander @ Jul 30 2013, 23:02)  В native route discovery нет route request и route reply кадров. Каждый кадр сам себе пробивает дорогу - если маршрут не известен, то он просто отправляется с MAC Dst = 0xffff (broadcast). Я уже перечитал первый абзац и понял что недопонял сходу по поводу отсутствия отдельной процедуры поиска пути - подвело мое не сильно хорошее знание английского  Из каких соображений было выбрано именно чтобы целый пакет пробивал себе путь? Ведь в таком случае пакет может быть довольно большой(много данных) и в процессе пробивания дороги больше вероятность что он побьеться да и больше ж времена передачи пакета. Ведь вроде как удобнее чтобы сначала найти путь а потом юникастом отправить данные к назначению. Цитата(Taradov Alexander @ Jul 30 2013, 23:02)  Таким образом когда кадр доходит до назначения маршрут в одну сторону известен. И чтобы завершить поиск маршрута (найти маршрут назад) отправляется обычное сетевое подтверждение, даже если подтверждение не запрашивали. Так как к подтверждениям применяются те же правила, оно самим фактом доставки прокладывает маршрут. Получается тот бит включения подтверждения указывает нужно ли послать подтверждения после доставки пакета чтобы сформировать путь для дальнейших пакетов или пакет был единичный и повторный путь нам не потребуется, соответственно зачем посылать подтверждение. Я правильно уловил мысль?
Сообщение отредактировал Pasha_a13 - Jul 30 2013, 20:48
|
|
|
|
|
Jul 30 2013, 20:50
|

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

|
QUOTE (Pasha_a13 @ Jul 30 2013, 13:30)  Или подразумевается что пользователь при настройке системы сам устанавливает NWK_ROUTE_DISCOVERY_TIMEOUT исходя из топологии сети и приблизительно оценив возможную задержку? Именно это и подразумевается. Поэтому оно и вынесено в конфигурационный параметр, а не упрятано в исходниках. QUOTE (Pasha_a13 @ Jul 30 2013, 13:30)  Запрос подтверждается это имеется ввиду что уровень приложения получит ответ от более низкого уровня а не от другого устройства? Нет. На уровне приложения есть возможность запросить подтверждение (NWK_OPT_ACK_REQUEST). Если оно запрошено, то принимающая сторона всегда посылает ответ. Если не запрошено, то ответ будет все-равно послан если nwkDst==<адрес устройства назначения>, а macDst= 0xffff (эта комбинация означает Native Route Discovery). В этом случае запрашивающая сторона ждать ответа не будет, и он просто будет проигнорирован, но как результат его прохождения будет найден маршрут. QUOTE (Pasha_a13 @ Jul 30 2013, 13:30)  Я понял что узел назначения приняв пакет route discovery от одного из узлов ожидает На route discovery узлы отвечают сразу после приема. Часть может и потеряется, часть доедет. На практике все доходить как нужно. Туча броадкастов не так страшна как кажется. QUOTE (Pasha_a13 @ Jul 30 2013, 13:38)  Из каких соображений было выбрано именно чтобы целый пакет пробивал себе путь? Из опыта. На практике кадры почти не бьются никогда, не зависимо от их размера. QUOTE (Pasha_a13 @ Jul 30 2013, 13:38)  Получается тот бит включения подтверждения указывает нужно ли послать подтверждения после доставки пакета чтобы сформировать путь для дальнейших пакетов или пакет был единичный и повторный путь нам не потребуется, соответственно зачем посылать подтверждение. Я правильно уловил мысль? Нет. Бит подтверждения - это именно бит подтверждения. Тот факт, что Ack используется для прокладки маршрута - это просто для удобства. Это могла быть совершенно независимая команда, но весь код для отправки Ack-ов и так есть, почему бы его не использовать?
|
|
|
|
|
Jul 30 2013, 20:59
|
Частый гость
 
Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244

|
Цитата(Taradov Alexander @ Jul 30 2013, 23:50)  Из опыта. На практике кадры почти не бьются никогда, не зависимо от их размера. Вот тут наверное главный момент кроется почему у меня возникли проблема с броадкаст пакетами в моем алгоритме. Где-то я неправильно реализовал сам алгоритм отправки-ретрансляции пакетов. Подскажет пожалуйста как на нижнем уровне происходит отправка-ретрансляция броадкаст(либо других) пакетов? Например мы приняли броадкаст пакет и нам его нужно ретранслировать дальше. При этом мы выбираем случайную задержку а по истечении времени задержки просто посылаем пакет либо по истечении времени задержки мы оцениваем свободу канала(например по наличию несущей) и если она занята то увеличиваем задержку и снова ждем. Либо мы постоянно смотрим наличие несущей...если она есть, то отсчет задержки приостанавливается, когда она исчезает, то продолжается отсчет? Просто у меня были проблемы с определением несущей и я ее не задействовал а только оперировал с задержками. И у меня получались наложения пакетов (я смотрел контрольным приемником все пакеты и видел что происходит явное наложение  )
Сообщение отредактировал Pasha_a13 - Jul 30 2013, 21:01
|
|
|
|
|
Jul 30 2013, 21:09
|

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

|
QUOTE (Pasha_a13 @ Jul 30 2013, 13:59)  Подскажет пожалуйста как на нижнем уровне происходит отправка-ретрансляция броадкаст(либо других) пакетов? Atmel-овские радио в соответствующем режиме всегда слушают канал, делают небольшую (порядка десятков мкс, единиц мс, прогрессивно увеличивающуюся с числом повторов) задержку если занято пробуют снова. Если за несколько повторов (4 по-умолчанию) не получилось отправить, то они сдаются и устанавливают соответствующий статус. Соответственно стек при приеме броадкаста делает случайную задержку порядка десятков мс и отправляет кадр в радио - дальше оно само как описано выше пытается его послать. Если радио так не может, то нужно то же самое делать программно. Но тут есть туча тонкостей по времянкам и порогам наличия сигнала, которые в IEEE 802.15.4 хорошо выглажены, так что настройки по-умолчанию отлично работают в большинстве случаев.
Сообщение отредактировал Taradov Alexander - Jul 30 2013, 21:10
|
|
|
|
Сообщений в этой теме
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 У меня используется 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 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|