Проекты сопроцессора поддерживаются OpenThread. При сборке примеров OpenThread автоматически создается образ микропрограммы для каждой конструкции сопроцессора. Дополнительные сведения см. в разделе Двоичные файлы .
Сопроцессор радио (RCP)
В дизайне RCP ядро OpenThread находится на хост-процессоре с минимальным «контроллером» уровня MAC на устройстве с радиопотоком Thread. Хост-процессор обычно не спит в этой схеме, отчасти для обеспечения надежности сети Thread.
Связь между RCP и хост-процессором управляется OpenThread Daemon через интерфейс SPI по протоколу Spinel.
Преимущество здесь в том, что OpenThread может использовать ресурсы более мощного процессора.
Эта конструкция полезна для устройств, которые менее чувствительны к ограничениям мощности. Например, хост-процессор видеокамеры всегда включен для обработки видео.
Пограничный маршрутизатор OpenThread поддерживает дизайн RCP. Дополнительные сведения см. в разделе Пограничный маршрутизатор OpenThread .
Чтобы построить RCP, обратитесь к следующим Codelabs:
Создайте сеть потоков с помощью пограничного маршрутизатора потоков nRF52840.
Сетевой сопроцессор (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 .