OpenThread, выпущенный Google, был портирован на несколько устройств и платформ командой OpenThread, поставщиками микросхем и сообществом. Примеры сборки для всех портированных платформ включены в репозиторий OpenThread .
См. раздел «Поиск поставщиков» , где можно найти список всех поддерживаемых поставщиками платформ и портов сообщества.
Поддерживать
Поддержка каждой платформы меняется со временем. На некоторых платформах указан текущий уровень поддержки, определенный командой OpenThread. Платформы без тегов в последнее время не тестировались и могут считаться имеющими «ограниченную поддержку».
Уровень поддержки | Описание |
---|---|
Полная и базовая поддержка, а также любого сертифицированного компонента Thread, использующего OpenThread. Многие из этих платформ были протестированы и использованы командой OpenThread и рекомендованы для использования в наших демонстрациях и Codelabs. | |
Эти платформы не были полностью протестированы, и в них могут отсутствовать некоторые ключевые функции. | |
В настоящее время не поддерживается, и могут возникнуть проблемы при работе OpenThread. Используйте на свой риск. |
Архитектура системы
OpenThread разработан с учетом портативности и гибкости. Код является переносимым на C/C++ (C99 и C++11), который не зависит от архитектуры системы из-за узкого уровня абстракции. Этот уровень абстракции означает, что OpenThread может работать как на «голом железе», так и на операционной системе. На сегодняшний день было продемонстрировано, что OpenThread работает на FreeRTOS, RIOT-OS, Zephyr OS, Linux и macOS.
Портативный характер OpenThread не предполагает никаких предположений о функциях платформы. OpenThread предоставляет возможности для использования расширенных функций радиосвязи и шифрования, снижая системные требования, такие как память, код и вычислительные циклы. Это можно сделать для каждой платформы, сохраняя при этом возможность использовать стандартную конфигурацию по умолчанию.
OpenThread имеет настраиваемую систему сборки, с помощью которой разработчик может включать или отключать функции по мере необходимости. Помимо набора инструментов GNU по умолчанию, исходный код предназначен для работы с рядом других популярных наборов инструментов, таких как IAR и Visual Studio.
Конструкции платформ
OpenThread поддерживает конструкции как системы на кристалле (SoC), так и сетевого сопроцессора (NCP).
SoC — это однокристальное решение, которое имеет объединенный RFIC (802.15.4 в случае Thread) и процессор, где OpenThread и прикладной уровень работают на локальном процессоре.
В конструкции NCP уровень приложения работает на хост-процессоре и взаимодействует с OpenThread через последовательное соединение с использованием стандартизированного протокола хост-контроллера, который мы называем Spinel . В этой конструкции OpenThread может работать как на радиомодуле, так и на хост-процессоре.
Однокристальный, многопоточный (SoC)
В этом проекте уровень приложения и OpenThread выполняются на одном процессоре. Приложение напрямую использует API OpenThread и стек IPv6.
Это конструкция SoC, наиболее часто используемая для конечных устройств. Поскольку он полностью интегрирован в единый кристалл, он имеет самую низкую стоимость и самое низкое энергопотребление.
Однокристальный, многоинтерфейсный (SoC)
Если SoC имеет несколько радиомодулей, например 802.15.4 и Wi-Fi или 802.15.4 и Bluetooth Low Energy (BLE), уровень приложений и OpenThread по-прежнему работают на одном и том же процессоре. В конструкции с несколькими интерфейсами OpenThread использует общий сторонний стек IPv6 через необработанный интерфейс датаграмм IPv6.
Проекты сопроцессоров
OpenThread поддерживает конструкции радиосопроцессора (RCP) и сетевого сопроцессора (NCP). Дополнительную информацию см. в разделе Проекты сопроцессоров .
Открытые проблемы с платформой
В настоящее время для платформ OpenThread открыты следующие проблемы: