【从0到1搭建LoRa物联网】12、LoRa网关与平台通讯协议
系列文章:
【从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 | 发给网关 | 1700 | PUSH_DATA消息的ACK | |
PULL_DATA | 发给服务器 | 任意 | 1700 | |
PULL_ACK | 发给网关 | 1700 | PULL_DATA的ACK | |
PULL_RESP | 发给网关 | 1700 | 服务器下发给网关,需要发送RF数据 | |
TX_ACK | 发给服务器 | 1700 | PULL_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 | 随机值 |
3 | PUSH_DATA 标识码 0x00 |
4-11 | 网关ID |
12-结束 | JSON对象 |
4.2、PUSH_ACK帧格式
字节 | 功能 |
---|---|
0 | 协议版本= 2 |
1-2 | PUSH_DATA的随机值,用来识别ACK |
3 | PUSH_ACK标识码0x01 |
4.3、PULL_DATA帧格式
字节 | 功能 |
---|---|
0 | 协议版本 = 2 |
1-2 | 随机值 |
3 | PULL_DATA 的标识码 0x02 |
4-11 | 网关ID |
4.4、PULL_ACK 帧格式
字节 | 功能 |
---|---|
0 | 协议版本= 2 |
1-2 | PULL_DATA的随机值,用来识别ACK |
3 | PULL_ACK 的标识码 0x04 |
4.5、PULL_RESP 帧格式
字节 | 功能 |
---|---|
0 | 协议版本=2 |
1-2 | 随机值 |
3 | PULL_RESP的标识码 0x03 |
4-结束 | JSON对象 |
4.6、TX_ACK 帧格式
字节 | 功能 |
---|---|
0 | 协议版本= 2 |
1-2 | PULL_RESP 的随机值,用来识别ACK |
3 | TX_ACK 的标识码 0x05 |
4-11 | G网关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物联网》系列的所有软硬件资料将会分享在公众号。
【从0到1搭建LoRa物联网】12、LoRa网关与平台通讯协议相关推荐
- 【全网详解】从0到1搭建双十一实时交易数据展示平台——Spark+Kafka构建实时分析系统
目录 万事具备之巧借东风 预备知识 环境搭建 Spark安装 Kafka安装 Kafka核心知识介绍 Kafka开启及测试服务 Python依赖库 PyCharm安装 搭建总结 八仙过海之各显神通 数 ...
- 【从0到1搭建LoRa物联网】15、LoRa连接到The Things Network
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】13、低成本单通道网关(一)
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】16、LoRa连接到腾讯云物联网平台
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】17、LoRa连接到chirpstack
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】18、LoRa应用服务器Application Server
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】20、LoRaWAN扩展
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】14、低成本单通道网关(二)
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 【从0到1搭建LoRa物联网】19、LoRa串口透传例程(补充)
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- LoRa、LoRaWAN及网关相关技术介绍
LoRa.LoRaWAN及网关技术介绍 1. LoRa与LoRaWAN 2. LoRaWAN协议定义的终端节点工作模式 3. LoRaWan网络架构 4. 组网方式 5. 终端节点→网关:多对一时 6 ...
最新文章
- localhost❤matrix6
- hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
- 让你的网站在移动端健步如飞
- 软件测试的艺术第三章总结
- Fragment的布局中自定义Layout的onSizeChanged添加组件失败的问题
- 牛逼! IDEA 2020 要本土化,真的是全中文了!
- 开源基于Canal的开源增量数据订阅消费中间件
- php+api抖音随机播放视频源码
- mysql sql优化入门_Mysql入门SQL 语句优化方法30例
- matlab模拟砂轮形貌,基于多颗磨粒随机分布的虚拟砂轮建模及磨削力预测
- java随机生成字母用三元运算符,【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数...
- I/O设备与主机的联系方式
- 实践中 XunSearch(讯搜)更新索引方案对比
- 【绘图】Origin关闭加速模式(speed mode)
- 用python画一只加拿大电鳗
- 一次搞明白什么是MVC、MVP、MVVM?
- EXCEL成绩分出优秀及格与不及格
- 命题逻辑完备性定理证明
- 房屋租赁系统 nodejs+vue微信小程序
- 元器件学习——————三极管