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

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

Сопроцессор радио (RCP)

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

В дизайне RCP ядро ​​OpenThread находится на хост-процессоре с минимальным «контроллером» уровня MAC на устройстве с радиопотоком Thread. Хост-процессор обычно не спит в этой схеме, отчасти для обеспечения надежности сети Thread.

Связь между RCP и хост-процессором управляется OpenThread Daemon через интерфейс SPI по протоколу Spinel.

Преимущество здесь в том, что OpenThread может использовать ресурсы более мощного процессора.

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

Пограничный маршрутизатор OpenThread поддерживает дизайн RCP. Дополнительные сведения см. в разделе Пограничный маршрутизатор OpenThread .

Чтобы построить RCP, обратитесь к следующим Codelabs:

Создайте сеть потоков с помощью пограничного маршрутизатора потоков nRF52840.

Сетевой сопроцессор (NCP)

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

Стандартный дизайн NCP имеет функции Thread на SoC и запускает прикладной уровень на хост-процессоре, который обычно более эффективен (но требует больше энергии), чем устройство OpenThread.

Связь между NCP и хост-процессором управляется wpantund через последовательный интерфейс, обычно с использованием SPI или UART, по протоколу Spinel.

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

Этот дизайн полезен для устройств шлюза или устройств, которые имеют другие требования к обработке, такие как IP-камеры и динамики.

Протокол шпинели

Spinel — это общий протокол управления, позволяющий хост-устройству взаимодействовать с сопроцессором и управлять им. Первоначально разработанная для поддержки NCP на основе потоков, Spinel была разработана с многоуровневым подходом, который позволяет легко адаптировать ее к другим сетевым технологиям в будущем. Он используется как с конструкциями RCP, так и с NCP.

Этот протокол включен в OpenThread в /src/lib/spinel . Инструмент Python CLI под названием Pyspinel доступен для тестирования.

Для получения дополнительной информации см. Internet-Draft для протокола хост-контроллера Spinel .