首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >实用的LoRaWAN 应用层协议规范

实用的LoRaWAN 应用层协议规范

原创
作者头像
用户8921672
发布2025-10-01 13:19:02
发布2025-10-01 13:19:02
6500
代码可运行
举报
文章被收录于专栏:LoRa 知识LoRa 知识
运行总次数:0
代码可运行

1. 文档概述

1.1. 目的与范围

本协议旨在建立物联网终端设备与应用服务器之间的直接通信标准,涵盖LoRaWAN设备上行数据协议及门思科技设备专用参数配置协议。协议设计充分考虑:

  • 兼容性:支持多型号设备接入
  • 扩展性:保留未来功能扩展空间
  • 可靠性:完善的数据传输保障机制

1.2. 协议架构

2. 核心术语定义

2.1. 设备类型

术语

定义

DTU

通过RS-485采集终端设备数据并通过LoRaWAN转发的网关设备

终端设备

最末端传感器(电表、水表、温湿度传感器等)

LoRaWAN设备

既具备传感能力又自带LoRaWAN通信模块的设备(如KS52温湿度表)

2.2. 网络要素

术语

技术说明

Confirm数据包

需ACK确认的重传数据包(默认重试5次)

Unconfirm数据包

无需确认的数据包(默认发送1次)

ClassA/C

A类:电池供电,仅在上行后开放接收窗口;C类:常供电,持续监听下行信道

3. LoRaWAN网络规范

3.1. 端口分配策略

端口范围

用途

数据类型

说明

11-50

常规传感器数据

上行

建议按设备类型分配固定端口

51

透传模式

双向

DTU原始数据转发

52-199

扩展应用端口

双向

保留未来使用

201

固件升级

下行

系统保留

214

参数配置

双向

门思设备专用

3.2. 高级网络功能

3.2.1. ADR机制

LoRaWAN节点具有ADR功能,可以根据实际网络环境调整通信速率,以最大化网络利用率。本协议标准要求节点侧开启本地ADR功能,自动化调整速率。

3.2.2. 时间同步

  • 精度要求:设备时钟偏差<5秒/天
  • 实现方式
    1. MAC层DeviceTimeReq命令(推荐)
    2. 应用层时间戳协议(备选)

3.2.3. 数据可靠性策略

数据类型

传输方式

重传机制

适用场景

周期上报数据

Unconfirm

1次发送

温湿度等可容忍丢失的数据

告警事件

Confirm

5次重试+ACK验证

火灾报警等关键事件

配置指令

Confirm

3次重试+应用层确认

参数修改等重要下行指令

4. 上行数据协议规范

4.1. 通用数据格式

代码语言:javascript
代码运行次数:0
运行
复制
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本标识(1B) | 控制字(1B) | 数据标识(1B) | 数据内容(NB) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.1.1. 版本标识详解

代码语言:javascript
代码运行次数:0
运行
复制
7   6   5   4   3   2   1   0
+---+---+---+---+---+---+---+---+
|EN | RFU   | 主版本号(0-15)    |
+---+---+---+---+---+---+---+---+
  • EN=1时版本标识有效
  • 示例:0x82表示启用V2.0协议

4.1.2. 控制字解析

代码语言:javascript
代码运行次数:0
运行
复制
7   6   5   4   3   2   1   0
+---+---+---+---+---+---+---+---+
|DIR|OP |RES |ACK | 行业标识    |
+---+---+---+---+---+---+---+---+
  • DIR:0=设备上行,固定为0
  • OP:0=读操作回复,1=写操作回复
  • RES:0=执行失败,1=成功
  • ACK:0=无应答,1=需要应答

4.2. KS52设备协议实例

4.2.1. 数据帧示例

代码语言:javascript
代码运行次数:0
运行
复制
21 07 03 0C 6E A005 00 F604 8C03 DB 00 00

4.2.2. 字段解析表

偏移

长度

字段

示例值

解析说明

0

1B

版本标识

0x21

协议版本V2.1

1

1B

控制字

0x07

上行数据

2

1B

数据标识

0x03

温湿度数据类型

3

1B

硬件版本

0x0C

V1.2硬件

4

1B

软件版本

0x6E

V1.10固件

5-6

2B

上报间隔

0xA005

小端模式,1445分钟(约24小时)

7

1B

设备状态

0x00

=0:正常 >0:异常

8-9

2B

温度值

0x04F6

12.7℃ (解析公式:val/100)

10-11

2B

湿度值

0x038C

90.8%RH

12

1B

电池电压

0xDB

3.3V (计算公式:2000+val*6.3)

13

1B

RSSI

0x00

-160dBm

14

1B

SNR

0x00

0dB

5. 参数配置协议(门思专用)

本指南适用于门思科技LoRaWAN设备的参数修改,通过NS平台下发指令实现。

5.1. 前提条件

  • 设备需在网关覆盖范围内且网关已接入NS平台
  • ClassA设备:需等待上行数据后才能下发参数
  • ClassC设备:可随时下发参数

5.2. 通信规范

5.2.1. 基本参数

项目

说明

通信端口

214(参数修改及回复均使用此端口)

成功响应

[功能码&0x7F] 01 00

失败响应

[功能码&0x5F] 01[失败代码]

无响应情况

设备未收到下发参数

5.3. 命令格式

5.3.1. 通用命令结构

字段

字节数

说明

功能码

1

0xC2(修改频点)/0xCF(修改业务参数)/其他

控制字

1

0x2A(修改频点)/0x04(修改业务参数)/其他

起始地址

1

参考具体设备说明

字节长度

2

小端模式

修改内容

n

与字节长度对应,小端模式

5.4. 参数读取

5.4.1. 请求格式

代码语言:javascript
代码运行次数:0
运行
复制
0x8F 0x02 [起始地址] [读取字节数]

5.4.2. 响应格式

代码语言:javascript
代码运行次数:0
运行
复制
0x2F [n+2] [参数地址] [n] [参数值]

5.4.3. 示例

  • 请求:0x8F 0x02 0x02 0x04(读取地址2开始的4字节)
  • 响应:0x2F 0x06 0x02 0x04 0xA3 0x74 0x00 0x00

5.5. 参数修改

5.5.1. 请求格式

代码语言:javascript
代码运行次数:0
运行
复制
0xCF [n+2] [起始地址] [n] [参数值]

5.5.2. 响应格式

代码语言:javascript
代码运行次数:0
运行
复制
[0x6F/0x4F] 0x01 [结果代码]

(0x6F=成功,0x4F=失败)

5.5.3. 示例

  • 请求:0xCF 0x03 0x08 0x01 0x03(修改地址8为0x03)
  • 成功响应:0x6F 0x01 0x00
  • 失败响应:0x4F 0x01 0x05

5.6. 特殊命令

5.6.1. 频点修改(通用)

代码语言:javascript
代码运行次数:0
运行
复制
0xC2 0x2A [起始地址] [字节长度] [参数值]
5.6.1.1. 频点参数表

参数

地址

字节数

格式说明

示例值(Hz)

channelMap

6

2

位使能

0x00FF

频点1

8

4

小端格式

470300000 (0x1C083560)

DRRange1

12

1

DR5-DR2

0x52

...

...

...

...(共8个频点)

...

5.6.1.2. 完整示例
代码语言:javascript
代码运行次数:0
运行
复制
C2 2A 08 28 
60 35 08 1C 52 
A1 42 0B 1C 52 
E2 4F 0E 1C 52 
23 5D 11 1C 52 
60 6A 14 1C 52 
A1 77 17 1C 52 
E2 84 1A 1C 52 
23 92 1D 1C 52

成功响应:0x620100

5.6.2. 设备复位

代码语言:javascript
代码运行次数:0
运行
复制
0xCF 0x03 0x09 0x01 0x01

成功响应:0x6F0100

5.6.3. 心跳周期修改

代码语言:javascript
代码运行次数:0
运行
复制
0xCF 0x04 0x3A 0x02 [分钟数(小端)]

示例(1800分钟=0x0708):

代码语言:javascript
代码运行次数:0
运行
复制
0xCF 0x04 0x3A 0x02 0x08 0x07

成功响应:0x6F0100 注:需复位生效


5.7. 6. 透传模式规范

5.7.1. 6.1 技术特性

  • 端口号:51(固定)
  • 数据格式:原始字节流,不做任何编解码

5.7.2. 6.2 应用场景

  1. 传统485设备数据透传
  2. 第三方协议兼容模式
  3. 调试期原始数据抓取

Thinklink : 开放的LoRaWAN应用平台,接收任何品牌的全球标准LoRaWAN设备,支持BACnet,Home assistant,Thingsboard对接。

📌 如果你正在寻找一个稳定、高效、低成本的远距离通信方案,LoRaWAN无疑是一个值得深入研究和应用的技术方向。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 文档概述
    • 1.1. 目的与范围
    • 1.2. 协议架构
  • 2. 核心术语定义
    • 2.1. 设备类型
    • 2.2. 网络要素
  • 3. LoRaWAN网络规范
    • 3.1. 端口分配策略
    • 3.2. 高级网络功能
      • 3.2.1. ADR机制
      • 3.2.2. 时间同步
      • 3.2.3. 数据可靠性策略
  • 4. 上行数据协议规范
    • 4.1. 通用数据格式
      • 4.1.1. 版本标识详解
      • 4.1.2. 控制字解析
    • 4.2. KS52设备协议实例
      • 4.2.1. 数据帧示例
      • 4.2.2. 字段解析表
  • 5. 参数配置协议(门思专用)
    • 5.1. 前提条件
    • 5.2. 通信规范
      • 5.2.1. 基本参数
    • 5.3. 命令格式
      • 5.3.1. 通用命令结构
    • 5.4. 参数读取
      • 5.4.1. 请求格式
      • 5.4.2. 响应格式
      • 5.4.3. 示例
    • 5.5. 参数修改
      • 5.5.1. 请求格式
      • 5.5.2. 响应格式
      • 5.5.3. 示例
    • 5.6. 特殊命令
      • 5.6.1. 频点修改(通用)
      • 5.6.2. 设备复位
      • 5.6.3. 心跳周期修改
    • 5.7. 6. 透传模式规范
      • 5.7.1. 6.1 技术特性
      • 5.7.2. 6.2 应用场景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档