Общие сведения о технологии LoRa и сети LoRaWAN
-
Список терминов
- 1. Частота (Frequency), План частот.
- 2. Полоса пропускания (Bandwidth, BW)
- 3. SF - Фактор расширения спектра (Spreading Factor)
- 4. Кодовая скорость (Coding Rate, CR)
- 5. Мощность передачи (Tx Power)
- 6. RSSI (Received Signal Strength Indicator)
- 7. SNR (Signal-to-Noise Ratio)
- 8. ADR (Adaptive Data Rate)
- 9. Частотный план (Channel Plan)
- 10. Duty Cycle
- 11. Классы устройств (Device Classes: A, B, C)
- 12. Время в эфире (Air Time)
- 13. Модуляция (CSS, FSK)
- Краткая памятка
- Выбор скорости передачи (DR)
- Выбор канала (частоты передачи)
- Помехоустойчивое кодирование
-
Идентификация, активация и шифрование
-
Архитектура и узлы сети LoRaWAN
LoRa (от Long Range) — это технология беспроводной связи, предназначенная для передачи данных на большие расстояния (до нескольких километров) с большой устойчивостью к помехам.
Для передачи данных используется протокол LoRaWAN. Это идеальное решение для IoT, где нужна долгая работа датчиков от батареи и передача небольших данных на большие расстояния, а также где нет покрытия сотовой сети.
- LoRa — это физический уровень (PHY), определяющий способ модуляции сигнала.
- LoRaWAN — это протокол сетевого уровня, который определяет, как устройства соединяются в сеть, аутентифицируются и передают данные через шлюзы.
Список терминов
Основные параметры связи и термины для LoRa и LoRaWAN.
1. Частота (Frequency), План частот.
- Зависит от региона. Региональные планы частот имеют общепринятые обозначения: EU868, RU864 (RU864-870), US915, AS923 и др.
- Определяет, на каких радиоканалах будут работать устройства.
- в плане может быть указано несколько каналов, например, 868.1, 868.3, 868.5 МГц
- также каналы имеют определённую полосу пропускания
- Для РФ: канал "по-умолчанию" для диапазона RU864-870 - 868,9 МГц. Список частот и каналов для диапазона RU864-870 расположен в разделе "Выбор канала (частоты передачи)"
2. Полоса пропускания (Bandwidth, BW)
- Типовые значения: 125 кГц, 250 кГц, 500 кГц.
- Чем больше полоса — тем выше скорость передачи, но меньше чувствительность приёма.
- бóльшая полоса также увеличивает потребление энергии во время передачи (т.к. чип активен меньше времени, но на большей полосе), но снижает общее время эфира (Air Time).
- для России разрешено использование только 125 кГц
3. SF - Фактор расширения спектра (Spreading Factor)
- Диапазон: SF7 – SF12.
- Чем выше SF → тем дальше "добивает" сигнал, но ниже скорость передачи.
- SF7: быстрая передача но меньшая дальность.
- SF12: максимальная дальность но медленная передача.
- Чем выше SF → не только больше дальность, но и выше помехоустойчивость.
- Для сигнала с SF12 вероятность успешного приёма выше в условиях шума и помех, чем для SF7.
4. Кодовая скорость (Coding Rate, CR)
- Значение: 4/5, 4/6, 4/7, 4/8.
- Показывает, сколько служебных бит добавляется для коррекции ошибок.
- определяет уровень избыточности кода (FEC - Forward Error Correction) для коррекции ошибок. Например:
- CR 4/5 означает, что на каждые 4 бита полезных данных добавляется 1 служебный бит,
- CR 4/8 — что на 4 бита данных добавляется 4 бита коррекции.
- Чем больше защита (например, 4/8), тем надёжнее связь, но ниже полезная скорость.
- подробнее про влияние этого параметра на передачу данных описано в разделе "Помехоустойчивое кодирование"
5. Мощность передачи (Tx Power)
- Обычно в диапазоне 2–20 dBm (100 мВт).
- Максимальное значение ограничивается законодательством региона и возможностями чипсета. Например: в EU 868 макс. 14 dBm (25 мВт), в US915 макс. 20 dBm (100 мВт), в RU 864 макс. 14 dBm (25 мВт).
6. RSSI (Received Signal Strength Indicator)
- Уровень полученного сигнала (дБм).
- Выражается в отрицательных числах.
- Чем число меньше, тем сигнал слабее.
- Типичные значения:
- -30 дБм (очень сильный сигнал, рядом с антенной).
- -120 дБм (граница чувствительности).
7. SNR (Signal-to-Noise Ratio)
- Отношение сигнал/шум (дБ).
- Может быть положительным (чистый сигнал) или отрицательным (шумнее, чем сигнал).
- Для разных SF допустимы разные минимальные значения, например:
- SF7: от -7.5 дБ
- SF12: до -20 дБ.
8. ADR (Adaptive Data Rate)
- Механизм автоматической оптимизации SF, BW и мощности.
- Это механизм, при котором сетевой сервер на основе данных о качестве связи от устройства (RSSI, SNR) дистанционно оптимизирует его параметры (SF, мощность передачи) для достижения наилучшего баланса между дальностью, скоростью и энергопотреблением.
9. Частотный план (Channel Plan)
- Количество каналов, их частоты и разрешения на использование.
- Примеры
- EU868: 868.1 / 868.3 / 868.5 МГц (обязательные каналы).
- RU864: диапазон частот 868.7 – 869.2 МГц (Band B)
- Частотный канал по умолчанию (Uplink): 868.9 МГц
- Нисходящий канал (Downlink): 869.1 МГц
10. Duty Cycle
- Ограничение по времени передачи на определённой частоте (в Европе, например, 1%)
- это ограничение времени, в течение которого устройство может передавать в эфире, выраженное в процентах от общего интервала времени
- определяет насколько часто и долго модуль LoRa имеет право "занимать эфир"
- Duty Cycle в 1% означает что устройство может передавать максимум 36 секунд в час на каждом канале (остальное время — приём или молчание)
- на практике, например если пакет длится 1 секунду, а Duty Cycle = 1%, то после отправки надо подождать минимум 99 секунд тишины, прежде чем снова передавать
11. Классы устройств (Device Classes: A, B, C)
Основные режимы работы устройства, определяющие его энергопотребление и возможность получать данные от сервера.
- Class A (Асинхронный): Устройство передаёт данные и открывает два коротких окна для приёма. Самое экономное. Приём Downlink возможен только сразу после передачи Uplink. Простые датчики с батарейным питанием могут работать несколько лет от одной батареи используя Class A.
- Class B (Квази-синхронный): Помимо окон Class A, устройство периодически открывает дополнительные окна для приёма по синхронизирующим сигналам (beacons) от шлюза. Баланс между энергопотреблением и возможностью приёма.
- Class C (Синхронный): Устройство всегда открыто на приём, когда не передаёт. Самое "прожорливое" по энергопотреблению, используется для устройств постоянным питанием от сети.
12. Время в эфире (Air Time)
- Время в миллисекундах, которое занимает передача одного пакета данных.
- Это ключевой параметр для расчёта Duty Cycle и планирования нагрузки на сеть. Прямо зависит от размера пакета (Payload), SF, BW и CR. Рассчитывается специальными калькуляторами (LoRa Air Time Calculator).
13. Модуляция (CSS, FSK)
Модуляция сигнала определяет способ передачи данных в радиосигнале (как передать полезную информацию путём изменения одного из физических параметров радиосигнала). В данном случае используется изменение частоты. Для LoRa могут применять следующие варианты:
- ЛЧМ - Линейная частотная модуляция (CSS - Chirp Spread Spectrum) - несущая частота плавно изменяется вверх или вниз в течение символа. Получается так называемый "чирп" (chirp).
- ЛЧМ разрешён к использованию в России согласно региональным стандартам
- LoRa — это частный случай ЛЧМ-модуляции
- за счёт растяжения сигнала по частоте достигается устойчивость к шумам и возможность приёма сигналов ниже уровня шума.
- позволяет работать на большие расстояния при низкой скорости передачи данных.
- FSK (Frequency Shift Keying, частотная манипуляция) - информация кодируется переключением несущей частоты между двумя (или несколькими) дискретными значениями.
- FSK проще и быстрее, но менее устойчив к шуму.
- для более высоких скоростей передачи данных на небольшие расстояния.
Краткая памятка
В связке LoRaWAN обычно оперируют такими параметрами:
- SF, BW, CR, Air Time → определяют скорость, дальность связи и энергопотребление (время работы от батареи).
- Tx Power, RSSI, SNR → влияют на качество и надёжность сигнала.
- ADR, Duty Cycle, План частот, Класс устройства → определяют соответствие региональным стандартам и логике работы приложения.
Выбор параметров связи
Параметры связи выбираются в соответствии с региональным стандартами, в РФ это RU864-870.
Российские стандарты и принципы передачи данных подробно описаны в ГОСТ Р 71168-2023 (раздел "Региональные параметры").
Выбор скорости передачи (DR)
В общем случае скорость передачи данных (DR - Data Rate) находится в диапазоне примерно от 0,3 до 50 кбит/с и зависит от:
- условий на местности (городская застройка, прямая видимость или др.)
- загруженности канала передачи (сколько Node подключаются к одному Gateway, какая длина пакетов данных)
- настроек приёмника и передатчика
- региональных стандартов и ограничений
В большинстве случаев при грамотном построении сети - этого достаточно для передачи групп показаний с датчиков, а также для точечного управления там где не требуется высокая скорость реакции на события.
Согласно ГОСТ Р 71168-2023, применима такая таблица соответствия DR (кода скорости передачи), SF (Spreading Factor - фактора расширения спектра) и других параметров:
| DR Код Data Rate |
SF Spreading Factor |
Вид модуляции | Полоса частот | Скорость передачи данных, бит/с |
|---|---|---|---|---|
| DR0 | SF12 | ЛЧМ | 125 кГц | 250 |
| DR1 | SF11 | ЛЧМ | 125 кГц | 440 |
| DR2 | SF10 | ЛЧМ | 125 кГц | 980 |
| DR3 | SF9 | ЛЧМ | 125 кГц | 1760 |
| DR4 | SF8 | ЛЧМ | 125 кГц | 3125 |
| DR5 | SF7 | ЛЧМ | 125 кГц | 5470 |
| DR6 | SF7 | ЛЧМ | 250 кГц | 11000 |
| DR7 | FSK | 50000 |
Для РФ (RU864-870) применяются скорости с кодами DR0-DR5 - разрешена только линейная частотная модуляция (ЛЧМ) с полосой пропускания 125 кГц.
Выбор канала (частоты передачи)
Согласно региональным стандартам RU864-870, ГОСТ Р 71168-2023 могут использоваться следующие каналы и частоты:
Основные каналы ("по-умолчанию")
| Номер канала | Частота, MГц | Скорость | Duty Cycle | Мощность, дБм |
|---|---|---|---|---|
| 1 | 868,9 | DR0-DR5 | <10 % | 14 |
| 2 | 869,1 | DR0-DR5 | <10 % | 14 |
Duty Cycle — это регуляторное ограничение на долю времени, когда устройство может излучать радиосигнал в эфире.
(подробнее см. в списке терминов)
Дополнительные каналы (имеют более жёсткие ограничения по Duty Cycle)
| Номер канала | Частота, MГц | Скорость | Duty Cycle | Мощность, дБм |
|---|---|---|---|---|
| 3 | 864,1 | DR0-DR5 | 0,1 % | 14 |
| 4 | 864,3 | DR0-DR5 | 0,1 % | 14 |
| 5 | 864,5 | DR0-DR5 | 0,1 % | 14 |
| 6 | 864,7 | DR0-DR5 | 0,1 % | 14 |
| 7 | 864,9 | DR0-DR5 | 0,1 % | 14 |
| 8 | 866,1 | DR0-DR5 | 1 % | 14 |
| 9 | 866,3 | DR0-DR5 | 1 % | 14 |
| 10 | 866,5 | DR0- DR5 | 1 % | 14 |
| 11 | 866,7 | DR0- DR5 | 1 % | 14 |
| 12 | 866,9 | DR0- DR5 | 1 % | 14 |
| 13 | 867,1 | DR0- DR5 | 1 % | 14 |
| 14 | 867,3 | DR0- DR5 | 1 % | 14 |
| 15 | 867,5 | DR0- DR5 | 1 % | 14 |
| 16 | 867,7 | DR0- DR5 | 1 % | 14 |
| 17 | 867,9 | DR0- DR5 | 1 % | 14 |
Помехоустойчивое кодирование
За эту функцию отвечает служебный параметр Coding Rate (CR), который добавляет избыточные биты для коррекции ошибок (FEC — Forward Error Correction).
Принцип работы: Прежде чем отправить данные, чип LoRa пропускает их через модуль кодирования. Этот модуль добавляет к исходным данным служебные (избыточные) биты, по которым на стороне приемника можно будет обнаружить и исправить ошибки, возникшие при передаче из-за помех.
Как считается: Параметр Coding Rate выражается в виде дроби — 4/5, 4/6, 4/7, 4/8.
- Числитель (4): Это количество полезных бит информации.
- Знаменатель (5, 6, 7, 8): Это общее количество бит, которые будут отправлены (полезные + избыточные).
- Разница (знаменатель - числитель): Это и есть те самые избыточные биты, добавленные для исправления ошибок.
Простой пример для CR = 4/5:
- На каждые 4 бита полезных данных кодер добавляет 1 избыточный бит.
- В эфир отправляется 5 бит.
- Избыточность 20%. 1 из 5 бит является служебным.
Чем меньше знаменатель дроби (ближе к числителю), тем меньше избыточности и тем больше полезной информации можно передать за то же время.
Чем больше знаменатель, тем выше избыточность и, следовательно, лучше помехоустойчивость, но тем меньше полезной данных проходит за то же время.
Таблица значений: в LoRa стандартно доступны четыре значения:
| Значение Coding Rate (CR) | Код в веб-интерфейсе контроллера | Избыточность |
|---|---|---|
| 4/5 | 5 | Наименьшая (1 избыточный бит на 4 полезных) |
| 4/6 | 6 | Средняя |
| 4/7 | 7 | Высокая |
| 4/8 | 8 | Наивысшая (1 избыточный бит на 1 полезный!) |
Влияние увеличения Coding Rate (например, переход с 4/5 на 4/8):
| Параметр | Влияние | Комментарий |
|---|---|---|
| Помехоустойчивость | сильно увеличивается | Приемник может исправить больше ошибок. |
| Скорость передачи данных | уменьшается | Требуется больше времени для передачи того же объема полезной информации. |
| Время передачи (Time on Air) | увеличивается | Пакет становится длиннее, устройство дольше работает передатчиком |
| Потребление энергии | увеличивается | При той же мощности передачи потребление будет выше из-за увеличения времени передачи |
| Дальность связи | увеличивается (косвенно) | Увеличивается не напрямую, а за счет того, что приемник может корректно декодировать пакет с более низким уровнем сигнала (благодаря FEC) |
Идентификация, активация и шифрование
Необходимо различать и идентифицировать устройства в сети, для этой цели используют DevAddr.
В начале обмена сообщениями нужно произвести активацию устройства (узнать его DevAddr, ключи шифрования). Данные по радиоканалу передаются в зашифрованном виде, для этого используются ключи сеанса связи (NwkSKey, AppSKey)
Существует 2 основных способа активации (2 режима работы):
- OTAA (Over-The-Air Activation) - Активация по воздуху
- для работы в этом режиме требуется наличие сетевого сервера
- ABP (Activation By Personalization) - Активация через персонализацию
- параметры устанавливаются вручную на устройстве
Далее эти понятия и режимы рассмотрены подробнее.
DevAddr - Адрес устройства
DevAddr (Device Address) — это 32-битный (4-байтный) уникальный сетевой адрес устройства, который используется для идентификации устройства в сети во время обмена данными.
Можно провести аналогию с IP-адресом устройства в локальной сети, но только в рамках данной LoRaWAN-сети.
Структура DevAddr определяется спецификацией
| 31 - 25 bits | 24 - 0 bits |
|---|---|
| NetID (7 bit) | NwkAddr (25 bit) |
- NetID (Network Identifier): Старшие 7 бит. Идентифицирует сеть (LoRaWAN-оператора) или её часть. Это позволяет разным провайдерам независимо управлять своими адресными пространствами.
- NwkAddr (Network Address): Младшие 25 бит. Уникальный идентификатор устройства внутри сети, указанной в NetID.
Таким образом, уникальность адреса DevAddr гарантируется в контексте конкретной сети (NetID).
DevAddr используется для обмена данными всегда, вне зависимости от способа активации (OTAA или ABP). Ключевое различие заключается в том, как этот адрес назначается:
- в OTAA — он назначается сетью динамически,
- в ABP — он прописывается вручную и статически.
NwkSKey и AppSKey - Ключи сеанса связи
NwkSKey и AppSKey — это ключи сеанса связи, которые используются для шифрования и защиты данных.
NwkSKey (Network Session Key)
- Назначение: Сетевой сеансовый ключ
- Шифрует:
- Служебные команды от сетевого сервера (управление устройством)
- Не шифрует полезные данные приложения
- Проверяет целостность сообщения (MIC) - "подпись" каждого пакета, чтобы убедиться, что его не подменили
- доступ к ключу имеет сетевой сервер и устройство
AppSKey (Application Session Key)
- Назначение: Прикладной сеансовый ключ
- Шифрует: Полезные данные приложения (температура, влажность, GPS-координаты и т.д.)
- Не используется для проверки целостности
- доступ к ключу имеет сервер приложений и устройство
Как происходит шифрование на практике в общем случае:
- Устройство собирает данные датчика (например, 25.5°C)
- AppSKey шифрует эти данные → a7f3d9c1b5...
- NwkSKey добавляет криптографическую "подпись" (MIC) к пакету → гарантия, что пакет не изменен
- Пакет передается через шлюзы (Gateways) на сервер
- Сетевой сервер проверяет подпись NwkSKey, но не может расшифровать данные
- Сервер приложений получает пакет и расшифровывает данные с помощью AppSKey
Таким образом, NwkSKey и AppSKey — оба являются ключами шифрования, но с разными задачами в рамках одного сеанса связи.
В режиме OTAA ключи сеанса связи генерируются динамически, а в ABP они статические (предварительно настроены в устройстве).
В режиме ABP Lavritech контроллер, настроенный как Gateway - может выступать также в роли упрощённой замены Сетевого сервера и Сервера приложений. В веб-интерфейсе контроллера в настройках LoRa в режиме ABP задаются ключи шифрования, и таким образом контроллер может распознавать пакеты и данные в них.
Режим OTAA - Активация по воздуху
OTAA - Over-The-Air Activation. Активация с использованием сетевого сервера.
Процесс активации выглядит так:
- Идентификаторы: На устройстве "прошиты" его глобальные уникальные идентификаторы
DevEUI(идентификатор устройства) иAppEUI(идентификатор приложения), а также мастер-ключ AppKey (корневой ключ). - Запрос на присоединение (Join-Request): Устройство отправляет запрос в сеть, передавая свои
DevEUIиAppEUI. - Подтверждение присоединения (Join-Accept): Сетевой сервер, проверив ключи, в ответном сообщении динамически назначает и передает устройству новый DevAddr, а также обновляет некоторые сетевые параметры.
- Вычисление ключей сеанса связи: На основе AppKey и данных из Join-сообщений устройство и сервер независимо вычисляют одинаковые сеансовые ключи:
- AppSKey - для шифрования данных приложения
- NwkSKey - для сетевой аутентификации и целостности
- Работа в сети: После успешного завершения "рукопожатия" (Join-procedure) устройство начинает использовать полученный DevAddr во всех последующих данных (Uplink) и для приема команд (Downlink). А также устройство использует сгенерированные ключи NwkSKey и AppSKey для шифрования.
- AppSKey, NwkSKey - динамические и действуют до следующего переподключения.
- после каждого успешного соединения генерируется новая пара AppSKey/NwkSKey. Это повышает безопасность.
- DevAddr динамический и выдаётся сетевым сервером.
- сетевой оператор может его менять (например, при перерегистрации устройства, для обновления ключей или ротации адресов).
Режим ABP - Активация через персонализацию
ABP - Activation By Personalization - упрощённый способ. Использует статические DevAddr и ключи. Персонализация достигается назначением параметров в настройках самого LoRa-устройства. Не требует наличия сетевого сервера при условии что часть этих функций выполняет Gateway.
ABP - удобный способ активации при построении простых соединений вида "1 Gateway - 1 Node" или "1 Gateway - несколько Nodes". В этом случае для таких сетей не требуется дорогостоящее оборудование (сетевой сервер LoRaWAN), достаточно настроить несколько контроллеров Lavritech в соответствующие режимы и прописать через веб-интерфейс (или "облако") необходимые параметры. Работа контроллера в качестве LoRa Node или Gateway рассмотрена в разделе Настройка в контроллере.
- Настройка параметров: DevAddr, а также ключи сеанса связи (NwkSKey и AppSKey) задаются напрямую в устройстве на этапе его настройки (или производства).
- Начало работы: Устройство не выполняет процедуру Join-Request/Join-Accept. Оно сразу начинает передавать данные, используя свой "жестко" заданный DevAddr.
- Работа в сети: Устройство всегда использует один и тот же статический DevAddr, а также статические ключи.
Сравнительная таблица: OTAA и ABP
| Параметр | Режим OTAA | Режим ABP |
|---|---|---|
| Как устройство получает DevAddr? | Динамически, от сетевого сервера в сообщении Join-Accept. |
Статически, задаётся однократно в устройстве при настройке. |
| Процедура активации | Требуется запрос к серверу ("рукопожатие" - Join-процедура). | Не требуется. |
| Гибкость | Высокая. Сервер может сменить адрес и ключи. | Адрес и ключи неизменны. |
| Безопасность | Выше. Ключи сессии обновляются. | Ниже. Ключи сессии статичны. |
| Использование DevAddr | Используется после активации для всех сообщений. | Используется сразу для всех сообщений. |
| Ключи сеанса связи (AppSKey/NwkSKey) | Генерируются динамически из мастер-ключа (AppKey). | Задаются однократно в устройстве при настройке. |
| Рекомендация по использованию | Для больших сетей с множеством узлов (Nodes, Gateways, Network Server, Application Server) | при отсутствии полноценного сетевого сервера, при малом количестве узлов и соединений в сети, а также в целях тестирования |
Архитектура и узлы сети LoRaWAN
Схема передачи данных
В общем случае данные передаются от конечных устройств в сервер приложений следующим образом:
📟 End Device (Node) → (LoRa RF) → 📡 Gateway → (IP/TLS) → 🌐 Network Server → (IP) → 🖥️ Application Server
Жирным текстом обозначены узлы сети. Курсивом обозначены транспорты (протоколы).
В данном варианте архитектуры Network Server также выполняет функции Join Server.
Типы узлов в сети LoRaWAN
Узлы в сети LoRaWAN разделены по функциональному назначению. Ниже приведён перечень всех узлов и устройств в сети в соответствии с их функциями.
Сводная таблица
| Узел (англ.) | Узел (рус.) | Роль | Ключевая функция | Аналогия |
|---|---|---|---|---|
| 📟 End Device (Node) | Конечное устройство | Источник данных | Сбор и передача данных по радио, приём и выполнение команд | Письмо отправителя |
| 📡 Gateway | Шлюз | Транспортный хаб | Прием радио и пересылка по IP | Почтовое отделение |
| 🌐 Network Server | Сетевой сервер | Сетевой диспетчер | Маршрутизация, безопасность, управление сетью | Сортировочный центр |
| 🖥️ Application Server | Сервер приложений | Получатель данных | Расшифровка, хранение и использование данных | Адресат письма |
| 🗝️ Join Server | Сервер подключений (сервер активации) | Доверенный арбитр | Безопасное хранение ключей, генерация сеансовых ключей | Проверка документов и адреса на почте |
📟 Конечное устройство, "нода" (End Device, Node)
Это может быть датчик, сенсор, контроллер — устройство, которое собирает и передает данные, или выполняет команды.
Функции:
- Измерение параметров (температура, влажность, местоположение и т.д.)
- Передача данных (Uplink) на шлюзы по протоколу LoRa
- Прием команд (Downlink) от шлюза (только в определенные "окна" приема) и их выполнение
- Реализация одного из Классов устройств (A, B, C) для управления энергопотреблением
Примеры: умный счетчик воды, датчик протечки, GPS-трекер, умная кнопка, датчик температуры и влажности, контроллер Lavritech в режиме интеграции с Modbus-устройствами.
📡 Шлюз (Gateway / Concentrator)
Это "мост" между устройствами и серверной частью. Аппаратное устройство с антенной.
Функции:
- Прием радиосигналов (LoRa) от всех конечных устройств (Nodes) в радиусе действия
- Преобразование радиопакетов в IP-пакеты
- Передача данных по защищенным каналам (Ethernet, 4G, Wi-Fi) на Network Server через интернет
- Поддержка обратного канала связи (Downlink): шлюз может не только принимать данные от устройств, но и передавать им обратно команды от сервера по радиоканалу
В "классическом" исполнении - шлюз просто является ретранслятором. Он не обрабатывает данные, не знает ключей шифрования и просто пересылает все, что слышит.
Lavritech контроллер при работе в качестве шлюза (опция LoRa, Gateway) имеет ряд особенностей:
В режиме ABP Lavritech контроллер - может выступать в роли упрощённой замены Сетевого сервера и Сервера приложений. Таким образом контроллер может фильтровать, распознавать пакеты и данные в них, а также слать Downlink-сообщения с командами управления. Передача данных в системы верхнего уровня возможна путём интеграции с опциями MQTT и Modbus TCP.
Режим OTAA для шлюза на основе Lavritech контроллера пока не поддерживается. Для работы с OTAA в сети LoRaWAN потребуется наличие "обычного" шлюза и сетевого сервера. Однако Lavritech-контроллеры имеют базовую поддержку OTAA в качестве Node. В дальнейшем планируется развитие функционала.
🌐 Сетевой сервер (Network Server)
Это диспетчер сети. Программное обеспечение в облаке или на локальном сервере.
Функции:
- Дедупликация пакетов: Если несколько шлюзов приняли одно сообщение, сервер выбирает лучший пакет
- Управление сетью:
- Контроль ADR (Adaptive Data Rate) — автоматическая оптимизация параметров
- Управление Duty Cycle (соблюдение законодательных ограничений)
- Организация Downlink-сообщений (отправка команд на устройства через шлюзы)
- Безопасность:
- Проверка целостности данных (MIC) с помощью ключа NwkSKey
- Маршрутизация
- Отправка данных на нужный Application Server
🖥️ Сервер приложений (Application Server)
Это целевая система (ПО на сервере), которая работает с полезными данными устройства.
Функции:
- Расшифровка данных из полезной нагрузки (payload) с помощью ключа AppSKey
- Интерпретация данных: преобразование бинарного кода в читаемый формат
- Сохранение данных в базу данных
- Визуализация на дашбордах, генерация уведомлений
🗝️ Сервер подключений (Join Server)
Join Server (JS) — это опциональный компонент архитектуры LoRaWAN, отвечающий за безопасное подключение новых устройств к сети.
Функции:
- Безопасное хранение корневых ключей (AppKey, NwkKey) для устройств.
- Аутентификация устройств: Проверяет подлинность устройства во время процедуры присоединения (OTAA).
- Генерация сессионных ключей: Создает уникальные сессионные ключи (NwkSKey, AppSKey) для шифрования данных после успешного присоединения.
- Обеспечение сквозной безопасности: Распределяет сессионные ключи соответствующим Сетевым серверам и Серверам приложений для расшифровки трафика.
- Поддержка роуминга: Обеспечивает безопасное подключение устройств в роуминге, взаимодействуя с Join Server домашней сети устройства.
- Управление процедурой присоединения: Обрабатывает сообщения Join-request и формирует ответ Join-accept.
В условиях отсутствия отдельного Join Server - часть его функций выполняет Network Server. Это простая архитектура (частные сети, стартапы, небольшое количество устройств)
Join Server становится необходимым в сложных сценариях с разделением ответственности (например, когда есть разные провайдеры для сети и приложения; присутствуют глобальные роуминговые соглашения; используется модель с разделением ключей).