【从0到1搭建LoRa物联网】12、LoRa网关与平台通讯协议

article/2025/4/30 6:17:18

系列文章:
【从0到1搭建LoRa物联网】1、LoRa物联网的架构
【从0到1搭建LoRa物联网】2、终端设备开发方式
【从0到1搭建LoRa物联网】3、国产LoRa终端ASR6505软硬件
【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO
【从0到1搭建LoRa物联网】5、国产LoRa终端ASR6505驱动DHT11
【从0到1搭建LoRa物联网】6、国产LoRa终端ASR6505 I2C接口
【从0到1搭建LoRa物联网】7、国产LoRa终端ASR6505驱动段式LCD例程
【从0到1搭建LoRa物联网】8、国产LoRa终端ASR6505 PingPong通信
【从0到1搭建LoRa物联网】9、国产LoRa终端ASR6505 PingPong通信OLED显示
【从0到1搭建LoRa物联网】10、LoRa终端ASR6505 ADC采样
【从0到1搭建LoRa物联网】11、ASR6505 LoRaWAN通信

1、GWMP(LoRa Gateway Message Protocol)协议

同一个网关能连接到不同的Network Server、不同厂家的网关可以连接到同一个Network Server,这就要求网关和Network Server之间有统一的通讯协议。这个协议是由semtech制定并维护的,网关和网络服务器之间的通讯协议简称GWMP协议,也叫包转发协议。

2、GWMP消息类型

GWMP消息类型传输方向网关源端口号网络服务器UDP端口号网关UDP目标端口号
PUSH_DATA发给服务器任意1700
PUSH_ACK发给网关1700PUSH_DATA消息的ACK
PULL_DATA发给服务器任意1700
PULL_ACK发给网关1700PULL_DATA的ACK
PULL_RESP发给网关1700服务器下发给网关,需要发送RF数据
TX_ACK发给服务器1700PULL_RESP的ACK,包含RF发送任务返回状态

3、时序图

3.1、上行时序图

+---------+                                                    +---------+
| Gateway |                                                    | Server  |
+---------+                                                    +---------+| -----------------------------------\                         ||-| When 1-N RF packets are received |                         || ------------------------------------                         ||                                                              || PUSH_DATA (token X, GW MAC, JSON payload)                    ||------------------------------------------------------------->||                                                              ||                                           PUSH_ACK (token X) ||<-------------------------------------------------------------||                              ------------------------------\ ||                              | process packets *after* ack |-||                              ------------------------------- ||                                                              |

PUSH_DATA <–> PUSH_ACK:网关向网络服务器提交上行RF数据包。

3.2、下行时序图
+---------+                                                    +---------+
| Gateway |                                                    | Server  |
+---------+                                                    +---------+| -----------------------------------\                         ||-| Every N seconds (keepalive time) |                         || ------------------------------------                         ||                                                              || PULL_DATA (token Y, MAC@)                                    ||------------------------------------------------------------->||                                                              ||                                           PULL_ACK (token Y) ||<-------------------------------------------------------------||                                                              |

PULL_DATA <–> PULL_ACK:GW向NS发送“心跳”。

+---------+                                                    +---------+
| Gateway |                                                    | Server  |
+---------+                                                    +---------+|      ------------------------------------------------------\ ||      | Anytime after first PULL_DATA for each packet to TX |-||      ------------------------------------------------------- ||                                                              ||                            PULL_RESP (token Z, JSON payload) ||<-------------------------------------------------------------||                                                              || TX_ACK (token Z, JSON payload)                               ||------------------------------------------------------------->|

PULL_RESP <–> TX_ACK:NS向GW提交下行RF数据包。

4、 数据格式

4.1、PUSH_DATA帧格式

字节功能
0协议版本 = 2
1-2随机值
3PUSH_DATA 标识码 0x00
4-11网关ID
12-结束JSON对象

4.2、PUSH_ACK帧格式

字节功能
0协议版本= 2
1-2PUSH_DATA的随机值,用来识别ACK
3PUSH_ACK标识码0x01

4.3、PULL_DATA帧格式

字节功能
0协议版本 = 2
1-2随机值
3PULL_DATA 的标识码 0x02
4-11网关ID

4.4、PULL_ACK 帧格式

字节功能
0协议版本= 2
1-2PULL_DATA的随机值,用来识别ACK
3PULL_ACK 的标识码 0x04
4.5、PULL_RESP 帧格式
字节功能
0协议版本=2
1-2随机值
3PULL_RESP的标识码 0x03
4-结束JSON对象
4.6、TX_ACK 帧格式
字节功能
0协议版本= 2
1-2PULL_RESP 的随机值,用来识别ACK
3TX_ACK 的标识码 0x05
4-11G网关ID
12-end可选JSON 对象

5、JSON协议

5.1、网关向服务器提交接收到的RF数据包

{"rxpk":[{"time":"2013-03-31T16:21:17.528002Z",               //收到LoRa帧的UTC时间 "tmst":3512348611,								    //收到RF信号的SX1301内部时间"chan":0,										    //信道"rfch":1                                            //射频前端,一般130x会有两个射频前端"freq":470.3,                                       //频率"stat":1,             //接收收RF数据的CRC状态。1代表正确,-1代表CRC校验不过,0代表没有CRC校验"modu":"LORA",                                        //射频调制方式"datr":"SF7BW125",                                    //速率"codr":"4/6",                                         //编码率"rssi":-35,											  //接收灵敏度"lsnr":5.1,											  //信噪比"size":32,											  //数据长度"data":"-DS4CGaDCdG+48eJNM3Vai-zDpsR71Pn9CPA9uCON84"  //base64编码数据}
]}

5.2、服务器向网关下发RF数据包

{"txpk":{"imme":true,		    //是否立刻发送"freq":500.3,			//频率"rfch":0,				//射频前端"powe":14,			    //发射功率"modu":"LORA",          //射频调制方式"datr":"SF11BW125",     //速率"codr":"4/6",           //编码率"ipol":false,           //I/Q信号反转"size":32,              //数据长度"data":"H3P3N2i9qc4yt7rK7ldqoeCVJGBybzPY5h1Dd7P7p8v"    //base64编码数据
}}

5.3、网关状态

{"stat":{"time":"2014-01-12 08:59:28 GMT",       //网关的UTC时间"lati":46.24000,						//纬度"long":3.25230,							//经度"alti":145,								//高度"rxnb":2,								//收到的无线数据包数"rxok":2,								//正确的无线数据包数"rxfw":2,								//转发的无线数据包数"ackr":100.0,							//网关收到PUSH_ACK的百分比"dwnb":2,								//网关收到服务器下发RF数据包数量"txnb":2								//网关RF发出的数据包数
}}

欢迎关注微信公众号【物联网思考】,回复关键字“ ASR6505”获取资料,《从0到1搭建LoRa物联网》系列的所有软硬件资料将会分享在公众号。在这里插入图片描述


http://chatgpt.dhexx.cn/article/y7o8DZpr.shtml

相关文章

物联网LoRa系列-11:LoRa终端--基于物理层协议的PingPong应用程序的软件架构

至此&#xff0c;我们已经搭建好LoRa终端的软硬件开发环境&#xff0c;接下来&#xff0c;将解构和实现LoRa终端的应用程序。 LoRa终端的应用程序&#xff0c;&#xff08;1&#xff09;可以直接基于LoRa的物理层协议&#xff08;LoRa芯片实现&#xff09;&#xff1b;&#x…

自有协议的LoRa模块应用

LoRa主要是由SemTech公司开发并拥有专利的物理层的调制技术。基于LoRa&#xff0c;LoRa联盟也开发和开放了的LoRaWAN的协议&#xff0c;用于组建网络和实现应用。Ali在LoRaWAN基础上又开发了LPWAN的物联网应用平台&#xff0c;这些都需要遵从专有的LoRa芯片&#xff0c;专门协议…

LoRa协议在Arduino上的应用——原理及代码分析(一)

目录 LoRa简介硬件设备源码分析Sender 两种调制方式 LoRa简介 详细的LoRaWAN协议解析在这里 本文主要介绍LoRa在Arduino上的实现过程&#xff0c;从而学习LoRa协议的实现。 硬件设备 包括传统的GFSK调制技术以及LoRa&#xff08;远程&#xff09;扩频技术 这里说一下啥叫LoR…

物联网LoRa系列-25:LoRa终端--LoRaWAN协议简介与LoRa WAN终端软件选择

前言&#xff1a; 从本篇文章开始&#xff1a; 从通信节点的角度度看&#xff0c;将从Lra终端对点对通信转到LoRa终端与LoRa网关的通信、LoRa终端与LoRa云服务器的通信&#xff1b; 从协议栈的角度看&#xff0c;将从物理层上升到LoRa的MAC层&#xff0c; 即LoRaWAN&#xf…

lora三层服务器协议,LoRa以及LoRa包含的几种协议

为何LoRa成为“一夜爆红”的新技术呢?一定是因为它具有非常显著的特点: 长距离:1~20km 节点数:万级,甚至百万级 电池寿命:3~10年 数据速率3~50kbps LoRa作为一种无线技术,基于Sub-GHz的频段使其更易以较低功耗远距离通信,可以使用电池供电或者其他能量收集的方式供电。…

Lora如何组网?有哪些简单的Lora组网协议?

我从事物联网设计10余年&#xff0c;对无线通讯技术的ASK、FSK、Zigbee、Z-Wave、NB-Iot、Lora及LoraWan等都有一些或多或少的接触。 其中Lora无线通讯技术对我影响比较深刻&#xff0c;了解也相对比较透彻。 我在2016年接触的Lora无线通讯技术&#xff0c;但是&#xff0c;在…

什么是LoRa协议?

1 开场白 这篇文章给读者分享LoRa和LoRaWAN相关的技术简介, Low-Power, Wide-Area Networks(LPWAN)为实现数十亿的万物互联设备而生, LoRaWAN专为LPWAN网络优化更长的电池寿命,更长的距离和更低的代价。 [欢迎大家关注公众号:LoRa万物互联,获取更多LoRa资讯] 2 LoRa是什…

物联网LoRa系列-2:LoRa系统架构与协议栈详解

主要内容 1. 什么是Lora&#xff1f; 2. LoRa的主要特点&#xff1f; 3. LoRa的系统架构&#xff1f; 4. LoRa终端节点的网络连接方式&#xff1f; 5. LoRa终端节点的三种工作模式&#xff1f; 6. LoRa的协议栈&#xff1f; 1. 什么是LoRa LoRa是semtech公司创建的低功耗…

LoRa协议

注意&#xff1a;本页提供的信息来自LoRa™Alliance于2015年1月发布的LoRaWAN Specification V1.0。LoRa联盟负责随时更改规格&#xff0c;恕不另行通知。RF Wireless World不对任何与此相关的问题负责。请参阅LoRa Alliance&#xff08;https://www.lora-alliance.org&#xf…

用命令:tar -zxvf,解压tar.gz包失败的问题解决。

问题描述&#xff1a; 主机上&#xff0c;使用tar -zxvf 解压tar.gz包的时候&#xff0c;出现以下错误&#xff1a; gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 问题办法&#xff1a; 开门见山&#xff0c;…

Liunx tar -zxvf 命令解压失败

使用tar -zxvf 命令解压mysql.tar报错 [rootiZ2ze8f0mv6pvfs1n3rpgaZ mysql]# tar -zxvf mysql.tar gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 解决方案 去掉z参数&#xff0c;使用 tar -xvf 解压正常 […

tar -zxvf是什么意思

先上DJ&#xff0c;先上DJ 含义&#xff1a;使用gzip工具&#xff08;-z&#xff09;解压&#xff08;-x&#xff09;由参数-f指定的文件&#xff0c;并显示压缩过程中详细信息&#xff08;-v&#xff09; 参数含义tarLinux压缩/解压缩命令-z代表gzip&#xff0c;使用gzip工具…

word标题设置级别

想要这样子: 点击标题1,标题1前面就带有级别. 新建word是这样的,没有带级别: 转自:https://blog.csdn.net/xtggbmdk/article/details/82591717 选择多级列表菜单 “2”级的右侧选“标题2” .在标题3的右侧选择标题3

NPOI Word 多级标题结构设置

通过NPOI实现以下功能 首先通过Word新建个样式模板&#xff0c;该样式模板包括你想要的几个标题样式&#xff0c;比如我这里就需要三个样式&#xff0c;标题、标题1、标题2 打开Word,新建文档&#xff0c;然后输入内容&#xff0c;更改样式&#xff0c;另存为word模板&#xf…

word:如何一键修改同一级别标题

word&#xff1a;如何一键修改同一级别标题 1.选中任意一个三级标题——开始——编辑——选择——选中格式相似的文本 2.修改字体样式&#xff1a;开始——样式——标题 3 ——右击——修改 样式名称不要修改——举例字体更改为&#xff1a;微软雅黑、五号、加粗、深红色——…

Word标题中按级别自动添加编号

一 大标题 1 标题1 1.1 标题1.1 1.1.1 标题添加 1.1.2 zaitian 1.2 新添加 1.2.1 在添加 1.3 标题1.2 2 标题2 2.1 标题2.1 2.2 添加新标题 3 标题2.2 3.1 标题天机 3.1.1 标题3 教程&#xff1a;为了实现上述的样式&#xff0c;即标题编号按照&#xff1a; 标题大级别.中级级…

Word文档标题自动增加序号

在编写Word文档时&#xff0c;经常需要使用到多级标题&#xff0c;为了可读性&#xff0c;一般需要给标题增加序号&#xff0c;该文档就是作者实际操作过程中遇到的问题和解决方法。 第一步&#xff1a; 选择“开始”-----》“段落”---》“多级列表”---》“定义新的多级列表…

word设置标题多个级别

https://jingyan.baidu.com/article/1876c852468dd8890b1376a9.html 1.在开始菜单里面看看标题 2.选择多级列表菜单 3.点击下面更多按钮&#xff0c;在”1“的右侧选”标题1“ 4.在“2”级的右侧选“标题2” 5.在标题3的右侧选择标题3

java生成word带多级标题,word自动生成多级标题的方法

毕业论文格式是一件很麻烦的事&#xff0c;通过修改各级标题来实现。如何快速地修改格式呢?接下来学习啦小编为你分享word自动生成多级标题的方法。希望对你有帮助! word自动生成多级标题的方法 使WORD里面的文章自动生成目录: 假如文章中标题格式为 第一节……大标题(一级) 1…

word@导航窗格@标题的大纲级别@章节导航

文章目录 项目符号编号多级列表项目符号编号多级列表&#x1f388;多级列表的定义多级列表(multilevel list)绑定标题样式(heading style)&#x1f388;重新自定义多级列表 补充:论文的章节结构论文写作中编号和多级列表的常见用途章节标题和子标题列表和条目参考文献图表和表格…