otRadioFrame
#include <radio.h>
表示 IEEE 802.15.4 无线电帧。
摘要
公共属性 |
|
---|---|
mAckFrameCounter
|
uint32_t
ACK 安全帧计数器(在设置了
mAckedWithSecEnhAck 时适用)。 |
mAckKeyId
|
uint8_t
ACK 安全密钥索引(适用于设置了
mAckedWithSecEnhAck 的情况)。 |
mAckedWithFramePending
|
bool
这表示此帧是否已经过确认,且帧待处理已设置。
|
mAckedWithSecEnhAck
|
bool
这表示此帧是否通过安全增强 ACK 得到确认。
|
mAesKey
|
const otMacKeyMaterial *
用于 AES-CCM 帧安全性的密钥材料。
|
mChannel
|
uint8_t
用于传输/接收帧的通道。
|
mCslPresent
|
bool
如果存在 CSL 标头 IE,则设置为 true。
|
mCsmaCaEnabled
|
bool
如果设置为 true,则为该数据包启用 CSMA-CA;否则,设置为 false。
|
mIeInfo
|
指向标头 IE 相关信息的指针。
|
mInfo
|
union otRadioFrame::@24
无线装置帧的发送和接收信息的集合。
|
mIsARetx
|
bool
指示该帧是否正在重新传输。
|
mIsHeaderUpdated
|
bool
指明标头中的帧计数器和 CSL IE 是否正确更新。
|
mIsSecurityProcessed
|
bool
如果 SubMac 应跳过该帧的 AES 处理,则为 true。
|
mLength
|
uint16_t
PSDU 的长度。
|
mLqi
|
uint8_t
已接收帧的链接质量指示器。
|
mMaxCsmaBackoffs
|
uint8_t
在声明 CCA 失败前的退避尝试次数上限。
|
mMaxFrameRetries
|
uint8_t
传输失败后允许的重试次数上限。
|
mPsdu
|
uint8_t *
PSDU。
|
mRadioType
|
uint8_t
电台链接类型 - 应由电台驱动程序忽略。
|
mRssi
|
int8_t
已接收帧的接收信号强度指示器(以 dBm 为单位)。
|
mRxChannelAfterTxDone
|
uint8_t
帧 TX 完成后(在所有帧重试后 - 收到确认、超时或中止后)的 RX 通道。
|
mRxInfo
|
struct otRadioFrame::@24::@26
表示无线装置帧接收信息的结构。
|
mTimestamp
|
uint64_t
当 SFD 的结尾出现在本地天线上时,本地无线电时钟的时间(以微秒为单位)。
|
mTxDelay
|
uint32_t
以
mTxDelayBaseTime 为参考的此传输的延迟时间(以微秒为单位)。 |
mTxDelayBaseTime
|
uint32_t
相对于本地无线装置时钟,计划传输的基本时间(以微秒为单位),请参阅
otPlatRadioGetNow 和 mTxDelay 。 |
mTxInfo
|
struct otRadioFrame::@24::@25
表示无线电帧传输信息的结构。
|
公共属性
mAckFrameCounter
uint32_t otRadioFrame::mAckFrameCounter
ACK 安全帧计数器(在设置了 mAckedWithSecEnhAck
时适用)。
mAckKeyId
uint8_t otRadioFrame::mAckKeyId
ACK 安全密钥索引(适用于设置了 mAckedWithSecEnhAck
的情况)。
mAckedWithFramePending
bool otRadioFrame::mAckedWithFramePending
这表示此帧是否已经过确认,且帧待处理已设置。
mAckedWithSecEnhAck
bool otRadioFrame::mAckedWithSecEnhAck
这表示此帧是否通过安全增强 ACK 得到确认。
mChannel
uint8_t otRadioFrame::mChannel
用于传输/接收帧的通道。
mCslPresent
bool otRadioFrame::mCslPresent
如果存在 CSL 标头 IE,则设置为 true。
mCsmaCaEnabled
bool otRadioFrame::mCsmaCaEnabled
如果设置为 true,则为该数据包启用 CSMA-CA;否则,设置为 false。
mInfo
union otRadioFrame::@24 otRadioFrame::mInfo
无线装置帧的发送和接收信息的集合。
mIsARetx
bool otRadioFrame::mIsARetx
指示该帧是否正在重新传输。
mIsHeaderUpdated
bool otRadioFrame::mIsHeaderUpdated
指明标头中的帧计数器和 CSL IE 是否正确更新。
如果平台层未提供 OT_RADIO_CAPS_TRANSMIT_SEC
功能,则可以忽略此标志。
如果平台提供 OT_RADIO_CAPS_TRANSMIT_SEC
功能,则平台应负责处理 tx 安全处理和帧计数器分配。在这种情况下,预期会出现以下情况:
如果设置了 mIsHeaderUpdated
,则表示 OpenThread 核心已在准备好的帧中设置了帧计数器和 CSL IE(如果已启用安全功能)。计数器确保与同一帧之前尝试的计数器值一致。平台不应分配或更改帧计数器(但可能仍需要根据 mIsSecurityProcessed
标志执行安全处理)。
如果未设置 mIsHeaderUpdated
,则 OpenThread 核心未在框架中设置的帧计数器和密钥 CSL IE,并由无线装置平台负责分配它们。在无线发送帧之前,平台必须先更新帧标头(分配计数器和 CSL IE 值),但是,如果传输被中止,而从不通过无线方式发送帧(例如,出现频道访问错误),平台可能会选择不更新标头。如果平台更新头文件,它还必须在从 otPlatRadioTxDone()
回调将帧传回之前设置此标志。
mIsSecurityProcessed
bool otRadioFrame::mIsSecurityProcessed
如果 SubMac 应跳过该帧的 AES 处理,则为 true。
mLength
uint16_t otRadioFrame::mLength
PSDU 的长度。
mLqi
uint8_t otRadioFrame::mLqi
已接收帧的链接质量指示器。
mMaxCsmaBackoffs
uint8_t otRadioFrame::mMaxCsmaBackoffs
在声明 CCA 失败前的退避尝试次数上限。
mMaxFrameRetries
uint8_t otRadioFrame::mMaxFrameRetries
传输失败后允许的重试次数上限。
mPsdu
uint8_t * otRadioFrame::mPsdu
PSDU。
mRadioType
uint8_t otRadioFrame::mRadioType
电台链接类型 - 应由电台驱动程序忽略。
mRssi
int8_t otRadioFrame::mRssi
已接收帧的接收信号强度指示器(以 dBm 为单位)。
mRxChannelAfterTxDone
uint8_t otRadioFrame::mRxChannelAfterTxDone
帧 TX 完成后(在所有帧重试后 - 收到确认、超时或中止后)的 RX 通道。
电台平台可以选择完全忽略此要求。OT 堆栈会确保在完成帧 TX 并在 otPlatRadioTxDone()
回调中发出信号后,使用所需的 RX 通道调用 otPlatRadioReceive()
。不提供 OT_RADIO_CAPS_TRANSMIT_RETRIES
的电台平台必须始终忽略此消息。
这适用于 OT 栈和无线装置之间的交互可能存在延迟的情况。例如,在 RCP/主机架构中就是使用这种模型,以确保 RCP 更快地切换到 PAN 信道。特别值得一提的是,这有助于对昏昏欲睡的孩子进行 CSL Tx,因为对于此类孩子,可以使用与 PAN 渠道不同的 CSL 渠道。在帧 tx 之后,我们希望无线装置/RCP 快速返回到 PAN 信道,以确保父项之后不会错过来自子项的 tx,例如,子项使用 PAN 通道响应从父项传输的较早 CSL 的帧,而无线装置仍停留在 CSL 信道。
切换到 RX 通道必须在帧 TX 全部完成后,即在所有重试之后和收到确认时(在 TX 帧上设置“确认请求”标记时)或确认超时时进行。请注意,确认应在发送帧的通道上执行。
mRxInfo
struct otRadioFrame::@24::@26 otRadioFrame::mRxInfo
表示无线装置帧接收信息的结构。
mTimestamp
uint64_t otRadioFrame::mTimestamp
当 SFD 的结尾出现在本地天线上时,本地无线电时钟的时间(以微秒为单位)。
mTxDelay
uint32_t otRadioFrame::mTxDelay
以 mTxDelayBaseTime
为参考的此传输的延迟时间(以微秒为单位)。
注意:mTxDelayBaseTime
+ mTxDelay
应指向相对于本地无线电时钟,SFD 结束时将出现在本地天线上的时间点。
mTxDelayBaseTime
uint32_t otRadioFrame::mTxDelayBaseTime
相对于本地无线装置时钟,计划传输的基本时间(以微秒为单位),请参阅 otPlatRadioGetNow
和 mTxDelay
。
mTxInfo
struct otRadioFrame::@24::@25 otRadioFrame::mTxInfo
表示无线电帧传输信息的结构。
资源
OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源。