对于需要购买LoRaWAN网关的人来说,可能最重要的一个问题就是:一个网关能容纳多少个节点?我有N个节点,需要配备多少个LoRaWAN网关才够用?
很可惜的是,这个问题没有简单的答案。
一、LoRaWAN网关单网关能容纳的节点的数量
1、理论值
假设单个网关每天最多可以接收a个数据包,每个节点的应用发包频率是每小时b个数据包的话,那么,单个网关最多可以容纳的节点的数目的理论值的计算式如下:
S=a/(24*b)
比如,单个LoRaWAN网关如果搭载一个SX1301芯片的话,其每天最多可以接收150万个数据包,如果应用发包频率是每小时1包的话,那么理论上LoRaWAN网关可以接入的节点的数目 ,S = 1500000/(24*1) = 62500个。
2、实际值
单个网关可以容纳的节点的数目的实际值比理论值的计算要复杂的多。对于确定的某个网关来说,其每天最多可以接收的数据包也是确定的,难就难在每个节点到底每天发多少个包。
在同一个应用场景下,我们每天需要该节点发送的总的数据长度是确定的,但是,确定长度的数据到底要以怎样的封包长度、发送速率来发送,就不确定了。封包长度如果不同,势必需要发送的包的数量也就不同。
比如,在不同的信号强度下,所用到的扩频因子SF也不同,那么,能发送的数据的长度也就不同,每次能发送的数据的长度不同就会导致需要分成的包的数量也不相同,从而导致即使使用同样的网关、同样的节点,但在节点的不同业务模式下,也会出现单个网关容纳节点的最大数目并不相同的情况。
对于有8个信道的网关来说,在没有LBT(发包前监听信道)的前提下,具体的计算公式为:
信道容量(即节点数量)S=8T/2et0。
其中,8代表8个信道,T代表发送间隔,跟封包长度、速率有关系,1/2e 是基本Aloha算法最大吞吐量,e是常数,等于2.718,t0代表单包的ToA(Time on Air)。
在10字节负载的前提下,速率与单包的空中飞行时间ToA的对应关系如表1所示。
表1 10字节负载下的速率与单包的ToA对应关系
举一个例子,假如使用SX1301芯片,在没有BT(发包前监听信道)的情况下,并且平均每个包空中飞行时间t0=100ms(因此t0=0.1s),平均每个包一分钟发一次(因此T=60s),那么可以容纳多少这样的平均节点呢?S=8*60/(2*2.718*0.1)=883 ,因此,可以容纳883个节点。
而且,采用不同算法,也会导致最大吞吐量的变化,从而引起理论容量的变化。
比如,如果前提条件修改成每个节点都带有LBT功能,采用时隙Aloha算法而不是之前的基本Aloha算法来评估,则由于算法不同,导致最大吞吐量不同,此时最大吞吐量是1/e,因此信道容量(即节点数量)S=8T/et0 ,从而 ,则理论容量增加一倍,即883*2=1766个节点。
3、大致估算
如果不想计算,那么,我们还可以通过以下简单的参考例,来做大致的估算。
在理想情况下,若发送10字节,10分钟频次,则一个8通道的网关差不多可以对应14200+个终端/节点。如果是20个字节,10分钟频次,则可以对应9900+个终端/节点。
频次跟容量是线性关系,因此,如果实际需要的频次改成比如发送是10个字节、60分钟频次,那么,可以推出该8通道的网关差不多可以接入85200+个终端/节点。
在ADR开启、90%的终端速率大于DR3(SF9)的场景下,字节跟容量也差不多是线性关系,因此,也可以根据实际场景的字节简易的代入上述例子来获取一个估计值。
4、注意事项
(1)网关数量
由于最好1个节点能够保证2~3个网关能接收到数据,因此,假如根据上述方式计算得到总共需要N个网关来对应所有的节点,那么,具体到实际运用中,建议需要用2N~3N个网关,而不是N个网关,来对应所有的节点,以确保数据都能接收到。
(2)发送间隔
除非很特殊的应用,否则不太建议发送间隔低于5s,一般来说,发送间隔至少在分钟级别以上比较好。
标准的LoRaWAN协议,发送一个包需要至少保证2s的间隔。
SF发送64字节的,空口时间就已经接近3s了。而如果不遵守LoRaWAN的关于空口时间的要求,则虽然由于网关只负责透传,因此,即使不遵守LoRaWAN协议,则物理层也可以接收数据,但是这时候用户就需要自己去验证测试丢包率。
二、LoRaWAN网关多网关能容纳的节点的数量
在实际应用场景下,单网关并不能满足覆盖和容量的要求。
在满足一定的信号配比的情况下, 网关可以同时接收SF7~SF12 的信号数据。单网关解调和覆盖能力受限制,理论可以达到这个容量,但是实际上比较难, 但是多网关部署,就可以最大化网络容量。因此,实践中,往往需要用到多网关。
1、固定速率
当速率固定时,如果具备N个网关,那么,多网关的容量 = 单网关的容量 * N
其中,单网关的容量可按照第一部分来计算或估算。
2、开启ADR
当开启ADR的时候,那么,多网关的容量就不是线性的变化了。根据Smetech公布的实际测量结果可知,当采用ADR的时候,多网关的容量 > 单网关的容量 * N.^2。
小Tip:而且,除了增加网关容量之外,开启ADR还有助于降低功耗,原因是ADR技术可以根据LoRa信号质量自动调整数据的发送功率。RAK7249/RAK7258系列产品均支持开启ADR功能,配合RAK节点,可以有效降低LoRa终端的发射电流。具体还可以参见《LoRa终端低功耗开发策略》一文。
3、阶段三: 发送数据阶段
(1)开启ADR
开启ADR可以在同样数量的网关的前提下,尽可能多的扩充已有网关的总体容量。
(2)选择同频部署
同频部署可以使节点连接最近的网关,最大化网络的ADR效果。而ADR效果提升, 即为节点的速率最佳化。速率提升,代表TOA降低,从而代表容量增加,功耗降低。
因此,采用多网关的时候,建议采用同频部署,可以比异频部署容纳更多的节点。只有在同频部署无法满足容量的需求下,才考虑增加异频网关的加入。
(3) 部署的范围满足1个节点能被2~3个网关接收
为确保数据都能接收到,建议1个节点发送的数据能够保证被2~3个网关接收到。
总结
同样数量的LoRaWAN网关,如果希望容纳更多数量的节点,那就需要从以下几个方面着手进行改进:
选择合适的发送的数据的长度、选择带有LBT功能的网关并使用更优的算法、开启ADR、选择同频部署。
以上就是如何计算LoRaWAN网关的网关容量的计算方法,涉及到单网关以及多网关能容纳的节点的数量的计算。