当前位置:   article > 正文

LoRa调制解调技术_lora 码元

lora 码元

目录

1 说明

2 调制参数

2.1 扩频因子SF

2.2 编码速率CR

2.3 调制带宽BW

2.4 低速率优化

3 LoRa帧结构

3.1 前导码

3.2 可选报头

3.3 有效载荷

3.4 有效载荷CRC

3.5 隐性数据包

4 调制链路

4.1 纠错编码机

4.2 交织器

4.3 扩频序列产生器

5 解调链路

6 实际空口发射分析

6.1 码元调制编码

6.2 数据发送实例


Lora LoraWAN教程

1 说明

本文主要介绍LoRa扩频技术细节,详细的描述了LoRa信号从数据流变为LoRa扩频信号,再从射频信号通过解调变为数据的全过程。内容主要来自《LoRa物联网通信技术》一书,该书是由现任Semtech LoRa中国区应用技术团队leader甘泉所著。

2 调制参数

可以针对特定的应用优化LoRa调制,依据四个关键的设计参数,每个参数都允许在链路预算、抗干扰能力、频谱占用和名义数据率之间进行权衡。

扩频因子SF

调制带宽BW

编码速率CR

低速率优化LDRO

2.1 扩频因子SF

LoRa扩频调制是通过把有效载荷中每比特数据用多位码片信息表示来实现的。

每个码片都是由2^SF个码片组成

一个码元承载SF个bit的数据

增大SF可使解调所需的信噪比门限值更低,但同时带来的是传输速率的降低。

https://img-blog.csdnimg.cn/77d838ab0fd34b0bba62efdf33a9a683.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2.2 编码速率CR

LoRa调制解调器采用循环误差编码来执行前向误差检查和校正,这样就需要冗余位来填充FEC(前向纠错编码)

CR为有用位数/总位数,可选范围为4/5~4/8。更高的编码率提供了更好的抗干扰性能,但同时会增大数据的开销。

https://img-blog.csdnimg.cn/b129d1b1793a44779aa31e1de0443c9b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2.3 调制带宽BW

LoRa调制带宽是指双边带宽

增加信号带宽,可以提高有效数据速率以缩短传输时间,但这是以牺牲部分一接收灵敏度为 代价。

https://img-blog.csdnimg.cn/ee6b345ff3d74c4f937fe6ec230be598.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

2.4 低速率优化

对于低数据速率(一般指高SF或者低BW),建议当LoRa的码元(symbol)时间大于或等于16.38ms时,需开启低速率优化LDRO,这样会将每个符号的位数将减少为SF=2的配置,以便接收机更好低跟踪LoRa信号。

对于需要在空中传输数秒的长载荷,建议开启低速率优化LDRO,此时会放宽包传输时间内的频率漂移要求至Freq_drift_max的16倍。

3 LoRa帧结构

LoRa数据包包含4部分:

前导码

可选报头(隐形数据包无此部分)

数据有效载荷

有效载荷校验

https://img-blog.csdnimg.cn/c7c1206da9c44d7386b443c651106048.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

  PS:可选报头固定CR = 4/8,代码配置的CR作用域是Payload和Payload CRC

3.1 前导码

目的是向接收方提供具有特性的可检查序列,以确定频率和同步。

前导码由一定数量未经调制的码元和结束标记组成。其中结束标记长度固定为4.25个码元,初始未经调制的码元长度可调,总前导码长度为10~65535个symbol

接收机会周期地重启前导检测操作,所以需配置和发射机一样的前导码长度。如果不知道前导码长度或者可变的情况下,接收机需将前导码长度设置为最大。

1)同步字

        这里是从不同文档中推导出来的,未直接从官方文档中找到确定的说明。

        前导码中固定的4.25个码元就是同步字,Semtech节点芯片SX126x/SX127x都可通过寄存器配置不同的同步字,发射和接收双方的同步字需一致才能正常通信。

3.2 可选报头

该报头是可选的,如果使能,数据包就是显性数据包。

报头包含两部分:Header和报头自身的CRC校验,固定以CR=4/8传输。

Header提供了如下信息:有效载荷字节数,编码速率CR,有效载荷CRC类型。

3.3 有效载荷

即实际用户需传输的数据,最大255字节。

3.4 有效载荷CRC

可灵活选择多项式和初值。

3.5 隐性数据包

相比默认数据包,差别是不带显性报头部分。

一般用于发射和接收方都提前知道有效载荷长度,编码率CR以及有效载荷CRC,可以通过隐性数据包模式来减少传输时间。需要双方都提前配置好相同的参数

4 调制链路

https://img-blog.csdnimg.cn/12dcae86482a479695ee4861362933a3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

LoRa调制链路组成:纠错编码机,交织器,扩频序列产生器,笛卡尔极坐标转换器,Delta-sigma调制器。

当用户数据即Payload送入数据包接口时,调制过程开始

4.1 纠错编码机

将数据载荷分为4bit一组,每一组末位按编码速率CR添加1~4bit冗余的FEC(前向纠错编码)

FEC采用广义的软汉明码,能够有效的进行错误检测和自动纠错

4.2 交织器

通过纠错编码后,会产生多组(4+CR)比特段,随后就被存储到交织器的存储阵列中

每个交织器有(4+CR)列,SF 行 Bit空间

例如配置为CR=1,SF=7,有效数据比特流为00000001 00100011 01000101 01100111。先将比特率按4bit一组划分:0000 0001 0010 0011 0100 0101 0110 0111;然后通过纠错编码在每组后加1bit的纠错码:00000 00011 00101 00110 01001 01010 01100 01111;再将这些比特流填充到交织器中,该交织器存储空间为5列7行。

https://img-blog.csdnimg.cn/5ae05b93718b459ab90984e2e06c6301.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

每一行数据按照一定的映射关系被塞入码元(symbol)中。

https://img-blog.csdnimg.cn/3ef8dc14fd6347ac98a6451e2dc2620f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

4.3 扩频序列产生器

数据发射数据包除了有效载荷以外,每个包前面都有一个前导码,目的是向接收方提供具有特性的可检查序列,以确定频率和同步

前导码由一定数量未经调制的码元和结束标记组成。其中结束标记长度固定为4.25个码元,初始未经调制的码元长度为6~65535

最终输出是一个具有恒定包络的复杂采样流

4.4 坐标转换器和Delta-sigma调制输出

利用笛卡尔极坐标变换器提取相位信息,相位分量被区分,从而产生瞬时频率调制送往Delta-sigma调制器

调制器的数字输出驱动锁相环的反馈分配器,最后连接功率放大器和天线将LoRa信号发送出去

5 解调链路

https://img-blog.csdnimg.cn/7b33a8c9e3c0406289d6aab7409b0ec0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

  • LoRa信号经过I/Q采样后进入解调路径。
  • 数字抽取滤波器将来自ADC的高采样率流转换为高精度,低速率的样本流。
  • 中频混频器通过将样本流乘以复指数信号来执行复频率转换。
  • 信道滤波器负责消除多余的带外信号,邻道衰减大于70dB。
  • 信道滤波器的输出通过软解映射器与发射机中使用的扩频序列做复共轭卷积。
  • 软解映射器解调的数据推入解交织器,按调制顺序进行数据比特流的整理。
  • 数据比特率经过纠错解码器进行校验和纠错,最终得到有效载荷输出给数据被接口。

6 实际空口发射分析

前面介绍了LoRa调制解调原理,这里实际分析发送一个字符串“LoRa”的完整过程。

6.1 码元调制编码

下面是基于SF=7的情况来分析

https://img-blog.csdnimg.cn/16a7f7dfec3a413187e4d15cdc257a30.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

  • 发送信号将调制带宽BW划分为2^7个频率段的码片。假设该系统工作频率为470Mhz,BW=250kHz,那么相邻码片间隔为250kHz/128 = 95kHz。此时各码片为f0=470Mhz,f1=470.00195Mhz,... ,f127=470.24805Mhz。
  • 每2^7个码片代表一个码元(Symbol),一个码元传输7bit数据。
  • 码片如何组成码元来代表7bit数据:可简单理解为7bit数据的值表示该码元起始的频率。比如7bit值为N,那么码元的起始码片为fN,随后码片逐步递增直至码片f127,然后再从码片f0开始一直到码片f(N-1)。
  • 所以SF和BW对应一种LoRa调制,接收机需采取对应的SF和BW值才能正常解调,否则信号在相干解调中会淹没在噪声中。
  • LoRa调制在不同SF/BW组合下是相互正交的,即可以共用同一个工作频点。但需满足解调信噪比才能正常解调。

6.2 数据发送实例

下面场景是以CR=4/5,SF=8的场景,实际分析字符串"LoRa"如何转换为射频信号发射

https://img-blog.csdnimg.cn/f52b55c09b3c424896dfd2936e804a1a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-q5oOzLumdmemdmQ==,size_20,color_FFFFFF,t_70,g_se,x_16

  • 字符串“LoRa”按ASCII码转换为二进制数据:01001100 01101111 01010010 01100001共32bit。
  • 经过纠错码处理(假设CR=4/5),每4bit添加1bit的冗余纠错码:01001 11000 01100 11110 01010 00101 01100 00011共40bit。
  • 完成前向纠错编码的数据流进入交织器,按码元调制编码分析,此时Payload将组成5个码元。
  • 增加上前导码和CRC校验,即组成一个标准的LoRa数据包。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/714162
推荐阅读
相关标签
  

闽ICP备14008679号