关键词:LoRa, CAD, Channel Activity Detection
目录预览
1、LoRa CAD 应用场景举例
2、STM32WL LoRa CAD 原理和驱动
3、如何在示例工程 SubGHz_Phy_Per 中开启 CAD
4、小结
01
LoRa CAD 应用场景举例
在 STM32WL LoRa 某些应用中,尤其是电池供电的设备上,需要按需发送数据,如下发指令,让 STM32WL LoRa 发送数据,或做相应的操作。为了降低功耗,STM32WL不能一直处于接收状态,这样功耗会很高。我们可以开启 LoRa CAD(信道活动检测)功能,STM32WL 通过开启 CAD 功能,检测前导码的前 1/2/4/8/16 个码元,当检测到 LoRa(唤醒)信号后再开启接收,否则系统进入低功耗,这样会极大的降低系统的整体功耗。
02
STM32WL LoRa CAD 原理和驱动
LoRa 信号可以在低于噪声强度的情况下被正确解调。所以,仅简单通过 RSSI 确定信道是否被占用是行不通的,需要通过信道活动检测 CAD 来检测 LoRa 信号。
LoRa 包帧格式,如下图,前导码,可选报头,有效数据负载。信道活动检测 CAD 模式旨在以尽可能高的功耗效率检测信道上的 LoRa 前导码。

STM32WL LoRa CAD 检测方法:
STM32WL LoRa 设备设置好频率和扩频因子,开启CAD 模式,(注意:无论是否检测到 LoRa 信号,都会产生CAD 检测完成中断 SUBGHZ_IT_CAD_DONE);当有匹配(相同的频率和扩频因子)的 LoRa 信号检测到时,就会产生 CAD 检测到中断 SUBGHZ_IT_CAD_ACTIVITY_DETECTED,SUBGHZ_IT_CAD_DONE 也会产生,并且 SUBGHZ_IT_CAD_DONE和 SUBGHZ_IT_CAD_ACTIVITY_DETECTED 会同时产生。
所以,可通过在产生SUBGHZ_IT_CAD_DONE 中断时是否也同时产生了SUBGHZ_IT_CAD_ACTIVITY_DETECTED 中断来区别是否检测到了 LoRa 信号,进而调用相应的回调函数,或做相应的处理。
DriversSTM32WLxx_HAL_DriverSrcstm32wlxx_hal_subghz.c 中HAL_SUBGHZ_IRQHandler

MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.c

MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio.c 中RadioIrqProcess 函数中

STM32Cube_FW_WL_V1.3.0 的驱动中已经支持 CAD 功能 :
MiddlewaresThird_PartySubGHz_Phy adio.h
MiddlewaresThird_PartySubGHz_Phy adio_ex.h
MiddlewaresThird_PartySubGHz_Phy adio_def.h
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.h
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.c
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio.c
但是如何在用户应用中加入 CAD 功能呢?下面介绍如何在示例工程SubGHz_Phy_Per 中开启 CAD 功能。
03
如何在示例工程 SubGHz_Phy_Per 中开启 CAD
3.1.修改 subghz_phy_app.h 中配置
选择 MODEM 类型为 LORA

设置 CAD 检测的频率和 LORA 接收参数


根据扩频因子 LORA_SPREADING_FACTOR 设置相应的 CAD 检测参数

3.2.在 subghz_phy_app.c 中配置声明
包含头文件 radio_driver.h

修改测试模式为 RADIO_RX

可选,设置串口输出为红色 RED 和绿色 GRN 时的配置

定义 CAD 检测结果标志 RadioCadDone_flag

定义 CAD 检测计数 cad_max_count,cad_count 和 detect_count

声明 CAD 检测完成事件后执行的函数 OnCadDone

声明 CAD 状态机处理函数 Cad_Process

3.3.在subghz_phy_app.c 中配置 SubghzApp_Init 函数
在 SubghzApp_Init 函数中,打印 LoRa 配置参数(可选)

在 RadioEvents 中注册 CAD 检测到要执行的回调函数 OnCadDone

设置 CAD 检测的频率,接收参数,最大包长,CAD 检测的参数

开启 CAD

注册 CAD 状态机处理函数 Cad_Process

3.4.在 subghz_phy_app.c 中配置 CAD 检测完成处理函数和状态机处理函数

04
小结
本 LAT 举例介绍了 LoRa CAD 应用场景,STM32WL LoRa CAD 的原理和相关的驱动,着重介绍了如何在示例工程(SubGHz_Phy_Per)中添加 LoRa CAD 功能。
在此基础之上也可以很容易在 SubGHz_Phy_PingPong 和 SubGHz_Phy_AT_Slave示例工程中加入 LoRa CAD 功能。
当然也可以在 LoRaWAN_End_Node 示例工程中加入 LoRa CAD,但是还需要调整如下驱动,后续再补充介绍。
MiddlewaresThird_PartyLoRaWANMacLoRaMacInterfaces.h
MiddlewaresThird_PartyLoRaWANMacLoRaMac.c
MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.h
MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.c
完整内容请点击“阅读原文”下载原文档。
原文标题:实战经验 | 如何在用户应用中开启 LoRa CAD
文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
-
单片机
+关注
关注
6050文章
44687浏览量
641184 -
STM32
+关注
关注
2276文章
10947浏览量
359160
原文标题:实战经验 | 如何在用户应用中开启 LoRa CAD
文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
NX CAD软件:数字化工作流程解决方案(CAD工作流程)

提升开关电源效率的理论分析与实战经验

使用MCUXpresso for VS Code插件开发Zephyr的hello world

什么是PLM中的多CAD,PLM中的多CAD为什么重要
基于LORA模块的智能城市应用
LORA模块的优缺点分析
SOLIDWORKS 2025 CAD :协作的新增功能
LoRa网关和LoRa基站的区别是什么?一文弄懂
物联网系统中Lora组网中的轮询模式实现

LoRa模块是什么?LoRa模块的优势和缺点
爱普生晶振在物联网LoRa通讯中的应用
LoRa数模模块设置开启LBT功能

评论