【LoRa 与 LoRaWAN】知识点汇总

news2024/7/6 21:02:43

本文主要记录【LoRa 与 LoRaWAN】知识点汇总,知识均来源于网络,纯属资料汇总与搬运
涉及到lora基本知识点,lora芯片的工作分析,专业名词解释

【LoRa 与 LoRaWAN】知识点汇总

  • 1.Lora和LoraWAN的区别
  • 2. lora 相关知识点汇总
    • 2.1 Lora调制方式优势
    • 2.2 SX1276/77/78 器件与关键参数
    • 2.3 SX1276/77/78 器件频段、功率硬件控制
    • 2.4 BW、SF、CR、RSSI、SNR值
    • 2.5 Lora的数据包结构
    • 2.6 空中传输时间
    • 2.7 LoRa跳频
    • 2.8 占空比(DutyCycle)
    • 2.9 信道活动检测(CAD)
    • 2.10 SX1276状态机
  • 3 .LoraWAN的一些知识点介绍
  • 4.LoraWAN通信
  • 5. 470M频段(中国)特性

参考资料汇总:

  • 分享一下自己积攒整理的 LoRa 资料

  • https://www.bbsmax.com/A/A7zgDrYPJ4/

1.Lora和LoraWAN的区别

  • lora

LoRa经常被误用来描述整个LPWAN通信系统,其实Lora是Semtech拥有的专有调制格式。 SX1272和SX1276 LoRa芯片使用称为chirp扩频(CSS)的调制技术来组成技术栈的物理层(PHY)。

  • loraWAN

LoRaWAN是一个开放标准,它定义了基于LoRa芯片的LPWAN技术的通信协议。 LoRaWAN在数据链路层定义媒体访问控制(MAC),由LoRa联盟维护。 LoRaWAN是一种媒体访问控制(MAC)层协议,专为具有单一运营商的大型公共网络而设计。

总体而言,LoRa仅包含链路层协议,并且非常适用于节点间的P2P通信;LoRaWAN也包含网络层,因此可以将信息发送到任何已连接到云平台的基站。
在这里插入图片描述

2. lora 相关知识点汇总

2.1 Lora调制方式优势

1、LoRa扩频调制解调技术使器件传输距离远远超出现有的基于 FSK 或 OOK 调制方式的系统,能到25公里以上的距离;

2、它还提供了很大的灵活性,用户可自行决定扩频调制带宽(BW)、扩频因子(SF)和纠错率(CR)。

3、每个扩频因子均呈正交分布,因而多个传输信号可以占用同一信道而不互相干扰,并且能够与现有基于 FSK 的系统简单共存。

4、LoRa调制解调器采用专利扩频调制技术。与传统调制技术相比, LoRa可以增加链路预算并增强对带内干扰的抗干扰能力。同时,放松了对晶体基准振荡器的频率容限要求,从而能够在降低系统成本的基础上提高性能。

2.2 SX1276/77/78 器件与关键参数

在这里插入图片描述

图中可以看出,sx1276功能和频段覆盖是最完善的,可以针对欧洲标准、美国标准、中国标准、国际标准市场,目前中国一般使用的是sx1278(iot520芯片);

SX1278接收灵敏度-148dbm,接收电流10.3mA,包长最大256个字节(Payload有效字节长度)。实际LoraWAN在SF7模式下只使用到了222个字节。

2.3 SX1276/77/78 器件频段、功率硬件控制

1、SX1276/77/78 配备了三个不同的射频功率放大器。其中两个分别与 RFO_LF 和 RFO_HF引脚连接,能够实现高达+14dBm 的功率放大功能。第三个功率放大器与 PA_BOOST 引脚连接,能够通过专门的匹配网络实现高达+20dBm 的功率放大功能。与高效功率放大器不同的是,这个高稳定性功率放大器能够覆盖频率合成器处理的所有频段。

RFO_LF 主要针对LF频段( 低频段169M和433M、470M),RFO_HF主要针对高频频段(868M-915M),而PA_BOOST能覆盖所有频段,一般现在设计使用PA_BOOST引脚,能保证+20dBM的发送功率。

2、SPI通信可以达到10M,一般LoraWAN时要求使用10M保证SPI通信时间可以忽略

电源策略
SX1276/77/78在整个工作温度及操作电压范围内采用内部电压调控机制,以保证电压及器件特性的稳定性。 在1.8V-3.7V电压范围内, +17dBm输出功率保持稳定,以及保证2.4V-3.7V电压范围+20dBm输出功率保持稳定。

2.4 BW、SF、CR、RSSI、SNR值

扩频调制带宽(BW):增加信号带宽,可以提高有效数据速率缩短传输时间,但会牺牲灵敏度。 一般使用125K

注意: 较低频段( 169 MHz )不支持 250kHz 和 500kHz 的带宽。
扩频因子(SF):SF7~SF12,还有一个比较特殊的SF6一般很少使用,要使用时对寄存器操作要做特殊的操作。
纠错率(CR):一般使用4/5

前向纠错技术

信道编码之所以能够检出和校正接收比特流中的差错,是因为加入一些冗余比特,把几个比特上携带的信息扩散到更多的比特上。为此付出的代价是必须传送比该信息所需要的更多的比特。

为进一步提高链路的鲁棒性, LoRaTM调制解调器采用循环纠错编码进行前向错误检测与纠错。使用这样的纠错编码之后,会产生传输开销。

在存在干扰的情况下,前向纠错能有效提高链路的可靠性。由此,编码率(及抗干扰性能)可以随着信道条件的变化而变化——可以选择在报头中加入编码率以便接收端能够解析。有关LoRaTM数据包及报头的更多信息。

接收信号强度指示(RSSI):常规情况下,公式是这样:

/*
RSSI (dBm) = -157 + Rssi, (高频口)
RSSI (dBm) = -164 + Rssi, (低频口)
另外在SNR<0的噪声环境下,要按照
Packet Strength (dBm) = -157 + PacketRssi + PacketSnr*0.25 (或者低频时,Packet Strength (dBm) = -164 + PacketRssi + PacketSnr * 0.25)这样的公式。
1.PktRssiValue指单个包的信号强度,是收包这段时间内的RSSI的平均值。RssiValue指当前的信号强度。
2.数值-157以及-164会根据实际射频前端情况有差异(比如 LnaBoost 表示是否有外部LNA 这个数值与实际LNA的输入不匹配)。建议对RSSI数值做单点校准,让RSSI显示更准确。
3.当信号强度超过-100dBm之后,PacketRssi就不能保证线性,结果会偏离 1dB/dB 的曲线。因此需要做一定的校正。当SNR>0时,可以参考如下公式:RSSI = -157+16/15 * PacketRssi (or RSSI = -164+16/15 * PacketRssi)。当然SNR<0时,还要注意同样做噪声干扰的校正,在公式后面 + PacketSnr * 0.25 。
*/

在纯净环境下,RSSI跟与距离是一个非线性曲线的关系,所以路测时在一定距离内RSSI值有参考价值,过距离后基本没有参考价值。
在这里插入图片描述
基本表现为:太近、太远RSSI变化并不太明显,而中间有一段距离表现比较明显;但是,RSSI值受环境影响太大,一般情况下仅供参考使用。

信噪比(SNR):

SNR:Signal-to-Noise Ratio即信噪比。信噪比这个概念具有统一的计算方法:

SNR(dB)=Signal(dBm)/Noise(dBm)

上式的意思是信噪比等于信号的功率减去噪声的功率。在没有干扰的情况下(也即电磁环境绝对干净的情况下)噪声功率是由自然界的环境决定的我们称之为基底噪声(Noise Floor)。当然我们也可以把基底噪声和其它干扰统称为噪声。

SNR值可以作为RSSI值的一个补充

2.5 Lora的数据包结构

在这里插入图片描述
前导码Preamble:前导码用于保持接收机与输入的数据流同步。

默认情况下, 数据包含有12个符号长度的前导码。 前导长度是一个可以通过编程来设置的变量,所以前导码的长度可以扩展。接收机的前导码长度应与发射机一致。如果前导码长度为未知或可能会发生变化,应将接收机的前导码长度设置为最大值。

可以通过设置前导码值进行地址过滤,实现分组通信。

报头Header:分显示报头(默认模式)和隐式报头;

显示报头包括:

  •  以字节数表示的有效负载长度;
  •  前向纠错码率;
  •  是否打开可选的16位负载CRC。

报头按照最大纠错码(4/8)发送。

有效数据Payload:真正发送的数据

Payload CRC:对Payload数据的CRC校验

2.6 空中传输时间

已知扩频因子(SF)、编码率(CR)及信号带宽(BW),可以使用提供的公式计算出单个LoRa数据包的总传输时间,在LoraWAN需要知道每次数据传输在空中的传输时间。

2.7 LoRa跳频

当单个数据包时间可能超过相关法规允许的最大信道停留时间,一般采用跳频扩频技术(FHSS);FHSS方案的工作原理为:每个LoRa数据包的部分内容通过在微控制器MCU管理的频率查询表中选取的跳频信道进行发送。在预定的跳频周期结束之后, 发射机和接收机切换到跳频预定义列表中的下一个信道,以便继续发送和接收数据包的下一部分内容。

2.8 占空比(DutyCycle)

节点发射LoRa数据的时间t1与发射周期T的比值就是占空比。占空比跟国家无线电管理的相关规定有关系,占空比满足不了国家法律时过国家相关认证会比较麻烦。

例如:470频段占空比要求为 1%,节点使用该频段某个信道发送一组数据耗时 10 ms,那么这个节点的本次发送周期为T1。节点在本周期结束,也就是 T1−10 ms 以后才可以再次发送数据。

T1=10/%=1000ms,需要等待 1000−10=990ms 才可以再次发送。

当占空比无法满足国家法律时,通过跳频手段可以解决。

2.9 信道活动检测(CAD)

可使用信道活动检测器来检测其他LoRa信号是否占用了本信道;可以一定程度上减轻信道冲突问题。

2.10 SX1276状态机

在这里插入图片描述

3 .LoraWAN的一些知识点介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.LoraWAN通信

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 470M频段(中国)特性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更多LoRa与LoRaWAN的资料,请参考:
https://www.bbsmax.com/A/A7zgDrYPJ4/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MG996R舵机介绍

舵机简介舵机是一种位置&#xff08;角度&#xff09;伺服的驱动器&#xff0c;适用于那些需要角度不断变化并可以保持的控制系统。在高档遥控玩具&#xff0c;如飞机、潜艇模型&#xff0c;遥控机器人中已经得到了普遍应用。舵机主要是由外壳、电路板、驱动马达、减速器与位置…

C语言入门教程||C语言 循环||C语言 函数

C语言 循环有的时候&#xff0c;可能需要多次执行同一块代码。一般情况下&#xff0c;语句是顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执…

蓝桥杯刷题021——填字母游戏(DFS)

2017国赛 题目描述 小明经常玩 LOL 游戏上瘾&#xff0c;一次他想挑战 K 大师&#xff0c;不料 K 大师说&#xff1a; "我们先来玩个空格填字母的游戏&#xff0c;要是你不能赢我&#xff0c;就再别玩 LOL 了"。 K 大师在纸上画了一行 n 个格子&#xff0c;要小明和…

go语言的并发编程

并发编程是 Go语言的一个重要特性,而 go语言也是基于此而设计出来的。 本文将会介绍如何使用go-gc中的“runtime”方法实现 go语言中的并发编程。 在之前的文章中,我们已经对 runtime方法进行了详细介绍,这次文章将对 runtime方法进行深入分析,并讲解如何在go-gc中使用该方…

Java NIO学习(二):Channel通道

2.1 Channel 概述Java NIO 的通道类似流&#xff0c;但又有些不同&#xff1a;既可以从通道中读取数据&#xff0c;又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个 Buffer&#xff0c;或者总是要从一个 Buffer 中写入。2.2 Ch…

PrimoBurner SDK for .NET

PrimoBurner SDK for .NET PrimoBurnerSDK是一个CD、DVD和蓝光刻录工具开发工具包。PrimoBurner是跨平台的&#xff0c;它还提供了一个全面灵活的API&#xff0c;用于快速轻松地实现各种燃烧/翻录替代方案。现在PrimoBurner迫使许多卫生、国防、执法、娱乐和其他部门。 PrimoBu…

面试复习题--性能检测原理

1、布局性能检测 Systrace&#xff0c;内存优化工具中也用到了 Systrace,这里关注 Systrace 中的 Frames 页面&#xff0c;正常情况下圆点为绿色&#xff0c;当出现黄色或者红色的圆点时&#xff0c;表现出现了丢帧。 Layout Inspector&#xff0c;是 AndroidStudio 自带工具…

Python环境搭建、Idea整合

1、学python先要下载什么&#xff1f; 2、python官网 3、idea配置Python 4、idea新建python 学python先要下载什么&#xff1f; python是一种语言&#xff0c;首先你需要下载python&#xff0c;有了python环境&#xff0c;你才可以在你的电脑上使用python。现在大多使用的是pyt…

this指针

目录 一、关于this指针的一个经典问题 二、this指针的特点 &#xff08;一&#xff09;本质 &#xff08;二&#xff09;应用 1. 不使用this指针 2. 使用this指针 3. 两者代码对比 三、代码举例 1. 举例1 2. 举例2 一、关于this指针的一个经典问题 当你进入一个房子…

MySQL面试题:SQL语句的基本语法

MySQL目录一、数据库入门1. 数据管理技术的三个阶段2. 关系型数据库与非关系型数据库3. 四大非关系型数据库a. 基于列的数据库&#xff08;column-oriented&#xff09;b. 键值对存储&#xff08;Key-Value Stores&#xff09;c. 文档存储&#xff08;Document Stores&#xff…

In Context Learning 相关分享

个人知乎详见 https://zhuanlan.zhihu.com/p/603650082/edit 1. 前言 随着大模型&#xff08;GPT3&#xff0c;Instruction GPT&#xff0c;ChatGPT&#xff09;的横空出世&#xff0c;如何更高效地提示大模型也成了学术界与工业界的关注&#xff0c;因此In-context learning…

ArcGIS API for JavaScript 4.15系列(3)——Dojo中的css样式操作

1、前言 前一篇博客介绍了Dojo中基础的dom操作方法&#xff0c;主要是针对html中的常用标签和属性进行操作。而一个优秀的线上网站自然也离不开css样式的从旁辅助。在实际开发过程中&#xff0c;我们经常会遇到需要动态修改css样式的问题&#xff0c;本文就来介绍一下如何在Do…

大数据框架之Hadoop:入门(一)大数据概论

第1章 大数据概论 1.1大数据概念 大数据(Big Data)&#xff1a;指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 主要解决&#xff…

【java基础】集合

集合 集合类位于java.util 包下&#xff0c;集合类又被称为容器 与数组的区别 数组的长度是固定的&#xff0c;集合的长度是可变的数组可以用来存放基本数据类型&#xff0c;集合存放引用类型&#xff0c;不能存放基本数据类型 如何选择 collection map 黄色的是接口&…

1.计算机基础-操作系统面试题—计算机系统概述、进程管理

本文目录如下&#xff1a;计算机基础-操作系统 面试题一、计算机系统概述CPU 内核态 和 用户态 的区别&#xff1f;从 用户态 切换到 内核态 的常见方法&#xff1a;二、进程管理线程 和 进程 的区别&#xff1f;协程 (goroutine) 和 线程的区别?进程有哪些状态&#xff1f;进…

day11_类中成员之变量

通过以前的学习&#xff0c;我们知道了成员变量是类的重要组成部分。对象的属性以变量形式存在&#xff0c;下面我们就来详解的学习一下类中的变量 成员变量 成员变量的分类 实例变量&#xff1a;没有static修饰&#xff0c;也叫对象属性&#xff0c;属于某个对象的&#xf…

Transformer位置编码图解

在语言中&#xff0c;单词的顺序及其在句子中的位置非常重要。 如果重新排列单词&#xff0c;整个句子的意思可能会发生变化。 在实施 NLP 解决方案时&#xff0c;循环神经网络具有处理序列顺序的内置机制。 然而&#xff0c;transformer 模型不使用递归或卷积&#xff0c;而是…

面试(七)为什么一般希望将析构函数定义为虚函数

class B { public:~B() // 基类析构函数不为虚函数{cout << "B::~B()" << endl;} };class D : public B { public:~D(){cout << "D::~D()" << endl;} };void Test(B* t) {delete t;t nullptr; }int main() {B *pb new B;Test…

TCP/IP网络编程——I/O 复用

完整版文章请参考&#xff1a; TCP/IP网络编程完整版文章 文章目录第 12 章 I/O 复用12.1 基于 I/O 复用的服务器端12.1.1 多进程服务端的缺点和解决方法12.1.2 理解复用12.1.3 复用技术在服务器端的应用12.2 理解 select 函数并实现服务端12.2.1 select 函数的功能和调用顺序1…

anaconda下pytorchCPU GUP安装及问题记录

1 pytorch安装&#xff08;CPU版本&#xff09; pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple2 torchvision、torchaudio、torchtext安装&#xff1a;解决ModuleNotFoundError: No module named ‘torchvision‘问题 &#xff08…