LoRA 通信和组网
LoRA 通信和组网
概述
本文定义了一个非 LoRA WAN 简单组网和通信协议
LoRA 网关
- 基于 ARM 和 Linux 系统
- 通过以太网/4G 连接到互联网
- 内置 LoRA 网关模组,通过串口/AT指令和主机通信
LoRA 模组
LoRA 网关模组和 LoRA 从机模组采用点到点的无线通信模式
注意: 只有同样的通信频率和网络号的模组才能相互通信
主机控制接口
LoRA 模块和主机通过串口通信,使用 AT 指令,具体请查看模组厂商提供的资料, 主要功能如下
- 查询固件版本
- 打开/关闭接收窗口
- 设置远端地址
- 设置本地地址
- 设置通信频率
- 设置通信速率
- 设置发送功率 (2~20)
- 设置网络号 (1~254) 默认 90
- 发送数据
通信速率
等级 | 速率 |
---|---|
0 | 122 |
1 | 149 |
2 | 407 |
3 | 487 |
4 | 732 |
5 | 867 |
6 | 1302 |
7 | 2278 |
8 | 4557 |
9 | 9114 |
网关参数配置
配置接入网关的从机列表
LoRA 参数
NAME | CODE | TYPE | DEFAULT | NOTE |
---|---|---|---|---|
address | a | integer | 0 | LoRA 本机地址, 1~65534 |
device | d | integer | 1 | LoRA 连接的串口设备,0~2 |
rate | r | integer | 0 | LoRA 通信速率, 0~9 |
frequency | f | integer | 0 | LoRA 通信频率,单位为 100,000 Hz |
tpl | t | integer | 0 | LoRA 发射功率, 2~20 |
mode | m | integer | 0 | LoRA 传输模式 |
network | n | integer | 1 | LoRA 网络 ID, 1~254 |
例如
{
lora: {
address: 22,
device: 2,
rate: 0,
frequency: 4700,
tpl: 9,
mode: 0,
network: 0
}
}
从机列表
更多信息请参考核心产品实现参考中 DT02 网关一节
DT02 网关 LoRA 节点配置方法:
- 节点类型为
lora
did
为从机对接的传感器/设备的 IDsecret
为从机对接的传感器/设备的密钥address
为 LoRA 从机地址 (0~65534)protocol
总是为 modbususername
和password
暂未用到
例如
{
"lora": [{
"did": "5w64cflrhs3s",
"secret": "0123456789abcdef",
"address": 100,
"protocol": "modbus"
}]
}
LoRA 从机
从机控制接口
LoRA 网关主要通过 Modbus 协议和从机控制器进行通信
Modbus 通信模式下,网关为主机,其他 LoRA 节点都为从机,只能由主机主动发起 Modbus 请求
LoRA 模块 (包含网关) 通过一个 16 位的整数标识每个模块
LoRA 数据格式
LoRA 数据由数据帧组成,每个数据帧包含消息头 (8Bytes Header) 和消息体 (Payload)
NO. | NAME | SIZE | NOTE |
---|---|---|---|
1 | COMPANY ID | 3 | 组网 ID |
2 | TYPE | 1 | 数据类型 |
3 | LoRA ID | 2 | LoRA 从机地址 |
4 | SEQ | 2 | 消息序列号 |
5 | PAYLOAD | N | 负载内容 |
- 数据帧长度最大不超过 200 字节
- LoRA 从机地址: 1 ~ 65534
- 0: 保留
- 65535:广播地址
消息类型
- 0: Modbus 消息
- 1: 控制消息
- 255: 广播消息
LoRA 串口参数
LoRA 模组可以通过 RS485 接口外接 Modbus 设备,在访问前需要配置串口参数
同样可通过 Modbus 协议设置串口参数,主要可设置的参数如下:
参数名称 | 地址 | 长度 | 名称 | 单位 | 类型 | 缩放 | 偏移 | 范围 |
---|---|---|---|---|---|---|---|---|
波特率 | 1H | 1 | baudrate | - | 0 | 1 | 0 | 1200,2400,4800,9600... |
校验方式 | 2H | 1 | parity | - | 0 | 1 | 0 | 'N','E' |
数据位 | 3H | 1 | databits | - | 0 | 1 | 0 | 8 |
停止位 | 4H | 1 | stopbits | - | 0 | 1 | 0 | 1,2 |
- Modbus 从本地址总是为
1
- LoRA 数据类型 type 为
1
备注:
- nRF52840 只支持偶校验,和 8 位数据位
- nRF52840 支持的波特率: 1200, 2400, 4800, 9600, 14400, 19200, 28800, 31250, 38400, 56000, 57600, 78600, 115200, 230400, 250000, 460800, 921600, 1000000
从机配置
需要在网关上为 LoRA 从机配置相关参数,网关才能正确地访问 LoRA 从机外接的 Modbus 设备,主要需配置的参数如下:
从机配置参数
NAME | CODE | TYPE | NOTE |
---|---|---|---|
actions | a | object | 绑定的操作列表 |
events | e | object | 绑定的事件列表 |
forms | f | object | 串口配置 |
properties | p | object | 绑定的属性列表 |
updated | u | integer | 配置参数最后更新时间 |
串口等配置参数
NAME | CODE | TYPE | DEFAULT | NOTE |
---|---|---|---|---|
address | a | integer | 0 | Modbus 从机地址, 1 ~ 247 |
baudrate | b | integer | 9600 | 串口波特率 |
databits | d | integer | 8 | 串口数据位 |
interval | i | integer | 60 | 采集间隔,单位为秒 |
mode | m | integer | 0 | Modbus 传输模式 |
parity | p | integer | 0 | 串口校验方式 |
stopbits | s | integer | 1 | 串口停止位 |
timeout | t | inte+ger | 2000 | 读写超时时间,单位为毫秒 |
interval (i)
采集间隔, 默认为 60 秒mode (m)
传输模式 (0-RTU
, 1-ASCII
, 2-TCP
, 3-LoRA
), 默认为 0-RTU
timeout (t)
超时时间, 默认为 500 毫秒
属性配置
从机属性配置参数请参考核心设备参考实现
一文的Modbus 设备属性配置
一节
操作配置
从机操作配置参数请参考核心设备参考实现
一文的Modbus 设备操作配置
一节
事件配置
从机事件配置参数请参考核心设备参考实现
一文的Modbus 设备事件配置
一节
组网
组网的目的是将 LoRA 模块和网关建立关系,实现双向通信
节点类型
LoRA 网关
LoRA 网关需要的信息
- 每个从机的地址
LoRA 从机
LoRA 从机需要的信息
- 网关的通信频率
- 网关的通信速率
- 网关的地址
- 网关的标识符
从机工作模式
Class A
终端在向网关发送数据后,会短暂打开一个接收窗口实现下行数据的接收,可以保证最小的功耗
Class C
终端总是处于接收状态,只有在发送数据时才暂时关闭,下行数据可以更加实现接收,但是功耗将是最大
组网参数
网关参数
- 网关本机地址
- 频率
- 速率
- 网络 ID
- 从机地址列表
从机参数
- 从机本机地址
- 网关地址
- 网关频率
- 网关速率
- 网络 ID