Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Platform Soyutlama Katmanı API'lerini uygulayın

Kaynağı GitHub'da görüntüleyin

OpenThread, dar bir Platform Soyutlama Katmanı (PAL) ile işletim sistemi ve platformdan bağımsızdır. Bu PAL şunları tanımlar:

Taşıma Mimarisi
  • Alarmlı serbest çalışan zamanlayıcı için alarm arayüzü
  • CLI ve Spinel mesajlarını iletmek için veri yolu arayüzleri (UART, SPI)
  • IEEE 802.15.4-2006 iletişimi için radyo arabirimi
  • GCC'ye özgü başlatma rutinleri
  • Gerçek rastgele sayı üretimi için entropi
  • Uçucu olmayan yapılandırma depolaması için ayarlar servisi
  • OpenThread günlük mesajlarını iletmek için günlük kaydı arayüzü
  • Sisteme özgü başlatma rutinleri

Tüm API'ler, temeldeki Donanım Soyutlama Katmanı (HAL) Derleme Destek Paketi (BSP) temel alınarak uygulanmalıdır.

API dosyaları aşağıdaki dizinlere yerleştirilmelidir:

Tür Dizin
Platforma özgü PAL uygulaması /openthread/examples/platforms/ platform-name
Üstbilgi dosyaları - Uçucu olmayan depolama API'si /openthread/examples/platforms/utils
Diğer tüm başlık dosyaları /openthread/include/openthread/platform
HAL BSP /openthread/third_party/ platform-name

Alarm

API bildirimi:

/openthread/include/openthread/platform/alarm-milli.h

Alarm API, üst katman zamanlayıcı uygulaması için temel zamanlama ve alarm hizmetleri sağlar.

Milisaniye ve mikrosaniye olmak üzere iki alarm hizmeti türü vardır. Yeni bir donanım platformu için milisaniye gereklidir. Mikrosaniye isteğe bağlıdır.

UART

API bildirimi:

/openthread/examples/platforms/utils/uart.h

UART API, UART arayüzü aracılığıyla temel seri port iletişimini uygular.

OpenThread CLI ve NCP eklentileri, ana bilgisayar tarafıyla etkileşim kurmak için UART arayüzüne bağlı olsa da, UART API desteği isteğe bağlıdır. Ancak, bu eklentileri yeni donanım platformu örneğinizde kullanmayı planlamıyor olsanız bile, birkaç nedenden dolayı destek eklemenizi şiddetle tavsiye ederiz:

  • CLI, bağlantı noktasının doğru çalıştığını doğrulamak için kullanışlıdır
  • Harness Automation Tool, test ve sertifikasyon amacıyla OpenThread'i kontrol etmek için UART arayüzünü kullanır

Hedef donanım platformu UART yerine bir USB CDC modülünü destekliyorsa, şunlardan emin olun:

  • Ana bilgisayar tarafına doğru USB CDC sürücüsünü yükleyin
  • UART API uygulamasını, aynı işlev prototiplerini kullanarak OpenThread tarafında USB CDC sürücüsüyle (BSP ile birlikte) değiştirin

Radyo

API bildirimi:

/openthread/include/openthread/platform/radio.h

Radyo API, üst IEEE 802.15.4 MAC katmanı tarafından çağrılan tüm gerekli işlevleri tanımlar. Radyo yongası, 2.4GHz IEEE 802.15.4-2006 spesifikasyonuyla tamamen uyumlu olmalıdır.

Gelişmiş düşük güç özelliği nedeniyle, OpenThread tüm platformların varsayılan olarak otomatik çerçeve beklemede (dolaylı iletim) uygulamasını gerektirir ve kaynak adresi eşleşme tablosu da radio.h kaynak dosyasında uygulanmalıdır.

Ancak, yeni donanım platformu örneğiniz kaynakla sınırlıysa, kaynak adres tablosu sıfır uzunluk olarak tanımlanabilir. Daha fazla bilgi için Otomatik Çerçeve Beklemede konusuna bakın.

Misc / Sıfırla

API bildirimi:

/openthread/include/openthread/platform/misc.h

Misc / Reset API, çipteki yazılımı sıfırlamak ve son sıfırlamanın nedenini sorgulamak için bir yöntem sağlar.

Entropi

API bildirimi:

/openthread/include/openthread/platform/entropy.h

Entropy API, tüm OpenThread ağı için güvenlik varlıklarını korumak için kullanılan üst katman için gerçek bir rastgele sayı üreteci (TRNG) sağlar. API, her işlev çağrısı için yeni bir rasgele sayının üretilmesini garanti etmelidir. TRNG'den etkilenen güvenlik varlıkları şunları içerir:

  • AES CCM notu
  • Rastgele gecikmeli seğirme
  • Cihazların genişletilmiş adresi
  • Damlama zamanlayıcısındaki ilk rastgele dönem
  • CoAP belirteci / mesaj kimlikleri

Birçok platformun, BSP paketindeki API'yi açığa çıkaran rastgele bir sayı üretecini zaten entegre ettiğini unutmayın. Hedef donanım platformunun TRNG'yi desteklememesi durumunda, sabit uzunlukta bir rastgele sayı oluşturmak için ADC modülü örneklemesinden yararlanmayı düşünün. TRNG gereksinimlerini (uint32_t) karşılamak için gerekirse birden fazla yinelemeden örnek alın.

MBEDTLS_ENTROPY_HARDWARE_ALT makrosu 1 olarak ayarlandığında, bu API ayrıca mbedTLS kitaplığında kullanılan donanım entropisini oluşturmak için bir yöntem sağlamalıdır.

Uçucu olmayan depolama

API bildirimleri:

/openthread/include/openthread/platform/flash.h

veya

/openthread/include/openthread/platform/settings.h

Uçucu olmayan depolama gereksinimi, yukarıda listelenen iki API'den biri uygulanarak karşılanabilir. Flash API bir flash depolama sürücüsü uygularken, Ayarlar API'si üst katmana temel bir flash işlemi uygulaması için işlevler sağlar.

Bu API'ler üst katmana maruz kalır:

  • Uygulama verilerini depolamak için kullanılan geçici olmayan depolama boyutu (örneğin, etkin / bekleyen operasyonel veri kümesi, mevcut ağ parametreleri ve sıfırlama sonrasında yeniden bağlanma için iş parçacığı cihazlarının kimlik bilgileri)
  • Flash durumu işlemlerini okuyun, yazın, silin ve sorgulayın

Platformun hangi API'yi kullanması gerektiğini belirtmek için platform örneğinizin çekirdek yapılandırma dosyasında OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE kullanın. 1 ayarlanırsa, Flash API uygulanmalıdır. Aksi takdirde, Ayarlar API'sinin uygulanması gerekir.

Bu bayrak /openthread/examples/platforms/ platform-name /openthread-core- platform-name -config.h dosyanızda /openthread/examples/platforms/ platform-name /openthread-core- platform-name -config.h .

Kerestecilik

API bildirimi:

/openthread/include/openthread/platform/logging.h

Günlük API'si, OpenThread'in günlüğe kaydetme ve hata ayıklama işlevini uygular ve birden çok hata ayıklama çıktısı düzeyi kullanılabilir. Yeni donanım platformu örneğinizde OpenThread'in günlük kaydını kullanmayı planlamıyorsanız, bu API isteğe bağlıdır.

En yüksek ve en ayrıntılı seviye OPENTHREAD_LOG_LEVEL_DEBG ve tüm ham paket bilgilerini ve günlük satırlarını seri bağlantı noktası veya terminal üzerinden yazdırır. İhtiyaçlarınızı en iyi karşılayan bir hata ayıklama düzeyi seçin.

Sisteme özgü

API bildirimi:

/openthread/examples/platforms/openthread-system.h

Sisteme özgü API, öncelikli olarak seçilen donanım platformu için başlatma ve başlatma işlemlerinin kaldırılmasını sağlar. Bu API, OpenThread kitaplığının kendisi tarafından çağrılmaz, ancak sisteminiz / RTOS için yararlı olabilir. Bu kaynak dosyada diğer modüllerin (örneğin, UART, Radio, Random, Misc / Reset) başlatılmasını da uygulayabilirsiniz.

Bu API'nin uygulanması, kullanım durumunuza bağlıdır. Oluşturulan CLI ve NCP uygulamalarını örnek bir platform için kullanmak isterseniz, bu API'yi uygulamanız gerekir. Aksi takdirde, örnek platform sürücülerini sisteminize / RTOS'unuza entegre etmek için herhangi bir API uygulanabilir.