基于马尔科夫链的LoRaWAN网络节点性能分析

2018-10-17 06:43何通能任庆鑫陈德富
传感技术学报 2018年9期
关键词:发送数据前导网关

何通能,任庆鑫,陈德富

(浙江工业大学信息工程学院,杭州 310023)

1 LoRaWAN中A类节点

如图1所示,LoRaWAN网络架构中包含了节点、网关、服务站和应用者4个部分。网关和节点之间采用单跳星型网络拓扑,节点之间交换数据必须通过网关。根据与网关之间的通讯方式的不同,LoRaWAN节点可以分为A、B、C 3种类型。LoRaWAN中的A类节点使用电池供电,是目前使用最多的节点类型,因此本文只对A类节点的网络进行数据发送功耗和延时的分析。

图1 LoRaWAN网络架构

图2给出A类的终端节点设备每次发送数据的通信时序。节点发送上行数据后会打开两个持续时间很短的接收窗口来接收来自网关的下行数据,LoRa节点通过这种方式实现双向通信。由于只有在发送上行数据后的一小段时间内接收服务器发送来的下行数据,所有A类节点是LoRaWAN网络中功耗最低的节点[16]。

图2 A类节点发送数据时序

LoRaWAN中的数据类型可以分为两种:一种是接受者准确接收数据之后,必须回复确认消息,当没有收到确认消息,则发送者必须进行数据重传;另一种是发送者发送数据之后不需要接受者发送确认回复。为了保证节点能够保证数据准确到达网关,所有节点发送到网关的数据,网关必须发送数据准确接收回复。数据传输过程如图2所示,第1接收窗口在发送完成后第RD1秒(±20 ms)开启,在第1个接收窗口时期的下行传输使用的频率、数据速率、信道与节点上行传输时使用的频率、数据速率、信道相同。第2个接收窗口使用固定的频率、数据速率和信道,该信道不会受到节点上行数据的影响,节点在第1个接收窗口没有收到数据接收确认回复的情况下,经过第RD2秒(±20 ms)开启它。这两个接收窗口持续时间为1s。

2 马尔科夫模型建立

在这一部分,首先提出网络的相关的设定;然后根据LoRaWAN协议中A类节点设备发送数据的时序建立性马尔科夫模型;最后,根据网络中节点个数、信道数、频段数等参数计算出马尔科夫链中各状态的概率。

2.1 假设

网络假设如下:①网络中只有一个网关,并且没有未入网节点发送入网请求的干扰,只研究已入网节点发送数据的延时和功耗。②当节点在同时接收到多个前导码的时候,节点就认为接收信息是错误信息。③节点使用的数据速率为DR0,这样可以保证数据传输距离最远,链路质量最好。④节点只有收到网关发送过来的确认消息,才停止数据重传。否则节点会重传数据。

2.2 马尔科夫模型

图3描述了A类设备节点进行一次成功数据发送的过程。根据数据成功发送的过程具体描述建立的马尔科夫链。

图3 LoRaWAN网络A类节点数据发送的马尔科夫链

节点发送数据之后进入接收前导码1(Recv 1)。在接收前导码1下,节点将有可能进入两种状态:第1种是如果节点在接收窗口1没有检测到前导码,会在节点发送数据之后的第RD2秒打开接收前导码2(Recv 2);如果检测到前导码,节点将进入核对前导码1状态(Preamb 1)。节点进入核对前导码1状态(Preamb 1)后,会有可能进入3种状态:第1种情况,当节点检测前导码发现前导码错误,会在节点发送数据之后的第RD2秒打开接收前导码2(Recv 2);第2种情况,由于前导码过长,会使得在接收窗口1和接收窗口2的时间内没有接收完,将会直接进入等待状态,在下一个数据发送周期开启数据重传过程;第3种情况,前导接收正确,此时节点会进入有效数据接收核对状态1(Check 1)。当进入有效数据接收核对状态1(Check 1)后,节点下一步会有3种可能的状态:第1种情况,数据接收错误,节点会在发送数据的第RD2秒进入接收前导码2(Recv 2);第2种情况,有效数据包太长,会使得节点在接收窗口1和接收窗口2的时间内没有接收完,这是节点将会直接进入等待状态(Wait),在下一个数据发送周期开启数据重传过程;第3种情况,接收数据正确,节点进入发送成功状态(Finish),不需打开接收前导码2(Recv 2)。

在上面描述符合打开接收前导码2(Recv 2)的情况下,节点在发送数据之后的第RD2秒打开接收前导码2(Recv 2),当进入接收前导码2(Recv 2),节点下一步会有两种可能状态:第1种情况是在接收窗口2的期间内没有接收到前导码,此时节点将会进入等待状态(Wait),在下一个数据发送周期开启数据重传过程;第2种情况是检测到前导码,此时节点将进入核对前导码2状态(Preamb 2)。当节点进入核对前导码2状态(Preamb 2),节点下一步会有两种可能状态:第1种情况是由于前导码接收错误或者前导码传输时间大于接收窗口2的持续时间,节点进入等待状态(Wait),在下一个数据发送周期开启数据重传过程;第2种情况前导码正确,节点将进入有效数据接收核对状态2(Check 2)。当进入有效数据接收核对状态2(Check 2)后,节点下一步会有两种可能状态:第1种情况由于有效数据接收错误,或者网关回复数据包过长导致接收窗口2的持续时间没有接收完成,这样使得节点进入等待态(Wait),开启下一次重传;第2种情况节点正确接收网关的回复,此时节点进入发送成功状态(Finish),不再开启重传。

设本网络的相关参数如下:nA表示入网络的节点数目;nSB表示频段数目;nC表示每个频段的信道数;α表示链路质量(α∈[0,1]);γ表示网关具体在哪个接收窗口回复数据,当γ=1表示网关在节点第1接收窗口发送确认回复,γ=0表示在网关在节点的第二接收窗口发送确认回复;δ表示入网节点的发送数据占空比(δ=1%),即数据发送所需的时间与数据发送周期之比,LoRaWAN协议规定A类节点在一个频段内发送数据的占空比不能超过1%,这样能够保证一个节点的电池能够使用10年以上;τAδnSB代表的是网络中的数据流量,其中τA∈[0,1]代表的是网络的饱和度,当τA=1时代表网络饱和。由此得到如下概率。

一个入网节点在一个数据发送周期内不占用给定信道发送数据的概率qA为:

(1)

则一个入网节点在数据发送周期内占用给定的信道上发送数据的概率为:

1-qA

(2)

由于节点发送完数据,一定会打开接收窗口,所以从发送数据状态(Senddata)到进入接收前导码1(Recv 1)概率ps,r1为:

ps,r1=1

(3)

若网关和所有入网节点不占用给定信道发送数据,则节点将检测不到前导码(无论网关还是节点发送数据时,前导码是一样的)。故节点在第1个接收窗口没有检测到前导码(即从Recv 2进入Recv 2)的概率pr1,r2可以表示为:

pr1,r2=(1-αγqAnA)qAnA

(4)

式中:αγqAnA表示网关在第1个接收窗口在给定信道发送数据的概率,qAnA表示入网节点在给定信道没有发送数据给网关的概率。

节点接收前导码1到核对前导码1(从Recv 1到Preamb 1状态)的概率pr1,p1为:

pr1,p1=1-pr1,r2

(5)

pp1,w代表节点从核对前导码1到达等待状态的概率。由于两个接收窗口之间的时间间隔为1 s,即使使用扩频因子SF12的情况下发送前导码的消延时间最长为401.41 ms。因此,节点不可能因为接收前导码超时从核对前导码1状态(Preamb 1)进入等待状态(Wait),所以pp1,w为:

pp1,w=0

(6)

设P(x=1)代表节点接收到一个前导码的概率。前导码由两种情况组成:网关发出数据确认包携带的前导码和入网节点向网关发送数据的前导码。则P(x=1)可以表示为:

P(x=1)=αγqAnAqAnA+

(1-αγqAnA)qAnA-1(1-qA)nA

(7)

式中:αγqAnAqAnA表示网关发出数据确认包的概率;(1-αγqAnA)qAnA-1(1-qA)nA表示入网节点向网关发送数据的概率。则节点接收到一个正确的前导码,进而进入有效数据接收核对状态1的概率pp1,c1可以表示为:

pp1,c1=P(x=1|x≥1)=P(x=1)/P(x≥1)

=P(x=1)/pr1,p1

(8)

节点进入第2次接收流程的概率pp1,r2可以表示为:

pp1,r2=1-pp1,w-pp1,c1

(9)

pc1,f表示节点从数据核对状态1转移到发送成功的概率为:

pc1,f=αγqAnAqAnAα

(10)

式中:αγqAnAqAnA表示网关发送数据准确接收回复,α表示网络中的链路质量。

pc1,r2表示由于网络的链路质量原因节点接收数据确认回复的过程中产生丢包,由此节点从数据核对状态1进入接收前导码2状态的转移概率。经过计算,当设置采用数据传输速率为DR0,扩频因子SF12时,数据接收确认回复需要的时间为991.23 ms,持续时间没有超出两个窗口之间的接收间隔;而对于本节点如果接收到其他节点发送到网关的数据时,由于设置每次传输的字节数比较大,所以发送时间都会超过1 s,使得本节点没有时间打开接收前导码2,所以得到pc1,r2和pc1,w为:

pc1,r2=αγqAnAqAnA(1-α)

(11)

pc1,w=1-pc1,r2-pc1,f

(12)

pr2,p2表示节点在接收前导码2到核对前导码2(从Recv 2到Preamb 2状态)的转移概率。根据LoRaWAN协议,网关在第二接收窗口发送数据所使用的信道是固定的且不会有其他节点不得占用,因此pr2,p2仅仅取决于网关准确接收到该节点发送过来的数据(概率为:αqAnA)且网关在第二接收进行回复(概率为:1-γ)。所以pr2,p2可以表示为:

pr2,p2=α(1-γ)qAnA

(13)

则前导码传输过程中出错的概率可以表示为:

pr2,w=1-pr2,p2

(14)

pp2,c2表示节点核对前导码2状态进入有效数据接收核对状态2的概率。由于只允许网关发送,因此不可能接收到带有入网请求或是节点发送数据的前导码,可以得到:

pp2,c2=1

(15)

只有网关在第2个接收窗口的固定信道上发送数据,而且网关只对准确接收的数据进行回复。由此得到pc2,f(有效数据接收核对状态2进入发送成功状态的概率)和pc2,w(有效数据接收核对状态2进入等待态的概率)如下:

pp2,w=0

(16)

pc2,f=α

(17)

pc2,w=1-α

(18)

pw,s表示入网节点因为没有收到网关回复从等待态到发送数据态的概率:

pw,s=1

(19)

根据上面的描述可以得到节点数据的发送是一个吸收马尔科夫过程。在这个模型中含有一个吸收态发送成功态(Finish);8个非吸收态,分别是:发送数据(Senddata),接收前导码1(Recv 1),核对前导码1(Preamb 1),有效数据接收核对状态1(Check 1),接收前导码2(Recv 2),核对前导码2(Preamb 2),有效数据接收核对状态2(Check 2),等待态(Wait)。由此得到吸收马尔科夫链的转移矩阵P和其标准形式P′如下:

(20)

(21)

式中:I是一个1×1的单位矩阵,0是1×8的零矩阵,R是8×1的非零矩阵,Q是一个8×8的矩阵。吸收链达到吸收态的概率为1,也就是最终进入发送成功状态(即当n→∞时,Qn→0)。在吸收链的标准形式P′中,矩阵I-Q具有可逆矩阵N,且N=(I-Q)-1=I+Q+Q2+…。在矩阵N中Ni,j表示从非吸收状态i转移到非吸收状态j平均转移次数。由此可以得到从一个非吸收态到达吸收态过程中所要经过各非吸收态的概率为V=CsN;这里Cs取1s表示一个行向量,向量的第1项为1,其他项为0,代表初始状态为节点发送数据,那么V中的每一项代表从数据发送状态(Senddata)到达数据成功发送状态(Finish)经过各吸收状态的概率。根据上面描述数据发送过程中的延时为VD,其中D表示一个列向量,每一项表示相应非吸收状态的延时时间。Ds表示开始数据到第1个接收窗口打开的时间;Dr1表示第1个接收窗口接收前导码的时间;第1个接收窗口核对前导码的发送时间Dp1=0,在这里由于前导码的核对很短的时间,可近似为0;Dc1表示接收数据帧减去前导码接收的时间加上在第2个接收窗口打开之前的时间;Dr2表示第2个接收窗口接收前导码的时间;同理第2个接收窗口核对前导码时间Dp2等于0;Dc2表示第2个接收窗口接收数据帧减去前导码接收的时间;Dw表示由于占空比的限制的空闲时间;Df=0,表示数据成功发送,当节点收到网关回复的接收数据确认消息之后,就不在进行此数据包发送。数据发送过程中的能耗VE,E的每一项表示相应非吸收状态的能耗。

3 性能评估

3.1 参数设置

本文的验证测试时,节点采用SX1278芯片的相关参数展开的,这个芯片是Semtech公司专门为LoRaWAN节点进行通信设计的射频芯片。网关采用的是SX1301芯片,该芯片是Semtech专门为LoRaWAN网关进行通信设计的射频芯片,含有8(IF0~IF7通道)个可单独控的制LoRa调制解调信道,每个信道的带宽固定为125 kHz,每个信道可以设置中心频率,可以同时进行8个LoRaWAN节点数据,能够进行多信道、多频段通信。在LoRaWAN协议中,应该将网关的所有LoRa信道打开,即网络中信道总数不变。通过查询SX1278数据手册得到:芯片的发射电流87 mA(+17 dBm),接收电流10.8 mA,空闲电流0.2 μA;电压为3.3 V[17]。

根据上面的分析得到两个列向量D和E。其中D中的每一项表示节点发送数据过程经过的非吸收态对应的时间,E中的每一项对应在非吸收态的功耗;非吸收态依次为:发送数据(Senddata),接收前导码1(Recv 1),核对前导码1(Preamb 1),有效数据接收核对状态1(Check 1),接收前导码 2(Recv 2),核对前导码2(Preamb 2),有效数据接收核对状态2(Check 2),等待态(Wait)。在这里假设节点发送数据负载为30 byte,即FRMPayload为30 byte;使用隐式报头;且不需要传送MAC命令,即FOpts为0 byte。假设网关发送的数据没有FRMPayload,只是对数据接收进行一次简单的确认回复。由此根据协议得到上行数据为46 byte,下行数据为12 byte。在LoRaWAN协议中,本文设置第1个接收窗口打开时间为发送数据5 s后打开,由此得到各段的延时如下:

D=(6.873 0.40 0 0.60 0.40 0 0.384 38.016)T

(22)

E=(0.538 0.014 0 0.014 0.014 0 0.014 2.50-5)T

(23)

3.2 性能测试

入网节点发送数据占空比δ表示在一个频段内,节点数据发送时间与数据发送周期之比。LoRaWAN协议规定占空比δ不能超过1%。为了增加节点发送数据的时间,尽可能的减少网络延时,本文所有仿真实验均采用LoRaWAN协议中允许占空比的最大。本文讨论只含有一个网关的LoRaWAN网络,采用的SX1301芯片能够提供8个独立控制LoRa信道,为了尽可能降低节点发送数据的延时和功耗,将网关的8个LoRa信道全部打开。

图4和图5显示了链路质量α和确认回复γ对节点成功发送一组数据的延时和功耗的影响。链路质量α用数据传输的丢包率来衡量,对于城市环境来说,由于密集建筑物和复杂的电磁环境相应的链路质量会差;对于空旷的农村或者牧场等环境,不确定的干扰因素少,链路质量好。γ表示网关在第几个接收窗口发送数据接收确认回复:γ=1表示网关在第1个接收窗口发送数据接收确认回复;γ=0表示网关在第2个接收窗口发送数据接收确认回复。设置频段内信道数nC=8,频段数nSB=1。

图4 链路质量和确认回复时间对节点数据传送延时影响

图5 链路质量和确认回复时间对节点数据传送能耗影响

从图4和图5中可以看出,当网络中节点数目固定时,若γ=0,则网关在第2个接收窗口(固定的并且只有网关使用该信道)发送数据接收确认回复,因而确认包不会被任何节点干扰,导致网络数据传输成功率更高,因而节点延时和能耗明显比γ=1时更小;随着节点数目的增加(20个、40个和60个节点),γ=1的网络延时和能耗的增幅比γ=0的网络更加明显。这主要是由于网关在节点的第1个接收窗口回复确认消息会受到节点的干扰,当节点数量增多干扰越大。还可以发现链路质量相对较差(0.9~0.92)时,γ=0 且60个节点的网络中,节点发送数据的延时和功耗比γ=1且20个节点的网络少。

图6和图7表示节点数nA和频段数nSB对节点成功发送数据的延时和功耗的影响。在中国地区有两个频段可以部署LoRaWAN网络,网关的8个LoRa信道全部打开,则当只有一个频段(nSB=1)时,则频段内信道数nC=8;当两个频段(nSB=2)时,则每个频段信道数nC=4,这样的目的是为了处在不同频段的节点有相同的信道资源。从前面的分析可知,当网关在第二窗口确认回复时节点性能更好,因此这里设置γ=0。

图6 节点数和频段数对节点数据传送延时影响

图7 节点数和频段数对节点数据传送能耗影响

从图6和图7中可以看出当链路质量相同时,在2个频段的网络中,节点发送数据的延时和功耗要相对较大。这是由于改变频段数增加,网关只能提供8个信道,每个频段的信道数减少,数据发生冲突的概率增加,因此延时和功耗就会增加。通过上图还可以看出,节点数量的增加,节点之间数据碰撞的机会增加,相应地延时和功耗增加。

4 结束语

本文通过马尔科夫链建立模型,然后进行MATLAB进行仿真,得到网络中总节点数目、网关发送数据接收确认回复的时间、频段数等参数对LoRaWAN网络中节点发送数据延时与能耗的影响。通过仿真计算出节点发送数据的延时和功耗,这对于衡量网络的实时性以及节点电池使用寿命具有很强的参考性;通过图4和图5可以看出,在实际进行LoRaWAN网络部署时,应该设置将网关回复确认消息的时间设置在节点的第2个接收窗口;通过图6和图7可以看出,为了减少节点发送数据的延时和能耗,尽量将网关的8个信道,设置在一个频段内,这样可以减少节点发送数据时的信道冲突,可以部署在CN470~CN510频段的80~87或者88~95信道。本文只考虑了网络中单个网关的情况,并且网络中节点只有A类设备,然而在实际应用中网络中会有多个网关并且有多重节点设备,针对以上条件对数据发送延时和功耗的影响将是本文以后研究的重点。

猜你喜欢
发送数据前导网关
基于“三思而行”的数学章前导学课设计——以《数的开方》(导学课)为例
信号系统网关设备的优化
一种车载自组织网络的媒体接入控制协议
带标记方式的CRDSA++协议性能分析*
一种S模式ADS-B前导脉冲检测方法
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
第四代移动通信随机接入前导方案优化
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”