БИБЛИОТЕКА НОРМАТИВНЫХ ДОКУМЕНТОВ

ГОСТ Р 71168-2023. Национальный стандарт Российской Федерации. Информационные технологии. Интернет вещей. Спецификация LoRaWAN RU

6.3 MAC-команды

 

Набор MAC-команд предназначен для сетевого администрирования и может быть использован для обмена между сервером сети и оконечным устройством на MAC-уровне (см. таблицу 4). Команды 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

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

0x09

TxParamSetupAns

x

-

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

0x0A

DIChannelReq

-

x

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

0x0A

DIChannelAns

x

-

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

0x0B

RekeyInd

x

-

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

0x0B

RekeyConf

-

x

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

0x0C

ADRParamSetupReq

-

x

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

0x0C

ADRParamSetupAns

x

-

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

0x0D

DeviceTimeReq

x

-

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

0x0D

DeviceTimeAns

-

x

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

0x0E

ForceRejoinReq

-

x

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

0x0F

RejoinParamSetupReq

-

x

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

0x0F

RejoinParamSetupAns

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, и если она новее, чем реализация оконечного устройства.

 

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

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

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

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

Приемная сторона отвечает/подтверждает получение MAC-команд в том же порядке, как они передаются. Ответ для каждой 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-команды, на которые не получил ответ.

 

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

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

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

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

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

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

 

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

 

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

1

Данные ResetInd (ResetInd Payload)

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

 

Рисунок 14 - Структура команды ResetInd

 

Структура поля "Версия LoRaWAN RU устройства" (Dev LoRaWAN RU version) команды ResetInd приведена на рисунке 15.

 

Биты

7:4

3:0

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

RFU

Дополнительный номер версии (Minor)=1

 

Рисунок 15 - Структура поля "Версия LoRaWAN RU устройства"

(Dev LoRaWAN RU version) команды ResetInd

 

Поле "Дополнительный номер версии" (Minor) указывает на дополнительный номер версии LoRaWAN RU, поддерживаемый оконечным устройством (см. таблицу 5).

 

Таблица 5

 

Значения поля "Дополнительный номер версии" (Minor)

 

Дополнительный номер версии (Minor)

Значение поля

RFU

0

1 (LoRaWAN RU x. 1)

1

RFU

От 2 до 15

 

Когда сетевой сервер получает ResetInd, он отвечает командой ResetConf.

Команда ResetConf содержит один байт данных, закодированных в соответствии с версией LoRaWAN RU, поддерживаемой сервером сети с использованием формата, соответствующего версии LoRaWAN RU устройства (Dev LoRaWAN RU version). Структура команды ResetInd приведена на рисунке 16.

 

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

1

Данные ResetConf (ResetConf Payload)

Версия LoRaWAN RU сервера сети (Serv LoRaWAN RU version)

 

Рисунок 16 - Структура команды ResetConf

 

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

Если версия сервера не совпадает с версией устройства, устройство должно отбросить команду ResetConf и повторно отправить команду ResetInd в следующем восходящем кадре.

6.3.2 Команды проверки подключения к сети (LinkCheckReq, LinkCheckAns)

С помощью команды LinkCheckReq оконечное устройство может проверить свое подключение к сети. Команда не имеет полезных данных.

Когда сетевой сервер получает LinkCheckReq через один или несколько шлюзов, он отвечает командой LinkCheckAns. Структура команды LinkCheckAns приведена на рисунке 17.

 

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

1

1

Данные LinkCheckAns (LinkCheckAns Payload)

Устойчивость демодуляции (Margin)

Число шлюзов (GwCnt)

 

Рисунок 17 - Структура команды LinkCheckAns

 

Поле "Устойчивость демодуляции" (Margin) представляет собой 8-битовое целое число без знака в диапазоне от 0 до 254 и указывает значение устойчивости связи в дБ, полученное по факту успешного приема последней MAC-команды LinkCheckReq. Значение, равное 0, означает, что кадр был получен на минимальном уровне демодуляции (0 дБ или при отсутствии значения), а значение, равное 20, например, означает, что кадр достиг шлюза с 20 дБ запаса относительно порога демодуляции. Значение, равное 255, зарезервировано для будущего использования.

Поле "Число шлюзов" (GwCnt) определяет число шлюзов (базовых станций), которые успешно получили последнюю команду LinkCheckReq.

Значения минимального уровня соотношения сигнал/шум для демодуляции пакета приведены в таблице 6.

 

Таблица 6

 

Значения минимального уровня соотношения сигнал/шум

для демодуляции пакета

 

Скорость передачи

Сигнал/шум (SNR) минимального уровня демодуляции пакета (дБ)

DR0

-20

DR1

-17,5

DR2

-15

DR3

-12,5

DR4

-10

DR5

-7,5

 

6.3.3 Адаптация скорости передачи данных (LinkADRReq, LinkADRAns)

С помощью команды LinkADRReq сетевой сервер запрашивает оконечное устройство выполнить адаптацию скорости передачи данных. Структура команды LinkADRReq приведена на рисунке 18.

 

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

1

2

1

Данные LinkADRReq (LinkADRReq Payload)

Запрошенная скорость передачи данных и выходная мощность передатчика (DataRate_TXPower)

Маска канала (ChMask)

Избыточность (Redundancy)

 

Рисунок 18 - Структура команды LinkADRReq

 

Структура поля "Запрошенная скорость передачи данных и выходная мощность передатчика" (DataRate_TXPower) команды LinkADRReq приведена на рисунке 19.

 

Биты

[7:4]

[3:0]

Запрошенная скорость передачи данных и выходная мощность передатчика (DataRate_TXPower)

Запрошенная скорость передачи данных (DataRate)

Выходная мощность передатчика (TXPower)

 

Рисунок 19 - Структура поля "Запрошенная скорость

передачи данных и выходная мощность передатчика"

(DataRate_TXPower) команды LinkADRReq

 

Запрошенная скорость передачи данных (DataRate) и выходная мощность передатчика (TXPower) являются региональными параметрами и определены в разделе 9. Выходная мощность передатчика, указанная в команде, должна рассматриваться как максимальная мощность передачи, на которой может работать устройство. Если в команде задана мощность, превышающая максимальную мощность устройства, то оконечное устройство должно подтвердить успешное выполнение команды и работать на своей максимально возможной мощности.

Значение 0xF (15 в десятичном формате) запрошенной скорости передачи данных (DataRate) или выходной мощности передатчика (TXPower) означает, что устройство должно игнорировать это поле и сохранить текущее значение параметра. Маска канала (ChMask) кодирует использование каналов для передачи в восходящей линии связи (бит 0 соответствует младшему разряду) в соответствии с таблицей 7.

 

Таблица 7

 

Кодирование поля "Маска канала" (ChMask)

 

Биты

Используемые каналы

0

Канал 1

1

Канал 2

...

...

15

Канал 16

 

Бит в поле "Маска канала" (ChMask), установленный в 1, означает, что соответствующий канал может использоваться для передачи в восходящей линии связи, если этот канал обеспечивает скорость передачи данных, в настоящее время используемую устройством. Бит, установленный в 0, означает, что соответствующие каналы следует исключить.

Поле "Избыточность" (Redundancy) (см. рисунок 20) включает поле "Число передач" (NbTrans). Это поле используется для восходящих кадров, требующих и не требующих подтверждения получения. Значением по умолчанию является 1, которое соответствует одной передаче каждого кадра. Допустимый диапазон от 1 до 15. Если получено значение поля "Число передач" (NbTrans), равное 0, то устройство должно сохранить текущее значение числа передач неизменным.

 

Биты

7

[6:4]

[3:0]

Избыточность (Redundancy)

RFU

Управление маской канала (ChMaskCntl)

Число передач (NbTrans)

 

Рисунок 20 - Структура поля "Избыточность" (Redundancy)

 

Поле "Управления маской канала" (ChMaskCntl) управляет интерпретацией ранее определенного битового поля "Маска канала" (ChMask). Поле "Управления маской канала" (ChMaskCntl) контролирует блок из 16 каналов, к которым применяется поле "Маска канала" (ChMask). Оно также может быть использовано, чтобы глобально включить или выключить все каналы. Использование этого атрибута является региональным параметром и определяется в разделе 9.

Сетевой сервер может включить несколько последовательных команд LinkAdrReq в одно нисходящее сообщение. С целью конфигурирования маски канала оконечного устройства оконечное устройство должно обработать всю последовательность LinkAdrReq в сообщениях в том порядке, в котором они переданы в нисходящем сообщении, как один единый блок команд. Сетевой сервер не должен включать в нисходящее сообщение более одного такого блока команд. Оконечное устройство должно послать одну команду LinkAdrAns, чтобы подтвердить или отклонить весь единый ADR командный блок. Если нисходящее сообщение несет более одного единого ADR командного блока, то устройство должно обработать только первый из них и отправить NAck (команда LinkADRAns со всеми битами состояния, установленными в 0) в ответ на все остальные ADR командные блоки. Устройство должно обрабатывать поля "Скорость передачи данных" (DataRate), "Выходная мощность передатчика" (TXPower) и "Число передач" (NbTrans) только из последней команды LinkAdrReq в последовательности ADR командного блока, так как значения этих параметров определяют общее состояние устройства. В поле "Подтверждение получения сообщения" (ACK) бит маски канала в ответе должен отражать принятие/отклонение окончательного плана каналов после обработки всех элементов управления маской канала в последовательности ADR командного блока.

Частота каждого канала задается для конкретного региона и определена в разделе 9. Оконечное устройство отвечает на команду LinkADRReq командой LinkADRAns. Структура команды LinkADRAns приведена на рисунке 21.

 

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

1

Данные LinkADRAns (LinkADRAns Payload)

Статус (Status)

 

Рисунок 21 - Структура команды LinkADRAns

 

Структура поля "Статус" (Status) команды LinkADRAns приведена на рисунке 22.

 

Биты

[7:3]

2

1

0

Статус (Status)

RFU

Выходная мощность передатчика в поле "Подтверждение получения сообщения" (Power ACK)

Запрошенная скорость передачи в поле "Подтверждение получения сообщения" (Data rate ACK)

Маска канала в поле "Подтверждение получения сообщения" (Channel mask ACK)

 

Рисунок 22 - Структура поля "Статус" (Status)

команды LinkADRAns

 

Биты поля "Статус" (Status) команды LinkADRAns имеют значения согласно таблице 8.

 

Таблица 8

 

Кодирование поля "Статус" (Status) команды LinkADRAns

 

Атрибут

Бит = 0

Бит = 1

Маска канала в поле "Подтверждение получения сообщения" (Channel mask ACK)

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

Отправленная маска канала успешно интерпретирована. Статусы всех в настоящее время определенных каналов были установлены в соответствии с маской

Запрошенная скорость передачи данных в поле "Подтверждение получения сообщения" (Data rate ACK)

Запрошенная скорость передачи данных неизвестна оконечному устройству или невозможно обеспечить заданную маску канала (не поддерживается ни одним из включенных каналов). Команда была отклонена, и состояние оконечного устройства не было изменено

Скорость передачи данных была успешно установлена или поле "Запрошенная скорость передачи" (DataRate) в запросе было установлено в значение 15, и он был проигнорирован

Выходная мощность передатчика в поле "Подтверждение получения сообщения" (Power ACK)

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

Устройство может работать на уровне или ниже заданного уровня выходной мощности передатчика, или поле "Выходная мощность передатчика" (TXPower) в запросе было установлено в значение 15, и он был проигнорирован

 

Если любой из этих трех битов равен 0, то это значит, что команда не выполнена и устройство сохранило прежнее состояние.

6.3.4 Рабочий цикл устройства (DutyCycleReq, DutyCycleAns)

Команда DutyCycleReq используется сервером сети, чтобы ограничить оконечному устройству время на передачу сообщений в радиоэфире. Совокупное ограничение для всех частот соответствует ограничению для каждой используемой частоты. Структура команды DutyCycleReq приведена на рисунке 23.

 

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

1

Данные DutyCycleReq (DutyCycleReq Payload)

Рабочий цикл передачи (DutyCyclePL)

 

Рисунок 23 - Структура команды DutyCycleReq

 

Структура поля "Рабочий цикл передачи" (DutyCyclePL) команды DutyCycleReq приведена на рисунке 24.

 

Биты

[7:4]

[3:0]

Рабочий цикл передачи (DutyCyclePL)

RFU

Максимально допустимый рабочий цикл передачи (MaxDutyCycle)

 

Рисунок 24 - Структура поля "Рабочий цикл передачи"

(DutyCyclePL) команды DutyCycleReq

 

Максимально допустимый рабочий цикл передачи вычисляется:

 

ГОСТ Р 71168-2023. Национальный стандарт Российской Федерации. Информационные технологии. Интернет вещей. Спецификация LoRaWAN RU

 

Допустимый диапазон для MaxDutyCycle от 0 до 15. Значение 0 соответствует "нет ограничений", если в региональных настройках не указано иначе.

Оконечное устройство отвечает на DutyCycleReq командой DutyCycleAns. MAC-команда DutyCycleAns не содержит никаких полезных данных.

6.3.5 Параметры окон приема (RXParamSetupReq, RXParamSetupAns)

Команда RXParamSetupReq позволяет изменять частоту и скорость передачи данных, установленные для второго окна приема (RX2) после каждого восходящего сообщения. Эта команда также позволяет запрограммировать смещение скорости передачи данных в восходящей линии связи относительно скорости передачи данных в нисходящей линии связи в окно приема RX1. Структура команды RXParamSetupReq приведена на рисунке 25.

 

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

1

3

Данные RXParamSetupReq (RXParamSetupReq Payload)

Параметры нисходящей линии связи (DLsettings)

Частота (Frequency)

 

Рисунок 25 - Структура команды RXParamSetupReq

 

Структура поля "Параметры нисходящей линии связи" (DLsettings) команды RXParamSetupReq приведена на рисунке 26.

 

Биты

7

[6:4]

[3:0]

Параметры нисходящей линии связи (DLsettings)

RFU

RX1DRoffset

RX2DataRate

 

Рисунок 26 - Структура поля "Параметры нисходящей линии

связи" (DLsettings) команды RXParamSetupReq

 

Поле RX1DRoffset задает смещение между скоростью передачи данных восходящей линии связи и скоростью передачи данных нисходящей линии связи, использованной для связи с оконечным устройством в первом окне приема (RX1). По умолчанию это смещение равно 0. Смещение используется, чтобы учитывать максимальные ограничения плотности покрытия базовых станций в некоторых регионах и балансировать загруженностью восходящей и нисходящей линий радиосвязи. Подробнее о значениях RX1DRoffset описано в разделе 9.

Поле RX2DataRate определяет скорость передачи данных нисходящей линии связи, используемой во втором окне приема RX2, следуя правилам, аналогичным для команды LinkADRReq (0 означает DR0/125 кГц, к примеру).

Поле "Частота" (Frequency) соответствует частоте, используемой для второго окна приема RX2, при этом частота кодируется аналогично описанию команды NewChannelReq.

Команда RXParamSetupAns используется оконечным устройством, чтобы подтвердить прием команды RXParamSetupReq. Команда RXParamSetupAns должна добавляться в поле "Параметры кадра" (FOpts) всех восходящих сообщений, пока оконечное устройство не получит нисходящее сообщение в окно RX1 или RX2 (с длительностью RX2, характерной для устройства класса A). Это гарантирует, что даже при наличии потери восходящих пакетов сеть всегда в курсе параметров нисходящей линии связи, используемых оконечным устройством.

Структура команды RXParamSetupAns приведена на рисунке 27.

 

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

1

Данные RXParamSetupAns (RXParamSetupAns Payload)

Статус (Status)

 

Рисунок 27 - Структура команды RXParamSetupAns

 

Структура поля "Статус" (Status) команды RXParamSetupAns приведена на рисунке 28. Поле "Статус" (Status) команды RXParamSetupAns кодируется в соответствии с таблицей 9.

 

Биты

[7:3]

2

1

0

Статус (Status)

RFU

RX1DRoffset ACK

RX2 Data rate ACK

Channel ACK

 

Рисунок 28 - Структура поля "Статус" (Status)

команды RXParamSetupAns

 

Таблица 9

 

Кодирование поля "Статус" (Status) команды RXParamSetupAns

 

Атрибут

Бит = 0

Бит = 1

Channel ACK

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

Канал для окна приема RX2 успешно установлен

RX2 Data rate ACK

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

Скорость передачи для окна приема RX2 успешно установлена

RX1DRoffset ACK

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

Смещение RX1DRoffset успешно установлено

 

Если любой из этих трех битов равен 0, то команда не выполнена, и устройство сохраняет прежнее состояние.

6.3.6 Статус оконечного устройства (DevStatusReq, DevStatusAns)

С помощью команды DevStatusReq сетевой сервер может запросить информацию о состоянии оконечного устройства. Команда не имеет атрибутов. Если оконечное устройство получило DevStatusReq, оно должно ответить командой DevStatusAns. Структура команды DevStatusAns приведена на рисунке 29.

 

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

1

1

Данные DevStatusAns (DevStatusAns Payload)

Уровень заряда батареи (Battery)

Статус (Status)

 

Рисунок 29 - Структура команды DevStatusAns

 

Поле "Уровень заряда батареи" (Battery) команды DevStatusAns кодируется в соответствии с таблицей 10.

 

Таблица 10

 

Кодирование поля "Уровень заряда батареи"

(Battery) команды DevStatusAns

 

Уровень заряда батареи

Описание

0

Оконечное устройство подключено к внешнему источнику питания

От 1 до 254

Уровень заряда батареи:

1 - находится на минимуме;

254 - находится на максимуме

255

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

 

Поле "Устойчивость демодуляции" (Margin) содержит соотношение сигнал/шум (в дБ), измеренное при приеме последней команды - DevStatusReq. Значение поля "Устойчивость демодуляции" (Margin) округляется до ближайшего целого значения. Это целое 6-битовое число со знаком с минимальным значением минус 32 дБ и максимальным значением плюс 31 дБ.

Структура поля "Статус" (Status) команды DevStatusAns приведена на рисунке 30.

 

Биты

[7:6]

[5:0]

Статус (Status)

RFU

Устойчивость демодуляции (Margin)

 

Рисунок 30 - Структура поля "Статус" (Status)

команды DevStatusAns

 

6.3.7 Создание/модификация канала (NewChannelReq, NewChannelAns, DIChannelReq, DIChannelAns)

Устройства, работающие в регионе, для которого определен фиксированный частотный план каналов, не должны выполнять эти MAC-команды (т.е. устройство не должно отвечать на команды). Задаваемые каналы должны соответствовать требованиям региональных параметров, описанных в разделе 9.

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

 

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

1

3

1

Данные NewChannelReq (NewChannelReq Payload)

Индекс каналов (ChIndex)

Частота (Freq)

Диапазон скоростей передачи данных (DrRange)

 

Рисунок 31 - Структура команды NewChannelReq

 

Поле "Индекс каналов" (ChIndex) содержит индекс вновь созданного или измененного канала. Для каждого региона (см. раздел 9) устанавливаются каналы "по умолчанию", которые не могут быть изменены с помощью команды NewChannelReq.

Если число каналов "по умолчанию" равно N, то нумероваться каналы "по умолчанию" будут от 0 до [N - 1], а от N до 15 будут нумероваться редактируемые каналы. Таким образом, поле "Индекс каналов" (ChIndex) может принимать значение от N до 15. Устройство должно быть в состоянии обрабатывать по меньшей мере 16 различных каналов. В определенном регионе устройство может хранить параметры более 16 каналов.

Поле "Частота" (Freq) представляет собой 24-битовое целое число без знака. Фактическая частота канала в Гц считается 100·Freq, где значения, представляющие частоты ниже 100 МГц, зарезервированы для использования в будущем. Это позволяет устанавливать частоту канала в диапазоне от 100 МГц до 1,67 ГГц с шагом 100 Гц. Значение Freq, равное 0, отключает канал. Оконечное устройство должно проверить, что частота на самом деле разрешена (обеспечивается) на аппаратном уровне радиомодуля, и вернуть сообщение об ошибке в противном случае.

Поле "Диапазон скоростей передачи данных" (DrRange) определяет диапазон скоростей передачи данных для восходящей линии связи, разрешенный для данного канала. Поле "Диапазон скоростей передачи данных" (DrRange) разделено на два 4-битных индекса (см. рисунок 32).

 

Биты

[7:4]

[3:0]

Диапазон скоростей передачи данных (DrRange)

Максимальная скорость передачи данных (MaxDR)

Минимальная скорость передачи данных (MinDR)

 

Рисунок 32 - Структура поля "Диапазон скоростей передачи

данных" (DrRange) команды NewChannelReq

 

В соответствии с соглашениями, определенными в 6.3.3, поле "Минимальная скорость передачи данных" (MinDR) обозначает самый низкий уровень скорости передачи данных для восходящей линии связи, допустимый на этом канале. Например, используя региональные параметры Российской Федерации, 0 обозначает DR0 в полосе 125 кГц. Аналогичным образом поле "Максимальная скорость передачи данных" (MaxDR) обозначает самый высокий уровень скорости передачи данных для восходящей линии связи, допустимый на этом канале. Например, DrRange = 0x77 означает, что только 50 кбит/с GFSK допускается на канале и DrRange = 0x50 означает, что поддерживаются скорости передачи данных от DR0 в полосе 125 кГц до DR5 в полосе 125 кГц.

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

В окне приема RX1 частота в нисходящей линии устанавливается равной частоте в восходящей линии связи.

Оконечное устройство подтверждает получение NewChannelReq отправкой в ответ команды NewChannelAns. Структура команды NewChannelAns приведена на рисунке 33.

 

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

1

Данные NewChannelAns (NewChannelAns Payload)

Статус (Status)

 

Рисунок 33 - Структура команды NewChannelAns

 

Структура поля "Статус" (Status) команды NewChannelAns приведена на рисунке 34. Поле "Статус" (Status) команды NewChannelAns кодируется в соответствии с таблицей 9.

 

Биты

[7:2]

1

0

Статус (Status)

RFU

Data rate range ok

Channel frequency ok

 

Рисунок 34 - Структура поля "Статус" (Status)

команды NewChannelAns

 

Таблица 11

 

Кодирование поля "Статус" (Status) команды NewChannelAns

 

Атрибут

Бит = 0

Бит = 1

Data rate range ok

Указанный диапазон скоростей передачи данных превышает поддерживаемый данным оконечным устройством

Диапазон скоростей передачи данных совместим с возможностями оконечного устройства

Channel frequency ok

Устройство не может использовать данную частоту

Устройство имеет возможность использовать эту частоту

 

Если любой из этих двух битов равен 0, то команда не выполнена и новый канал не создан.

Команда DIChannelReq позволяет сети ассоциировать различные частоты нисходящей линии связи с окном приема RX1. Эта команда применяется для всех спецификаций физического уровня, поддерживающих команду NewChannelReq (поддерживается для региональных параметров Российской Федерации, Европы (EU) и Китая и не поддерживается для США и Австралии).

Команда задает центральную частоту, используемую для нисходящей линии связи в окне приема RX1. Структура команды DIChannelReq приведена на рисунке 35.

 

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

1

3

Данные DIChannelReq (DIChannelReq Payload)

Индекс канала (ChIndex)

Частота (Freq)

 

Рисунок 35 - Структура команды DIChannelReq

 

Поле "Индекс канала" (ChIndex) - индекс канала, для которого изменяется частота нисходящей линии связи.

Поле "Частота" (Freq) представляет собой 24-битовое целое число без знака. Фактическая частота канала в Гц считается 100·Freq, где значения, представляющие частоты ниже 100 МГц, зарезервированы для использования в будущем. Это позволяет устанавливать частоту канала в диапазоне от 100 МГц до 1,67 ГГц с шагом 100 Гц. Значение Freq, равное 0, отключает канал. Оконечное устройство должно проверить, что частота на самом деле поддерживается на аппаратном уровне радиомодулем, и вернуть сообщение об ошибке в противном случае.

Оконечное устройство подтверждает получение DIChannelReq отправкой в ответ команды DIChannelAns. Команда DIChannelAns должна добавляться в поле "Параметры кадра" (FOpts) всех восходящих сообщений, пока оконечное устройство не получит нисходящий пакет. Это гарантирует, что даже при наличии потери пакетов в восходящей линии связи сеть всегда будет в курсе частот, используемых оконечным устройством в нисходящей линии связи. Структура команды DIChannelAns приведена на рисунке 36.

 

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

1

Данные DIChannelAns (DIChannelAns Payload)

Статус (Status)

 

Рисунок 36 - Структура команды DIChannelAns

 

Структура поля "Статус" (Status) команды DIChannelAns приведена на рисунке 37. Поле "Статус" (Status) команды DIChannelAns кодируется в соответствии с таблицей 12.

 

Биты

[7:2]

1

0

Status

RFU

Uplink frequency exists

Channel frequency ok

 

Рисунок 37 - Биты поля "Статус" (Status)

команды DIChannelAns

 

Таблица 12

 

Кодирование поля "Статус" (Status) команды DIChannelAns

 

Атрибут

Бит = 0

Бит = 1

Channel frequency ok

Устройство не может использовать эту частоту

Устройство имеет возможность использовать эту частоту

Uplink frequency exists

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

Частота восходящей линии связи для канала допустима (корректна)

 

6.3.8 Настройка задержки между TX и RX (RXTimingSetupReq, RXTimingSetupAns)

Команда RXTimingSetupReq позволяет настраивать задержку между окончанием передачи восходящего сообщения (TX) и открытием первого окна приема (RX1). Второе окно приема (RX2) открывается через 1 (одну) секунду после первого окна приема. Структура команды RXTimingSetupReq приведена на рисунке 38.

 

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

1

RXTimingSetupReq Payload

Settings

 

Рисунок 38 - Структура команды RXTimingSetupReq

 

Поле Delay определяет время задержки. Поле разделено на два 4-разрядных индекса. Структура поля Delay команды RXTimingSetupReq приведена на рисунке 39. Поле Delay команды RXTimingSetupReq кодируется в соответствии с таблицей 13.

 

Биты

[7:4]

[3:0]

Settings

RFU

Del

 

Рисунок 39 - Структура поля Delay команды RXTimingSetupReq

 

Таблица 13

 

Кодирование поля Delay команды RXTimingSetupReq

 

Del

Задержка (с)

0

1

1

1

2

2

3

3

...

...

15

15

 

Задержка (Del) - указывается в секундах. Значение Del, равное 0, соответствует 1 с.

Оконечное устройство отвечает на команду RXTimingSetupReq отправкой команды RXTimingSetupAns без атрибутов.

Команда RXTimingSetupAns должна добавляться в поле "Параметры кадра" (FOpts) всех восходящих сообщений, пока оконечное устройство не получит нисходящий пакет в окно RX1 или RX2 (с длительностью RX2, характерной для устройства класса A). Это гарантирует, что даже при наличии потери пакетов в восходящей линии связи сеть будет всегда в курсе параметров нисходящей линии связи, используемых оконечным устройством.

6.3.9 Параметры передачи оконечного устройства (TxParamSetupReq, TxParamSetupAns)

Эта MAC-команда должна выполняться с соблюдением региональных параметров (см. раздел 9).

Команда TxParamSetupReq может быть использована для уведомления оконечного устройства о максимально допустимом времени задержки, т.е. максимальном времени непрерывной передачи пакета по радиоэфиру, а также максимально допустимой эффективной изотропной мощности излучения (EIRP) оконечного устройства. Структура команды TxParamSetupReq приведена на рисунке 40.

 

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

1

Данные TxParamSetupReq (TxParamSetupReq Payload)

EIRP_DwellTime

 

Рисунок 40 - Структура команды TxParamSetupReq

 

Структура поля EIRP_DwellTime команды TxParamSetupReq приведена на рисунке 41.

 

Биты

[7:6]

5

4

[3:0]

EIRP_DwellTime

RFU

Максимальное время задержки в нисходящей линии связи (DownlinkDwellTime)

Максимальное время задержки в восходящей линии связи (UplinkDwellTime)

Максимальное значение мощности излучения (MaxEIRP)

 

Рисунок 41 - Структура поля EIRP_DwellTime

команды TxParamSetupReq

 

Биты [0 ... 3] команды TxParamSetupReq кодируют максимальное значение мощности излучения - MaxEIRP. Значения MaxEIRP охватывают широкий диапазон, включающий параметры всех возможных регионов. При установлении MaxEIRP следует соблюдать региональные параметры, приведенные в разделе 9.

MaxEIRP кодируется значениями согласно рисунку 42.

 

Кодируемое значение

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

MaxEIRP (dBm)

8

10

12

13

14

16

18

20

21

24

26

27

29

30

33

36

 

Рисунок 42 - Кодирование MaxEIRP

 

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

Биты UplinkDwellTime и DownlinkDwellTime определяют максимальное время задержки в восходящей и нисходящей линиях связи соответственно, которые кодируются согласно таблице 14.

 

Таблица 14

 

Кодирование значений задержки

 

Кодируемое значение

Время задержки

0

Не ограничено

1

400 мс

 

Если в соответствии с региональными параметрами данная MAC-команда поддерживается, то оконечное устройство отвечает на команду TxParamSetupReq отправкой команды TxParamSetupAns. Ответ TxParamSetupAns не содержит атрибутов.

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

6.3.10 Оповещение об обновлении ключей (RekeyInd, RekeyConf)

Эта MAC-команда доступна только для OTA-устройств, активированных в сети с сервером сети, поддерживающим LoRaWAN v.1.1. Сервер сети, поддерживающий только LoRaWAN v.1.0, не реализует эту MAC-команду.

ABP-устройства не должны выполнять эту команду. Сетевой сервер должен игнорировать команду RekeyInd, поступившую от ABP-устройства.

Для OTA-устройств MAC-команда RekeyInd используется для подтверждения обновления ключей безопасности и в будущих версиях LoRaWAN RU (> 1.1), чтобы договориться об используемой между оконечным устройством и сервером сети версии протокола LoRaWAN RU. Команда не является оповещением о сбросе (перезагрузке) параметров MAC и радиоканала (см. 6.4.2.3).

Команда RekeyInd включает в себя номер младшей версии LoRaWAN RU. Структура команды RekeyInd приведена на рисунке 43.

 

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

1

Данные RekeyInd (RekeyInd Payload)

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

 

Рисунок 43 - Структура команды RekeyInd

 

Структура поля "Версия LoRaWAN RU устройства" (Dev LoRaWAN RU version) команды RekeyInd приведена на рисунке 44.

 

Биты

[7:4]

[3:0]

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

RFU

Дополнительный номер версии (Minor)=1

 

Рисунок 44 - Структура поля "Версия LoRaWAN RU устройства"

(Dev LoRaWAN RU version) команды RekeyInd

 

Поле "Дополнительный номер версии" (Minor) указывает на дополнительный номер версии LoRaWAN RU, поддерживаемой оконечным устройством (см. таблицу 15).

 

Таблица 15

 

Значения поля "Дополнительный номер версии" (Minor)

 

Дополнительный номер версии (Minor)

Значение поля

RFU

0

1 (LoRaWAN RU x. 1)

1

RFU

От 2 до 15

 

OTA-устройства должны отправлять команду RekeyInd во всех восходящих сообщениях, требующих и не требующих подтверждения, после успешной обработки Join-Accept (новые сеансовые ключи были получены), пока не будет получена команда RekeyConf. Если устройство не получило RekeyConf в течение первых ADR_ACK_LIMIT восходящих сообщений, то оно должно вернуться в состояние присоединения к сети. Команды RekeyInd, присланные от этих устройств после этого, должны быть проигнорированы сервером сети. Сервер сети должен отклонить все восходящие кадры, защищенные новыми сеансовыми ключами, которые были получены после отправки Join-Accept и до первого восходящего кадра, который несет в себе команду RekeyInd.

Когда сетевой сервер получает RekeyInd, он отвечает командой RekeyConf.

Команда RekeyConf содержит один байт полезных данных с закодированной версией LoRaWAN RU, поддерживаемой сервером сети, используется тот же формат, что и для "Dev LoRaWAN RU version". Структура команды RekeyConf приведена на рисунке 45.

 

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

1

Данные RekeyConf (RekeyConf Payload)

Версия LoRaWAN RU сервера сети (Serv LoRaWAN RU version)

 

Рисунок 45 - Структура команды RekeyConf

 

Версия протокола сервера должна быть больше, чем 0 (0 не допускается), и меньше либо равна версии протокола устройства. Поэтому для устройства, поддерживающего настоящий стандарт в объеме спецификации LoRaWAN 1.1, единственным допустимым значением является 1. Если версия сервера недействительна, устройство должно отбросить команду RekeyConf и повторно отправить (ретранслировать) команду RekeyInd в следующем восходящем кадре.

6.3.11 Параметры ADR (ADRParamSetupReq, ADRParamSetupAns)

Команда ADRParamSetupReq позволяет изменять параметры ADR_ACK_LIMIT и ADR_ACK_DELAY, определенные в алгоритме обратного переключения ADR.

Структура команды ADRParamSetupReq приведена на рисунке 46.

 

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

1

Данные ADRParamSetupReq (ADRParamSetupReq Payload)

ADRparam

 

Рисунок 46 - Структура команды ADRParamSetupReq

 

Структура ADRparam команды ADRParamSetupReq приведена на рисунке 47.

 

Биты

[7:4]

[3:0]

ADRparam

Limit_exp

Delay_exp

 

Рисунок 47 - Структура ADRparam команды ADRParamSetupReq

 

Поле Limit_exp устанавливает значение параметра ADR_ACK_LIMIT.

 

ADR_ACK_LIMIT = 2Limit_exp.

 

Допустимый диапазон значений Limit_exp находится в пределах от 0 до 15, что соответствует диапазону значений от 1 до 32768 для параметра ADR_ACK_LIMIT.

Поле Delay_exp устанавливает значение параметра ADR_ACK_DELAY.

 

ADR_ACK_DELAY = 2Delay_exp.

 

Допустимый диапазон значений Delay_exp находится в пределах от 0 до 15, что соответствует диапазону значений от 1 до 32768 для параметра ADR_ACK_DELAY.

Команда ADRParamSetupAns используется оконечным устройством, чтобы подтвердить прием команды ADRParamSetupReq. Команда ADRParamSetupAns не имеет поля данных.

6.3.12 Время устройства (DeviceTimeReq, DeviceTimeAns)

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

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

С помощью команды DeviceTimeAns сетевой сервер предоставляет оконечному устройству дату и время сети. Предоставленное время - это время сети, зафиксированное в конце передачи восходящего сообщения. Команда DeviceTimeAns имеет 5 байт полезных данных. Структура команды DeviceTimeAns приведена на рисунке 48.

 

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

4

1

Данные DeviceTimeAns (DeviceTimeAns Payload)

32-битное целое без знака: число секунд с начала эпохи

8-битное целое без знака: доли секунды с шагом в 1/28 секунды

 

Рисунок 48 - Структура команды DeviceTimeAns

 

Время, предоставленное сетью, должно иметь точность не хуже +/- 100 мС.

Примечание - В качестве начальной точки отсчета времени эпохи используется 6 января 1980 года, полночь. Поле "секунды" - это количество секунд, прошедшее с момента начала эпохи. Это поле монотонно увеличивается каждую секунду на 1. Чтобы преобразовать это поле в UTC время, високосные секунды должны быть приняты во внимание.

 

Пример - пятница, 12 февраля 2016 года, 14:24:31 по Гринвичу соответствует 1139322288 секунд с начала эпохи по шкале GPS. По состоянию на июнь 2017 года время GPS на 17 секунд впереди времени UTC.

6.3.13 Вынужденное повторное присоединение к сети (ForceRejoinReq)

С помощью команды ForceRejoinReq сеть запрашивает у устройства немедленно передать сообщение с запросом повторного присоединения 0-го или 2-го типа (Rejoin-Request type 0 or type 2) с установленным числом и периодичностью попыток присоединения и скоростью передачи данных. Этот восходящий RejoinRequest может быть использован сетью для немедленной замены ключей устройства или для инициирования процедуры передачи устройства в другой сервер сети в роуминге.

Команда ForceRejoinReq имеет два байта полезных данных. Структура команды ForceRejoinReq приведена на рисунке 49.

 

Биты

[15:14]

[13:11]

[10:8]

7

[6:4]

[3:0]

ForceRejoinReq

RFU

Period

Max_Retries

RFU

RejoinType

DR

 

Рисунок 49 - Структура команды ForceRejoinReq

 

Параметры кодируются следующим образом.

Period - задержка между повторами передачи, должна быть равна:

 

Period = 32·2Period + Rand32,

 

где Rand32 - это псевдослучайное число в диапазоне [0 .. 32].

Max_Retries - общее количество попыток, которые выполнит устройство, чтобы отправить запрос на повторное присоединение к сети (Rejoin-Request).

- 0: запрос на повторное присоединение к сети будет отправлен только один раз (без повтора).

- 1: запрос на повторное присоединение к сети должен быть отправлен два раза в общей сложности (1 + 1 повтор).

- ...

- 7: запрос на повторное присоединение к сети должен быть отправлен восемь раз (1 + 7 повторов).

Поле RejoinType указывает тип запроса RejoinRequest, который будет передан устройством:

- 0 или 1: должен быть передан запрос RejoinRequest типа 0.

- 2: должен быть передан запрос RejoinRequest типа 2.

- ... 7: зарезервированы для последующего использования.

DR-кадр с RejoinRequest должен быть передан с указанной скоростью передачи данных. Соотношение между реальной физической скоростью передачи данных (обусловленной типом используемой модуляции) и значением скорости передачи данных определяется теми же правилами, что и для команды LinkADRReq, и определяется в соответствии с региональными параметрами (см. раздел 9).

Команда не имеет ответа, так как устройство должно отправить RejoinRequest при получении команды. Первая передача сообщения с RejoinRequest должна быть осуществлена сразу же после приема команды (но сеть может не получить его). Если устройство получает новую команду ForceRejoinReq прежде, чем оно достигнет максимального числа повторных передач, то устройство должно продолжить передачу RejoinRequest с новыми параметрами.

6.3.14 Параметры повторного присоединения к сети (RejoinParamSetupReq, RejoinParamSetupAns)

С помощью команды RejoinParamSetupReq сеть может запросить устройство периодически отправлять сообщение с запросом на повторное присоединение к сети типа 0 (RejoinRequest type 0) с заданной периодичностью отправки, определенной как время или число восходящих кадров.

И время, и число кадров предлагаются для использования устройствами, которые могут не иметь возможности измерять время. Заданная периодичность устанавливает максимальное время и количество восходящих кадров между двумя отправками RejoinRequest. Устройство может передавать RejoinRequest чаще заданной периодичности. Команда имеет единственный байт полезных данных. Структура команды RejoinParamSetupReq приведена на рисунке 50.

 

Биты

[7:4]

[3:0]

RejoinParamSetupReq

MaxTimeN

MaxCountN

 

Рисунок 50 - Структура команды RejoinParamSetupReq

 

Параметры определены следующим образом:

MaxCountN = C = от 0 до 15.

Устройство должно отправлять RejoinRequest типа 0 не реже, чем каждое 2C + 4 исходящее сообщение.

MaxTimeN = T = от 0 до 15.

Устройство должно отправлять RejoinRequest типа 0 не реже, чем каждые 2T + 10 секунд.

- T = 0 соответствует примерно 17 минутам.

- T = 15 - около одного года.

Устройство должно обеспечивать повторное присоединение к сети по достижении порогового значения количества восходящих кадров. Периодичность повторного присоединения, основанная на времени, является необязательной. Устройство, которое не может реализовать подсчет временного интервала, должно известить об этом в ответе. Ответ содержит один байт полезных данных. Структура команды RejoinParamSetupReq приведена на рисунке 51.

 

Биты

[7:1]

0

RejoinParamSetupReq

RFU

TimeOK

 

Рисунок 51 - Структура команды RejoinParamSetupReq

 

Если бит 0 равен 1, то прибор принял установку периодичности в формате времени и количества восходящих кадров, в противном случае он принимает установку периодичности только в виде ограничения количества восходящих кадров.