Программно-аппаратный комплекс IQRF для работы с беспроводными Mesh-сетями ISM-диапазона.
Часть 2

№ 4’2014
PDF версия
Во второй части статьи описывается работа трансиверов IQRF в Mesh-сетях. Приводится пример их использования в системе управления освещением.

Первая часть статьи.

Работа трансиверов в IQMESH-сетях

В среде IQRF поддерживается сетевая технология IQMESH, которая была разработана специально для пакетной передачи данных в беспроводных сетях Wireless Mesh Networks (WMN). В таких сетях сообщения передаются пакетами, содержащими информацию как о конкретном получателе, так и обо всей сети в целом.

Сети Mesh строятся как совокупность кластеров, при которой вся территория покрытия разделяется на зоны. В одном кластере размещается от 8 до 16 точек доступа. Одна из таких точек является узловой (gateway) и подключается к магистральному информационному каналу через соответствующий шлюз.

Полностью подключенной считается WMN-сеть, в которой каждый узел имеет прямую связь с другим узлом. В реальной WMN используются только частично связанные ячеистые сети, в которых не все устройства связаны друг с другом.

Для построения Mesh-сетей используются два типа логических устройств: «координатор» и «маршрутизатор». «Координатор» осуществляет формирование сети, управление узлами, а также хранит информацию о настройках каждого узла, подсоединенного к сети. При этом в локальной сети используется только один узел-«координатор».

В качестве примера такой топологии можно привести автомобильные дороги, связывающие два города через отдельные поселки. Некоторые дороги связаны между собой, некоторые не связаны. Задача заключается в том, чтобы гарантированно доставить посылку из одного города в другой за минимальное время.

Каждый IQRF-трансивер способен работать как в качестве координатора, так и в качестве общего узла. При этом каждый узел может дополнительно направлять пакеты в фоновом режиме. Поэтому точки доступа, работающие в Mesh-сетях, выполняют также функции маршрутизаторов и ретрансляторов для других точек доступа сети. Таким образом, возникает возможность создания самоустанавливающейся и самовосстанавливающейся сети.

В IQMESH-сетях используются специальные протоколы, позволяющие для каждой точки доступа создавать алгоритмы маршрутизации с контролем состояния транспортного канала и поддержкой трафика с оптимальными скоростями и минимальными временами доставки. При отказе одного из узлов происходит автоматическое перенаправление трафика по другому маршруту, что обеспечивает гарантированную доставку в кратчайшее время.

Радиус действия каждого устройства ограничивается, с одной стороны, техническими параметрами самой модели, а с другой — особенностями окружающей среды (экранирующие предметы и здания, электромагнитные наводки и т. д.). В общем случае точное значение радиуса действия каждого устройства теоретически определить невозможно. Поэтому маршрутизация представляет собой достаточно сложную математическую задачу. В настоящее время используются разнообразные алгоритмы для вычисления оптимального маршрута доставки сообщения. Их описание можно найти в работе [24]. Каждый из этих алгоритмов имеет свои преимущества и свои недостатки, связанные с конкретным изделием разработчика модулей.

Алгоритм IQMESH основан на хорошо известном методе «волнового распространения пакетов», в котором информация рассылается сразу по всей сети с помощью координаторов.

Каждое устройство в сети WMN имеет свои уникальные идентификационные данные: MAC, ID, идентификатор узла и т. п. Пакеты, отправляемые в такой сети, включают адрес получателя. Идея технологии IQMESH заключается в расширении идентификационной информации для каждого узла, что позволяет использовать метод TDMA (Time Division Multiple Access) и свести к минимуму ошибки, связанные с неправильной маршрутизацией и интерференцией соседних узлов.

Как было сказано выше, процесс работы трансиверов в среде IQRF начинается с того, что координатор сканирует всю сеть. Каждому обнаруженному в сети устройству автоматически присваивается свой уникальный идентификационный номер VRN (Virtual Routing Number), который будет в дальнейшем использоваться для маршрутизации.

В первую очередь VRN присваивается тем устройствам, которые находятся в зоне прямой видимости координатора и ответили первыми. Первому ответившему присваивается номер R1, второму — R2 и т. д. Кроме того, все устройства разбиваются на группы в зависимости от длительности времени их ответа на запрос координатора. На втором этапе VRN присваивается устройствам, которые не находятся в зоне прямой видимости координатора. В их уникальный адрес вносится дополнительная информация о тех узлах, через которые они были связаны с координатором. Данная операция будет продолжаться до тех пор, пока VRN не будут присвоены всем доступным устройствам, находящимся в зоне действия координатора. Эта информация впоследствии будет использоваться для оптимизации маршрутизации.

Если имеется несколько различных Mesh-сетей, разделенных по различным районам города, то их объединение производится с помощью IQRF/GSM- или IQRF/Ethernet-шлюзов, каждый из которых имеет свой выход на центральный сервер.

Зная приблизительное время доставки сообщения до определенного узла, можно ввести дополнительную синхронизацию по времени при приеме и передаче данных и использовать метод TDMA с временными слотами.

Схема маршрутизации с алгоритмом DFM

Рис. 10. Схема маршрутизации с алгоритмом DFM

Методика TDMA обеспечивает множественный доступ с разделением по времени, когда в одном частотном интервале находятся несколько абонентов. При этом разные трансиверы будут использовать разные временные интервалы (временные слоты) для передачи своей информации. Поэтому метод TDMA дает возможность каждому узлу использовать полный доступ к эфиру в течение короткого периода времени. Схема передачи информации в топологии IQMESH с использованием временных слотов показана на рис. 10.

В отличие от многих других методов, в системе IQMESH нет необходимости делать точную привязку по времени о полученных пакетах. Поскольку пакеты отправляются по временным слотам, можно свести к минимуму повторную пересылку пакета. Таким образом, только координатор должен хранить полную информацию обо всех узлах в своем фрейме. Сами узлы сохраняют только собственный уникальный адрес VRN. С другой стороны, можно дополнительно уточнять параметры каждого узла. Например, можно сохранять информацию о «родительских» узлах, с помощью которых были переданы данные. Учитывая это в алгоритме выбора маршрута, можно еще точнее указать путь передачи данных. Так, например, в топологии «дерево» можно оставить только крупные прямые ветви, исключив мелкие разветвления и «листья».

Каждый IQRF-трансивер может работать одновременно в двух независимых сетях. В среде IQRF OS поддерживаетcя работа трансивера в качестве координатора в одной сети и в качестве узла во второй сети. Это позволяет наращивать цепочки сетей практически до неограниченного количества устройств и организовать надежный адресный обмен между всеми узлами сетей. В том случае когда один из узлов недоступен, маршрут автоматически пересчитывается. Поэтому выход из строя части узлов хотя и может увеличить время доставки, но не приведет к полной потере пакета.

Проведенные разработчиками IQRF-тесты по влиянию внешних препятствий и электромагнитных наводок на процесс пересылки пакетов показали высокую надежность описанной системы и ее устойчивость к внешним воздействиям. Наиболее чувствительными к внешним воздействиям оказались узлы в первом фрейме, которые не поддерживаются резервными обходными маршрутами. В то же время если первый фрейм, обменивающийся с координатором данными в течение первого временного слота, обеспечить избыточными узлами, то надежность доставки данных резко возрастает. В целом результаты испытаний сети IQMESH с трансиверами, размещенными на разных этажах стандартного железобетонного здания, показали один отказ по доставке пакета на 17 250 передач. В этой сети фиксация FTSI для координатора была реализована с помощью двух дополнительных слотов [24]. Подробное описание пакетов, пересылаемых между узлами, приведено в [8].

В среде IQRF OS 3.0x для трансиверов серии TR-5xx поддерживаются три основные схемы маршрутизации, которые используют сетевой адрес, логическое дерево или VRS. Необходимая схема маршрутизации выбирается в зависимости от конкретной задачи.

Инициализация работы в сети осуществляется через логический адрес, полученный во время соединения с помощью функции setUserAddress (х). Как было сказано выше, в топологии IQRF IQMESH используется метод TDMA. Один кадр может включать до 240 временных интервалов, что позволяет реализовать до 240 дублирующих посылок. Длительность временных слотов может изменяться с помощью переменной RTSLOT. Базовое значение составляет 10 мс. Объем данных в пакете может составлять от 1 до 128 байт. Стандартная скорость передачи — 19,2 кбит/с. В принципе, можно менять скорость передачи в диапазоне 1,2–115 кбит/с. В зависимости от объема пакета и скорости передачи можно задавать и длительность временного слота.

Операционная среда IQRF SO поддерживает следующие алгоритмы пересылки данных по сети IQMESH:

  • SFM (Static Full Mesh) — полностью готовая статическая сеть Mesh;
  • DFM (Discovered Full Mesh) — обнаруженная полная сеть Mesh;
  • DOM (Discovered Optimized Mesh) — обнаруженная оптимизированная полная сеть Mesh;
  • DFM2B (Discovered Full Mesh, 2 B) — обнаруженная расширенная полная сеть Mesh;
  • Tree — дерево.

Алгоритм SMF предназначен для тех случаев, когда заранее точно известен адрес каждого узла и определен способ доставки пакета. В сети может быть до 240 устройств. В этом случае вектор маршрутизации (Routing vector) может принимать значения от 1 до 239. При передаче данных используются логические адреса (RX =<логический адрес>). Перед активацией в сети (bonding) все узлы должны быть установлены на свои места и должны быть заданы их адреса в порядке возрастания по отношению к координатору. (Адреса должны увеличиваться с расстоянием от координатора.) В этом случае нет необходимости проводить процесс обнаружения (discovery).

Схема DFM используется, когда первоначально узлы расположены случайным образом и неизвестны их точные адреса. В этом случае выполняется поиск и обнаружение всех узлов сети, которым присваиваются виртуальные номера VRN. В одной сети может одновременно работать до 239 устройств.

Алгоритм DFM отличается от SFM тем, что вместо простых логических адресов используются дополнительные виртуальные номера VRN. В этом случае полный адрес содержит логический адрес узла (от 1 до 9) плюс индекс временной зоны (Z0–Z3). Схема маршрутизации с алгоритмом DFM показана на рис. 10.

Алгоритм DOM является частным случаем DFM. Он отличается только тем, что в нем с помощью функции optimizeHops () можно сокращать число повторных посылок через второстепенные ветви маршрута, достигая тем самым увеличения скорости передачи данных.

Алгоритм DRM — это один из вариантов DOM, в котором количество повторных посылок можно сокращать с учетом количества зарегистрированных VRN в первой временной зоне.

В основе алгоритма DFM2B лежит тот же принцип, что и в DFM. Однако в этом случае используется вариант кластерных сетей, когда отдельные сети (до 240 устройств в каждой) объединяются в единую сеть с помощью создания единой виртуальной магистрали. Такая сеть может содержать до 65 000 устройств. Этот вариант реализуется за счет дополнительной адресации в старших байтах: setUserAddress (х); RTDT3 =<старший байт>; RX =<младший байт>.

Алгоритм Tree предназначен для самой простой топологии, в которой один маршрутизатор используется в каждой зоне и передача идет напрямую от узла к координатору. Это самый быстрый способ вернуть пакеты координатору, однако резервные маршруты здесь не предусмотрены вообще.

Подробно алгоритмы маршрутизации описаны в документах [8]. Примеры для конкретных задач, демонстрирующие настройку маршрутизации и критерии выбора параметров, можно найти в работе [24].

Пример IQMESH-сети

Рис. 11. Пример IQMESH-сети

В качестве примера рассмотрим сеть, состоящую из девяти узлов, соединенных с координатором (рис. 11).

На первом этапе формируется сеть. Координатор ищет все узлы. Каждый узел получает свой логический адрес (от 1 до 9), назначенный в процессе соединения узла с координатором (bonding). В соответствии с заданным алгоритмом каждый узел получает свой временной слот: узел № 3 — первый слот, № 8 — восьмой, № 9 — девятый и т. д.

Предположим, что, согласно заданному алгоритму, необходимо доставить сообщение узлу № 5. Процесс доставки пакета от координатора до узла № 5 можно представить следующим образом:

  • Координатор посылает пакет в первый временной слот.
  • Пакет получают узлы № 3 и № 8.
  • В течение временных слотов один и два нет пересылки пакетов, поскольку узлы № 1 и № 2 не получили этот пакет.
  • № 3 ждет два слота, затем в третьем слоте пересылает пакет дальше.
  • № 8 ждет семь слотов, затем в восьмом пересылает пакет дальше.
  • Пакет, переправленный узлом № 3, в третьем временном слоте получают узлы № 8, № 6 и № 9. Координатор игнорирует этот пакет.
  • № 8 получает пакет во второй раз и все еще ждет своего временного интервала.
  • № 6 принимает пакет в первый раз и ожидает своего временного интервала.
  • № 9 принимает пакет в первый раз и ожидает своего временного интервала. И т. д.
  • В течение временного слота девять узел № 9 будет пытаться отправить пакеты на узлы № 1 и № 2. Однако они не могут это сделать, поскольку временной интервал для отправки пакета с этих узлов уже истек. Поэтому пакет не может быть доставлен к узлу № 5 через узлы № 1 и № 2.
  • Аналогично узел № 4 не может переправить пакет к № 5, поскольку он получил этот пакет во временном слоте семь от узла № 7 уже после того, как закончился временной интервал четыре.

Таким образом, мы пришли к выводу о том, мы никогда не сможем передать пакет от координатора к узлу № 5 в этой топологии. Это явилось следствием того, что наш алгоритм маршрутизации выбран неправильно. Мы пропустили процесс обнаружения (discovery) и поэтому неправильно разместили узлы и задали их адреса.

Модель, показанная на рис. 6, может работать с алгоритмом тогда, когда все узлы размещены в соответствии с их логическими адресами, по возрастанию от координатора (алгоритм SFM). Например, такая модель хорошо подходит для включения уличного освещения, когда все узлы размещены последовательно на одной линии, с координатором на одном конце.

В рассмотренном выше примере необходимо использовать маршрутизацию с алгоритмом DFM. При этом необходимо выполнить операцию поиска и идентификации всех устройств, находящихся в сети, — discovery. Этот процесс занимает от десятков секунд до десятков минут в зависимости от числа узлов, топологии и т. д.

Вернемся к нашему примеру.

Процесс discovery активируется командой MaxNodeAddress, которая соответствует тому, что должно быть найдено максимальное количество узлов.

Алгоритм процесса discovery выглядит следующим образом:

  • Координаторпосылаетпакетзапроса: «Whoever is in range, answer me».
  • Узлы № 3 и № 8 сообщают, что они находятся на прямой связи с координатором.
  • Координатор создает зону z0 и заносит в нее узлы № 3 и № 8.
  • Координатор посылает сначала пакет узлу № 3 с сообщением «номеру 3 присвоен VRN = 1» (низший логический адрес всегда имеет приоритет для связи с другими узлами и с координатором).
  • Координатор посылает пакет узлу № 8 с сообщением «номеру 8 присвоен VRN = 2».
  • Координатор передает дальнейшее управление узлу № 3 с командой Discover your neighbors, в соответствии с которой осуществляется поиск узлов, находящихся в прямой связи с № 3, и им присваивается собственный уникальный VRN.
  • Узел № 3 обнаруживает ближайший узел № 6 и присваивает ему
    VRN = 3.
  • Узел № 3 посылает координатору сообщение о том, что узлу № 6 присвоен VRN = 3.
  • Узел № 3 обнаруживает другой ближайший узел № 9 и присваивает ему VRN = 4.
  • Узел № 3 посылает координатору сообщение о том, что узлу № 9 присвоен VRN = 4.
  • Координатор создает зону z1.
  • Координатор передает управление узлу № 8, но этот узел не находит новых незарегистрированных соседей и не посылает ответ координатору.
  • Координатор передает управление узлу № 6, который обнаруживает узел № 7, присваивает ему VRN = 5 и посылает соответствующее уведомление координатору.
  • И т. д.

В результате координатор опрашивает все узлы, находящиеся в сети, и создает приоритетные временные зоны в соответствии с алгоритмом DFM (рис. 5).

В общем случае пакет с запросом, который координатор отсылает узлам, выглядит так:

setCoordinatorMode(); //Устанавливаются параметры координатора и сети;

RX = 1;

DLEN = 10; //Данные формируются в буфере блока RF;

PIN = 0; //Предварительная очистка;

_ROUTEF = 1; //Доставка пакета по указанному адресу (PIN.5 flag);

RTDEF = 2; //Алгоритм DFM;

RTHOPS = eeReadByte(0x00); //Количество повторных пересылок равно количеству обнаруженных узлов, работающих в фоновом режиме;

RTTSLOT = 2; // 20 мс – достаточно для режима DLEN=10;

RFTXpacket();

...

В приведенном примере использован так называемый метод network flooding, который в приложении к IQMESH означает, что каждый обнаруженный узел, которому присвоен свой VRN, будет пересылать пакет только в своем временном слоте. В этом случае routing vector будет принимать значения от 1 до 9. Такой метод особенно полезен при работе с двигающимися узлами. На рис. 5 номер в кружочке означает логический адрес узла. Цифра рядом с кружочком — номер слота (слот четыре соответствует узлу № 9).

В рассматриваемом примере узел № 9 получит в сумме сообщение от координатора четыре раза: четвертый слот — от узла № 9; седьмой слот — от узла № 2; восьмой слот — от узла № 3; девятый слот — от узла № 5. Поэтому соединение координатора с узлом № 1 является сверхнадежным. Например, если пересылка пакета не удалась в четвертом слоте, то узел № 1 получит ее позже в восьмом и девятом слоте.

Время доставки можно уменьшить за счет надежности системы. Если использовать алгоритм DOM и ограничить число повторных пересылок до шести, включая изначальный пакет координатора, то значения Routing vector будут от 1 до 5. В этом случае узел № 1 получит пакет от координатора только один раз в четвертом слоте от узла № 9.

Более подробно структура пакетов в сетях IQMESH IQRF рассмотрена в документах [8, 9].

Для работы с сетями IQMESH в программе IDE предусмотрен раздел IQMESH Network Manager, в котором можно задавать параметры сети и устройств как в ручном, так и в автоматическом режимах (рис. 12).

Окно IQMESH Network Manager программы IDE

Рис. 12. Окно IQMESH Network Manager программы IDE

Для работы с IQMESH-сетями можно использовать универсальный отладочный комплект DK-EVAL-03, который поддерживает работу с большинством трансиверов. Так, например, трансивер TR-52BA вставляется в DK-EVAL-03, который подключается к компьютеру через интерфейс GW-USB-04. С помощью универсального программатора-отладчика CK-USB-02 и программного обеспечения IDE/DPA можно легко создать IQMESH-сеть, в которой в качестве координатора будет служить TR-52BA.

В настоящее время продукция IQRF используется во многих странах для управления уличным освещением, светофорами, пожарными сигнализациями и другими аналогичными коммунальными и промышленными системами. В качестве примера можно привести сеть, управляющую уличным освещением в пригороде Нитра, Словакия (рис. 13). В этом проекте в радиусе десятков километров была создана сеть, состоящая из трансиверов мощностью всего 3,2 мВт.

Сеть управляющая уличным освещением в пригороде Нитра (Словакия)

Рис. 13. Сеть управляющая уличным освещением в пригороде Нитра (Словакия)

Программно-аппаратный комплекс IQRF содержит все необходимые компоненты, с помощью которых можно создавать IQMESH-сети, состоящие из сотен тысяч устройств. Такие сети можно использовать для автоматизации различных процессов на мелких и крупных промышленных предприятиях, в коммунальном и сельском хозяйстве.

Литература
  1. Решения Государственной комиссии по радиочастотам (ГКРЧ) № 08-24-01-001 от 28.04.2008 и № 07-20-03-001 от 07.05 2007.
  2. IQRF.org
  3. iqrf.org/weben/index.php?sekce=products
  4. iqrf.org/weben/index.php?sekce=products&id=gateways
  5. IQVSP Smarter Control. Simply, Visual Control Panels, technology for manufacturers and system integrators.
  6. iqrf.org/weben/index.php?sekce=products&id=rt-230-05&ot=routers&ot2=rt-230-05
  7. iqrf.org/weben/index.php?sekce=products&id=end-devices
  8. IQRF OS. Operating System. Version 3.05D, for TR-5xD. Reference Guide.
  9. IQRF OS, IQRF OS. Operating System. User Guide.
  10. CC5X C Compiler for the PICmicro Devices, Version 3.5. User’s Manual.
  11. IQRF DPA Framework. Technical guide. Version v2.01. For IQRF OS v3.05D.
  12. iqrf.org/weben/index.php?sekce=support&id=for-tr&ot=code-examples&ot2=for-tr
  13. CK-USB-04, IQRF Programmer and Debugger. Firmware v1.00. User’s Guide.
  14. IQRF Quick Start Guide, For IQRF OS v3.04D and higher, For IQRF IDE v4.14 and higher (iqrf_ide_417_setup).
  15. iqrf.org/weben/index.php?sekce=support&id=download&­kat=52
  16. iqrf.org/weben/index.php?sekce=support&id=download&kat=54&ids=352
  17. iqrf.org/weben/index.php?sekce=support&id=download&kam=searchd
  18. IQRF Startup package, OS v3.04D – IDE4 Help.
  19. SPI Implementation in IQRF TR modules.
  20. iqrf.org/weben/index.php?sekce=products&id=ds-dpa-01&ot=development-tools&ot2=development-sets
  21. IQRF DPA. Quick Start Guide. For DPA framework v2.00, For IQRF OS v3.05D and higher, For IQRF IDE v4.15 and higher.
  22. iqrf.org/weben/index.php?sekce=products&id=transceivers
  23. iqrf.org/weben/index.php?sekce=products&id=development-kits&ot=development-tools&ot2=development-kits
  24. IQMESH, Reliable Technology for Wireless Mesh Networks / Vladimir Sulc, MICRORISC, s.r.o. Jicin, Czech Republic, Radek Kuchta, Radimir Vrba, Faculty of Electrical Engineering and Communication Brno University of Technology. Brno, Czech Republic.
  25. DS-MESH-02D. Development set for IQMESH. User’s Manual.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *