플랫폼

Google에서 출시한 OpenThread는 OpenThread팀, 실리콘 공급업체, 커뮤니티에 의해 여러 기기와 플랫폼에 포팅되었습니다. 포팅된 모든 플랫폼의 빌드 예는 OpenThread 저장소에 포함되어 있습니다.

모든 공급업체에서 지원하는 플랫폼 및 커뮤니티 포트의 검색 가능한 목록은 공급업체 검색을 참조하세요.

지원

각 플랫폼에 대한 지원은 시간이 지남에 따라 다릅니다. 일부 플랫폼에는 OpenThread팀에서 확인한 현재 지원 수준으로 태그가 지정됩니다. 태그가 지정되지 않은 플랫폼은 최근에 테스트되지 않았으며 '제한적 지원'으로 간주될 수 있습니다.

지원 수준설명
지원됨 전체 및 기본 지원과 OpenThread를 사용하는 모든 스레드 인증 구성요소 이러한 플랫폼은 대부분 OpenThread팀에서 테스트하고 사용되었으며 데모와 Codelab에서 사용하는 것이 좋습니다.
제한적 지원 이러한 플랫폼은 완전히 테스트되지 않았으며 일부 주요 기능이 누락될 수 있습니다.
지원되지 않음 현재 지원되지 않으며 OpenThread를 실행하는 데 문제가 발생할 수 있습니다. 사용에 따른 책임은 사용자에게 있습니다.

시스템 아키텍처

OT 시스템 아키텍처

OpenThread는 이동성과 유연성을 고려하여 설계되었습니다. 이 코드는 좁은 추상화 레이어로 인해 시스템 아키텍처에 구속되지 않는 이식 가능한 C/C++ (C99 및 C++11)입니다. 이 추상화 계층은 OpenThread가 베어메탈 또는 OS에서 실행될 수 있음을 의미합니다. 지금까지 OpenThread는 FreeRTOS, RIOT-OS, Zephyr OS, Linux, macOS에서 실행되는 것으로 입증되었습니다.

OpenThread의 이동성은 플랫폼 기능을 가정하지 않습니다. OpenThread는 향상된 라디오 및 암호화 기능을 활용하는 후크를 제공하여 메모리, 코드, 컴퓨팅 주기와 같은 시스템 요구사항을 줄입니다. 이는 플랫폼별로 실행할 수 있지만 표준 구성을 기본값으로 유지하는 기능을 유지합니다.

OpenThread에는 개발자가 필요에 따라 기능을 사용 설정 또는 중지할 수 있는 구성 가능한 빌드 시스템이 있습니다. 이 소스는 기본 GNU 도구 모음 외에도 IAR 및 Visual Studio와 같은 다른 여러 인기 도구 모음과 함께 작동하도록 설계되었습니다.

플랫폼 디자인

OpenThread는 단일 칩 시스템 (SoC) 및 네트워크 보조 프로세서 (NCP) 설계를 모두 지원합니다.

SoC는 RFIC (스레드의 경우 802.15.4)와 프로세서가 결합된 단일 칩 솔루션으로, OpenThread와 애플리케이션 레이어가 로컬 프로세서에서 실행됩니다.

NCP 설계에서는 애플리케이션 레이어가 호스트 프로세서에서 실행되고 Spinel이라고 하는 표준화된 호스트 컨트롤러 프로토콜을 사용하여 직렬 연결을 통해 OpenThread와 통신합니다. 이 설계에서 OpenThread는 라디오 또는 호스트 프로세서에서 실행될 수 있습니다.

단일 칩, 스레드 전용 (SoC)

OT SoC 아키텍처

이 설계에서 애플리케이션 레이어와 OpenThread는 동일한 프로세서에서 실행됩니다. 애플리케이션은 OpenThread API 및 IPv6 스택을 직접 사용합니다.

최종 기기에 가장 일반적으로 사용되는 SoC 설계입니다. 단일 실리콘에 고도로 통합되기 때문에 비용이 가장 낮고 전력 소비도 가장 적습니다.

단일 칩, 다중 인터페이스 (SoC)

OT 다중 SoC 아키텍처

SoC에 802.15.4 및 Wi-Fi, 802.15.4 및 저전력 블루투스 (BLE)와 같은 여러 무선 기능이 있는 경우 애플리케이션 레이어와 OpenThread는 여전히 동일한 프로세서에서 실행됩니다. 다중 인터페이스 설계에서 OpenThread는 원시 IPv6 데이터그램 인터페이스를 통해 공유된 서드 파티 IPv6 스택을 활용합니다.

보조 프로세서 디자인

OpenThread는 RCP (Radio Co-Processor)와 NCP (Network Co-Processor) 디자인을 지원합니다. 자세한 내용은 공프 프로세서 설계를 참고하세요.

미해결 플랫폼 문제

현재 OpenThread 플랫폼에서 해결되지 않은 문제는 다음과 같습니다.