色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 實戰(zhàn)經(jīng)驗 | 如何在用戶應(yīng)用中開啟 LoRa CAD

          實戰(zhàn)經(jīng)驗 | 如何在用戶應(yīng)用中開啟 LoRa CAD

          作者: 時間:2023-12-28 來源:STM32單片機 收藏

          01 應(yīng)用場景舉例

          本文引用地址:http://cafeforensic.com/article/202312/454331.htm

          某些應(yīng)用中,尤其是電池供電的設(shè)備上,需要按需發(fā)送數(shù)據(jù),如下發(fā)指令,讓 發(fā)送數(shù)據(jù),或做相應(yīng)的操作。為了降低功耗,不能一直處于接收狀態(tài),這樣功耗會很高。我們可以開啟 LoRa (信道活動檢測)功能,STM32WL 通過開啟 功能,檢測前導(dǎo)碼的前 1/2/4/8/16 個碼元,當(dāng)檢測到 LoRa(喚醒)信號后再開啟接收,否則系統(tǒng)進入低功耗,這樣會極大的降低系統(tǒng)的整體功耗。

          02 STM32WL LoRa CAD 原理和驅(qū)動

          LoRa 信號可以在低于噪聲強度的情況下被正確解調(diào)。所以,僅簡單通過 RSSI 確定信道是否被占用是行不通的,需要通過信道活動檢測 CAD 來檢測 LoRa 信號。 

          LoRa 包幀格式,如下圖,前導(dǎo)碼,可選報頭,有效數(shù)據(jù)負載。信道活動檢測 CAD 模式旨在以盡可能高的功耗效率檢測信道上的 LoRa 前導(dǎo)碼。

          圖片

          STM32WL LoRa CAD 檢測方法:

          STM32WL LoRa 設(shè)備設(shè)置好頻率和擴頻因子,開啟CAD 模式,(注意:無論是否檢測到 LoRa 信號,都會產(chǎn)生CAD 檢測完成中斷 SUBGHZ_IT_CAD_DONE);當(dāng)有匹配(相同的頻率和擴頻因子)的 LoRa 信號檢測到時,就會產(chǎn)生 CAD 檢測到中斷 SUBGHZ_IT_CAD_ACTIVITY_DETECTED,SUBGHZ_IT_CAD_DONE 也會產(chǎn)生,并且 SUBGHZ_IT_CAD_DONE和 SUBGHZ_IT_CAD_ACTIVITY_DETECTED 會同時產(chǎn)生。

          所以,可通過在產(chǎn)生SUBGHZ_IT_CAD_DONE 中斷時是否也同時產(chǎn)生了SUBGHZ_IT_CAD_ACTIVITY_DETECTED 中斷來區(qū)別是否檢測到了 LoRa 信號,進而調(diào)用相應(yīng)的回調(diào)函數(shù),或做相應(yīng)的處理。

          DriversSTM32WLxx_HAL_DriverSrcstm32wlxx_hal_subghz.c 中HAL_SUBGHZ_IRQHandler

          圖片

          MiddlewaresThird_PartySubGHz_Phystm32_radio_driverradio_driver.c

          圖片

          MiddlewaresThird_PartySubGHz_Phystm32_radio_driverradio.c 中RadioIrqProcess 函數(shù)中

          圖片

          STM32Cube_FW_WL_V1.3.0 的驅(qū)動中已經(jīng)支持 CAD 功能 :

          MiddlewaresThird_PartySubGHz_Phyradio.h

          MiddlewaresThird_PartySubGHz_Phyradio_ex.h

          MiddlewaresThird_PartySubGHz_Phyradio_def.h

          MiddlewaresThird_PartySubGHz_Phystm32_radio_driverradio_driver.h

          MiddlewaresThird_PartySubGHz_Phystm32_radio_driverradio_driver.c

          MiddlewaresThird_PartySubGHz_Phystm32_radio_driverradio.c 

          但是如何在用戶應(yīng)用中加入 CAD 功能呢?下面介紹如何在SubGHz_Phy_Per 中開啟 CAD 功能。

          03 如何在 SubGHz_Phy_Per 中開啟 CAD

          3.1.修改 subghz_phy_app.h 中配置

          選擇 MODEM 類型為 LORA

          圖片

          設(shè)置 CAD 檢測的頻率和 LORA 接收參數(shù)

          圖片

          圖片

          根據(jù)擴頻因子 LORA_SPREADING_FACTOR 設(shè)置相應(yīng)的 CAD 檢測參數(shù)

          圖片

          3.2.在 subghz_phy_app.c 中配置聲明

          包含頭文件 radio_driver.h

          圖片

          修改測試模式為 RADIO_RX

          圖片

          可選,設(shè)置串口輸出為紅色 RED 和綠色 GRN 時的配置

          圖片

          定義 CAD 檢測結(jié)果標(biāo)志 RadioCadDone_flag

          圖片

          定義 CAD 檢測計數(shù) cad_max_count,cad_count 和 detect_count

          圖片

          聲明 CAD 檢測完成事件后執(zhí)行的函數(shù) OnCadDone

          圖片

          聲明 CAD 狀態(tài)機處理函數(shù) Cad_Process

          圖片

          3.3.在subghz_phy_app.c 中配置 SubghzApp_Init 函數(shù)

          在 SubghzApp_Init 函數(shù)中,打印 LoRa 配置參數(shù)(可選)

          圖片

          在 RadioEvents 中注冊 CAD 檢測到要執(zhí)行的回調(diào)函數(shù) OnCadDone

          圖片

          設(shè)置 CAD 檢測的頻率,接收參數(shù),最大包長,CAD 檢測的參數(shù)

          圖片

          開啟 CAD

          圖片

          注冊 CAD 狀態(tài)機處理函數(shù) Cad_Process

          圖片

          3.4.在 subghz_phy_app.c 中配置 CAD 檢測完成處理函數(shù)和狀態(tài)機處理函數(shù)

          圖片

          04 小結(jié)

          本 LAT 舉例介紹了 LoRa CAD 應(yīng)用場景,STM32WL LoRa CAD 的原理和相關(guān)的驅(qū)動,著重介紹了如何在(SubGHz_Phy_Per)中添加 LoRa CAD 功能。 

          在此基礎(chǔ)之上也可以很容易在 SubGHz_Phy_PingPong 和 SubGHz_Phy_AT_Slave示例工程中加入 LoRa CAD 功能。 

          當(dāng)然也可以在 LoRaWAN_End_Node 示例工程中加入 LoRa CAD,但是還需要調(diào)整如下驅(qū)動,后續(xù)再補充介紹。 

          MiddlewaresThird_PartyLoRaWANMacLoRaMacInterfaces.h

          MiddlewaresThird_PartyLoRaWANMacLoRaMac.c

          MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.h

          MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.c



          關(guān)鍵詞: LoRa CAD STM32WL 示例工程

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉