1 Введение
На рисунке ниже представлена архитектура сети LoRaWAN.
Типичная сеть LoRaWAN состоит из следующих элементов:
- Конечный узел или сенсор (End Node) - предназначен для осуществления управляющих или измерительных функций. Содержит набор необходимых датчиков и управляющих элементов, а также приемо-передающий радиомодуль.
- Шлюз LoRaWAN (Gateway) - устройство, принимающее данные от конечных устройств с помощью радиоканала, и передающее их в транзитную сеть. В качестве такой сети могут выступать Ethernet, WiFi, сотовые сети и любые другие телекоммуникационные каналы. Шлюз и конечные устройства образуют сетевую топологию типа звезда. Шлюз содержит многоканальные приёмопередатчики для обработки сигналов в нескольких каналах одновременно и нескольких сигналов в одном канале.
Группа таких устройств обеспечивает зону покрытия сети и прозрачную двунаправленную передачу данных между конечными узлами и сервером. - Сетевой сервер (Network Server) - предназначен для управления сетью: хранит данные о конечных узлах, занимается адаптацией скорости соединения и фильтрует дублирующиеся данные, приходящие с разных шлюзов.
- Сервер приложений (Application Server) — ПО для удаленного контроля работы конечных узлов и сбора необходимых данных с них.
Управляющий сервер сети LoRa «Server I/Q» реализует функцию элементов сетевого сервера и сервера приложений сети LoRaWAN.
2 Архитектура сервера «LoRaWAN.Server I/Q»
На рисунке ниже представлена архитектура сервера «LoRaWAN.Server I/Q».
ПО сервера состоит из следующих основных программных компонент:
- gw_bridge - отвечает за преобразование UDP потока с гейтвея в MQTT сообщения для сервера, и наоборот. Сообщения, передаваемые по MQTT протоколу, передаются в JSON-подобном формате. По сравнению со стандартной схемой, используемой в сетях LoRaWAN, применение данной компоненты на шлюзе позволяет:
- защитить передачу данных между шлюзом и сервером (протокол UDP не защищается), используя MQTT с TLS;
- гарантирует доставку сообщений (при использовании QoS 1 или 2), стандартный UDP не контролирует успешность доставки сообщений;
- имеет логирование для отладки.
- LoRa Network Server – отвечает за управление инфраструктурой сети. Контролирует сессии активных устройств в сети; активирует устройства, отправляющие запрос на подключение / переподключение. Авторизует пакеты с данными, фильтрует дубликаты пакетов от шлюзов и перенаправляет данные на сервер приложений. Управляет очередью сообщений на отправку на устройства.
- LoRa Application Server — занимается управлением приложениями и конечными устройствами, реализует графический интерфейс и взаимодействие с внешними серверами (через MQTT и RESTful JSON-API интерфейс). Авторизует и управляет пользователями сети.
- LoRa Data Parser – отвечает за преобразование форматов данных от устройств различных производителей в единый формат (json). Производит синтаксический разбор сообщений.
3 Возможности
Управляющий сервер сети «LoRaWAN.Server I/Q» полностью реализует поддержку протокола LoRaWAN 1.0 и 1.1, включая региональные настройки и параметры частотных планов.
Основные функции:
- Поддержка устройств класса А, B и С:
- Класс А: связь двунаправленная, но только конечные устройства являются инициаторами связи, после которой открывают 2 последовательных окна для приема сообщений от сети. Тип протокола – разновидность случайного доступа ALOHA с временной вариацией;
- Класс В: в дополнение к окнам приема сообщений для класса А, устройства открывают регулярное окно для приема сообщений по заданному сетью расписанию (синхронизация по временным Beacon меткам сети);
- Класс С: приемные окна открыты почти все время, с перерывом на передачу данных на сервер, сервер может отправить данные устройству в любое время.
- Фильтрация дубликатов (в случае получения данных несколькими шлюзами одновременно).
- Двусторонняя связь с подтверждением доставки и без подтверждения.
- Активация конечных узлов ABP (через прошивку ключей) и OTAA (по воздуху).
- Адаптивное управление скоростью соединения и мощностью радиопередатчиков конечных устройств (механизм ADR). Сервер сети выбирает наиболее оптимальные параметры радиопередачи для конечных устройств с целью минимизировать эфирное время радиопередачи и уменьшить риск возникновения коллизий в канале, а также с целью снижения энергопотребления и увеличения срока жизни устройств от элементов питания.
- Конфигурация частотных каналов, используемых сетью (шлюзами и конечными устройствами). Позволяет изменять частотные каналы, на которых работают устройства сети, через использование команд MAC-уровня и CFList.
- Управление окнами приема (RX1 или RX2).
- Внешние API интерфейсы gRPC и RESTful API для интеграции со сторонними приложениями.
- Поддержка JWT токенов для авторизации пользователей сервера и разграничения доступа.
- Прием и передача данных по протоколу MQTT / HTTP POST.
- Веб-интерфейс пользователя.