Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

實施高級功能

某些高級功能是可選的,具體取決於目標硬件平台是否支持它們。

自動框待定

IEEE 802.15.4定義了父子之間的兩種數據傳輸方法:直接傳輸和間接傳輸。後者主要是為大多數時間處於睡眠狀態的睡眠終端設備(SED)設計的,定期喚醒以輪詢父級以獲取排隊的數據。

  • 直接傳輸-父級直接將數據幀發送到終端設備直接傳輸

  • 間接傳輸-父級保留數據,直到其預期的終端設備請求為止直接傳輸

在間接情況下,子終端設備必須首先輪詢父設備,以確定是否有任何可用數據。為此,孩子發送一個數據請求,父母確認。然後,父級確定它是否具有用於子級設備的任何數據。如果是,它將數據包發送到子設備,該子設備確認收到數據。

如果無線電支持動態設置SED的傳出確認中的“幀掛起”位,則驅動程序必須實現源地址匹配API才能啟用此功能。 OpenThread使用此API來通知無線電為哪個SED設置“幀掛起”位。

如果無線電不支持動態設置“幀掛起”位,則無線電可能會將源地址匹配API存根以返回OT_ERROR_NOT_IMPLEMENTED

無線電能量掃描/檢測

能量掃描/檢測功能需要無線電芯片對所選通道上顯示的能量進行採樣,並將檢測到的能量值返回到上層。

如果未實現此功能,則IEEE 802.15.4 MAC層發送/接收信標請求/響應數據包,以評估信道上的當前能量值。

如果無線電芯片支持能量掃描/檢測,請確保通過設置宏OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0來禁用軟件能量掃描邏輯。

mbedTLS的硬件加速

mbedTLS在主要配置頭文件mbedtls-config.h定義了幾個宏,以允許用戶啟用AES,SHA1,SHA2和其他模塊的替代實現,以及基於GF的橢圓曲線加密(ECC)的各個功能。 (p)模塊。有關更多信息,請參見mbedTLS硬件加速

OpenThread不會啟用這些宏,因此默認情況下,對稱加密算法,哈希算法和ECC函數均使用軟件實現。這些實現需要大量的內存和計算資源。為了獲得最佳性能和更好的用戶體驗,我們建議啟用硬件加速而不是軟件來實現上述操作。

要在OpenThread中啟用硬件加速,應將以下mbedTLS配置頭文件添加到平台示例的Makefile中的compile選項標誌中:

  • 主要配置,定義了OpenThread中使用的所有必需宏: /openthread/third-party/mbedtls/mbedtls-config.h
  • 用戶特定的配置,它定義了模塊和功能的替代實現: /openthread/examples/platforms/ platform-name /crypto/ platform-name -mbedtls-config.h

例:

EFR32_MBEDTLS_CPPFLAGS  = -DMBEDTLS_CONFIG_FILE='\"mbedtls-config.h\"'
EFR32_MBEDTLS_CPPFLAGS += -DMBEDTLS_USER_CONFIG_FILE='\"efr32-mbedtls-config.h\"'

mbedtls-config.h中帶註釋的宏不是必需的,可以在用戶特定的配置頭文件中啟用該宏以進行硬件加速。

有關特定於用戶的完整配置示例,請參閱efr32-mbedtls-config.h文件。

AES模塊

OpenThread Security應用AES CCM(帶有CBC-MAC的計數器)加密來加密/解密IEEE 802.15.4或MLE消息,並驗證消息集成代碼。硬件加速至少應支持用於AES CCM基本功能調用的基本AES ECB(電子密碼書)模式。

要利用替代的AES模塊實現:

  1. 在特定於用戶的mbedTLS配置頭文件中定義MBEDTLS_AES_ALT
  2. 使用MBEDTLS_CPPFLAGS變量指示aes_alt.h文件的路徑

SHA256模塊

OpenThread Security應用HMAC和SHA256哈希算法來根據線程規範計算用於主密鑰管理和PSKc生成的哈希值。

要利用替代的基本SHA256模塊實現:

  1. 在特定於用戶的mbedTLS配置頭文件中定義MBEDTLS_SHA256_ALT
  2. 使用MBEDTLS_CPPFLAGS變量指示sha256_alt.h文件的路徑

ECC功能

由於mbedTLS當前僅支持部分ECC功能的硬件加速,而不是整個模塊的硬件加速,因此您可以選擇實現<path-to-mbedtls> /library/ecp.c定義的某些功能,以加速ECC點乘法。

曲線secp256r1用於ECJPAKE草稿的密鑰交換算法中。因此,硬件加速至少應支持secp256r1短weierstrass曲線操作。有關示例,請參見mbedTLS的SiLabs CRYPTO硬件加速