RM新时代网站-首页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用筆記 | STM32WL LoRa節(jié)點入網失敗問題分析總結

STM32單片機 ? 來源:未知 ? 2023-09-27 17:10 ? 次閱讀


關鍵字:STM32WL,LoRaWAN,入網,OTAA



目錄預覽

1.引言

2.LoRaWAN網絡架構

3.創(chuàng)建CubeMX工程

4.移植過程中可能遇到的問題

5.小結


01

前言


客戶剛使用STM32WL做LoRa節(jié)點應用開發(fā)或測試過程中,有時會遇到LoRa節(jié)點入網失敗的問題。使用STM32WL開發(fā)的LoRa節(jié)點加入的網絡可能是標準的LoRaWAN網絡或者是私有的LoRa網絡。這篇文章會總結常見的LoRa節(jié)點入網失敗的問題??紤]到私有LoRa網絡的多樣性以及無論是私有LoRa網絡還是標準的LoRaWAN網絡,它們在入網流程中都有許多相近的地方。本文會選取加入LoRaWAN網絡失敗的問題進行分析。而私有LoRa節(jié)點入網失敗問題則可以參考類似的分析思路。


02

LoRaWAN網絡結構


我們先來簡單了解一下LoRaWAN網絡架構:



如圖一(圖片來源:http://lora-alliance.org/about-lorawan/)LoRaWAN網絡架構一般包含LoRaWAN節(jié)點(DEVICE),LoRaWAN網關(GATEWAY),LoRaWAN網絡服務器(NETWORK SERVER,里面又包含Roaming和JOIN SERVER)以及應用服務器(APPLICATION SERVER)。LoRaWAN節(jié)點通過網關加入到LoRaWAN網絡并將數據通過網關轉發(fā)到網絡服務器和應用服務器。在節(jié)點入網之前,需要完成以下步驟:


注:下面以STM32WL LoRaWAN節(jié)點,STM32MP1+ RAK2287網關以及Loriot網絡服務器舉例。


1. 選擇合適的LoRaWAN網絡服務器注冊LoRaWAN網關,注冊網關一般需要配置網關配置網絡服務器的地址,端口號,以及網關地址。如圖二



2. 網關通過網線或WiFi連接到網絡服務器,如圖三顯示網關和網絡服務器連接成功。



3. 獲取STM32WL LoRa節(jié)點DevEUI,AppEUI,AppKey,如圖四。并在網絡服務器填入相應的節(jié)點DevEUI,AppEUI,AppKey注冊節(jié)點。如圖五



4. 當前面步驟都準備就緒后,將STM32WL節(jié)點和網關上電,如果STM32WL節(jié)點和網關工作頻段一致就可以通過網關以OTAA方式正常加入到LoRaWAN網絡中,如下圖六顯示的STM32WL節(jié)點成功入網的串口log。節(jié)點開始和網絡服務器和應用服務器的正常數據通信。如圖七所示網絡服務器上收到的數據。



03

LoRaWAN入網流程


下面我們從LoRaWAN協議的角度進一步介紹入網過程。LoRaWAN定義的入網流程有兩種:


1. Over-the-Air Activation(OTAA)

2. Activation By Personalization(ABP)


OTAA方式,基于全局唯一標識符,自由加入LoRaWAN網絡,有空中消息握手的過程,可以定期更新安全密鑰(會話密鑰和派生密鑰)


ABP方式,生產時存儲共享密鑰,省去空中握手過程,節(jié)點鎖定到特定網絡。上電后,設備立即開始工作;跳過加入程序


對比兩種入網方式,可以知道OTAA方式安全性更高,它后續(xù)用于數據加解密的密鑰在空中握手的時候生成,并且可以定期更新。而ABP方式,它的密鑰在出廠的時候寫死在節(jié)點,被破解的風險更大。下圖八中也列出了兩種入網方式節(jié)點配置參數的區(qū)別。由于OTAA方式更安全,使用較多。從它也可以更清楚了解入網的完整過程,下面會以OTAA的方式進一步介紹入網的流程。



OTAA的詳細入網流程如下圖九所示,首先LoRaWAN節(jié)點會發(fā)送Join Request消息通過網關給網絡服務器,網絡服務器收到請求后會根據消息里面的DevEUI,AppEUI進行驗證,驗證通過后發(fā)送一個Join Accept的消息返回給節(jié)點。發(fā)送Join Request請求之前,需要先準備節(jié)點的三個參數,也就是前面提到過的DevEUI,AppEUI,AppKey。對于STM32WL只要節(jié)點有燒寫相應的LoRaWAN End node例程的軟件,可以通過串口查看這三個參數,如圖十所示。在這里需要注意的是節(jié)點端發(fā)送的Join Request消息沒有被加密,只有MIC完整性校驗。而收到的Join Accept消息是經過加密的,節(jié)點需要使用AppKey解密才能拿到網絡服務器下發(fā)的明文消息。節(jié)點會用Join Accept消息里解析的AppNonce(JoinNonce)和自己本身就有的AppKey,DevNonce一起生成后續(xù)用于數據加密的網絡會話密鑰NwkSKEY,和應用會話密鑰AppSKey,如圖十一(其中Join EUI就是AppEUI)。這兩個密鑰分別用于后續(xù)節(jié)點和網絡服務器數據通信加密,和節(jié)點與應用服務器數據通信加密。生成會話密鑰后,后面就是正常的數據傳輸流程。



04

入網失敗常見問題總結



接上面介紹的入網流程,有時會遇到以下入網失敗的情況。它們可以按前面介紹的入網流程的步驟逐一分析,也就是按LoRaWAN節(jié)點——LoRaWAN網關——LoRaWAN網絡服務器之間的通信進行分析,檢查是哪個環(huán)節(jié)導致入網失?。?/span>


1.LoRaWAN網關——LoRaWAN網絡服務器通信失敗,導致節(jié)點入網失敗


入網過程中,網關的作用是將節(jié)點的Join Request信息轉發(fā)給網絡服務器,如果網關和網絡服務器通信失敗,節(jié)點會因為網絡服務器沒辦法收到Join Request并對其進行校驗而導致入網失敗。一般網關與網絡服務器通信失敗,在網絡服務器上會顯示網關的處于斷開狀態(tài)。解決方法是先檢查網關的網絡連接,比如檢查網關的網口或WiFi連接是否正常。如果網絡連接沒問題,如前面介紹,則需要進一步檢查網關注冊時網關配置的網絡服務器地址,端口號,以及網關地址有沒錯誤。如果以上兩點確認沒問題,網關和網絡服務器一般可以正常通信。


2. LoRaWAN節(jié)點——LoRaWAN網關通信失敗,導致節(jié)點入網失敗


節(jié)點和網關通訊失敗又可以分以下幾種情況:


(1)節(jié)點工作頻段和網關工作頻段不一致,導致通信節(jié)點和網關通信失敗。這種情況,只能重新配置其中一方的工作頻段,或是修改節(jié)點端或是修改網關端的工作頻段,使其工作頻段保持一致。需要注意的是即使使用的是同一個工作頻段,比如EU868或CN470,因為在EU868或CN470里,還會以868MHZ或470MHZ為中心頻點,按使用帶寬劃分很多個不同的工作頻道,如圖十二,圖十三所示,而具體的工作頻道不一致也會導致入網失敗。針對節(jié)點使用STM32WL LoRaWAN End Node例程可以在相應的region頭文件里修改工作頻道,比如使用的是CN470,可以在RegionCN470.h里修改節(jié)點端的工作頻道。至于網關,有的可以通過串口AT指令對其工作頻道進行修改。



(2)節(jié)點和網關的調制參數配置不一致,導致其入網失敗。這里調制參數包括:BW,SF,CR,LDRO。這種情況解決方法很簡單,只要把節(jié)點或網關的參數修改成一致就能解決,如圖十三顯示網關的SF7/SF12 BW125KHZ。這里需要注意的是STM32WL LoRaWAN End Node例程中低速優(yōu)化LDRO在設置SF=11或12時會默認打開,如果網關端沒有打開LDRO也會導致通信失敗。所以在使用SF=11或12時,要檢查LDRO的設置。


(3)節(jié)點的RF性能太差導致入網失敗。RF性能差有可能是因為節(jié)點沒有接天線,導致通信距離短,或是節(jié)點的RF輸出功率Tx或接收靈敏度本身太差導致通信失敗。第一種的解決辦法,只要把節(jié)點和網關靠近測試或加上天線測試就能解決。第二種情況則需要重新調試射頻線路的阻抗匹配或者需要重新改版才能解決。這里需要注意的是,STM32WL節(jié)點的工作頻段都是從外部32MHZ晶振信號倍頻上去的,如果32MHZ晶振精度不滿足要求(一般建議是10ppm)也會導致靈敏度變差。另一種情況是在使用BGA封裝的型號,且RF Tx功率輸出設置成22dBm輸出時,PCB容易發(fā)熱導致晶振產生溫漂,進而降低32MHZ的精度,導致靈敏度變差。靈敏度變差也容易導致通信失敗。針對32MHZ晶振的使用,客戶可以參考STM32WL規(guī)格書DS13105,如圖十四,選擇合適的晶振。如果考慮溫漂,可以使用TCXO晶振。




3. LoRaWAN節(jié)點——LoRaWAN網絡服務器通信失敗,導致節(jié)點入網失敗。


節(jié)點和網絡服務器通信失敗有可能是下面兩種情況:


(1)在網絡服務器上注冊的三個節(jié)點參數DevEUI,AppEUI,AppKey,和節(jié)點本身對應的參數不匹配。如果DevEUI或AppEUI配置不一致,則網絡服務器不會審核通過Join Request請求,不會下發(fā)Join Accept消息給節(jié)點。如果AppKey不一致,則節(jié)點無法解析節(jié)點下發(fā)的Join Accept數據,以至于無法取出AppNonce用于生成后續(xù)通信使用的會話密鑰。從而導致入網失敗。解決辦法是確保節(jié)點和網絡服務器端的DevEUI,AppEUI,AppKey三個參數一致。


(2)節(jié)點加入網絡成功后,后續(xù)無法再正常加入網絡問題:這個問題的出現一般是因為Join Request中的各個參數固定,比如上面節(jié)點的DevEUI,AppEUI是可以固定的值,但DevNonce在每次發(fā)Join Request時,它的值是不一樣的。DevNonce存放的其實是一個從零開始的計數器的值,在每一次的Join Request這個計數器會自動增加。如果節(jié)點重啟,它的值會存儲在非易失性NVM存儲器中,而且它會和AppEUI綁定。對應于同一個節(jié)點的AppEUI,DevNonce的值不能重復使用。否則這個Join Request會被網絡服務器忽略,繼而導致入網失敗。這也是為什么當DevNonce的值固定后,第一次入網能成功,而后續(xù)入網會失敗。


05

小結


本文簡單介紹了STM32WL LoRa節(jié)點在LoRaWAN網絡中的工作框圖以及其入網流程。根據入網流程和各個環(huán)節(jié)之間的通信總結了可能導致入網失敗的因素,并給出了相應的解決辦法。


完整內容請點擊“閱讀原文”下載原文檔。


訂閱號

關注STM32

視頻


B站賬號


點擊“閱讀原文”,可下載原文檔


原文標題:應用筆記 | STM32WL LoRa節(jié)點入網失敗問題分析總結

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634629
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355728

原文標題:應用筆記 | STM32WL LoRa節(jié)點入網失敗問題分析總結

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    X-CUBE-CLASSB以及生態(tài)系統為何如此重要

    ???????? X-CUBE-STL目前支持STM32MP1、STM32U5、STM32L5、STM32H5和STM32WL。實
    的頭像 發(fā)表于 11-07 14:01 ?291次閱讀

    使用STM32WL系列Sub-GHz無線驅動程序的應用示例

    STM32WL系列器件包括內置的低于1GHz無線外設 ( Sub-GHz 指的是低于 1GHz 的無線電頻段 ),能夠支持LoRa(僅限STM32WLE5/55器件)、(G)FSK、(G)MSK
    的頭像 發(fā)表于 07-18 10:20 ?4539次閱讀
    使用<b class='flag-5'>STM32WL</b>系列Sub-GHz無線驅動程序的應用示例

    芯海應用筆記:通用 MCU IAR 開發(fā)指南

    本應用筆記旨在幫助指導用戶針對芯海通用 MCU 基于 IAR 環(huán)境的快速開發(fā),幫助用戶快速建立應用工程。芯??萍纪ㄓ?MCU 提供的 pack 開發(fā)包都是僅支持芯海 CSU、MDK 或 IAR 通用
    發(fā)表于 05-16 11:50

    芯海通用 MCU 應用筆記 :CS32F103 系列 MCU IAP 升級指南

    本應用筆記旨在幫助指導用戶針對芯海 CORTEX-M3 MCU CS32F103 系列單片機 IAP 應用的快速開發(fā)。本應用筆記實現了 CAN 和 USART 兩種接口方式來開發(fā) IAP 應用,協議
    發(fā)表于 05-16 11:40

    芯海CSU18P88應用筆記

    本應用筆記旨在為用戶提供關于CSU18P88的詳細信息和使用指南,幫助用戶快速開發(fā)基于CSU18P88的應用。*附件:CSU18P88應用筆記V1.5.pdf
    發(fā)表于 05-16 10:24

    CSU18MX86應用筆記

    本應用筆記旨在為用戶提供關于CSU18MX86的詳細信息和使用指南,幫助用戶快速開發(fā)基于CSU18MX86的應用。*附件:CSU18MX86應用筆記_V1.0.pdf
    發(fā)表于 05-16 10:21

    CAN-bus應用筆記節(jié)點

    在CAN-bus電路設計中,理論上收發(fā)器支持節(jié)點數最多可做到110個,但實際應用中往往達不到這個數量。今天我們就來談談如何通過合理的CAN-bus總線設計,保證CAN網絡中的通訊的可靠性和節(jié)點
    的頭像 發(fā)表于 05-12 08:24 ?553次閱讀
    CAN-bus應<b class='flag-5'>用筆記</b>:<b class='flag-5'>節(jié)點</b>篇

    st官網lora節(jié)點程序OTAA模式加入網絡后,把網關與服務器的連接斷開后,節(jié)點是否一直持續(xù)發(fā)送數據?

    st官網lora節(jié)點程序OTAA模式加入網絡后,把網關與服務器的連接斷開后,節(jié)點是否一直持續(xù)發(fā)送數據?
    發(fā)表于 04-28 06:54

    Microchip TCP/IP 協議棧應用筆記

    電子發(fā)燒友網站提供《Microchip TCP/IP 協議棧應用筆記.pdf》資料免費下載
    發(fā)表于 04-17 14:16 ?1次下載

    STM32CubeMX STM32WL不能配置LoRaWAN的原因?

    STM32CubeMX 中使用STM32WL配置LoRaWAN時不能配置,請問為什么?
    發(fā)表于 04-02 07:47

    請問wl55啟用LoRa的最小系統與f1系列最小系統有什么不同?

    wl55啟用LoRa的最小系統與f1系列最小系統有什么不同嗎?
    發(fā)表于 03-27 06:13

    LoRa網關+LoRa節(jié)點的特點和優(yōu)勢

    LoRa網關是連接終端設備和LoRaWAN網絡的設備,負責收集來自多個LoRa基站的數據并將其傳輸到云端。 LoRa網關收集LoRa節(jié)點
    的頭像 發(fā)表于 03-19 17:02 ?1384次閱讀
    <b class='flag-5'>LoRa</b>網關+<b class='flag-5'>LoRa</b><b class='flag-5'>節(jié)點</b>的特點和優(yōu)勢

    STM32WL添加DSP庫后用IDE編譯報錯“uses VFP register arguments”怎么解決?

    STM32WL添加DSP庫后用IDE編譯報錯“uses VFP register arguments”怎么解決?
    發(fā)表于 03-14 07:10

    stm32wl如何獲取RX接收的內容?

    最近在調試RX和TX的lora簡單功能,成功調用了接收發(fā)送中斷,但讀出的數據一直是亂碼,有大神知道怎么讀出正確的數據嗎
    發(fā)表于 03-13 07:45

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

    關鍵詞:LoRa, CAD, Channel Activity Detection 目錄預覽 1、LoRa CAD 應用場景舉例 2、STM32WL LoRa CAD 原理和驅動 3、
    的頭像 發(fā)表于 12-26 17:45 ?1533次閱讀
    實戰(zhàn)經驗 | 如何在用戶應用中開啟 <b class='flag-5'>LoRa</b> CAD
    RM新时代网站-首页