Общая длина 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. Используемые таблицы данных для кодирования и декодирования, а также исходные коды программной реализации помехоустойчивого кодирования на языке Си приведены в приложении В.