Статус документа
Статус документа

ПНСТ 516-2021 Информационные технологии (ИТ). Интернет вещей. Спецификация LoRaWAN RU

     6.3 МАС-команды


Набор MAC-команд предназначен для сетевого администрирования и может быть использован для обмена между сервером сети и оконечным устройством на MAC-уровне (таблица 4). Команды МАС-уровня не обрабатываются сервером приложений и приложением, запущенным на устройстве.

Один кадр данных может содержать любую последовательность MAC-команд, вставленную в поле "Параметры кадра" (FOpts) или отправленную в отдельном кадре данных, в поле "Прикладные данные" (FRMPayload) с значением поля "Порт" (FPort), равным 0.

MAC-команды, передаваемые в поле "Параметры кадра" (FOpts), отправляются в кодированном виде и не должны превышать 15 байт. MAC-команды, отправляемые в поле "Прикладные данные" (FRMPayload), всегда кодируются и их длина не должна превышать максимальную длину поля "Прикладные данные" (FRMPayload).

MAC-команда состоит из поля "Идентификатор команды" (CID) размером 1 байт и поля "Атрибуты команды" размером от 0 байт до 14 байт. Для некоторых команд поле "Атрибуты команды" может быть пустым.

MAC-команды со значениями идентификаторов команды (CID) от 0х01 до 0x7F предназначены для использования во всех сетях LoRaWAN RU.

Приемная сторона отвечает/подтверждает получение MAC-команд в том же порядке, как они передаются. Ответ для каждой MAC-команды последовательно добавляется в буфер. На все MAC-команды, полученные в одном кадре, ответы должны быть переданы в одном кадре (т.е. буфер, содержащий ответы на МАС-команды, должен быть отправлен в одном кадре). Если длина буфера с MAC-ответами больше, чем максимальная длина поля "Параметры кадра" (FOpts), устройство должно отправить буфер в поле "Прикладные данные" (FRMPayload) на порт 0. Если устройству надо отправить прикладные данные и MAC ответы, и они не помещаются в один кадр, то MAC ответы должны быть отправлены в первую очередь. Если длина буфера превышает максимальный используемый размер поля "Прикладные данные" (FRMPayload), устройство перед сборкой кадра должно уменьшить буфер до максимального размера поля "Прикладные данные" (FRMPayload). Поэтому ответы на последние MAC-команды могут быть неполными. В любом случае, полный список MAC команд выполняется, даже если буфер, содержащий MAC-ответы, должен быть обрезан. Сетевой сервер не должен генерировать последовательность MAC-команд, на которые оконечное устройство не может ответить одним восходящим кадром. Сетевой сервер должен вычислять максимальный размер поля "Прикладные данные" (FRMPayload) для ответов на MAC команды, следующим образом:

- если поле "Адаптивная скорость передачи данных" (ADR) последнего восходящего сообщения имеет значение 0, то необходимо устанавливать максимальный размер поля "Прикладные данные" (FRMPayload), соответствующий самой низкой скорости передачи данных;

- если поле "Адаптивная скорость передачи данных" (ADR) последнего восходящего сообщения имеет значение 1, то необходимо устанавливать максимальный размер поля "Прикладные данные" (FRMPayload) соответствующим скорости передачи данных, используемой устройством для передачи последнего восходящего сообщения.

Примечание - При получении обрезанного MAC-ответа сервер сети может ретранслировать MAC-команды, на которые не получил ответ.

Таблица 4 - MAC-команды

CID

Команда

Передается

Краткое описание

оконечному устройству

базовой станции

0x01

ResetInd

x

-

Используются устройствами с активацией через персонализацию для индикации сброса и согласования версий протокола

0x01

ResetConf

-

x

Подтверждает команду ResetInd

0x02

LinkCheckReq

x

-

Используется оконечным устройством для проверки его подключения к сети

0x02

LinkCheckAns

-

x

Ответ на команду LinkCheckReq.

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

0x03

LinkADRReq

-

x

Запрашивает оконечное устройство изменить скорость передачи данных, мощность передачи, количество повторений или канал

0x03

LinkADRAns

x

-

Подтверждает команду LinkADRReq

0x04

DutyCycleReq

-

x

Устанавливает максимальное агрегированное значение рабочего цикла устройства на передачу

0x04

DutyCycleAns

x

-

Подтверждает команду DutyCycleReq

0x05

RXParamSetupReq

-

x

Устанавливает параметры окон приема

0x05

RXParamSetupAns

x

-

Подтверждает команду RXParamSetupReq

0x06

DevStatusReq

-

x

Запрашивает статус оконечного устройства

0x06

DevStatusAns

x

-

Возвращает статус (состояние) оконечного устройства, а именно уровень заряда его батареи и отношение сигнал/шум (оценка демодуляции)

0x07

NewChannelReq

-

x

Создает или изменяет определение радиоканала

0x07

NewChannelAns

x

-

Подтверждает команду NewChannelReq

0x08

RXTimingSetupReq

-

x

Устанавливает временные интервалы для окон приема

0x08

RXTimingSetupAns

x

-

Подтверждает команду RXTimingSetupReq

0x09

TxParamSetupReq

-

x

Используется сервером сети, чтобы установить максимально допустимое время задержки (dwell time) и максимальную эффективную изотропную мощность излучения (EIRP) оконечного устройства, на основе локальных соглашений и нормативных актов

0x09

TxParamSetupAns

x

-

Подтверждает команду TxParamSetupReq

0x0A

DlChannelReq

-

x

Изменяет определение нисходящего радиоканала окна приема RX1 путем смещения частоты передачи нисходящей линии от частоты восходящей линии связи (т.е. создание асимметричного канала)

0x0A

DlChannelAns

x

-

Подтверждает команду DlChannelReq

0x0B

RekeyInd

x

-

Используется устройством с активацией по воздуху для оповещения об обновлении сеанса связи устройства с сервером сети (обновление ключей)

0x0B

RekeyConf

-

x

Подтверждает команду RekeyInd

0x0C

ADRParamSetupReq

-

x

Используется сервером сети для установки ADR_ACK_LIMT и ADR_ACK_DELAY параметров оконечного устройства

0x0C

ADRParamSetupAns

x

-

Подтверждает команду ADRParamSetupReq

0x0D

DeviceTimeReq

x

-

Используется оконечным устройством для запроса текущей даты и времени

0x0D

DeviceTimeAns

-

x

Сеть отправляет ответ на запрос DeviceTimeReq

0x0E

ForceRejoinReq

-

x

Посылается сетью для запроса немедленного повторного присоединения (Rejoin) устройства, дополнительно указывается количество и периодичность повторов

0x0F

RejoinParamSetup Req

-

x

Используется сетью для установки периодичности отправки устройством запросов на повторное присоединение (Rejoin)

0x0F

RejoinParamSetup Ans

x

-

Подтверждает команду RejoinParamSetupReq

От 0x80 до 0xFF

Проприетарные команды

x

x

Зарезервировано для команд, действующих только в региональных сетях


Примечания

1 В основном, оконечное устройство будет отвечать только один раз на любую полученную MAC команду. Если ответ потерян, то сеть вынуждена будет снова послать команду. Сервер сети решает, что команда должна быть отправлена повторно, когда она получает новое восходящее сообщение, которое не содержит ответа.

Только RxParamSetupReq, RxTimingSetupReq и DIChannelReq имеют другой механизм подтверждения, описанный в соответствующих разделах, так как они влияют на параметры нисходящей линии связи.

2 Когда MAC-команда инициируется оконечным устройством, сеть делает все возможное для отправки подтверждения/ответа в окна приема RX1/RX2 сразу после запроса. Если ответ не получен в окна RX1 и RX2, то оконечное устройство может реализовать любой механизм повтора, который сочтет нужным.

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

6.3.1 Команды индикации сброса (Resetlnd, ResetConf)

Данная MAC-команда доступна только для устройств с активацией через персонализацию, активированных в сети с сервером сети, поддерживающим LoRaWAN 1.1. На сервере сети, поддерживающим только LoRaWAN 1.0, данная MAC-команда не реализована.

Устройства с активацией по воздуху не должны отправлять эту команду. Сетевой сервер должен игнорировать команду Resetlnd, поступившую от устройства с активацией по воздуху.

С помощью команды ResetInd, устройство с активацией через персонализацию извещает сети, что оно было повторно инициализировано, и что оно переключено на свои MAC и радио настройки по умолчанию (т.е. параметры, изначально запрограммированные в устройстве при изготовлении, за исключением трех счетчиков кадров). Команда ResetInd должна добавляться в поле "Параметры кадра" (FOpts) всех восходящих кадров, пока не будет получена команда ResetConf.

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

Примечание - Данная команда предназначена для устройств с активацией через персонализацию, питание которых может быть отключено в какой-то момент времени (например, замена батареи). Устройство может потерять настройки соединения на сеансном уровне, хранящиеся в ОЗУ (кроме счетчиков кадров, которые должны быть сохранены в энергонезависимой памяти). В этом случае, устройство нуждается в том, чтобы как-то сообщить серверу сети о потере настроек соединения на сеансном уровне. В будущих версиях протокола LoRaWAN RU, эта команда может также использоваться для согласования некоторых параметров протокола между устройством и сервером сети.

Команда ResetInd включает в себя дополнительный номер версии LoRaWAN RU, поддерживаемой устройством (рисунки 14, 15).

Размер (в байтах)

1

Данные ResetInd (ResetInd Payload)

Версия LoRaWAN RU устройства (Dev LoRaWAN RU version)