LORA学习笔记

整理罗列了一些学习过程中的知识点

LORA通讯的知识点

  • 基础:工作频段,扩频因子(SF),带宽(BW),编码率(CR) ,前导码与字节数据传输时间的计算,WOR发送
  • 扩展:前导码,同步字,低速率优化,显式头模式使能
  • 高级:LORA数据编码与传输原理

基础内容

频段:

LORA工作的电磁波频率范围的中心频点,虽然理论上不影响LORA数据的范围,但是实际上,电磁波的频段不同,传播时,穿透力与距离也不同。
常见的频段有,433MHZ,470MHZ,868MHZ,915MHZ等

扩频因子(SF):
  1. 影响传输时,接收端对带宽的扫描频点数:2^SF
  2. 影响特征码的编码数量:2^SF
  3. 影响单个符号能够传输的字节数:SF
带宽(BW):
  1. 影响LORA频率扫描的范围,以工作频率为中心的,对左右两侧进行扩展,最低频点到最高频点为带宽。
  2. 影响单个步长的扫描时间:1(S)/带宽(HZ)
编码率(CR):
  1. 影响一个字节(8bit)进行编码之后,最后需要传输的比特数:8÷编码率
举例:

如125KHZ的频段,扫描一个频道达到时间为8us。
如果SF为7,那么总共需要扫描2^7,也就是128个频点,那么扫描完一个符号的时间就是1024us。
而SF为7的情况下,一个符号能够传输7bit的信息。
如果编码率为4/5,那么一个数据字节位10个bit。
也就需要两个符号,才能够传输一个字节的信息。
以此,也就得出了传输速率的计算公式。

传输速率计算:

符号单位传输时间计算公式(us):

2^(SF) × 1000000(us) ÷ BW(HZ)

字节数据单位传输时间计算公式:

(数据比特数÷(8/编码率)) × 符号单位时间

注:(数据比特数÷(8/编码率))为符号数,向上取整

至此,我们就可以清楚的计算出,每一包数据的发送时间长度,同时,我们也就能够轻松的掌握wor的发送功能

WOR

WOR是一种通过增加LORA数据传输时间,来减少工作功耗的方式。
具体原理如下,每个WOR间隔,接收端会进行一次信号检测,确定是否存在LORA信号。
如果检测到前导码信号,那么就会唤醒设备,进行数据接收。
其他的时间都处于睡眠状态,因此就可以节省大量的功耗。
而发送端,如果需要发送一个数据,那么就需要先发送一个覆盖WOR间隔时间的前导码,根据计算,可以得出,需要多少个前导码,才能覆盖WOR的间隔时间。
这样就完成了WOR的工作模式。

扩展内容

前导码:

前导码是一串固定的符号内容的数据,通过前导码,接收端可以收到数据包信号,并进行扫描频点的对齐工作。

同步字:

同步字也是一个固定的符号,可以让接收端进行数据的时间同步对其,方便进行数据的解析与接收。

低速率优化:

当符号时间(Symbol Time)较长时(例如使用高扩频因子SF或低带宽BW),时钟漂移和频率偏差可能导致接收端解调失败。低速率优化通过以下方式解决这一问题。
当符号时间 >16ms(例如SF=12且BW=125kHz时),符号时间=32.768ms,必须启用低速率优化。

显式头模式使能:

强制包含头部字段
在数据包开头添加固定长度的Header,Header本身受CRC保护(若启用)包含:Payload长度(1字节),编码率CR(3 bits),CRC使能标志(1 bit),保留位(4 bits)
接收端动态解析参数
接收机根据Header中的CR和Payload长度动态调整解调逻辑。

对比隐式头模式(Implicit Header Mode)
隐式头模式省略Header字段,要求收发双方预先约定CR、Payload长度等参数。
隐式头模式数据包直接以Payload开头,减少传输开销。

实际影响
支持动态参数调整(例如动态切换CR或Payload长度)。
增强兼容性(不同设备间无需预先同步配置)。

适用场景:
需要灵活调整通信参数的应用(如多节点异构网络)。
调试阶段(避免反复同步配置)。
示例配置:显式头模式 + CRC启用,适用于工业物联网网关。

高级

LORA数据编码与传输原理:

首先,根据SF生成2^SF个特征码,比如7的时候,生成128个特征码,也就是从0000000到1111111每一个数据都存在单独的特征码。
接收端根据这个特征码来得知,发送的符号为哪个,这也就是为什么,符号发送的比特数与SF相同的原因。
那么电磁波是以一种什么样的形式,发送数据的呢?
LORA采用了Chirp信号(线性调频信号),线性增加频率发送时的能量大小,而不同的数据,会进行不同的频率偏移,比如125KHZ,被分为了128个频点,现在需要发送第45个符号,那么就从45这个频点,开始进行发送,能量逐步增高或者降低(取决于技术路线),等超过125KHZ的范围之后,就从0开始,使频率始终在这个范围内。
这样,接收端就可以知道,能量的峰值,在哪个频点,再与本地生成的能量峰值表进行对比,就知道发送端,发送的是哪个符号。
接收端扫描每个频点的时间,为1/带宽的HZ数,单位为秒,125KHZ的时候,扫描一个频点,也就是8us。
此外,在编码后,发送的数据比特数,大于符号的比特数的时候,会用多个符号去发送,多余的bit位补零。
这也就是符号数计算的公式来源。
注:
发送端的频率增加与能量增加其实是线性的,而不是一个个频点离散的,
接收端的进行了指定频点的离散扫描。
这也就是为什么,SF越大,每个符号发送的速度指数级变慢,而SF也同样代表发送的bit数的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水水不水啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值