보조 프로세서 설계는 OpenThread에서 지원됩니다. OpenThread 예제를 빌드할 때 각 보조 프로세서 설계의 펌웨어 이미지가 자동으로 생성됩니다. 자세한 내용은 바이너리를 참고하세요.
RCP (무선 보조 프로세서)
RCP 설계에서 OpenThread의 핵심은 스레드 라디오가 있는 기기에 최소 MAC 레이어 '컨트롤러'만 있는 호스트 프로세서에 있습니다. 호스트 프로세서는 일반적으로 스레드 네트워크의 안정성을 보장하기 위해 이 설계에서 절전 모드로 전환되지 않습니다.
RCP와 호스트 프로세서 간의 통신은 Spinnaker 프로토콜을 통해 SPI 인터페이스를 통해 OpenThread 데몬에 의해 관리됩니다.
여기서 장점은 OpenThread가 더 강력한 프로세서에서 리소스를 활용할 수 있다는 것입니다.
이 설계는 전력 제약에 민감하지 않은 기기에 유용합니다. 예를 들어 동영상 카메라의 호스트 프로세서는 동영상을 처리하기 위해 항상 켜져 있습니다.
OpenThread 보더 라우터는 RCP 디자인을 지원합니다. 자세한 내용은 OpenThread 보더 라우터를 참조하세요.
RCP를 빌드하려면 다음 Codelab을 참고하세요.
nRF52840으로 스레드 네트워크 빌드 Thread Border Router
네트워크 보조 프로세서 (NCP)
표준 NCP 설계는 SoC의 스레드 기능을 포함하며 호스트 프로세서에서 애플리케이션 레이어를 실행합니다. 호스트 레이어는 일반적으로 OpenThread 기기보다 더 많은 기능을 지원하지만 전력 요구사항이 더 큽니다.
NCP와 호스트 프로세서 간의 통신은 일반적으로 SPI 또는 UART를 사용하여 Spinel 프로토콜을 통해 직렬 인터페이스를 통해 wpantund
에 의해 관리됩니다.
이 디자인의 이점은 저전력 OpenThread 기기가 스레드 네트워크에서 활성 상태를 유지할 수 있는 동안 고전력 호스트가 절전 모드로 전환될 수 있다는 것입니다. SoC는 애플리케이션 레이어에 연결되어 있지 않으므로 애플리케이션 개발과 테스트는 OpenThread 빌드와는 별개입니다.
이 설계는 IP 카메라 및 스피커와 같은 다른 처리 수요가 있는 게이트웨이 기기 또는 기기에 유용합니다.
Spinel 프로토콜
Spinel은 호스트 기기가 보조 프로세서와 통신하고 보조 프로세서를 관리할 수 있도록 하는 일반 관리 프로토콜입니다. 처음에 스레드 기반 NCP를 지원하도록 설계된 Spinel은 나중에 다른 네트워크 기술에 쉽게 적응할 수 있는 계층화된 방식으로 설계되었습니다. RCP 및 NCP 디자인에서 사용됩니다.
이 프로토콜은 /src/lib/spinel
의 OpenThread에 포함되어 있습니다. 테스트용으로 Pyspinel이라는 Python CLI 도구를 사용할 수 있습니다.
자세한 내용은 Spinel 호스트 컨트롤러 프로토콜용 인터넷 초안을 참조하세요.