应用层协议
本协议旨在建立物联网终端设备与应用服务器之间的直接通信标准,涵盖LoRaWAN设备上行数据协议及门思科技设备专用参数配置协议。协议设计充分考虑:
- 兼容性:支持多型号设备接入
- 扩展性:保留未来功能扩展空间
- 可靠性:完善的数据传输保障机制
核心术语定义
设备类型
| 术语 | 定义 |
|---|---|
| DTU | 通过RS-485采集终端设备数据并通过LoRaWAN转发的网关设备 |
| 终端设备 | 最末端传感器(电表、水表、温湿度传感器等) |
| LoRaWAN设备 | 既具备传感能力又自带LoRaWAN通信模块的设备(如KS52温湿度表) |
网络要素
| 术语 | 技术说明 |
|---|---|
| Confirm数据包 | 需ACK确认的重传数据包(默认重试5次) |
| Unconfirm数据包 | 无需确认的数据包(默认发送1次) |
| ClassA/C | A类:电池供电,仅在上行后开放接收窗口;C类:常供电,持续监听下行信道 |
LoRaWAN网络规范
端口分配策略
| 端口范围 | 用途 | 数据类型 | 说明 |
|---|---|---|---|
| 9 | EB查完立即透传 | 上行 | EB编译中使用内置的UpAfterQueryEvent创建的事件默认使用该端口 |
| 11-50 | 常规传感器数据 | 上行 | 建议按设备类型分配固定端口 |
| 51 | 透传模式 | 双向 | DTU原始数据转发 |
| 52-199 | 扩展应用端口 | 双向 | 保留未来使用 |
| 201 | 固件升级 | 下行 | 系统保留 |
| 214 | 参数配置 | 双向 | 门思设备专用 |
高级网络功能
ADR机制
LoRaWAN节点具有ADR功能,可以根据实际网络环境调整通信速率,以最大化网络利用率。本协议标准要求节点侧开启本地ADR功能,自动化调整速率。
时间同步
- 精度要求:设备时钟偏差<5秒/天
- 实现方式:
- MAC层DeviceTimeReq命令(推荐)
- 应用层时间戳协议(备选)
数据可靠性策略
| 数据类型 | 传输方式 | 重传机制 | 适用场景 |
|---|---|---|---|
| 周期上报数据 | Unconfirm | 1次发送 | 温湿度等可容忍丢失的数据 |
| 告警事件 | Confirm | 5次重试+ACK验证 | 火灾报警等关键事件 |
| 配置指令 | Confirm | 3次重试+应用层确认 | 参数修改等重要下行指令 |
上行数据协议规范
通用数据格式
plain
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本标识(1B) | 数据标识(1B) |数据内容(NB) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+参数配置协议(门思专用)
本指南适用于门思科技LoRaWAN设备的参数修改,通过NS平台下发指令实现。
前提条件
- 设备需在网关覆盖范围内且网关已接入NS平台
- ClassA设备:需等待上行数据后才能下发参数
- ClassC设备:可随时下发参数
通信规范
基本参数
| 项目 | 说明 |
|---|---|
| 通信端口 | 214(参数修改及回复均使用此端口) |
| 成功响应 | [功能码&0x7F] 01 00 |
| 失败响应 | [功能码&0x5F] 01[失败代码] |
| 无响应情况 | 设备未收到下发参数 |
命令格式
通用命令结构
| 字段 | 字节数 | 说明 |
|---|---|---|
| 功能码 | 1 | 0xC2(修改频点)/0xCF(修改业务参数)/其他 |
| 数据长度 | 2+n | 从本字节开始后的所有字节数(不包含本字节) |
| 起始地址 | 1 | 参考具体设备说明 |
| 字节长度 | 1 | 修改内容的数据长度 |
| 修改内容 | n | 与字节长度对应,小端模式 |
参数读取
请求格式
plain
0x8F 0x02 [起始地址] [读取字节数]响应格式
plain
0x2F [n+2] [参数地址] [n] [参数值]示例
- 请求:
0x8F 0x02 0x02 0x04(读取地址2开始的4字节) - 响应:
0x2F 0x06 0x02 0x04 0xA3 0x74 0x00 0x00
参数修改
请求格式
plain
0xCF [n+2] [起始地址] [n] [参数值]响应格式
plain
[0x6F/0x4F] 0x01 [结果代码](0x6F=成功,0x4F=失败)
示例
- 请求:
0xCF 0x03 0x08 0x01 0x03(修改地址8为0x03) - 成功响应:
0x6F 0x01 0x00 - 失败响应:
0x4F 0x01 0x05
特殊命令
频点修改(通用)
plain
0xC2 0x2A [起始地址] [字节长度] [参数值]频点参数表
| 参数 | 地址 | 字节数 | 格式说明 | 示例值(Hz) |
|---|---|---|---|---|
| channelMap | 6 | 2 | 位使能 | 0x00FF |
| 频点1 | 8 | 4 | 小端格式 | 470300000 (0x1C083560) |
| DRRange1 | 12 | 1 | DR5-DR2 | 0x52 |
| ... | ... | ... | ...(共8个频点) | ... |
完整示例
plain
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
设备复位
plain
0xCF 0x03 0x09 0x01 0x01成功响应:0x6F0100
心跳周期修改
plain
0xCF 0x04 0x28 0x02 [分钟数(小端)]示例(1800分钟=0x0708):
plain
0xCF 0x04 0x28 0x02 0x08 0x07成功响应:0x6F0100
6. 透传模式规范
6.1 技术特性
- 端口号:51(固定)
- 数据格式:原始字节流,不做任何编解码
6.2 应用场景
- 传统485设备数据透传
- 第三方协议兼容模式
- 调试期原始数据抓取