STM32--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 是一种存储器结构,用于缓存数据或指令以及在数据处理系统中进行流量控制。这种结构通常用于在数据传输速率不匹配的情况下进行数据交换,比如在处理器和外设之间。

让我们逐步解释这个术语:

  1. FIFO(First-In-First-Out):这是一种队列的数据结构,其中最先进入队列的数据最先被取出,就像水龙头中的水流一样。在计算机科学中,FIFO 通常用于缓存和数据传输中,确保数据按照其到达的顺序进行处理。

  2. 双 512:这指的是这种 FIFO 结构内部有两个独立的 FIFO 缓冲区,每个缓冲区的容量为 512。这两个缓冲区可以分别用于不同的数据流或任务。

  3. 环形:环形意味着这些 FIFO 缓冲区被设计成环形的,也就是说,当数据被写入到最后一个位置时,它们将回到起始位置,形成一个循环。

一、模块连接图

二、模块功能介绍

模块根据 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(要发送的信息数组)里的数据从串口发送或接收。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 11:28:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 11:28:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 11:28:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 11:28:06       18 阅读

热门阅读

  1. Vue和Vue3前端面试频率较高的面试题和答案

    2024-05-13 11:28:06       16 阅读
  2. Python中的绝对路径与相对路径详解

    2024-05-13 11:28:06       11 阅读
  3. react 逻辑 AND 运算符 (&&)

    2024-05-13 11:28:06       14 阅读
  4. SpringMVC 4.3 nacos1.4 mock2.0 junit4.13 测试Controller

    2024-05-13 11:28:06       13 阅读
  5. sql-行转列2(转置)

    2024-05-13 11:28:06       14 阅读
  6. sql-行转列(转置)

    2024-05-13 11:28:06       11 阅读
  7. 母亲节祝福html源码示例

    2024-05-13 11:28:06       10 阅读
  8. Es6 Generator 生成器函数

    2024-05-13 11:28:06       8 阅读