無線構成

このモジュールには、無線構成のためのプラットフォーム抽象化が含まれています。

概要

関数

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)
外部 FEM の Rx LNA ゲインを dBm 単位で取得します。
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 しきい値を dBm 単位で設定します。
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
アドレス フィルタリング用の拡張アドレスを設定します。
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
外部 FEM の Rx LNA ゲインを dBm 単位で設定します。
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
アドレス フィルタリング用の PAN 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
CCA ED しきい値(dBm)。
戻り値
OT_ERROR_NONE
CCA ED しきい値が正常に取得されました。
OT_ERROR_INVALID_ARGS
aThreshold が NULL だった。
OT_ERROR_NOT_IMPLEMENTED
dBm による CCA ED しきい値構成は実装されていません。

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

外部 FEM の Rx LNA ゲインを dBm 単位で取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[out] aGain
外部 FEM の Rx LNA ゲイン(dBm)。
戻り値
OT_ERROR_NONE
外部 FEM の LNA ゲインを取得しました。
OT_ERROR_INVALID_ARGS
aGain が NULL だった。
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 ビット幅)を基準に、現在の時刻をマイクロ秒単位で取得します。

無線時計は、デバイスの稼働時間中にラップされてはなりません。したがって、実装は内部カウンタのオーバーフローを特定して補正すべきです。時計には定義されたエポックがなく、連続的または不連続的な調整(うるう秒など)を導入してはなりません。実装は、デバイスのスリープ時間を補正すべきです。

実装は、公開された組み合わせクロックが otPlatRadioGetCslAccuracy によって発表された精度制限内で連続した単調マイクロ秒解像度のティックを提供する限り、任意の手段(高精度/低消費電力 RTC と高分解能カウンタを組み合わせるなど)によって、無線クロックを研究し、スリープ時間を補正することを選択しても構いません。

詳細
パラメータ
[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 が NULL だった。
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 しきい値を dBm 単位で設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aThreshold
CCA ED しきい値(dBm)。
戻り値
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
)

外部 FEM の Rx LNA ゲインを dBm 単位で設定します。

詳細
パラメータ
[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
)

アドレス フィルタリング用の PAN 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-when-idle 状態にある場合、ラジオがスリープ状態になる状況がいくつかありますが、SubMac がこうした状況を識別してラジオにスリープ状態に入るように指示することは困難で、コストもかかります。

  • 通常のフレーム受信タスクの完了。ただし、次の条件を満たしている必要があります。
    • フレームがエラーなく受信され、フィルタリングを通過し、不正な ACK ではない場合。
    • ACK がリクエストされていないか、内部条件により ACK を送信できない。
  • 送信されたフレームで ACK が要求されていない場合の、フレーム送信または ACK フレームの送信の終了。
  • 以下の理由により、リクエストされた ACK の受信オペレーションの完了。
    • ACK タイムアウトの有効期限。
    • 無効な ACK フレームの受信、または ACK フレームではない受信。
    • 適切な ACK の受信(送信されたフレームがデータ リクエスト コマンドであり、受信した ACK のフレーム保留中ビットが true に設定されている場合を除く)。この場合、無線プラットフォーム実装は、アイドル期間の開始をトリガーする決定されたタイムアウトまで、レシーバーをオンに維持すべきです。OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT はこの点の参考として利用できます。
  • スタンドアロン CCA タスクの完了。
  • CSMA/CA 手順中の busy 結果を伴う 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 で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。