无线装置配置
此模块包含无线装置配置的平台抽象。
摘要
函数 |
|
---|---|
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 )
获取主机和无线装置芯片之间总线速度(以比特/秒为单位)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
主机与无线装置芯片之间总线速度(以比特/秒为单位)。当 MAC 层和更上层与无线层位于同一个芯片上时,返回 0。
|
otPlatRadioGetCaps
otRadioCaps otPlatRadioGetCaps( otInstance *aInstance )
获取电台功能。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
无线电功能位矢量(请参阅
OT_RADIO_CAP_* 定义)。 |
otPlatRadioGetCcaEnergyDetectThreshold
otError otPlatRadioGetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t *aThreshold )
根据 IEEE 802.15.4 - 2015 第 10.1.4 节的规定,获取无线装置的 CCA ED 阈值(以 dBm 为单位)。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioGetFemLnaGain
otError otPlatRadioGetFemLnaGain( otInstance *aInstance, int8_t *aGain )
获取外部 FEM 的 Rx LNA 增益(以 dBm 为单位)。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioGetIeeeEui64
void otPlatRadioGetIeeeEui64( otInstance *aInstance, uint8_t *aIeeeEui64 )
获取该接口在出厂时分配的 IEEE EUI-64。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioGetNow
uint64_t otPlatRadioGetNow( otInstance *aInstance )
获取参照连续单调本地无线装置时钟(64 位宽度)的当前时间(以微秒为单位)。
在设备的正常运行时间期间,无线电时钟不得换行。因此,实现应识别并补偿内部计数器溢出。时钟没有指定的周期,且不得引入任何连续或不连续的调整(例如闰秒)。实现应补偿设备的任何休眠时间。
实现可以选择通过任何方式(例如,将高精度/低功耗 RTC 与高分辨率计数器相结合)来限制无线电时钟并补偿休眠时间,前提是公开的组合时钟提供连续的单调微秒分辨率(在 otPlatRadioGetCslAccuracy 宣布的精度限制内)。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
当前时间(以微秒为单位)。UINT64_MAX(如果平台不支持或无线电时间尚未就绪)。
|
otPlatRadioGetPromiscuous
bool otPlatRadioGetPromiscuous( otInstance *aInstance )
获取混杂模式的状态。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioGetReceiveSensitivity
int8_t otPlatRadioGetReceiveSensitivity( otInstance *aInstance )
获取无线装置接收灵敏度值。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
无线装置接收灵敏度值(以 dBm 为单位)。
|
otPlatRadioGetTransmitPower
otError otPlatRadioGetTransmitPower( otInstance *aInstance, int8_t *aPower )
获取无线装置的发射功率(以 dBm 为单位)。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioGetVersionString
const char * otPlatRadioGetVersionString( otInstance *aInstance )
获取电台版本字符串。
这是可选的无线装置驱动程序平台函数。如果平台无线装置驱动程序未提供,则 OpenThread 改为使用 OpenThread 版本 (
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向 OpenThread 无线装置版本的指针。
|
otGetVersionString())。
otPlatRadioSetCcaEnergyDetectThreshold
otError otPlatRadioSetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t aThreshold )
根据 IEEE 802.15.4 - 2015 第 10.1.4 节的规定,设置无线装置的 CCA ED 阈值(以 dBm 为单位)。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otPlatRadioSetExtendedAddress
void otPlatRadioSetExtendedAddress( otInstance *aInstance, const otExtAddress *aExtAddress )
设置扩展地址以进行地址过滤。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioSetFemLnaGain
otError otPlatRadioSetFemLnaGain( otInstance *aInstance, int8_t aGain )
设置外部 FEM 的 Rx LNA 增益(以 dBm 为单位)。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otPlatRadioSetMacFrameCounter
void otPlatRadioSetMacFrameCounter( otInstance *aInstance, uint32_t aMacFrameCounter )
设置当前的 MAC 帧计数器值。
在电台提供 OT_RADIO_CAPS_TRANSMIT_SEC
功能时使用。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioSetMacFrameCounterIfLarger
void otPlatRadioSetMacFrameCounterIfLarger( otInstance *aInstance, uint32_t aMacFrameCounter )
仅当新的指定值大于当前值时,才设置当前的 MAC 帧计数器值。
在电台提供 OT_RADIO_CAPS_TRANSMIT_SEC
功能时使用。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
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 功能时使用。
具体说明 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
otPlatRadioSetPanId
void otPlatRadioSetPanId( otInstance *aInstance, otPanId aPanId )
设置用于地址过滤的 PAN ID。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioSetPromiscuous
void otPlatRadioSetPromiscuous( otInstance *aInstance, bool aEnable )
启用或停用混杂模式。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
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 程序中已完成 CCA 操作,且结果为忙碌结果。
- 完成能量检测任务。
- 使用
otPlatRadioReceiveAt
完成调度的电台接收窗口。
如果平台支持 OT_RADIO_CAPS_RX_ON_WHEN_IDLE
,它还必须支持 OT_RADIO_CAPS_CSMA_BACKOFF
并处理 CCA 之后的空闲时段,如上所述。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioSetShortAddress
void otPlatRadioSetShortAddress( otInstance *aInstance, otShortAddress aShortAddress )
设置用于过滤地址的短地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otPlatRadioSetTransmitPower
otError otPlatRadioSetTransmitPower( otInstance *aInstance, int8_t aPower )
设置无线装置的发射功率(以 dBm 为单位)。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
资源
OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源。