Digital Mobile Radio (DMR) — это высокоэффективный открытый стандарт цифровой радиосвязи, оптимальный выбор для профессиональной связи. Ранее наши разработки велись преимущественно в западных симуляторах, однако теперь мы успешно используем отечественную инженерную платформу Engee, демонстрируя тем самым нашу приверженность импортозамещению и развитию отечественных технологий.
Пока мы не начали, хотелось бы пригласить вас на вебинар, на котором мы детально разберем смежную тему, а именно как технологии автоматической кодогенерации Verilog способны кардинально ускорить процесс разработки. Это уникальная возможность освоить методы, позволяющие заставить компьютер работать на вас в полную силу. Регистрация и подробная информация доступны по ссылке.
В этой статье детально разберём системную модель DMR, разработанную в Engee. Наша модель имитирует полный цикл передачи текстовых сообщений – от формирования пакетов до демодуляции сигнала.
Удобство для инженера в том, что модели Engee позволяют исследовать протокол без привязки к «железу». Это ускоряет разработку конечного решения и позволяет верифицировать результаты, используя коммутацию с SDR, которая реализовывает приём/передачу сигнала DMR с рации или базовой станции.
Особенности DMR
Благодаря технологии TDMA (Time Division Multiple Access) DMR удваивает эффективность использования частотного спектра, позволяя передавать два независимых канала в одной полосе 12.5 кГц. Стандарт поддерживает передачу голоса, текстовых сообщений, GPS-данных и телеметрии, обеспечивая криптозащиту и энергоэффективность. Это делает его идеальным для промышленности, госсектора и коммерции. DMR — это мост между голосовой связью и цифровыми технологиями.
Протокол подразделяется на три уровня:
Tier 1 (DMR-I) – самая простая версия, поддерживает симплексную связь без ретрансляторов, используется в рациях без лицензии (например, PMR446);
Tier 2 (DMR-II) – улучшенный стандарт с поддержкой ретрансляторов и двухслотового TDMA, применяется в профессиональных радиостанциях (например, Motorola MOTOTRBO);
Tier 3 (DMR-III) – полноценная сетевая версия с поддержкой IP-инфраструктуры, групповой связи и совместимостью с системами типа TETRA (используется в коммерческих и государственных сетях).
На данный момент в Engee реализованы три версии модели, каждая из которых подробно рассматривает DMR Tier 1 и частично раскрывает особенности Tier 2. На основе этих моделей разберём саму структуру физического и канального уровня этого протокола. (DMR_v1, DMR_v2, DMR_v3).
Логическая структура передачи данных в DMR, как я сказал ранее, использует двухслотовую TDMA-структуру. На рисунке ниже показана структура разделения эфира с применением TDMA.

Теперь перейдём к анализу структуры кадров.

Кадры DMR включают в себя:
1. Синхропоследовательности (Sync Burst) – 48 бит для временной и частотной синхронизации;
2. Заголовок (LC Header) – служебная информация (тип трафика, адресация);
3. Полезную нагрузку, то есть либо голосовые пакеты (Voice Frames) – кодируются кодером AMBE+2 (в связи с закрытостью данного стандарта мы решили реализовать пример работы текстовой передачи), либо данные (Data Packets) – текстовые сообщения, GPS, телеметрия;
4. Контрольную информацию (FEC, CRC) – для коррекции ошибок.
Для передачи текста (например, SMS) сообщение делится на фрагменты. Каждый фрагмент помещается в Data Block с идентификатором сообщения (2 байта), номером фрагмента (1 байт) и контрольной суммой. Думаю, хватит на этом теории, перейдём к практике, разберём нашу системную модель!
Кодирование текста
Это начальный этап работы. Кодирование реализовано по принципу конвертации символов в байты таблицы UTF-8. Мы преобразуем входное сообщение в байтовое представление, дополняем его нулями до длины, кратной 27, и забиваем один из слотов TDMA-кадрами с полученными данными. Пример работы этой логики вы можете посмотреть в обеих моделях, она скрыта в маске блока входных данных.


Далее рассмотрим вторую версию модели, а именно блок формирования пакетов. Здесь стоит добавить, что наличие кода в моделях – это не недостаток, а учитывая, что многие вещи в этом протоколе достаточно специфичны и нестандартны, стоит относиться к этому не просто с пониманием, а с полным принятием.
Итак, начнём. Функция Gen_Pkg формирует пакет данных для передачи в системе цифровой радиосвязи, в том числе управляющие блоки (LC) и кадры данных. Основные этапы работы:
формирование заголовка (LC-блок), которая включает в себя определение типов логического канала (FLCO), работа идентификатора (FID) в зависимости от входных параметров, также здесь учитываются адреса источника и получателя (AdrP, AdrI) преобразуются в битовые векторы;
сборка полного 72-битного LC-блока, который кодируется кодом Рида-Соломона, а также для него вычисляется CRC и применяется маска;
после формирования блока данные разбиваются на матрицу 9×11 для BPTC перемежения;
для этой матрицы рассчитываются горизонтальные и вертикальные матрицы проверки Хэмминга (HR, HC), а также 5-битная контрольная сумма (CS) и генерируется 20-битный тип сообщения (type20bit).
помимо полного LC-блока (288 бит), включающего синхропоследовательность, тип сообщения и перемеженные данные BPTC, также готовятся быстрые данные. Быстрые данные BPTC – матрица 8×16 с контрольными битами BPTC – нужны для сборки кадров данных.
Ниже показана схема кодирования.

Входные данные преобразуются в битовый поток и распределяются по кадрам, генерируются 4 кадра данных (B,C,D,E) с разными сегментами BPTC и битами QR. Помимо четырёх кадров суперслот включает в себя ещё заголовочный пакет данных А, состоящий из данных и синхропоследовательности.
Также здесь представлено управление передачей кадров, состоящее из счетчика кадров (E) в зависимости от состояния (Enabled, LCs) – возвращается либо LC-блок, либо очередной кадр данных. После 5-го кадра счетчик блоков (l_block) сбрасывается. Возможно, в этой схеме трудно разобраться с первого раза, ну а если короче, то эта функция обеспечивает структурированную передачу данных с помехоустойчивым кодированием, управлением кадрами и поддержкой служебных блоков.
Физический уровень протокола в модели
В обеих моделях он одинаковый и в общих чертах описывается в протоколе следующим образом.

Если коротко разобрать весь физический уровень, то его можно описать следующим образом.
На входе битовый поток, каждые два бита образуют один символ, в соответствие с таблицей ниже.
Bit 1 |
Bit 2 |
Symbol |
0 |
1 |
+3 |
0 |
0 |
+1 |
1 |
0 |
-1 |
1 |
1 |
-3 |
-
Фильтр имеет следующую импульсную характеристику:
Рис. 6. Импульсная характеристика фильтра
-
FM-модулятор/демодулятор можно описать следующей формулой:
Рис. 7. Формулой для FM-модулятор/демодулятор
Где:
А – амплитуда несущей,
f c – несущая частота,
x (τ) – входной сигнал основной полосы частот,
f Δ – отклонение частоты в Гц.
Его задача заключается в том, чтобы задать символы как импульсы с отклонением от несущей. Символы и частоты соответствующие им представлены в таблице ниже.
Symbol |
4-FSK deviation |
+3 |
+1944 Hz |
+1 |
+648 Hz |
-1 |
-648 Hz |
-3 |
-1944 Hz |
Детальный разбор физического уровня мы начнём с модуляции 4-FSK в общем виде. В DMR применяется 4-уровневая частотная манипуляция (4-FSK). В ней каждые 2 бита данных кодируются в один символ с частотными отклонениями от несущей, как я уже говорил ранее. Какой смысл лежит в выборе именно такого подхода – использование 4-FSK? Давайте сравним с подобными модуляциями и сделаем выводы по этому поводу.
Модуляция |
Бит/символ |
Эффективность |
Устойчивость к шуму |
2-FSK |
1 |
Низкая |
Высокая |
4-FSK |
2 |
Оптимальная |
Средняя |
QPSK |
2 |
Высокая |
Низкая |
Если посмотреть на таблицу сравнения, ответ возникает сам по себе: 4-уровневая частотная манипуляция позволяет реализовать совместимость с узкополосными каналами (12.5 кГц), а также даёт баланс между скоростью и помехоустойчивостью. По сравнению с 2-FSK у 4-FSK вдвое выше пропускная способность, а по сравнению с QPSK – лучшая устойчивость к частотным искажениям.
Дальше на очереди RRC-фильтр (Root Raised Cosine). Он нужен для формирования импульсов, чтобы минимизировать межсимвольную интерференцию (ISI) при передаче данных. Зачем нужна формирующая фильтрация? Без неё прямоугольные импульсы 4-FSK создают широкий спектр, мешающий соседним каналам, поэтому в данном случая фильтр ограничивает полосу сигнала, сохраняя целостность данных.
Фильтр RRC из протокола имеет следующие параметры:
коэффициент сглаживания (α): 0.2 (компромисс между полосой и Inter-Symbol Interference (Межсимвольная интерференция) – искажение сигнала из-за перекрытия соседних символов. Чем меньше α, тем выше риск ISI.);
полоса пропускания: 6.25 кГц (половина от 12.5 кГц канала).
Как работает это чудо? На передаче: символы 4-FSK «округляются» для уменьшения резких скачков. На приёме: согласованный фильтр подавляет межсимвольную интерференцию.
Теперь посмотрим на FM-модуляцию и формирование радиосигнала. Цифровой поток (после 4-FSK symbol mapper и RRC) подаётся на FM-модулятор и изменяет частоту несущего сигнала в зависимости от амплитуды входного модулирующего сигнала (например, аудио- или цифровых данных). В отличие от AM (амплитудной модуляции), где меняется амплитуда, в FM-модуляции амплитуда остается постоянной, что делает сигнал устойчивее к помехам.
Также коротко рассмотрим влияние шума на физический уровень протокола. BER (Bit Error Rate) растёт экспоненциально при SNR < 15 дБ. Реализация канала включает в себя наложения шума с заданным SNR (Signal-to-Noise Ratio) – отношение сигнал/шум и задержка, сдвигающая поток на определённое количество отсчётов. Реализация показана ниже.

Вот ключевые выводы по физическому уровню DMR (его реализация в Engee представлена ниже на рис. 6).
1. 4-FSK – оптимальный выбор для DMR: удваивает ёмкость канала без расширения полосы.
2. RRC-фильтр критичен для минимизации ISI.
3. FM-модуляция в DMR адаптирована под цифровой поток с учётом требований к помехоустойчивости.

Теперь разберём не менее важный аспект – синхронизацию в DMR. Кадровая синхронизация завязана на синхропоследовательности(48-битные коды для разных типов кадров), которые позволяют определить начало кадра и компенсировать временные задержки тракта. Ниже показана модель этого алгоритма: она берёт по два соседних кадра и находит в них синхропоследовательность, после чего определяет задержку в тракте и относительно неё выбирает полезную нагрузку из потока. Детальный разбор этой логики представлен во второй версии модели.

Помимо двух рассмотренных ранее аппаратных реализаций, мы сочли важным продемонстрировать работу системы в полной мере и подготовили третью модель. Для этого была разработана и реализована программная модель ключевого процесса — установления и поддержания связи между радиостанцией (РС) и базовой станцией (БС) в стандарте DMR.

В фокусе нашего внимания оказался процесс формирования и обработки пакетов данных (PDU). Модель детально описывает, как именно формируется DMR-кадр: от кодирования служебной информации (LC) с применением помехоустойчивых кодов Хэмминга и Голлея до упаковки пользовательских данных.
Для обеспечения устойчивости связи был реализован конечный автомат, управляющий состоянием соединения, что позволяет системе автоматически переподключиться при потере сигнала.
Упрощенная модель базовой станции завершает цикл взаимодействия, обеспечивая обратную связь и подтверждая корректность работы всего стека. Эта демонстрация наглядно показывает, как теоретические принципы стандарта DMR воплощаются в практическую логику работы оборудования.
Как мы показали, построение модели DMR в Engee позволяет детально проанализировать каждый этап работы протокола — формирование кадров, помехоустойчивое кодирование, модуляцию 4-FSK и критически важные механизмы синхронизации. Это создает прочную основу для верификации алгоритмов перед их переносом на реальное устройство, общая модель разрослась уже до размеров показанных ниже, и на этом мы не остановимся. ?

Готов ответить на вопросы или добавить детали, жду вас в комментариях!
Дополнительные материалы по теме:
ETSI TS 102 361-1 — архитектура DMR.
ETSI TS 102 361-2 — физический уровень.
Книга: Digital Mobile Radio for Professionals (R. Haine, 2022)