История LoRa началась в 2009 году, когда французская компания Cycleo изобрела LoRa. Начиная с декабря 2019 года, Zephyr OS поддерживает LoRa (Long Range). С тех пор сообщество проявило огромный интерес к расширению своей поддержки. Совсем недавно в Zephyr OS была добавлена поддержка LoRaWAN (маломощная глобальная сеть). Это обеспечит настоящую сетевую поддержку Zephyr OS через LoRa. Он работает на лицензированных бесплатных частотах ниже гигагерца (865 МГц – Индия, 868 МГц – Европа и т. д.). Это идеальный выбор для приложений с низкой скоростью передачи данных и большого радиуса действия.
Что такое LoRaWAN?
LoRaWAN – это MAC-уровень, который находится поверх LoRa. Согласно модели OSI, LoRaWAN – это уровень MAC (управления доступом к среде), а LoRa – это уровень PHY (физический). Протокол LoRa закрыт, что означает, что он принадлежит Semtech, а спецификации LoRaWAN открыты для общественности. Эталонная реализация доступна в репозитории GitHub.
Конечные узлы передают данные на шлюз, и шлюз опирается на сообщение на сетевом сервере. Сетевой сервер состоит из трех компонентов: сетевого сервера, совместного сервера и сервера приложений. Связь между конечным узлом и шлюзом LoRaWan происходит через технологию LoRa, а между шлюзом и сетевым сервером – через механизм TCP/IP.
Поддержка LoRaWAN в Zephyr OS
После успешного добавления поддержки LoRa в Zephyr OS пришло время для LoRaWAN. Вместо того, чтобы писать код с нуля, его использовали повторно. Это произошло потому, что существующий код поддерживал многие драйверы LoRa. Никаких изменений в репозитории LoRaMac-Node не требовалось, кроме включения криптографических драйверов.
Разработка LoRaWAN API-это сложная задача по сравнению с LoRa. Это связано с синхронным (восходящий канал) и асинхронным (нисходящий канал) характером спецификаций LoRaWAN. Первоначальная реализация поддерживает как динамический (OTAA), так и статический (ABP) способы подключения к серверу LoRaWAN, но нет поддержки Downlink.
Планы на будущее?
В настоящее время он поддерживает только классы устройств CLASS-A (все конечные устройства). Планируется добавить поддержку классов устройств CLASS-B и CLASS-C. Существует потенциальный план добавления поддержки безопасных элементов для хранения ключей и состояний. Это становится очень важным аспектом, когда нам нужно развернуть LoRaWAN на устройствах.
Для тех, кто хочет внести свой вклад, самая экономичная плата – 96Boards Wistrio. Желающие также могут присоединиться к сообществу Slack здесь.
Все изображения были взяты из слайдов презентации разработчика ядра Linaro Маниваннана Садхасивама с Open Source Summit 2020.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.