無線電設定

這個模組包含無線電設定的平台抽象化機制。

摘要

函式

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
取得主機和無線電晶片之間的公車速度 (單位為位元/秒)。
otPlatRadioGetCaps(otInstance *aInstance)
取得電台功能。
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
根據 IEEE 802.15.4 至 2015 第 10.1.4 節的天線連接器,取得無線電的 CCA ED 門檻 (以 dBm 為單位)。
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
以 dBm 取得外部 FEM 的 Rx LNA。
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
取得這個介面的原廠指派 IEEE EUI-64。
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
取得參照當地連續單聲道 64 位元的目前時間,以微秒為單位。
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
取得混雜模式的狀態。
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
取得無線電接收靈敏度值。
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
以 dBm 取得無線電的傳輸功率。
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
取得無線電版本字串。
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
根據 IEEE 802.15.4 至 2015 第 10.1.4 節的天線連接器設定無線電的 CCA ED 閾值。
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
設定「擴充地址」來篩選地址。
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
在 dBm 中設定外部 FEM 的 Rx LNA。
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
設定目前的 MAC 頁框計數器值。
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
只有在新的指定值大於目前值時,才設定目前的 MAC 頁框計數器值。
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
更新 MAC 金鑰和金鑰索引。
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
設定用於篩選地址的永久帳號 ID。
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
啟用或停用雜訊模式。
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
將 rx-on-when-idle 狀態設為無線電平台。
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
設定用於篩選地址的簡短地址。
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
使用 dBm 設定無線電的傳輸功率。

函式

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

取得主機和無線電晶片之間的公車速度 (單位為位元/秒)。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
主機和無線電晶片之間的公車速度 (以位元/秒為單位)。如果 MAC 和以上層,且無線電層位於同一個晶片中,系統會傳回 0。

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

取得電台功能。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
無線電功能位元向量 (請參閱 OT_RADIO_CAP_* 定義)。

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

根據 IEEE 802.15.4 至 2015 第 10.1.4 節的天線連接器,取得無線電的 CCA ED 門檻 (以 dBm 為單位)。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aThreshold
dBm 中的 CCA ED 閾值。
傳回值
OT_ERROR_NONE
已成功擷取 CCA ED 門檻。
OT_ERROR_INVALID_ARGS
aThreshold 為空值。
OT_ERROR_NOT_IMPLEMENTED
未執行透過 dBm 進行的 CCA ED 門檻設定。

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

以 dBm 取得外部 FEM 的 Rx LNA。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aGain
外部 FEM 的 Rx LNA 在 dBm 中增加。
傳回值
OT_ERROR_NONE
已成功擷取外部 FEM 的 LNA 收益。
OT_ERROR_INVALID_ARGS
aGain 為空值。
OT_ERROR_NOT_IMPLEMENTED
未執行外部 FEM 的 LNA 設定。

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

取得這個介面的原廠指派 IEEE EUI-64。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aIeeeEui64
指向工廠指派的 IEEE EUI-64 指標。

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

取得參照當地連續單聲道 64 位元的目前時間,以微秒為單位。

在裝置運作時間的期間,無線電時鐘「不得」換行。因此導入 SHALL 會識別內部計數器溢位並補償。該時鐘沒有定義的週期,且「不得」導入任何連續或不連續的調整 (例如間隔秒數)。實作 SHALL 可補償裝置的任何睡眠時間。

導入方法可能會選擇減少無線電時鐘,並以任何方式來彌補睡眠時間 (例如將高精確度/低功率 RTC 與高解析度計數器) 相輔相成,前提是揭露的組合時鐘可在 otPlatRadioGetCslAccuracy 公告的準確率限制範圍內持續提供單音微秒解析度。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
目前時間,以微秒為單位。UINT64_MAX (平台不支援或廣播時間尚未準備就緒)

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

取得混雜模式的狀態。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
傳回值
TRUE
智慧模式已啟用。
FALSE
混合模式已停用。

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

取得無線電接收靈敏度值。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
無線電接收靈敏度值,單位為 dBm。

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

以 dBm 取得無線電的傳輸功率。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[out] aPower
dBm 中的傳輸功率。
傳回值
OT_ERROR_NONE
已成功擷取傳輸功率。
OT_ERROR_INVALID_ARGS
aPower 為空值。
OT_ERROR_NOT_IMPLEMENTED
未實作透過 dBm 傳輸電源設定。

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

取得無線電版本字串。

這是選用的無線電驅動程式平台功能。如果平台無線電驅動程式未提供,OpenThread 會改用 OpenThread 版本 (

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
傳回
指向 OpenThread 無線電版本的指標。
另請參閱:
otGetVersionString())。

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

根據 IEEE 802.15.4 至 2015 第 10.1.4 節的天線連接器設定無線電的 CCA ED 閾值。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aThreshold
dBm 中的 CCA ED 閾值。
傳回值
OT_ERROR_NONE
已成功設定傳輸功率。
OT_ERROR_INVALID_ARGS
指定的閾值超出範圍。
OT_ERROR_NOT_IMPLEMENTED
未執行透過 dBm 進行的 CCA ED 門檻設定。

otPlatRadioSetExtendedAddress

void otPlatRadioSetExtendedAddress(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

設定「擴充地址」來篩選地址。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aExtAddress
指向以位元組順序儲存的 IEEE 802.15.4 延伸位址。

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

在 dBm 中設定外部 FEM 的 Rx LNA。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aGain
外部 FEM 的 Rx LNA 在 dBm 中增加。
傳回值
OT_ERROR_NONE
已成功設定外部 FEM 的 LNA 收益。
OT_ERROR_NOT_IMPLEMENTED
未實作外部 FEM 的 LNA 增益設定。

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

設定目前的 MAC 頁框計數器值。

當無線電提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能時會使用。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aMacFrameCounter
MAC 頁框計數器值。

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

只有在新的指定值大於目前值時,才設定目前的 MAC 頁框計數器值。

當無線電提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能時會使用。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aMacFrameCounter
MAC 頁框計數器值。

otPlatRadioSetMacKey

void otPlatRadioSetMacKey(
  otInstance *aInstance,
  uint8_t aKeyIdMode,
  uint8_t aKeyId,
  const otMacKeyMaterial *aPrevKey,
  const otMacKeyMaterial *aCurrKey,
  const otMacKeyMaterial *aNextKey,
  otRadioKeyType aKeyType
)

更新 MAC 金鑰和金鑰索引。

當無線電提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能時使用,

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aKeyIdMode
金鑰 ID 模式。
[in] aKeyId
目前的 MAC 金鑰索引。
[in] aPrevKey
指向上一個 MAC 金鑰的指標。
[in] aCurrKey
指向目前 MAC 金鑰的指標。
[in] aNextKey
指向下一個 MAC 金鑰的指標。
[in] aKeyType
使用的金鑰類型。

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

設定用於篩選地址的永久帳號 ID。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aPanId
IEEE 802.15.4 PAN ID。

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

啟用或停用雜訊模式。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aEnable
設為 TRUE 即可啟用,設為 FALSE 可停用雜訊模式。

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

將 rx-on-when-idle 狀態設為無線電平台。

在少數情況下,如果裝置處於 rx-off-idle 狀態,無線電會進入睡眠狀態,但 SubMac 很難辨別這些情況,並且指示電台進入睡眠狀態:

  • 完成一般影格接收工作,前提是:
    • 收到的影格並未發生錯誤且通過篩選條件,而且不是錯誤的 ACK。
    • 由於內部條件,因此不會要求或傳送 ACK。
  • 在傳輸的影格未要求 ACK 的情況下,結束 ACK 影格的傳輸或傳輸作業。
  • 基於以下原因,完成要求 ACK 的接收作業完成作業:
    • ACK 逾時到期時間。
    • 接收無效的 ACK 或非 ACK 影格。
    • 接收適當的 ACK,除非傳輸的影格是「資料要求指令」,且收到的 ACK 上待處理位元設為 true。在此情況下,導入的無線電平台應將接收器保持開啟,直到已確定的逾時時間觸發閒置期間開始為止。您可以使用 OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT 作為參考。
  • 獨立 CCA 工作完成作業。
  • 在 CSMA/CA 程序期間,以忙碌結果完成 CCA 作業。
  • 能源偵測任務完成。
  • 使用 otPlatRadioReceiveAt 排定的無線電接收機視窗結束化。

如果平台支援 OT_RADIO_CAPS_RX_ON_WHEN_IDLE,則必須一併支援 OT_RADIO_CAPS_CSMA_BACKOFF,並處理上述 CCA 後的閒置期間。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aEnable
TRUE 可讓無線電在「接收」狀態中保持「接收」狀態,設為 FALSE 在閒置期間設為「睡眠」狀態。

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

設定用於篩選地址的簡短地址。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aShortAddress
IEEE 802.15.4 簡短地址。

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

使用 dBm 設定無線電的傳輸功率。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aPower
dBm 中的傳輸功率。
傳回值
OT_ERROR_NONE
已成功設定傳輸功率。
OT_ERROR_NOT_IMPLEMENTED
未實作透過 dBm 傳輸電源設定。

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源