STM32与LoRa通信模块集成
LoRa技术前序
LoRa之前的主要无线通信协议分为一下三种:
第一类是远距离高速率的传输协议,典型协议包括蜂窝网络通信技术,如3G、4G、5G相关技术等,这是我们目前移动通信使用的典型技术。
第二类是近距离高速率传输技术,如WiFi、蓝牙等,这些技术传输距离在几十到几百米级别,主要用在家庭环境和日常应用中,使用非常广泛,前面两类可能是一般用户最常使用到的网络协议了,也符合传统网络应用的主要特点和需求。
第三类是近距离低功耗传输技术,如传统物联网中ZigBee、RFID、低功耗蓝牙等。
Lora VS 其他无线技术
上面三类技术大都要求较高的信噪比,并且对障碍的穿透性较小,无法在复杂环境中实现远距离低功耗传输。低功耗广域网有效的弥补了现有物联网连接方法的不足,成为支持物联网连接的重要基础,得到了国内外的广泛关注,并成为了国内外的研究和应用前沿。
LoRa作为目前广泛使用的低功耗广域网技术(LPWAN),为低功耗物联网设备提供了可靠的连接方案。 如下图所示,相比于Wi-Fi、蓝牙、ZigBee等传统无线局域网,LoRa可以实现更远距离的通信,有效扩展了网络的覆盖范围; 而相比于移动蜂窝网络,LoRa具有更低的硬件部署成本和更长的节点使用寿命,单个LoRa节点可以在电池供电的情况下连续工作数年。 LoRa具有低数据率、远距离和低功耗的性质,因此非常适合与室外的传感器及其他物联网设备进行通信或数据交互。
LPWAN (Low Power Wide Area Network)指的是低功耗广域网,其特点在于极低功耗,长距离以及海量连接,适用于物联网万物互联的场景。LPWAN不只是一种技术,而是代表了一族有着各种形式的低功耗广域网技术,如下图所示。其中LoRa使用的是一种扩频技术,NB-IoT使用的是窄带技术,这是两种有代表性的低功耗广域网技术。
Lora VS NB-loT
LoRa(Long Range)和NB-IoT(Narrowband Internet of Things)是两种有代表性的低功耗广域网(LPWAN)技术,主要用于物联网(IoT)应用。它们在技术实现、应用场景、优缺点等方面有显著差异。
1. 技术实现
LoRa
NB-IoT
2. 应用场景
LoRa
NB-IoT
3. 优缺点对比
LoRa
NB-IoT
4. 典型应用示例
LoRa
NB-IoT
总结来说,LoRa和NB-IoT各有优势,适用于不同的物联网应用场景。LoRa适合需要低成本和长距离的应用,而NB-IoT则适合需要广覆盖和高可靠性的应用。选择哪种技术取决于具体应用需求、部署环境和成本考量。
LoRa技术简介
LoRa 是 Long Range Communication的简称,我们可以从三个不同的角度来理解LoRa这门技术。从而获得对LoRa这么技术完整的理解。
LoRa本质上指的是一种物理层的信号调制方式,是 Semtech 公司定义的一种基于Chirp扩频技术的物理层调制方式,可达到-148 dBm的接收灵敏度,以偏小的数据速率(0.3-50kbps)换取更高的通讯距离(市内3km,郊区15km)和低功耗(电池供电在特定条件下可以工作长达10年)。
从系统角度看,LoRa也指由终端节点、网关、网络服务器、应用服务器所组成的一种网络系统架构:LoRa定义了不同设备在系统中的分工与作用,规定了数据在系统中流动与汇聚的方式。
从应用角度看,LoRa为物联网应用提供了一种低成本、低功耗、远距离的数据传输服务:LoRa在使用10mW射频输出功率的情况下,可以提供超过25km视线传输距离,从而支持大量广域低功耗物联网应用。
Chirp扩频技术:
LoRa (Long Range) 是一种低功耗广域网技术,其核心优势在于使用了 扩频技术,具体来说,是基于 线性调频扩频(Chirp Spread Spectrum, CSS) 的调制方式。下面详细解释这种技术及其优点。
1. 扩频技术(Spread Spectrum Technology)
扩频技术是一种无线通信技术,通过扩展信号的带宽来提高信号的抗干扰能力和安全性。主要有两种扩频技术:
LoRa采用的是后者,即CSS。
2. 线性调频扩频(Chirp Spread Spectrum, CSS)
线性调频(Chirp) 指的是信号的频率随时间线性变化,这种频率变化可以是上升(从低频到高频)或下降(从高频到低频)。CSS通过将信息嵌入到线性变化的频率信号中,实现信号的调制和解调。
工作原理
优点
- 抗干扰能力强:由于信号频率随时间线性变化,CSS对窄带干扰有很强的抵抗能力。如果有干扰存在,仅仅是影响到频谱的一部分,不会导致整个信号的损失。
- 长距离传输:CSS可以在低信噪比(SNR)的环境中工作,这意味着可以实现长距离传输。信号在传输过程中衰减较少,穿透能力强。
- 低功耗:CSS技术使得LoRa设备在传输过程中功耗极低,非常适合电池供电的物联网设备,能够延长设备的使用寿命,LoRa设备在待机模式下消耗极少的能量,并且发送和接收数据时的能量消耗也很低。发射电流 118ma(20dbm 100mw 电压 5V)接收电流 17ma(一般模式、一般模式),最低约 2.3uA(省电模式+2S 唤醒)
举例说明
设想一个LoRa设备发送一个数据比特,这个比特可以表示为一个chirp信号:
在发射端,这些chirp信号被发射到空气中。在接收端,通过检测这些chirp信号的频率变化模式,接收设备能够还原出原始数据。
正点原子Lora模块
ATK-LORA-01_V3.0(V3.0
是版本号,型号是
ATK-LORA-01
,下面均以
ATK-LORA-01表示该产品)
是
ALIENTEK
推出的一款体积小、微功率、低功耗、高性能远距离
LORA
无线串口模块。
模块设计是采用高效的 ISM 频段射频 SX1278 扩频芯片,模块的工作频率410Mhz~441Mhz,以 1Mhz 频率为步进信道,共 32 个信道
,可通过
AT
指令在线修改串口速率,发射功率,空中速率、工作模式等各种参数。
ATK-LORA-01
模块具有:体积小、灵敏度高、支持低功耗省电,特点包括:
1
、工业频段:
433Mhz
免申请频段
2
、多种功率等级(最大
20dBm
,最大
100mW
)
3
、多种串口波特率(与开发板串口相连)、空中速率、工作模式
4
、支持空中唤醒功能,低接收功耗
5
、发送和接收长度:双
512 字节
环形
FIFO
6
、频率
410-441Mhz
,提供
32
个信道
7
、接收灵敏度达
-136dBm
,传输距离
3000 米
8
、自动分包传输,保证数据包的完整性
补充:
双 512 环形 FIFO 是一种存储器结构,用于缓存数据或指令以及在数据处理系统中进行流量控制。这种结构通常用于在数据传输速率不匹配的情况下进行数据交换,比如在处理器和外设之间。
让我们逐步解释这个术语:
-
FIFO(First-In-First-Out):这是一种队列的数据结构,其中最先进入队列的数据最先被取出,就像水龙头中的水流一样。在计算机科学中,FIFO 通常用于缓存和数据传输中,确保数据按照其到达的顺序进行处理。
-
双 512:这指的是这种 FIFO 结构内部有两个独立的 FIFO 缓冲区,每个缓冲区的容量为 512字节。这两个缓冲区可以分别用于不同的数据流或任务。
-
环形:环形意味着这些 FIFO 缓冲区被设计成环形的,也就是说,当数据被写入到最后一个位置时,它们将回到起始位置,形成一个循环。
工作频段:
LoRa(Long Range)是一种低功耗广域网(LPWAN)技术,使用的频段通常在较低频率范围内。这些频段在全球范围内有所不同,但一般集中在以下未授权的ISM(工业、科学和医学)频段:
- 欧洲:868 MHz(主要频段)
- 北美:915 MHz(主要频段)
- 亚洲:433 MHz 和 868 MHz
- 其他地区:不同地区有不同的频段规定,但大多数国家和地区都使用这些主要频段之一。
工作频率的单位MHz(兆赫兹)是衡量电磁波振荡频率的单位,表示每秒钟发生多少次周期性变化。具体来说,1 MHz 等于 1,000,000(百万)赫兹(Hz)。
电磁波震荡的表现可以通过以下几个方面理解:
-
波形图:在波形图上,可以看到电场和磁场强度随时间或空间变化的正弦波曲线。每一个完整的波峰和波谷代表一次完整的震荡周期。
-
传播特性:频率越高,电磁波的波长越短,震荡越快。例如,868 MHz 的电磁波在空间中每秒钟震荡868,000,000次,表现为波长较短、震荡频繁。
一、模块连接图
二、模块功能介绍
模块根据
MD0
的配置与
AUX
引脚的状态会进入不同的功能
其中在通信功能下,包含
4
种工作模式
三、快速了解
发送模式:透明传输和定向传输
由此可见,透明传输是指发送的信息和设备接收到的消息是一样的。定向传输的模式是指设备发送的信息需要有前缀,发送格式:高位地址+低位地址+信道+用户数据,这些前缀数据是十六进制,指定特定的设备收到信息,在定向传输模式下串口接收到带前缀的数据,会将十六进制的前缀转化为字符串输出。
四、配置功能
上电后,当
AUX
为空闲状态(
AUX=0
),
MD0
设置高电平(
MD0=1
)
时,模块会工 作在“配置功能”,此时无法发射和接收无线数据。在“配置功能”下,串口需设置:波特率“115200
”、停止位“
1
”、数据位“
8
”、奇偶校验位“无”,通过
AT
指令设置模块的工作参数,部分AT指令如下:
通过正点原子提供
ATK-LORA
配置软件,发送
AT
指令即可以对模块参数进行配置,ATK-LORA 配置软件如图
2.3.2.4
所示:
注意
:
进入配置功能,串口需设置:“波特率:
115200
,
8
位数据位、
1
位停止位、无校验位”, 退出配置功能,返回无线通信需设置通信下的串口参数,以免无线通信下工作不正常。
四、通信功能
1、透明传输
1)点对点
1
,地址相同、信道相同、无线速率(非串口波特率)相同的两个模块,一个模块发送,另外一个模块接收(必须是:一个发,一个收)
2
,每个模块都可以做发送
/
接收。
3
,数据完全透明,所发即所得。
2)点对多
1
,地址相同、信道相同、无线速率(非串口波特率)相同的模块,任意一个模块发送,
其他模块都可以接收到。
2
,每个模块都可以做发送
/
接收
.
3
,数据完全透明,所发即所得
点对点:
两个
模块地址、信道、速率相同
点对多:
多个
模块地址、信道、速率相同
2、定向传输
点对点
1
,模块发送时可修改地址和信道,用户可以指定数据发送到任意地址和信道。
2
,可以实现组网和中继功能。
发送模块(
1
个):
地址
+
信道
+
数据
接收模块(
1
个):数据
区别点:
点对点(透传):模块地址、信道、速率相同
点对点(定向):
模块地址可变
、
信道可变
,速率相同
五、数据流控制
如图所示,模块内部是存在
FIFO
的,发送通过获取
FIFO
里的用户数据
RF
发射出去,接收则将数据存到模块 FIFO
,再发送回给用户。这时如果用户设备通过串口到模块的数据量太大,超过模块 512
字节
FIFO
很多时,会存在溢出现象,数据出现丢包,此时建议模块发送方降低串口速率并且提高空中无线速率(串口速率 <
空中无线速率),从而提高缓存区的数据流转效率,减少数据溢出的可能。而模块接收方则应提高串口速率(串口速率 >
空中无线速率),提高输出数据的流转效率。模块在数据包过大的情况下,不同的串口波特率和空中无线速率配置下,会有不同的数据吞吐量,具 体数值以用户实测为准。(
注意
:
发射
和接收模块需工作在“一般模式”下
。)
(注:这有点像经典水池子问题,一个龙头进水,一个龙头出水,怎么样才能保持池子不满溢)
六、软件流程编写简述
1)函数中,先对通信串口设置波特率
115200
、无校验位的设置,然后进入配置功能模式,发送 AT 指令配置设备地址、信道、空中速率等参数
2)配置完成后退出配置功能模式,改变MD0的引脚状态进入通信模式,同时通信串口重新设置回通信下的设置
3)最后设置 AUX 中断为上升沿中断,等待数据接收或数据的发送。AUX引脚与MCU上一根外部中断线或gpio中断口相连,注册、设置中断服务函数,当AUX上升沿到来就执行中断服务函数,将buffer(要发送的信息数组)里的数据从串口发送或接收。
原文链接:https://blog.csdn.net/geek_liyang/article/details/131350237
作者:未来未来_