概述
前言:NB-iot今年大热,很多人都想介入其中,但是全网通篇都是些蓝图式的描述,很少有深入的,适合项目开发经理等看的文章,现在,自己有接触过一些,有些心得,分享给大家,打算尽量简略的说明,让大家评估到底是否适合自己要进行的项目,一个技术很好,但也要适用自己的应用场景才行。
一)低功耗的原理:
所有射频低功耗的原理都是一样的,这个有很多介绍,专业术语,这个简单介绍一下,因为这个是基础,如果不理解这个,就很难理解接下来的说明。
1、所有的无线,在开启接收和发送的时候,都是耗电的,而且是相对来说比较高的耗电,我们称之为发射功率和接收功率,所有的耗电就主要来自这里。
2、接收打开(开启RF电路在接收状态下),才能收到空中的数据,必然造成接收功耗,接收不打开,不产生任何功耗(关闭RF电路)。
基于上面两点,我们可以总结出低功耗的实现方法和难点:
在发送数据上实现低功耗处理的方法是:极短的时间内,将数据发射出去以后,立刻关闭RF电路停止发送,那么可以节约功耗。因为要发送的数据是我们可控的,所以这个低功耗很好做。
接收怎么办呢?这个是所有低功耗的难点和核心,因为接收关闭,就不能接收到任何数据,而且我们不知道别人数据是何时发送的,长时间打开接收,就会产生大功耗。接收的难点就是解决对方何时发送数据,我只在对方发送数据的时候开启接收就行了,接收完数据,我就关闭RF休眠,这样就能节电,就是低功耗了。至于怎么达到这个条件,我们下面再讲。
上面就是低功耗的原理,总结起来就是干活时间短,休息时间长,自然功耗就低。NB-iot的低功耗原理也是基于此。
二)NB-iot低功耗应用的限制:
讲限制前,我们需要引入一个概念,主机和从机,我们前面说的低功耗,都是针对从机来说的,对于主机来说,不能错过任何时间点的数据,那么我就要永远开着接收,这就是牺牲自己的功耗,来换取其他从机的低功耗,并且主机自己需要一个稳定的供电源,不需要低功耗,这样的话,我一个主机,能让N个从机实现低功耗,NB-iot里的主机,就是我们所说的基站,我们所有的从机,数据都要到基站中转,那么,我们基站就不需要低功耗的,我一直开着接收,随便哪个从机,无论何时发送数据出来,我都能接收到。
从上面讲的原理,就知道了NB-iot低功耗的一些限制:
1、我们把从机发送数据到主机的行为,叫做数据上行,这里的限制
就是数据量不能太大,比如NB-iot的速率,最大达到250kbps,就是说每秒能发送250kb这么多的数据,如果我们的一个应用,每秒要传送250kbps,那么等于是全时间要开启发送,达不到任何低功耗的效果;如果我们的应用,每秒要传送125kb,那么,我们只要用半秒传输完毕,另外半秒休息,那么能节电50%了,再扩展开来,我们10秒只要传输125kb,那么就节电95%了。就是说,传输的数据量越少,时间间隔越大,就越节电。这个应用是不是很像电表一类的?一个月只要抄表一次,数据量也不大,所以NB-iot号称一个普通电池能用10年,就是这么算出来的。
2、我们把从机接收主机数据的行为,叫做数据下行,数据接收的难点处理,我们前面说了,接收的低功耗的实现,需要靠知道对方什么时候发送数据来实现,那我们怎么能知道对方要发数据过来呢?这个实现有两个方案,一是从机知道主机什么时候发送数据,二是主机知道从机什么时候能接收数据。这句话看上去没区别,实际是主谓互换,谁主动,谁被动的问题。我们结合实际情况,会发现,第一条是非常难实现的,因为从机本身就是以残缺的功能,来换取功耗的下降,那么就只能选择第二种方案了,就是让主机知道,从机什么时候能接收数据。目前主流的实现方法就是,我从机发送数据完以后,开启一小段时间的接收,这个开启接收的时间长短双方可以约束好为t,因为主机是一直开着接收的,从机一发送数据,主机马上就接收到了,由于有协议的存在,我们主机知道在接下来的一小段时间t内,从机可以接收数据,那么我们主机将需要发送的数据在这个时候发送出去。说完方法以后,开始说限制,这里有个很重要的参数,t,就是开启接收的时间,这个时间影响很多:
a、开启接收时间的长短必定影响了从机的功耗,因为一开接收功耗很大,这个开启的时间越长,功耗越高;
b、开启接收时间的长短影响了能接收的数据量,我们前面发送的时候说过了,数据传输速度是有限制的,那么这个开启接收时间就决定了能接收多少数据量;
c、开启接收时间的长短,影响了通讯的质量,主要是针对主机的处理来说的,虽然基站是主机,但是他主要起数据中转的作用,就是从机的数据,发送到基站,基站再转发给我们的后台,我们称为云端,云端进行处理,然后将处理结果返回基站,基站再转发给从机。这个流程非常重要,因为其中任何一环的处理时间,超过了从机开启接收的时间,必然造成了数据传输失败,所以,从这一点来讲,开启接收时间是越长越好,但是功耗也随之增大。
上面说了,主机只能在从机执行上行数据的时候,进行数据下行,那么从机为了接收数据,就要时不时的去通知主机,我现在有空,有什么事情汇报吗?没事情汇报就走了。这里又牵涉到功耗了,我从机去询问的太频繁,必然导致功耗增大;如果询问得不频繁,必然导致主机发送数据的实时性变差。比如我们约定10秒交换数据一次,那么,云端的命令发送到主机,最大延迟时间能达到10秒,比如我家里的灯,我发送一条打开灯的指令,可能要9秒后,他才会接收到指令执行开灯。
综上所述,总结出来,就是数据下行的实现,比数据上行难。
总结:
现在我们总结一下NB-iot应用场景:
1、在只有数据上行的应用里,非常完美,非常适合,比如抄电表,抄水表一类的,野外的项圈数据定位,等等。
2、数据下行,比数据上行难度大很多,其中的一些约束关系如下:
a、开启接收窗口时间T 与 功耗成正比:开始窗口时间越长,功耗越高.
b、开启接收窗口时间T与 数据传输成功率成正比:开启窗口时间越长,数据的传输成功率越高。
c、开启接收窗口时间T与 数据传输量成正比:开启窗口时间越长,可以接收的数据量越大。
d、接收窗口开启频率 与 功耗成正比 :频率越高,功耗越高
e、接收窗口开启频率 与 响应及时性成正比:频率越高,响应越及时。
综合上面的约束,那么在项目立项的时候,就可以综合考虑,NB-iot是否适合自己的使用,毕竟,很多项目,都是在功能和功耗之间取一个平衡点。NB-iot丰富了大家实现想法的手段,但不能简单套用,要综合自己的实际需求,和技术本身的限制,盲目上马去套用,即浪费精力,又浪费金钱。
结束语:这篇是写给项目立项人员的参考,希望对大家有所帮助。
原文手打原创,于2017年12月20日,浙江金华。
林威帅
最后
以上就是唠叨小土豆为你收集整理的聊聊NB-iot等物联网技术适合你的项目吗?的全部内容,希望文章能够帮你解决聊聊NB-iot等物联网技术适合你的项目吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复