LoRa扩频串口通信模块的配置实例详解

Posted 成都泽耀科技有限公司Ashining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LoRa扩频串口通信模块的配置实例详解相关的知识,希望对你有一定的参考价值。

模块功能详解

组号和地址的概念

功能说明
每个种功能下都有组号和地址的概念在其中,有了组号的概念,使用方式上就比传统的串口模块更加灵活。
如果模块的本地组号和本地地址都设置为 0xFF,模块会监听当前信道的所有数据。
如果模块的目标组号设置为 0xFF,模块发送数据会广播给所有组的目标地址模块。
如果模块的目标地址设置为 0xFF,模块发送数据会广播给当前目标组的所有地址

透明广播

功能说明
任意模块发送数据,具有相同地址且相同信道的模块均可同时接收数据。数据以透明方式发送和接收,所发 即所收。
模块设置

  1. MD0 = 0,MD1 =0
  2. 需将 0x07 特殊功能寄存器配置成 0x0001,透明传输模式
  3. 发送模块目标地址和接收模块的本地地址设置成相同值
  4. 发送模块和接收模块的信道设置成相同值
  5. MD0 = 1,MD1 =0
    举例说明

主从模式

功能说明
分为主机和从机,主机可以给指定的从机发送数据,所有从机发送数据主机都能够收到。
模块设置

  1. MD0 = 0,MD1 = 0
  2. 需将 0x07 特殊功能寄存器配置成 0x0004,主从模式
  3. 发送模块和接收模块的地址可设置成不相同
  4. 发送模块和接收模块的信道设置成相同
  5. MD0 = 1,MD1 =0
    举例说明

定点传输

功能说明
任意模块发送数据,可指定模块接收。多个接收模块地址信道相同时,均可接收数据。
模块设置

  1. MD0 = 0,MD1 = 0
  2. 需将 0x07 特殊功能寄存器配置成 0x0002,定点传输模式
  3. 发送模块和接收模块的地址可设置成不相同
  4. 发送模块和接收模块的信道可设置成不相同
  5. MD0 = 1,MD1 =0
    举例说明

定点传输下的广播

功能说明
任意模块发送数据,处于同一信道下的模块均可接收数据。
模块设置

  1. MD0 = 0,MD1 = 0
  2. 需将 0x07 特殊功能寄存器配置成 0x0002,定点传输模式
  3. 发送模块和接收模块的地址可设置成不相同
  4. 发送模块和接收模块的信道可设置成不相同
  5. 发送方数据前 3 个字节必须是 0xFF+0xFF+接收方信道
  6. MD0 = 1,MD1 =0
    举例说明

定点传输下的监听

功能说明
任意模块发送数据,处于同一信道下的模块均可接收数据。
模块设置

  1. MD0 = 0,MD1 = 0
  2. 需将 0x07 特殊功能寄存器配置成 0x0002,定点传输模式
  3. 监听模块的地址必须设置成 0xFFFF
  4. 监听模块和发送模块的信道必须设置成相同
  5. 发送方数据前 3 个字节必须是 0xXX+0xXX+接收方信道
  6. MD0 = 1,MD1 =0
    举例说明

空中唤醒

功能说明
唤醒工作状态下的发送方模块可以空中唤醒处于省电工作状态下的接收方模块。省电工作状态下的模块一直 处于“休眠-监听”的工作状态,如果在“监听”过程中接收到了有效唤醒码,模块会计算有效数据到来的时间,如果有 效数据到来的时间大于三个唤醒码的时间,设备将继续进入睡眠状态,等到数据到来之前自动醒来并接收数据。 如果小于三个唤醒码的时间,模块将持续等待有效数据包。接收完毕,打开串口,将接收到的无线数据通过 TXD 发送,发送完毕后,模块继续进入“休眠-监听”的工作状态。
模块设置

  1. 发送方模块必须工作在唤醒工作状态下(MD0 = 1,MD1 = 0)
  2. 发送方通过设置无线唤醒时间寄存器 0x14 来设置唤醒时间的长度。发送方模块的无线唤醒时间大于等于接收 方模块的监听间隔时间,确保处于省电工作状态下的接收方模块能够监听到唤醒码。收到唤醒码之后,接收模 块计算是否需要再次进入睡眠状态,如果有效数据到来的时间大于三个唤醒码的时间,模块会再次进入睡眠状 态,并在有效数据到来之前醒来,完成数据的接收。
  3. 接收方模块必须处于省电工作状态下(MD0 = 1,MD1 = 1)
  4. 设置接收方模块的监听间隔时间寄存器 0x14,确保接收模块能够在监听间隔时间内接收到有效唤醒码。
  5. 在一般的应用情况下,发送和接收方模块都将唤醒时间寄存器 0x14 设置为一样的值即可。

低功耗

功能说明
被唤醒模块处于省电工作状态,模块会定时监听是否收到唤醒码。如果没有收到唤醒码,模块会一直处于“休眠 -监听”的工作状态。如果在监听唤醒过程中接收到唤醒码,接收模块计算是否需要再次进入睡眠状态,如果有效数 据到来的时间大于三个唤醒码的时间,模块会再次进入睡眠状态,并在有效数据到来之前醒来,完成数据的接收。
通过设置不同的监听间隔时间,模块具有不同的接收响应延迟和平均功耗。用户需要在通讯延迟时间和平均 功耗时间取得一个平衡点。
模块设置

  1. 设置模块的工作状态为省电工作状态(MD0 = 1,MD1 = 1)
  2. 设置模块的无线唤醒时间寄存器 0x14

中继

功能说明
中继模式下的设备会将收到的数据按照设定的路径向后转发,直到目标设备,以达到延长传输距离的目的。
模块设置

  1. MD0 = 0,MD1 = 0
  2. 需将 0x07 特殊功能寄存器配置成 0x0020,中继模式
  3. 设置中继模式下的上一级组号地址和下一级组号地址(0x1B~0x1E 寄存器)
  4. 中继模块和发送模块的信道必须设置成相同
  5. MD0 = 1,MD1 =0

远程配置

功能说明
可以通过一个模块通过无线配置另一个或多个模块的工作参数,需要发送方模块使能远程配置的功能,远程配置命令需要在配置命令之前加上两个关键字,并将命令字或上 0x40,即代表远程配置命令,如果命令错误发送方会把数据当作普通用户数据发出。
模块设置

  1. 需将 0x17 特殊功能寄存器打开远程配置功能
  2. 发送模块和接收模块的信道必须设置成相同
    举例说明

输出地址

功能说明
输出地址功能打开之后,会在用户数据之前加上发送方的地址信息,以便接收方能够分辨数据的来源。
模块设置

  1. 需将 0x17 特殊功能寄存器打开输出地址功能
    举例说明

输出分隔符

功能说明
输出分隔符功能打开之后,会在用户数据之前加上用户设置的分隔符,以便接收方能够分辨数据的界限。
模块设置

  1. 需将 0x17 特殊功能寄存器打开输出分隔符
  2. 将 0x0C 特殊功能寄存器设置为想要发送的分隔符内容
  3. 将 0x0D 特殊功能寄存器设置为想要分隔符的长度
    举例说明

自动应答

功能说明
发送方发送数据之后,会等待接收方的应答数据包,当收到数据包的时候,表示当前数据包发送成功,如果 超时没有收到数据包,那么发送方电台会自动重新发送本包数据,直到收到应答数据包或者发送到最大数据包数 量为止。
模块设置

  1. 需将 0x08 特殊功能寄存器的第 7 位配置成 1,打开稳定传输功能,默认关闭。
  2. 需将 0x08 特殊功能寄存器的第 6~0 位配置成需要重新传输的次数,最大 127 次,默认 5 次。
  3. 需将 0x09 特殊功能寄存器配置成需要重新传输的间隔,单位为 ms,默认为 1000ms
    举例说明

组包可配

功能说明
模块从串口接收到数据不会立即发送出去,会等到用户设置的一个组包界限后才会将数据传出,组包最大可 配 230 个字节,分包时间如果小于当前波特率下三个字节的传输时间,模块会自动校正到三个字节的传输时间。
模块设置

  1. 需将 0x0E 特殊功能寄存器配置为需要的分包长度字节数,默认 64 个字节。
  2. 需将 0x0F 特殊功能寄存器配置为需要的分包间隔时间,默认为三个字节的传输延时。

递传模式

功能说明
处于递传模式下的设备会自动将数据往上下两个方向传输,知道最终节点才会输出数据,如果需要每一个节 点都输出数据,将目的地址设置为 0xFF 即可。
模块设置

  1. 需将 0x07 特殊功能寄存器配置递传模式 0x0100.
  2. 设置各级模块的地址,地址依次增加。

随机延时后发送

功能说明
打开随机延时后发送的设备会在每次发送数据之前随机延迟一段时间再把数据发送出去,目的是为了降低数 据碰撞的几率,最大延时时间会小于一个完整包的传输时间。
模块设置

  1. 需将 0x17 特殊功能寄存器打开随机延时

扫描信道后发送

功能说明
打开扫描信道后发送的设备会在每次发送数据之前扫描当前信道是否被占用,如果被占用会等待一段时间后 再次扫描,直到信道干净再把数据发送出去,目的是为了降低数据碰撞的几率。
模块设置

  1. 需将 0x17 特殊功能寄存器打开扫描信道后发送

定时上报

功能说明
处于定时上报模式的设备会自动组成星形网络,一个主机多个从机,从设备会在入网之后由主设备分配网络 号,并在属于自己的时间片中发送缓存的数据,其他时间不会发送数据,主机需要发送数据的时候也需要在主机 的时间片发送数据,其他时间都是处于接收状态。
模块设置

  1. 需将 0x07 特殊功能寄存器配置定时上报模式 0x0400
  2. 需将 0x0A 特殊功能寄存器设置定时上报的主机还是从机。
  3. 设置主机和从机的地址。

主动轮询

功能说明
处于轮询模式的设备会自动组成星形网络,从设备发送数据的时候,不会立即发向主设备,而是等待主设备 的请求,当收到请求的时候,才会把数据发送出去,主设备发送数据需要等待主设备的发送发送窗口才会发送数据出去。
模块设置

  1. 需将 0x07 特殊功能寄存器配置轮询模式 0x0800
  2. 需将 0x0A 特殊功能寄存器设置轮询模式的主机还是从机。
  3. 设置主机和从机的地址。

组包输出

功能说明
此功能需要发送方和接收方都打开组包的功能,当接收方收到数据之后,会将数据组包成一个大的数据包, 最大可到 800 个字节,一次性将一个大数据包全部输出,适用范围更加广泛,如果需要保证输出数据的完整性, 可以选择打开是否在接收之后校验数据。
模块设置

  1. 发送和接收都需将 0x17 特殊功能寄存器打开组包输出功能
  2. 如果需要保证数据的可靠性,可以选择打开 0x17 特殊功能寄存器下的接收完成后请求丢失包的选项。
    备注:
    [ 1 ]0x14 的设置详见参数配置命令中的 OPTION 寄存器
    [ 2 ]平均功耗是由最高功耗和最低功耗的占空比所决定,模块的功耗受空速、波特率、唤醒时间和发送字节数的影响。

以上是关于LoRa扩频串口通信模块的配置实例详解的主要内容,如果未能解决你的问题,请参考以下文章

lora扩频串口无线通信模块的功能解析(含中继透传等)

干货lora扩频无线串口模块的引脚定义及引脚功能

lora无线数传通信模块亿佰特E22串口模块用于物联网地震预警传感通信方案

LoRa模块无线收发通信技术详解

LoRa技术实现社区天然气抄表的应用

基于STM32的LoRa无线通信(AS32—TTL-1W)