Платформы

OpenThread, выпущенный Google, был перенесен на несколько устройств и платформ командой OpenThread, поставщиками микросхем и сообществом. Примеры сборки для всех портированных платформ включены в репозиторий OpenThread .

См. « Поиск поставщиков » для поиска списка всех поддерживаемых поставщиками платформ и портов сообщества.

Поддерживать

Поддержка каждой платформы меняется со временем. Некоторые платформы помечены текущим уровнем поддержки, определенным командой OpenThread. Платформы без тегов в последнее время не тестировались и могут считаться имеющими «ограниченную поддержку».

Уровень поддержки Описание
Поддерживается Полная и базовая поддержка, а также любой сертифицированный компонент Thread, использующий OpenThread. Многие из этих платформ были протестированы и использованы командой OpenThread и рекомендуются для использования в наших демонстрациях и лабораториях кода.
Ограниченная поддержка Эти платформы не были полностью протестированы, и некоторые ключевые функции могут отсутствовать.
Не поддерживается В настоящее время не поддерживается и может иметь проблемы с запуском 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)

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

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

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

Одночиповый, многоинтерфейсный (SoC)

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

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

Сопроцессоры

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

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

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