概述
欢迎关注燚智能头条号↗
燚智能硬件开发网
用简单的语言,讲复杂的技术!
正反两个传输方向
物联网中,我们会有“正向”和“反向”两个数据传输方向。
正向:终端设备发送数据给服务器,也叫上行。例如一个温度传感器向服务器上报温度数据。
反向:服务器给终端设备发控制命令,也叫下行。例如通过服务器给智能窗帘下发“关窗帘”的指令。
终端能找到服务器,但服务器找不到终端
不管是互联网还是物联网,都面临这个问题。
终端能通过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单车锁和远程抄表那样,定时唤醒系统的模式。此时基站也不能随时找到终端设备。
欢迎关注燚智能头条号↗
燚智能周教授,智能硬件开发实战派
精彩内容回顾:
详解NB-IOT上行和下行数据传输方式
物联网常用的通信模块介绍
NB-IOT物联网硬件产品,功耗实测数据分析!
最后
以上就是落寞夏天为你收集整理的NB-IOT物联网,网络传输变化很大!反向控制、心跳包、功耗分析正反两个传输方向终端能找到服务器,但服务器找不到终端服务器要找到终端,就需要“长连接”要维持长连接,就需要“心跳包”但是,心跳包很耗电电池供电的物联网终端,如何省电?为什么手机不需要心跳包也能接电话?NB-IOT的心跳包机制PSM极致省电模式的全部内容,希望文章能够帮你解决NB-IOT物联网,网络传输变化很大!反向控制、心跳包、功耗分析正反两个传输方向终端能找到服务器,但服务器找不到终端服务器要找到终端,就需要“长连接”要维持长连接,就需要“心跳包”但是,心跳包很耗电电池供电的物联网终端,如何省电?为什么手机不需要心跳包也能接电话?NB-IOT的心跳包机制PSM极致省电模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复