0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记 | STM32WL LoRa节点入网失败问题分析总结

STM32单片机 来源:未知 2023-09-27 17:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


关键字:STM32WL,LoRaWAN,入网,OTAA



目录预览

1.引言

2.LoRaWAN网络架构

3.创建CubeMX工程

4.移植过程中可能遇到的问题

5.小结


01

前言


客户刚使用STM32WL做LoRa节点应用开发或测试过程中,有时会遇到LoRa节点入网失败的问题。使用STM32WL开发的LoRa节点加入的网络可能是标准的LoRaWAN网络或者是私有的LoRa网络。这篇文章会总结常见的LoRa节点入网失败的问题。考虑到私有LoRa网络的多样性以及无论是私有LoRa网络还是标准的LoRaWAN网络,它们在入网流程中都有许多相近的地方。本文会选取加入LoRaWAN网络失败的问题进行分析。而私有LoRa节点入网失败问题则可以参考类似的分析思路。


02

LoRaWAN网络结构


我们先来简单了解一下LoRaWAN网络架构:



如图一(图片来源:http://lora-alliance.org/about-lorawan/)LoRaWAN网络架构一般包含LoRaWAN节点(DEVICE),LoRaWAN网关(GATEWAY),LoRaWAN网络服务器(NETWORK SERVER,里面又包含Roaming和JOIN SERVER)以及应用服务器(APPLICATION SERVER)。LoRaWAN节点通过网关加入到LoRaWAN网络并将数据通过网关转发到网络服务器和应用服务器。在节点入网之前,需要完成以下步骤:


注:下面以STM32WL LoRaWAN节点,STM32MP1+ RAK2287网关以及Loriot网络服务器举例。


1. 选择合适的LoRaWAN网络服务器注册LoRaWAN网关,注册网关一般需要配置网关配置网络服务器的地址,端口号,以及网关地址。如图二



2. 网关通过网线或WiFi连接到网络服务器,如图三显示网关和网络服务器连接成功。



3. 获取STM32WL LoRa节点DevEUI,AppEUI,AppKey,如图四。并在网络服务器填入相应的节点DevEUI,AppEUI,AppKey注册节点。如图五



4. 当前面步骤都准备就绪后,将STM32WL节点和网关上电,如果STM32WL节点和网关工作频段一致就可以通过网关以OTAA方式正常加入到LoRaWAN网络中,如下图六显示的STM32WL节点成功入网的串口log。节点开始和网络服务器和应用服务器的正常数据通信。如图七所示网络服务器上收到的数据。



03

LoRaWAN入网流程


下面我们从LoRaWAN协议的角度进一步介绍入网过程。LoRaWAN定义的入网流程有两种:


1. Over-the-Air Activation(OTAA)

2. Activation By Personalization(ABP)


OTAA方式,基于全局唯一标识符,自由加入LoRaWAN网络,有空中消息握手的过程,可以定期更新安全密钥(会话密钥和派生密钥)


ABP方式,生产时存储共享密钥,省去空中握手过程,节点锁定到特定网络。上电后,设备立即开始工作;跳过加入程序


对比两种入网方式,可以知道OTAA方式安全性更高,它后续用于数据加解密的密钥在空中握手的时候生成,并且可以定期更新。而ABP方式,它的密钥在出厂的时候写死在节点,被破解的风险更大。下图八中也列出了两种入网方式节点配置参数的区别。由于OTAA方式更安全,使用较多。从它也可以更清楚了解入网的完整过程,下面会以OTAA的方式进一步介绍入网的流程。



OTAA的详细入网流程如下图九所示,首先LoRaWAN节点会发送Join Request消息通过网关给网络服务器,网络服务器收到请求后会根据消息里面的DevEUI,AppEUI进行验证,验证通过后发送一个Join Accept的消息返回给节点。发送Join Request请求之前,需要先准备节点的三个参数,也就是前面提到过的DevEUI,AppEUI,AppKey。对于STM32WL只要节点有烧写相应的LoRaWAN End node例程的软件,可以通过串口查看这三个参数,如图十所示。在这里需要注意的是节点端发送的Join Request消息没有被加密,只有MIC完整性校验。而收到的Join Accept消息是经过加密的,节点需要使用AppKey解密才能拿到网络服务器下发的明文消息。节点会用Join Accept消息里解析的AppNonce(JoinNonce)和自己本身就有的AppKey,DevNonce一起生成后续用于数据加密的网络会话密钥NwkSKEY,和应用会话密钥AppSKey,如图十一(其中Join EUI就是AppEUI)。这两个密钥分别用于后续节点和网络服务器数据通信加密,和节点与应用服务器数据通信加密。生成会话密钥后,后面就是正常的数据传输流程。



04

入网失败常见问题总结



接上面介绍的入网流程,有时会遇到以下入网失败的情况。它们可以按前面介绍的入网流程的步骤逐一分析,也就是按LoRaWAN节点——LoRaWAN网关——LoRaWAN网络服务器之间的通信进行分析,检查是哪个环节导致入网失败:


1.LoRaWAN网关——LoRaWAN网络服务器通信失败,导致节点入网失败


入网过程中,网关的作用是将节点的Join Request信息转发给网络服务器,如果网关和网络服务器通信失败,节点会因为网络服务器没办法收到Join Request并对其进行校验而导致入网失败。一般网关与网络服务器通信失败,在网络服务器上会显示网关的处于断开状态。解决方法是先检查网关的网络连接,比如检查网关的网口或WiFi连接是否正常。如果网络连接没问题,如前面介绍,则需要进一步检查网关注册时网关配置的网络服务器地址,端口号,以及网关地址有没错误。如果以上两点确认没问题,网关和网络服务器一般可以正常通信。


2. LoRaWAN节点——LoRaWAN网关通信失败,导致节点入网失败


节点和网关通讯失败又可以分以下几种情况:


(1)节点工作频段和网关工作频段不一致,导致通信节点和网关通信失败。这种情况,只能重新配置其中一方的工作频段,或是修改节点端或是修改网关端的工作频段,使其工作频段保持一致。需要注意的是即使使用的是同一个工作频段,比如EU868或CN470,因为在EU868或CN470里,还会以868MHZ或470MHZ为中心频点,按使用带宽划分很多个不同的工作频道,如图十二,图十三所示,而具体的工作频道不一致也会导致入网失败。针对节点使用STM32WL LoRaWAN End Node例程可以在相应的region头文件里修改工作频道,比如使用的是CN470,可以在RegionCN470.h里修改节点端的工作频道。至于网关,有的可以通过串口AT指令对其工作频道进行修改。



(2)节点和网关的调制参数配置不一致,导致其入网失败。这里调制参数包括:BW,SF,CR,LDRO。这种情况解决方法很简单,只要把节点或网关的参数修改成一致就能解决,如图十三显示网关的SF7/SF12 BW125KHZ。这里需要注意的是STM32WL LoRaWAN End Node例程中低速优化LDRO在设置SF=11或12时会默认打开,如果网关端没有打开LDRO也会导致通信失败。所以在使用SF=11或12时,要检查LDRO的设置。


(3)节点的RF性能太差导致入网失败。RF性能差有可能是因为节点没有接天线,导致通信距离短,或是节点的RF输出功率Tx或接收灵敏度本身太差导致通信失败。第一种的解决办法,只要把节点和网关靠近测试或加上天线测试就能解决。第二种情况则需要重新调试射频线路的阻抗匹配或者需要重新改版才能解决。这里需要注意的是,STM32WL节点的工作频段都是从外部32MHZ晶振信号倍频上去的,如果32MHZ晶振精度不满足要求(一般建议是10ppm)也会导致灵敏度变差。另一种情况是在使用BGA封装的型号,且RF Tx功率输出设置成22dBm输出时,PCB容易发热导致晶振产生温漂,进而降低32MHZ的精度,导致灵敏度变差。灵敏度变差也容易导致通信失败。针对32MHZ晶振的使用,客户可以参考STM32WL规格书DS13105,如图十四,选择合适的晶振。如果考虑温漂,可以使用TCXO晶振。




3. LoRaWAN节点——LoRaWAN网络服务器通信失败,导致节点入网失败。


节点和网络服务器通信失败有可能是下面两种情况:


(1)在网络服务器上注册的三个节点参数DevEUI,AppEUI,AppKey,和节点本身对应的参数不匹配。如果DevEUI或AppEUI配置不一致,则网络服务器不会审核通过Join Request请求,不会下发Join Accept消息给节点。如果AppKey不一致,则节点无法解析节点下发的Join Accept数据,以至于无法取出AppNonce用于生成后续通信使用的会话密钥。从而导致入网失败。解决办法是确保节点和网络服务器端的DevEUI,AppEUI,AppKey三个参数一致。


(2)节点加入网络成功后,后续无法再正常加入网络问题:这个问题的出现一般是因为Join Request中的各个参数固定,比如上面节点的DevEUI,AppEUI是可以固定的值,但DevNonce在每次发Join Request时,它的值是不一样的。DevNonce存放的其实是一个从零开始的计数器的值,在每一次的Join Request这个计数器会自动增加。如果节点重启,它的值会存储在非易失性NVM存储器中,而且它会和AppEUI绑定。对应于同一个节点的AppEUI,DevNonce的值不能重复使用。否则这个Join Request会被网络服务器忽略,继而导致入网失败。这也是为什么当DevNonce的值固定后,第一次入网能成功,而后续入网会失败。


05

小结


本文简单介绍了STM32WL LoRa节点在LoRaWAN网络中的工作框图以及其入网流程。根据入网流程和各个环节之间的通信总结了可能导致入网失败的因素,并给出了相应的解决办法。


完整内容请点击“阅读原文”下载原文档。


订阅号

关注STM32

视频号


B站账号


点击“阅读原文”,可下载原文档


原文标题:应用笔记 | STM32WL LoRa节点入网失败问题分析总结

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45589

    浏览量

    673857
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374704

原文标题:应用笔记 | STM32WL LoRa节点入网失败问题分析总结

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LTC833x应用笔记 ▏电化学气体传感器的电路分析

    用笔记LTC833x电化学气体传感器电路分析电化学气体传感器的普及可以归因于其线性输出、低功耗要求和良好的分辨率,一旦根据目标气体的已知浓度进行校准,其测量的重复性和精度也非常好。数十年来技术
    的头像 发表于 04-30 16:12 48次阅读
    LTC833x应<b class='flag-5'>用笔记</b> ▏电化学气体传感器的电路<b class='flag-5'>分析</b>

    一主机多节点LoRa组网,信号不稳怎么办?

    LoRa组网后节点信号不稳定?本文介绍ZLG致远电子WirelessTool信号测试方案,三步实现最优安装点定位。应用场景与痛点在工业应用领域,LoRa无线传输技术已得到广泛使用,如远程抄表、智慧
    的头像 发表于 04-30 11:35 244次阅读
    一主机多<b class='flag-5'>节点</b><b class='flag-5'>LoRa</b>组网,信号不稳怎么办?

    LoRa、LoRaWAN、NB-IoT、4G DTU 有什么区别? 工业无线方案选型分析

    了一半。现在,我们将对四类主流工业无线通信技术进行结构化分析,并从供电方式、网络依赖、功耗特性及典型应用场景等维度进行对比。 一、工业无线通信技术概览 高功率 LoRa 数传电台(代表:NiceRF
    发表于 03-09 17:19

    5W 高功率 LoRa 数传电台的工程实现与应用分析 ——以 LoRa6500Pro 为例

    本文深度解析 G‑NiceRF LoRa6500Pro 5W 工业级 LoRa 数传电台,围绕 LoRa 物理层、射频链路预算、RS485/RS232/TTL 多接口、Mesh 组网、AES128
    的头像 发表于 03-04 13:57 301次阅读
    5W 高功率 <b class='flag-5'>LoRa</b> 数传电台的工程实现与应用<b class='flag-5'>分析</b> ——以 <b class='flag-5'>LoRa</b>6500Pro 为例

    5W 高功率 LoRa 数传电台的工程实现与应用分析

    特性,适用于远距离、低速率工业数据链路场景。 本文以 G-NiceRF LoRa6500Pro 这款标称功率为 5W 的工业级 LoRa 数传电台为分析对象,从射频链路预算、硬件接口集成、网络拓扑结构
    发表于 03-04 11:52

    节点分析法的工作原理和基本步骤

    节点分析法(节点电压法、节点电位法)是一种电路分析技术,以电路中各节点(连接点)的电位作为未知量
    的头像 发表于 02-05 14:50 1017次阅读
    <b class='flag-5'>节点</b><b class='flag-5'>分析</b>法的工作原理和基本步骤

    LAT1171+STM32F745 USART1 Bootloader 失败原因分析与解决

    使用 STM32F745 进行产品开发的时候,出现了使用 STM32CubeProgramer 无法通过 USART1 Bootloader 进行程序升级的问题。为了解决客户的问题,我在 NUCLEO-F746ZG 开发板上,复现了同样的现象,本文针对这个现象,
    发表于 01-11 17:33 0次下载

    探索TI WiLink 8单频组合模块:WL18x1MOD与WL18x5MOD

    探索TI WiLink 8单频组合模块:WL18x1MOD与WL18x5MOD 在当今的电子设计领域,无线连接技术的重要性不言而喻。从智能家居到工业自动化,从物联网设备到多媒体应用,无线通信技术为
    的头像 发表于 01-05 16:50 604次阅读

    2025无线通信系统部署:LoRa节点采集与Mesh对讲设计要点

    2025 无线通信部署指南:解析 LoRa 节点采集、LoRaWAN 与 Mesh 选型、超低功耗设计要点,以及隧道等复杂场景下的全双工 Mesh 对讲方案,为物联网与专业通信提供可靠解决方案。
    的头像 发表于 12-11 11:45 1535次阅读
    2025无线通信系统部署:<b class='flag-5'>LoRa</b><b class='flag-5'>节点</b>采集与Mesh对讲设计要点

    Lora基站作用

    1. 数据收集和传输  Lora基站可以收集来自Lora节点的数据,并将这些数据传输到云端或其他目的地。这些数据可以是环境监测数据、能源管理数据、安全监控数据等。通过Lora基站的数据
    发表于 12-04 07:45

    LoRa基站与网关概念

    对设备的控制和管理。 LoRa基站通常具有较高的发射功率和接收灵敏度,可以实现长距离通信。同时,LoRa基站还可以连接多个物联网设备,从而实现多节点通信。 2. LoRa网关
    发表于 12-02 08:30

    STM32WL5MOC多协议LPWAN模块技术解析与应用指南

    LPWAN标准的无线电解决方案,支持以下调制:LoRa^®^ 、(G)FSK、(G)MSK和BPSK。STM32WL5MOC模块无需射频专业知识,为加快任何开发并最大限度地降低相关成本提供了最佳解
    的头像 发表于 10-22 11:20 1033次阅读
    ‌<b class='flag-5'>STM32WL</b>5MOC多协议LPWAN模块技术解析与应用指南

    STM32WL3x系列无线MCU技术解析:长距离IoT连接的革新方案

    STMicroelectronics STM32WL3x低功耗Sub-GHz无线MCU设计用于为物联网应用提供高效的远距离通信。这些微控制器基于Arm^®^ Cortex ^®^ -M0+内核,工作
    的头像 发表于 10-17 14:24 644次阅读
    ‌<b class='flag-5'>STM32WL</b>3x系列无线MCU技术解析:长距离IoT连接的革新方案

    WL55的lora功能测试必须是达成对吗?只有一个的话怎么测试呢?

    WL55的lora功能测试必须是达成对吗?只有一个的话怎么测试呢?
    发表于 06-12 06:42

    GPDV6624C应用笔记1.0版

    电子发烧友网站提供《GPDV6624C应用笔记1.0版.pdf》资料免费下载
    发表于 06-06 17:20 0次下载