|Kaynağı GitHub'da görüntüleyin|
Bazı gelişmiş özellikler, hedef donanım platformunda desteklenip desteklenmediklerine bağlı olarak isteğe bağlıdır.
Otomatik çerçeve beklemede
IEEE 802.15.4, ebeveyn ve çocuk arasında iki tür veri aktarım yöntemi tanımlar: doğrudan aktarım ve dolaylı aktarım. İkincisi, öncelikli olarak çoğu zaman uyuyan ve sıradaki veriler için ebeveyni sorgulamak üzere periyodik olarak uyanan uykulu uç cihazlar (SED'ler) için tasarlanmıştır.
Doğrudan İletim - ebeveyn, bir veri çerçevesini doğrudan son cihaza gönderir
Dolaylı İletim - ebeveyn, amaçlanan son cihazı tarafından talep edilene kadar verileri tutar
Dolaylı durumda, bir alt cihaz, kendisi için herhangi bir veri olup olmadığını belirlemek için önce ebeveyni yoklamalıdır. Bunu yapmak için çocuk, ebeveynin onayladığı bir veri talebi gönderir. Daha sonra ebeveyn, alt cihaz için herhangi bir veriye sahip olup olmadığını belirler; eğer öyleyse, alt cihaza verinin alındığını onaylayan bir veri paketi gönderir.
Telsiz, SED'lere giden bildirimlerde Çerçeve Beklemede bitini dinamik olarak ayarlamayı destekliyorsa, sürücülerin bu özelliği etkinleştirmek için kaynak adresi eşleştirme API'sini uygulaması gerekir. OpenThread, radyoya hangi SED'lerin Çerçeve Bekleyen bitini ayarlayacağını söylemek için bu API'yi kullanır.
Telsiz, Çerçeve Bekleyen biti dinamik olarak ayarlamayı desteklemiyorsa, telsiz
OT_ERROR_NOT_IMPLEMENTED döndürmek için kaynak adresi eşleştirme API'sini
OT_ERROR_NOT_IMPLEMENTED .
Radyo ile Enerji Tarama / Algılama
Enerji Tarama / Algılama özelliği, radyo çipinin seçilen kanallarda mevcut olan enerjiyi örneklemesini ve algılanan enerji değerini üst katmana döndürmesini gerektirir.
Bu özellik uygulanmazsa, IEEE 802.15.4 MAC katmanı, kanaldaki mevcut enerji değerini değerlendirmek için bir İşaret Talebi / Yanıt paketi gönderir / alır.
Radyo çipi Energy Scan / Detect'i destekliyorsa,
OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 makrosunu ayarlayarak yazılım enerji tarama mantığını devre dışı
OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 emin olun.
MbedTLS için donanım hızlandırma
mbedTLS, kullanıcıların AES, SHA1, SHA2 ve diğer modüllerin alternatif uygulamalarının yanı sıra GF üzerinden Eliptik eğri kriptografisi (ECC) için ayrı işlevleri etkinleştirmesine izin vermek için ana yapılandırma başlık dosyasında,
mbedtls-config.h birkaç makro tanımlar. (p) modülü. Daha fazla bilgi içinmbedTLS donanım hızlandırmasına bakın.
OpenThread bu makroları etkinleştirmez, bu nedenle simetrik şifreleme algoritmaları, karma algoritmalar ve ECC işlevlerinin tümü varsayılan olarak yazılım uygulamalarını kullanır. Bu uygulamalar, önemli miktarda bellek ve hesaplama kaynakları gerektirir. En iyi performans ve daha iyi bir kullanıcı deneyimi için, yukarıdaki işlemleri gerçekleştirmek üzere yazılım yerine donanım hızlandırmayı etkinleştirmenizi öneririz.
OpenThread içinde donanım hızlandırmayı etkinleştirmek için, aşağıdaki mbedTLS yapılandırma başlık dosyaları, platform örneğinin Makefile dosyasındaki derleme seçeneği bayraklarına eklenmelidir:
- OpenThread'de kullanılan tüm gerekli makroları tanımlayan ana yapılandırma:
/openthread/third-party/mbedtls/mbedtls-config.h
- Modüllerin ve işlevlerin alternatif uygulamalarını tanımlayan kullanıcıya özel konfigürasyon:
/openthread/examples/platforms/ platform-name /crypto/ platform-name -mbedtls-config.h
Misal:
EFR32_MBEDTLS_CPPFLAGS = -DMBEDTLS_CONFIG_FILE='\"mbedtls-config.h\"' EFR32_MBEDTLS_CPPFLAGS += -DMBEDTLS_USER_CONFIG_FILE='\"efr32-mbedtls-config.h\"'
mbedtls-config.h makrolar zorunlu değildir ve donanım hızlandırması için kullanıcıya özel yapılandırma başlık dosyasında etkinleştirilebilir.
Kullanıcıya özgü eksiksiz bir yapılandırma örneği için
mbedtls_config_autogen.h dosyasına bakın.
AES modülü
OpenThread Security, IEEE 802.15.4 veya MLE mesajlarını şifrelemek / şifresini çözmek için AES CCM (CBC-MAC ile Sayaç) şifresini uygular ve mesaj entegrasyon kodunu doğrular. Donanım hızlandırma, AES CCM temel işlevsel çağrısı için en azından temel AES ECB (Elektronik Kod Kitabı Kitabı) modunu desteklemelidir.
Alternatif bir AES modülü uygulamasını kullanmak için:
- Kullanıcıya özel mbedTLS yapılandırma başlık dosyasında
MBEDTLS_AES_ALTmakrosunu tanımlayın
-
MBEDTLS_CPPFLAGSdeğişkenini kullanarak
aes_alt.hdosyasının yolunu
MBEDTLS_CPPFLAGS
SHA256 modülü
OpenThread Güvenliği, İş Parçacığı Spesifikasyonuna göre ana anahtar yönetimi ve PSKc üretimi için karma değeri hesaplamak için HMAC ve SHA256 karma algoritmaları uygular.
Alternatif bir temel SHA256 modül uygulamasını kullanmak için:
- Kullanıcıya özel mbedTLS yapılandırma başlık dosyasında
MBEDTLS_SHA256_ALTmakrosunu tanımlayın
-
MBEDTLS_CPPFLAGSdeğişkenini kullanarak
sha256_alt.hdosyasının yolunu
MBEDTLS_CPPFLAGS
ECC fonksiyonları
MbedTLS şu anda modülün tamamı yerine yalnızca ECC işlevlerinin bazı bölümleri için donanım hızlandırmayı desteklediğinden, ECC nokta çarpımını hızlandırmak için
path-to-mbedtls /library/ecp.c tanımlanan bazı işlevleri uygulamayı seçebilirsiniz.
Eğri secp256r1, ECJPAKE taslağının anahtar değişim algoritmasında kullanılır. Bu nedenle, donanım hızlandırma en azından secp256r1 kısa ağırlık eğrisi işlemini desteklemelidir. Örnek için mbedTLS için SiLabs CRYPTO Donanım Hızlandırmasına bakın.