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

ПНСТ 354-2019 Информационные технологии (ИТ). Интернет вещей. Протокол беспроводной передачи данных на основе узкополосной модуляции радиосигнала (NB-Fi)

     6.2 UPLINK-пакет


Общая длина UPLINK-пакета должна составлять 40 байт. Размер поля Payload (полезные данные) должен составлять 8 байт. Соотношение эффективной скорости передачи данных к физической должно составлять 2/10. Программный код реализации функции формирования UPLINK-пакета на языке Си приведен в разделе Б.1 приложения Б.

Формат UPLINK-пакетов и рабочая полоса частот одинаковы для различных скоростей передачи данных. Порядок следования битов в байтах UPLINK-пакета - от старшего к младшему.

Структура формата UPLINK-пакета приведена в таблице 4.


Таблица 4 - Структура формата UPLINK-пакета

Preamble
(Преамбула)

Node ID
(Идентификатор,

Data (Данные)

Error detection and correction (Определение ошибки и коррекция)

присвоенный устройству)

Header (Заголовок)

Payload
(Полезные данные)

Payload CRC (Контрольная сумма полезных данных)

Packet CRC (Контрольная сумма пакета данных)

Zigzag code

0x97

0x15

0x7а

0x6f

ID3

ID2

ID1

ID0

7

6

5

4-0

8

CRC-16

CRC-32

СRС-32

СRС-32

18 байт

SYS

АСК

MULTI

ITER

байт

Zigzag source (18 байт)

6.2.1 Поле Preamble (Преамбула)

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

6.2.2 Поле Node ID (Идентификатор, присвоенный устройству)

Поле Node ID содержит идентификатор, присвоенный устройству. Поле Node ID должно иметь размер 32 бита [для номерной емкости сети, составляющей 2 (4 294 967 296) устройств]. Порядок следования байт - от старшего к младшему.

6.2.3 Поле Data (Данные)

Поле Data обрабатывается транспортным уровнем. Поле Data является составным и должно содержать два поля: поле Header (Заголовок) и поле Payload (Полезные данные).

6.2.3.1 Поле Header (Заголовок)

Поле Header является заголовком пакета. Поле Header должно иметь размер 1 байт. Поле Header должно состоять из трех системных флагов и поля ITER (см. раздел 5).

6.2.3.2 Поле Payload (Полезные данные)

Поле Payload должно иметь размер 8 байт. Данное поле может быть зашифровано с помощью блочного кода "Магма" (см. раздел 6.4).

6.2.4 Поле Payload CRC (Контрольная сумма полезных данных)

Поле Payload CRC содержит контрольную сумму незашифрованного содержимого поля Payload и поля Header. Поле Payload CRC должно иметь размер 2 байта. Поле Payload CRC используется также при вычислении частоты отправки пакета. Программный код реализации функции вычисления данного параметра на языке Си приведен в разделе Б.3 приложения Б.

6.2.5 Поле Packet CRC (Контрольная сумма пакета данных)

Поле Packet CRC содержит контрольную сумму полей Node ID, Header, Payload CRC и зашифрованного содержимого поля Payload. Используются три младших байта данного значения. Программный код реализации функции вычисления данного параметра (CRC32) на языке Си приведен в разделе Б.4 приложения Б.

6.2.6 Поле Zigzag code

Поле Zigzag code должно содержать помехоустойчивый код, вычисляемый на основании данных поля Zigzag source. Используемые таблицы данных для кодирования и декодирования, а также исходные коды программной реализации помехоустойчивого кодирования на языке Си приведены в приложении В.