Платформы

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)

Архитектура SoC OT

В этом проекте уровень приложения и OpenThread выполняются на одном процессоре. Приложение напрямую использует API OpenThread и стек IPv6.

Это конструкция SoC, наиболее часто используемая для конечных устройств. Поскольку он полностью интегрирован в единый кристалл, он имеет самую низкую стоимость и самое низкое энергопотребление.

Однокристальный, многоинтерфейсный (SoC)

Архитектура нескольких SoC OT

Если SoC имеет несколько радиомодулей, например 802.15.4 и Wi-Fi или 802.15.4 и Bluetooth Low Energy (BLE), уровень приложений и OpenThread по-прежнему работают на одном и том же процессоре. В конструкции с несколькими интерфейсами OpenThread использует общий сторонний стек IPv6 через необработанный интерфейс датаграмм IPv6.

Проекты сопроцессоров

OpenThread поддерживает конструкции радиосопроцессора (RCP) и сетевого сопроцессора (NCP). Дополнительную информацию см. в разделе Проекты сопроцессоров .

Открытые проблемы с платформой

В настоящее время для платформ OpenThread открыты следующие проблемы: