OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7728|回复: 0

NB-IOT物联网,网络传输变化很大!反向控制、心跳包、功耗分析

[复制链接]

221

主题

221

帖子

0

精华

高级会员

Rank: 4

积分
762
金钱
762
注册时间
2021-5-18
在线时间
28 小时
发表于 2021-6-4 13:39:32 | 显示全部楼层 |阅读模式
正反两个传输方向

物联网中,我们会有“正向”和“反向”两个数据传输方向。

正向:终端设备发送数据给服务器,也叫上行。例如一个温度传感器向服务器上报温度数据。

反向:服务器给终端设备发控制命令,也叫下行。例如通过服务器给智能窗帘下发“关窗帘”的指令。

终端能找到服务器,但服务器找不到终端

不管是互联网还是物联网,都面临这个问题。

终端能通过IP地址、域名等方式找到服务器。但是终端自己没有域名,也没有独立不变的IP地址,服务器不能主动找到终端。

服务器要找到终端,就需要“长连接”

要想随时随地被服务器找到,就需要建立一个通道(长连接)。不管是Socket还是MQTT,都会建立这个长连接。例如微信、QQ这样的即时通信,以及摩拜单车的开锁等。

如果没有这个长连接,就不会收到微信推送的消息,单车也做不到立刻开锁。

要维持长连接,就需要“心跳包”

终端设备和服务器之间的这个“长连接”,实际上是个虚拟的连接,中间经过了无数道网络节点,每个节点都可能把这个长连接断掉。

因此终端设备需要定期给服务器发送一个心跳包,告诉服务器“我还活着、我在这里,不要把我踢掉!”。一般是几分钟一次。

但是,心跳包很耗电

对于手机,几分钟发一个心跳包,耗电不算大,还能接受。(iPhone只维持一个系统级长连接,而Android每个APP有自己的长连接,所以Android比iPhone更费电一些)

但对于电池供电的物联网设备,这个心跳包就非常耗电了。首先,不能断开和基站之间的信号连接,信号一断,连接就断了。其次,每次发送心跳包,至少要几秒钟的时间,需要大功率发射信号。

拿摩拜单车举例,虽然内置了超过5000mAh的锂电池,但是依然需要充电。第一代摩拜单车骑起来那么费劲,主要就是要通过骑行给电池充电。后面的单车,也免不了一块太阳能充电板来充电。

电池供电的物联网终端,如何省电?

想要省电,必须要把通信模块完全关闭掉,只维持RTC运行。此时是没有连接到网络上的。

终端设备定期唤醒一次,连上服务器,上报消息,接收指令,然后再关闭,继续休眠。

服务器无法随时随地找到终端,只有等终端唤醒之后才能联系上。

OFO的单车和远程抄水表终端,都是这样的方式。所以一节电池能用几年。

为什么手机不需要心跳包也能接电话?

2G网络下,手机的在网待机电流约2mA,挺大的。这是因为手机和基站之间本身就有“心跳包”,用来让基站随时找到手机。因此不需要TCP/IP的心跳包,也能够随时接收到电话,和短信。

NB-IOT的心跳包机制

NB-IOT和2G一样,基站都可以随时找到物联网终端。以现在国内最成熟的中国电信的NB-IOT系统为例,没有使用HTTP和MQTT传输数据,而是采用了最轻量化的CoAP传输协议。传一次就结束,不维持传统的TCP/IP长连接,也不需要额外的心跳包。采用了NB-IOT网络自己的长连接机制(DRX模式),使基站能够随时向终端发数据。

(NB基站已经做好了心跳包)

PSM极致省电模式

NB-IOT还有一个PSM模式,能过做到“1节电池用10年”,就是采用的OFO单车锁和远程抄表那样,定时唤醒系统的模式。此时基站也不能随时找到终端设备。

原文链接:https://www.yunduoketang.com/article/zaixianjiaoyusaasxitong.html


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表