一、LoRa基础知识

1. LoRa是什么?

LoRa是一种低功耗远距离无线通信技术,名称源自"Long Range"(远距离)。它是一种物理层调制技术,采用扩频调制方式,具有远距离传输、低功耗和抗干扰能力强的特点,特别适合物联网应用。

2. LoRa与LoRaWAN的区别

LoRa:物理层调制技术,定义了无线电波如何调制和解调

LoRaWAN:建立在LoRa物理层之上的网络协议,定义了网络架构、设备类型、安全机制和通信协议

3. LoRa的主要特点

远距离传输:在郊区可达15km,城市环境可达2-5km

低功耗:终端设备电池可工作数年

低数据率:0.3kbps至50kbps

高灵敏度:接收灵敏度可达-148dBm

强抗干扰能力:采用扩频技术,抗干扰性能好

低成本:相比蜂窝网络等其他技术成本更低

二、LoRa技术原理

1. LoRa调制技术原理

LoRa采用CSS(Chirp Spread Spectrum,线性调频扩频)调制技术:

信号在整个频带内以线性方式变化频率(上升或下降)

通过不同的扩频因子(SF)调整数据率和传输距离

扩频因子越大,传输距离越远,但数据率越低

2. 扩频因子(SF)的作用

定义:扩频因子决定了每个符号传输的比特数,范围通常为SF7-SF12

影响: SF越大,传输距离越远,但数据率越低SF越小,传输距离越近,但数据率越高每增加一个SF值,链路预算增加约2.5dBSF12的数据率约为SF7的1/32

3. 带宽(BW)和编码率(CR)

带宽:LoRa常用带宽为125kHz、250kHz和500kHz 带宽越大,数据率越高,但灵敏度降低带宽越小,数据率越低,但灵敏度提高

编码率:LoRa使用前向纠错编码,编码率为4/5、4/6、4/7、4/8 编码率越高,抗干扰能力越强,但有效数据率降低

三、LoRa硬件与接口

1. 常见的LoRa芯片和模块

芯片: Semtech SX1272/76/77/78/79系列STM32WL系列(集成LoRa收发器的MCU)

模块: E32系列(艾伯维)RHF76系列(瑞兴恒方)SX1278/SX1276模块RAK811/RAK4200系列

2. LoRa模块与MCU的接口方式

SPI接口:最常用的接口方式,高速通信

UART接口:部分模块提供AT指令集,通过串口控制

I2C接口:少数模块支持

GPIO接口:用于中断、复位等控制信号

3. LoRa模块的典型引脚定义

SPI接口:MOSI、MISO、SCK、NSS(片选)

控制引脚: RESET:复位引脚DIO0-DIO5:数字IO,用于中断和状态指示BUSY:忙状态指示(部分模块)

RF相关: ANT:天线接口RF_SWITCH:TX/RX切换(部分模块)

四、LoRa通信参数配置

1. 关键通信参数

载波频率:根据区域不同,常用433MHz、868MHz、915MHz等

空中速率:也称为空中数据速率或无线数据速率,指的是Lora系统在无线空中接口上实现的传输速率,这个速率是指在LoRa通信中,数据以多快的速度通过空中从一个设备传输到另一个设备。空中速率受多种因素影响,包括扩频因子(Spreading Factor, SF)、带宽(Bandwidth)、编码率(Coding Rate)等。

扩频因子(SF:是LORA传输中最重要的关键参数,影响着LORA信号的传输范围、速率和能耗通常SF7-SF12

带宽(BW):125kHz、250kHz、500kHz

编码率(CR:4/5、4/6、4/7、4/8    数据冗余度的级别,相当于位填充,连续几个添加一个值

发射功率:通常可调范围为2-20dBm

前导码长度:影响同步时间和可靠性,,,

LoRa数据包中的前导码(Preamble)是LoRa通信协议中非常重要的一个组成部分。前导码位于数据包的开始部分,是一系列预定义的模式,用于帮助接收器准确地同步到发送方的信号。

前导码的长度可以根据通信需求进行配置。长的前导码可以提高接收器同步的准确性,特别是在信号弱或环境噪声大的情况下。然而,过长的前导码可能会增加整个数据包的传输时间,从而影响通信的效率。+

同步字(Sync Word

LoRa通信中的同步字(Sync Word)是用来区分和识别特定LoRa网络的一种机制。它是一个预定义的字节序列,用于帮助LoRa接收器区分目标网络的信号和其他LoRa信号或背景噪声。在LoRa通信中,同步字对于确保数据包的正确识别和网络的隔离非常重要。

同步字的值通常可以自定义,允许用户根据需求设置不同的值以创建独立的LoRa网络。所有在同一个LoRa网络中的设备应该使用相同的同步字

2. 参数选择的权衡

距离vs功耗: 增大SF和发射功率可增加距离,但会增加功耗降低数据率可提高灵敏度,但传输时间变长

数据率vs可靠性: 高数据率(低SF)适合短距离大数据量场景低数据率(高SF)适合远距离小数据量场景

1. LoRa模块的基本操作流程

片选使能;

发送数据;

接收数据;

片选失效;

模块LLCC88

最终Lora调制模式下发送和接收到数据的帧格式

Preamble(前导码:同步字在这里面)+Header(代表数据相关的信息   显示模式下有效)+CRC(控制PayLoad有没有校验位)  +PayLoad() +PayLoad CRC

写在后面:

编写代码问题:Lora模块的编写可以参照现有模块官方库的文件进行编写

初始化直接使用官方库的函数

发送数据:

遇到的问题:句柄是对象生成时程序指定的,属性是只读的,程序员不能修改句柄

通过句柄,程序员只能调用系统提供的服务,不能像使用指针那样,做其他的事。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐