Александр Сыров alexandr.syrov@eltech.spb.ru
Применение технологии LoRa без протокола LoRaWAN
Технология LoRa позволяет передавать данные на большие расстояния при минимальных затратах на передачу данных и организацию сети. Для многих приложений достаточно использования сети типа звезда или точка-точка. Например, сбор данных с датчиков (температура, влажность и т.д.), мониторинг состояния устройств, управление светом и проч. Стоит отметить, что при самостоятельном развертывании сети есть возможность использовать дальнобойность технологии LoRa без использования протокола LoRaWAN. В этой статье будет рассмотрен пример использования протокола MiWi поверх модуляции LoRa.
LoRa (Long Range) - это технология модуляции сигнала физического уровня (PHY), ориентированная на устройства с питанием от батареи и передачу сигнала на большие расстояния. Технология LoRa разработана компанией Semtech и использует запатентованный метод модуляции сигнала с расширением спектра, где данные кодируются широкополосными импульсами с изменяемой частотой. Применение такого метода имеет следующие преимущества: значительно повышается чувствительность приемника (до -148дБм) и снижается критичность к расстройке по частоте между приемником и передатчиком. Технология LoRa обеспечивает связь на большие расстояния (до 20 км прямой видимости), низкое энергопотребление, высокую чувствительность приемника, низкие скорости передачи данных и защищенную передачу с шифрованием.
LoRaWAN - это спецификация протокола передачи данных уровня доступа к среде (MAC, Media Access Layer), определенная и поддерживаемая сообществом LoRa Alliance поверх физического уровня LoRa. В некоммерческое сообщество LoRa Alliance входят такие компании, как IBM, Semtech, Cisco, Kerlink, IMST, MultiTech, Microchip Technology и др. Изначально, главной целью сообщества было продвижение сетей LoRa и протокола LoRaWAN в качестве единого стандарта для сетей с низким энергопотреблением. Протокол LoRaWAN характеризует параметры физического уровня между устройствами и инфраструктурой сети LoRa. Таким образом, обеспечивается совместимость между разными производителями оборудования. Протокол LoRaWAN предназначен для масштабирования от инфраструктуры единого шлюза до глобальных сетей со многими устройствами. Сетевая архитектура LoRaWAN развернута в топологии «звезда», в которой шлюзы передают сообщения между конечными устройствами и сервером центральной сети (рис. 1).
Рис. 1 Архитектура сети LoRaWAN
Отметим, что бюджет системы связи обеспечивает улучшение на 30 дБ по сравнению с FSK модуляцией, позволяя подавлять помехи в совмещенном канале, и обеспечивает потребление энергии в семь раз ниже, чтобы минимизировать эксплуатационные расходы. Это делает сети LoRa жизнеспособным вариантом для повышения эффективности в самых разных областях применения.
Существует множество приложений для однорангового подключения Lora, в полной мере использующих преимущества технологии Lora для большой дальности и низкой мощности. Например, устройства открывания гаражных ворот, умный дом или промышленные интеллектуальные датчики (давление, температура, свет и т.д.), системы сигнализации.
Одноранговая связь с использованием технологии LoRa обеспечивает прямую связь и междугороднюю связь между двумя устройствами. Это особенно полезно в условиях, где глобальная инфраструктура LoraWAN не нужна или просто недоступна. Или в гибридной инфраструктуре, где некоторые устройства будут настроены на передачу данных только через одноранговую сеть (низкая задержка, низкие операционные затраты), в то время как другие узлы также будут подключены к инфраструктуре LoraWAN через шлюз. В качестве протокола передачи данных будем использовать протокол MiWi, разработанный компанией Microchip Technology.
MiWi - это проприетарный беспроводной протокол, поддерживающим одноранговое подключение по сети типа "звезда", "дерево", mesh-сеть или точка-точка. Протокол MiWi разработан на базе стандарта беспроводных низкоскоростных сетей IEEE 802.15.4 как альтернатива протоколу ZigBee. По сравнению с ZigBee протокол MiWi требует меньший объем памяти устройства, что снижает требования к ресурсам микроконтроллера и себестоимость оборудования. Стек MiWi занимает всего 4-8 кБ памяти для конечного устройства и менее 16 кБ для координатора сети. Так же отметим, что протокол MiWi не зависит от физического уровня радиоканала. Можно использовать протокол MiWi для построения сетей с разными частотными диапазонами и различной модуляцией сигнала, но исключительно на базе микросхем компании Microchip. Однако, протокол MiWi имеет и свои ограничения:
- максимальное количество узлов в сети - 1024,
- при построении mesh-сетей пакеты данных могут делать максимум 4 "прыжка" (hops) до адресата.
Но для построения небольших сетей и выполнения многих задач этого вполне достаточно. К тому же, при использовании MiWi не надо сертифицировать оборудование или платить отчисления как, например, в ZigBee.
Рассмотрим организацию сети MiWi более подробно. В рамках протокола MIWi производится формирование сети, подключение новых узлов и маршрутизация. Сеть MiWi использует 3 типа устройств с различным функционалом:
1. PAN-координатор (Personal Area Network coordinator) - главный узел сети. Он является образующим узлом сети. PAN-координатор в сети MiWi может быть только один.
2. Координатор - помимо приема и передачи данных (как и конечный узел), с помощью координатора можно расширить зону охвата и количество конечных узлов.
3. Конечный узел - узел, который может только принимать и передавать данные. Например, некий датчик
PAN-координатор - это устройство, которое запускает сеть (ему присваивается адрес 00h) и выбирает канал и идентификатор PAN сети (PAN ID). Все остальные устройства, подключающиеся к сети, должны подчиняться инструкциям PAN-координатора. Координаторы и конечные узлы присоединяются к созданной сети и после сканирования получают идентификаторы и адреса. Для подключения конечного узла или координатора к сети MiWi используется двухэтапная процедура установления связи (а не 5ти этапная, как в стандарте IEEE 802.15.4). Новый узел посылает в эфир специальный запрос. В ответ на него все координаторы, которые его слышат, посылают ответ с информацией о своем окружении. В ответе используются три дополнительных байта:
1. Идентификатор протокола (для MiWi это 4Dh),
2. Номер версии,
3. Локальные координаторы - указывается список координаторов, с которыми конкретный координатор имеет связь. Каждый бит указывает на связь с одним из восьми возможных координаторов. Бит 0 - связь с PAN-координатором, бит 1 - связь с координатором с адресом 0100h и т. д.
Это позволяет узлам узнавать все возможные маршруты в сети. Дальнейший обмен данными по сети происходит в соответствии с алгоритмом на рисунке 2.
Рис. 2 Алгоритм маршрутизации в сети MiWi
Когда координатор получает широковещательный пакет (broadcast packet), он пересылает его соседям до тех пор, пока счетчик "прыжков" (hops) не будет равен нулю. Широковещательные пакеты не передаются конечным устройствам. У широковещательных пакетов бит запроса АСК должен быть равен нулю. Координаторы, которые получают широковещательные пакеты, должны обработать пакет после его повторной передачи.
Microchip разработал способ управления программным обеспечением для радиотрансиверов и стека протоколов связи, который позволяет разработчикам сосредоточиться на разработке собственного кода и не тратить время на изучение специфики того или иного радиоканала. Это достигается благодаря интерфейсу MiApp (рис. 3). Спецификация MiApp определяет программные интерфейсы между самим приложением и проприетарным протоколом MiWi. Программный интерфейс MiApp реализуется двумя способами: в качестве параметров конфигурации, определенных в файле конфигурации, и в виде набора функций для протокола MiWi. Уровень MiMAC регулирует интерфейс между протоколом MiWi и LoRa-трансивером в ATSAMR34.
Рис. 3 Структура программы MiWionLoRa
Рассмотрим пример с протоколом MiWi для одноранговой сети LoRa (простая сеть точка-точка), используя микроконтроллер со встроенным LoRa трансивером ATSAMR34. Пример прошивки для ATSAMR34 предоставляется по запросу. После подписания NDA компания ЭЛТЕХ высылает пример прошишки MiWionLoRa_SAMR34 для проверки организации одноранговой сети. Именно его мы и будем прошивать на 2 отладочные платы ATSAMR34 Xplained Pro. Эта прошивка поддерживает реализацию сетей звезда и точка-точка. Mesh-сети в данном примере не поддерживаются.
ATSAMR34 представляет собой "систему-в-упаковке" (SiP, system in package), в состав которой входит 32х-битный микроконтроллер на базе ядра Cortex M0+ c максимальной частотой 48 МГц и приемопередатчик с поддержкой модуляции LoRa.
Для быстрого освоения и начала разработки, компания Microchip предлагает отладочную плату ATSAMR34 Xplained Pro (рис. 4).


Рис. 4 Внешний вид отладочной платы ATSAMR34 Xplained Pro
Для работы с ATSAMR34 нам понадобится установить расширение Atmel Software Framework (ASFv3) для Atmel Studio. В меню Tools выбираем Extensions and Updates (рис. 5). После установки ASF перезапускаем Atmel Studio.
Если устанавливать Atmel Studio "с нуля", то ASF будет установлен по умолчанию.
Рис. 5 Расширение ASF в Atmel Studio
Открываем проект MiWionLoRa_SAMR34 в папке ..\P2P\LoRa_MiWi_Korean\LoRaP2P_v3_20191127. Переходим Tools > Device Programming (рис. 6).
Рис. 6 Проект в окне Atmel Studio 7
В окне Device Programming в разделе Tool выбираем параметр EDBG. В выпавшем списке подключенных устройств выбираем нужный микроконтроллер ATSAMR34J18B, интерфейс программирования SWD и нажимаем Apply. Далее переходим на вкладку Memories и выбираем нужный hex-файл прошивки и нажимаем Program (рис. 7).
Рис. 7 Окно программирования микроконтроллера в Atmel Studio 7
После прошивки открываем гипертерминал (или любую другую терминальную программу). При включении вываливается меню, где необходимо настроить типы устройств (рис. 8).
Рис. 8 Начальное меню MiWi on LoRa
Одну отладочную плату надо настроить как PAN-координатор для образования сети MiWi. Нажимаем "S" и начинается сканирование и выбор канала связи, присвоение PAN-координатору короткого адреса 0000h и идентификатора сети (рис. 9).
Рис. 9 Настройка PAN-координатора
Вторую отладочную плату ATSAMR34 Xplained Pro настроим в качестве координатора. Нажимаем "J" и отправляем запрос (Beacon) на подключение к сети. Получаем адрес 0100h и тип устройства координатор, а также получаем адрес устройства в сети (рис. 10).
Рис. 10 Подключение координатора к созданной сети
Теперь можем отправлять широковещательные сообщения (Broadcast Message) и адресные сообщения (Unicast Message) в обе стороны. В данном примере передается "31 32 33 34 35" в качестве широковещательного сообщения (рис. 11) и "36 37 38 39 40" в качестве адресного сообщения (рис. 12). При отправке адресного сообщения необходимо указать короткий адрес устройства в сети. В данном случае отправляем сообщение с координатора на PAN-координатор, т.е. на адрес "0".
Рис. 11 Отправка широковещательных сообщений
Рис. 12 Отправка адресных сообщений
В итоге мы получаем сеть с преимуществами технологии LoRa и простым протоколом MiWi. Благодаря низкому энергопотреблению связка SAMR34+MiWi может быть использована в IoT-устройствах с батарейным питанием и достаточно компактными габаритами.

Список используемой литературы:
1. AN1066 MiWi™ Wireless Networking Protocol Stack
2. DS70005356 SAM R34/R35 Low Power LoRa® Sub-GHz SiP Datasheet
3. DS50002803 SAM R34 Xplained Pro User Guide
4. AN1204 Microchip MiWi™ P2P Wireless Protocol
5. AN1284 Microchip Wireless MiWi™ Application Programming Interface – MiApp