节点升级的方法、节点升级的设备和计算机可读存储介质与流程

文档序号:29326174发布日期:2022-03-19 23:28阅读:121来源:国知局
节点升级的方法、节点升级的设备和计算机可读存储介质与流程

1.本发明涉及通信技术领域,具体涉及一种节点升级的方法、节点升级的设备和计算机可读存储介质。


背景技术:

2.lora(long range radio),远距离无线电是一种低功耗远程无线通信技术,其特点是远距离、低功耗、低速率、抗干扰。随着lora技术的逐渐成熟与快速发展,越来越多的领域都在应用lora技术来进行智能化数据采集与设备控制工作。一个典型的lora星型网络由一个网关与若干个节点组成,网关与节点之间通过lora技术进行通信,基于lora的半双工、低速率等特点,网关与节点传输数据的时间要明显比其他的无线通信方式慢很多,尤其是当节点数量比较多的时候这种现象会更加明显。
3.节点在正常运行工作过程中,维护人员会对其不定期的进行功能的优化以及固件的升级工作,一般节点在部署完成后是非常不方便拆卸或是挪动位置的,尤其是节点安装在高处或者人不方便接触到的地方,这个时候通过串口线进行升级就及其不方便了。那么节点固件的升级就只能通过lora通信来完成,由于lora技术是半双工的,基于lora速率低、通信慢的特点,给节点进行固件升级工作就可能会暂停正常的数据采集或设备控制工作,而且当节点数量较多时节点的固件升级工作是非常占用时间的,如果单独拿出一段时间来给节点升级,会大大影响到正常的数据采集与设备控制工作。


技术实现要素:

4.本发明提供了一种节点升级的方法、节点升级的设备和计算机可读存储介质,旨在解决节点升级占用大量节点正常工作时间的技术问题。
5.为实现上述目的,本发明提供了一种节点升级的方法,该方法包括以下步骤:
6.获取实际固件升级时长;
7.将所述实际固件升级时长和预期升级时长进行比较获得比较结果;
8.确定网关与待升级节点之间正常通信的空闲时隙,根据比较结果和所述空闲时隙计算升级时间;
9.在所述升级时间向待升级节点发送固件升级数据。
10.可选地,计算单包传输时长;
11.获取网关与待升级节点之间的通信间隔以及固件升级数据的长度;
12.根据所述单包传输时长、通信间隔和固件升级数据的长度计算实际固件升级时长;
13.其中,实际固件升级时长的计算公式为:
14.15.其中,t
firmware
是实际固件升级时长,t
interval
是网关与待升级节点之间的通信间隔,n
firmware
是固件升级数据的长度,t
history
是单包传输时长,sf是扩频因子,bw是带宽。
16.可选地,获取输入的历史数据参数;
17.将所述历史数据参数输入至预设的单包计算公式进行计算,得到单包传输时长。
18.可选地,若所述实际固件升级时长小于或等于所述预期升级时长,则根据通信间隔和所述单包传输时长计算空闲时隙;
19.将所述空闲时隙设置为升级时间。
20.可选地,若所述实际固件升级时长大于所述预期升级时长,则根据预期升级时长、实际固件升级时长和单包传输时长计算挤占正常通信的挤占时间和挤占数量;
21.根据通信间隔和单包传输时长计算空闲时隙;
22.将所述挤占时间和空闲时隙设置为升级时间。
23.可选地,判断所述空闲时隙是否小于最大升级包传输时长;
24.若所述空闲时隙小于最大升级包传输时长,则确定向所述待升级节点发送一包固件升级数据。
25.可选地,若空闲时隙大于或等于最大升级包传输时长,则判断所述空闲时隙除以最大升级包传输时长的余数是否大于零;
26.若所述空闲时隙除以最大升级包传输时长的余数大于零,则确定向所述待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商加一;
27.若所述空闲时隙除以最大升级包传输时长的余数等于零,则确定向所述待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商。
28.可选地,逐个轮询所有所述待升级节点的接收状态;
29.若存在所述待升级节点接收所述固件升级数据失败,则再次向所述待升级节点发送固件升级数据。
30.为实现上述目的,本发明还提出一种节点升级的设备,节点升级的设备包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的节点升级的程序,所述节点升级的程序被处理器执行时实现所述节点升级的方法。
31.为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有节点升级的程序,所述节点升级的程序被处理器执行时实现所述节点升级的方法。
32.本发明技术方案中,通过对历史数据的分析,计算出固件升级数据的单包传输时长,在单包传输时长已知的情况下,将节点升级中固件升级数据的传输过程放在正常通信的空闲时隙中完成,由于在正常通信的过程中,节点和节点的传输之间总会存在空闲时隙;而现有技术中的节点升级方法为专门利用一段时间去进行固件升级数据的传输,会挤占大量的正常通信时间。因此与现有技术相比,通过本发明中的固件升级方法,在完成节点固件升级的过程中,可以尽可能少的占用各待升级节点数据采集和设备控制的时间,既能够减少对设备正常工作的影响,又可以保证固件升级的顺利完成。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
34.图1为本发明一实施例的节点升级的方法的模块结构示意图;
35.图2为本发明一实施例的节点升级的方法的流程图。
具体实施方式
36.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
37.请参照图1,图1为本发明各个实施例中所提供的节点升级的设备的硬件结构示意图。所述节点升级的设备包括执行模块01、存储器02、处理器03、电池系统等部件。本领域技术人员可以理解,图1中所示出的设备还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述执行模块01连接,所述存储器02上存储有节点升级的程序,所述节点升级的程序同时被处理器03执行。
38.执行模块01,可计算节点和节点之间的空闲时隙,并在空闲时隙向待升级节点发送固件升级数据,并反馈以上信息发送给所述处理器03。
39.存储器02,可用于存储软件程序以及各种数据。存储器02可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据物联网终端的使用所创建的数据或信息等。此外,存储器02可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
40.处理器03,是处理平台的控制中心,利用各种接口和线路连接整个物联网终端的各个部分,通过运行或执行存储在存储器02内的软件程序和/或模块,以及调用存储在存储器02内的数据,执行物联网终端的各种功能和处理数据,从而对节点升级的设备进行整体监控。处理器03可包括一个或多个处理单元;优选的,处理器03可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
41.本领域技术人员可以理解,图1中示出的节点升级的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
42.根据上述硬件结构,提出本发明方法各个实施例。
43.参照图2,在本发明节点升级的方法的第一实施例中,所述节点升级的方法包括:
44.步骤s100,获取实际固件升级时长;
45.lora(long range radio,远距离无线电是一种低功耗远程无线通信技术,其特点是远距离、低功耗、低速率、抗干扰。随着lora技术的逐渐成熟与快速发展,越来越多的领域都在应用lora技术来进行智能化数据采集与设备控制工作。一个典型的lora星型网络由一个网关与若干个节点组成,网关与节点之间通过lora技术进行通信,基于lora的半双工、低速率等特点,网关与节点传输数据的时间要明显比其他的无线通信方式慢很多,尤其是当节点数量比较多的时候这种现象会更加明显。
46.节点在正常运行工作过程中,维护人员会对其不定期的进行功能的优化以及固件的升级工作,一般节点在部署完成后是非常不方便拆卸或是挪动位置的,尤其是节点安装
在高处或者人不方便接触到的地方,这个时候通过串口线进行升级就及其不方便了。那么节点固件的升级就只能通过lora通信来完成,由于lora技术是半双工的,基于lora速率低、通信慢的特点,给节点进行固件升级工作就可能会暂停正常的数据采集或设备控制工作,而且当节点数量较多时节点的固件升级工作是非常占用时间的,如果单独拿出一段时间来给节点升级,会大大影响到正常的数据采集与设备控制工作。
47.基于以上问题,本发明将节点升级的固件升级数据的传输放在节点与节点通信的空闲时隙上,利用空闲时隙通过网关下发固件升级数据。其中,空闲时隙为节点与节点正常通信之间的空闲时间,即上一个通信数据传输完成但下一个通信数据还未开始传输的一段时间。由于是利用空闲时隙下发固件数据,且不同的空闲时隙的持续时长并不一样,因此需要根据每个节点的通信参数计算具体空闲时隙的开始时间、结束时间以及持续时长,并根据开始时间、结束时间以及持续时长下发相应的固件升级数据。
48.在本实施例中,通过对一段时长内的空闲时隙进行计算,可以进一步算出实际固件升级时长,实际固件升级时长即在不占用正常通信时间的情况下,仅利用空闲时隙下发本次所有固件升级数据以完成固件升级所需要的实际持续时长。值得注意的是,实际固件升级时长包括许多间隔着的正常通信数据传输过程的时长和固件升级数据传输过程的时长。
49.步骤s200,将所述实际固件升级时长和预期升级时长进行比较获得比较结果;
50.本实施例中,预期升级时长为用户预先设置的用户预期的升级时长,将预期升级时长和实际固件升级时长进行比较,可以获得一个比较结果,根据比较结果的不同可按照不同方式进行固件升级。在一些实施例中,若预期升级时长小于实际固件升级时长,则意味着仅在空闲时隙下发固件升级数据无法在用户限定的预期升级时长内完成固件升级,需要挤占部分正常通信时间;若预期升级时长大于或等于实际固件升级时长,则意味着在空闲时隙下发固件升级数据足以在用户限定的预期升级时长内完成固件升级,无需挤占正常通信时间。
51.步骤s300,确定网关与待升级节点之间正常通信的空闲时隙,根据比较结果和所述空闲时隙计算升级时间;
52.步骤s400,在所述升级时间向待升级节点发送固件升级数据。
53.本实施例中,在获得实际固件升级时长和预期升级时长的比较结果之后,可根据比较结果在正常通信的空闲时隙向待升级节点发送固件升级数据以进行固件升级;具体地,若预期升级时长大于或等于实际固件升级时长,则网关仅在空闲时隙向各待升级节点下发固件升级数据;若预期升级时长小于实际固件升级时长,则网关不但在空闲时隙向各待升级节点下发固件升级数据;还需要利用部分正常通信时间下发固件升级数据。
54.通过本发明中的固件升级方法,在完成节点固件升级的过程中,可以尽可能少的占用各待升级节点数据采集和设备控制的时间,既能够减少对设备正常工作的影响,又可以保证固件升级的顺利完成。
55.在一实施例中,所述获取实际固件升级时长的步骤包括:
56.计算单包传输时长;
57.获取网关与待升级节点之间的通信间隔以及固件升级数据的长度;
58.根据所述单包传输时长、通信间隔和固件升级数据的长度计算实际固件升级时
长。
59.本实施例中,通过对历史数据进行分析,具体分析历史数据的长度、传输时间及相关参数,可以计算出一包数据传输所用的时间,即单包传输时长;在得知节点与节点通信的通信间隔及用于固件升级的固件升级数据的长度的情况下,根据单包传输时长、通信间隔和固件升级数据的长度可以计算出实际固件升级时长。在一些实施例中,实际固件升级时长的计算公式如下:
[0060][0061]
其中,t
firmware
是实际固件升级时长,t
interval
是网关与待升级节点之间的通信间隔,n
firmware
是固件升级数据的长度,t
history
是单包传输时长,sf是扩频因子,bw是带宽;根据上述计算公式可计算出实际固件升级时长,并进一步将实际固件升级时长用于与预期升级时长进行比较。
[0062]
在一实施例中,所述计算历史一包固件升级数据传输所用的单包传输时长的步骤包括:
[0063]
获取输入的历史数据参数;
[0064]
将所述历史数据参数输入至预设的单包计算公式进行计算,得到单包传输时长。
[0065]
本实施例中,在固件升级之前,网关与各节点进行交互的历史数据传输过程中的历史数据参数对于单包传输时长的计算具有指导意义。因此,在计算一包数据传输所用的单包传输时长之前,需要先获取先获取历史数据传输的历史数据参数。其中,历史数据参数包括历史数据的前导码长度、扩频因子、报头、低数据率优化、编码率、带宽等;具体地,单包传输时长的单包计算公式为:
[0066][0067]
其中,t
history
是单包传输时长,n
preamble
是历史数据的前导码长度,sf是扩频因子,h表示报头的使用状态,de表示低数据优化的开启状态,cr是编码率,bw是带宽,n
history
是历史数据长度。
[0068]
进一步地,使用报头时h=0,没有报头时h=1;低数据率优化开启时de=1,否则de=0;n
history
是历史数据长度,最多取最近十条的历史数据。
[0069]
在一实施例中,所述确定网关与待升级节点之间正常通信的空闲时隙,根据比较结果和所述空闲时隙计算升级时间的步骤包括:
[0070]
若所述实际固件升级时长小于或等于所述预期升级时长,则根据通信间隔和所述单包传输时长计算空闲时隙;
[0071]
将所述空闲时隙设置为升级时间。
[0072]
本实施例中,将实际固件升级时长和预期升级时长进行比较的具体过程为:判断实际固件升级时长是否小于或等于预期升级时长;若实际固件升级时长大于预期升级时
长,则意味着在空闲时隙下发固件升级数据足以在用户限定的预期升级时长内完成固件升级,无需挤占正常通信时间。因此,可直接根据网关与待升级节点之间的通信间隔和单包传输时长计算网关与待升级节点之间的空闲时隙。具体地,由于本实施例中网关和节点的交互过程为网关向节点发送数据,然后节点向网关反馈数据,因此空闲时隙为通信间隔与两倍单包传输时长的差值。通过计算空闲时隙,可以进一步计算每一个空闲时隙能够下发的固件升级数据,并在空闲时隙向待升级节点发送固件升级数据。
[0073]
在一实施例中,所述确定网关与待升级节点之间正常通信的空闲时隙,根据比较结果和所述空闲时隙计算升级时间的步骤还包括:
[0074]
若所述实际固件升级时长大于所述预期升级时长,则根据预期升级时长、实际固件升级时长和单包传输时长计算挤占正常通信的挤占时间;
[0075]
根据通信间隔和单包传输时长计算空闲时隙;
[0076]
将所述挤占时间和空闲时隙设置为升级时间。
[0077]
本实施例中,若实际固件升级时长大于所述预期升级时长,则意味着仅在空闲时隙下发固件升级数据无法在用户限定的预期升级时长内完成固件升级,需要挤占部分正常通信时间;即可根据实际固件升级时长和预期升级时长计算挤占正常通信的挤占时间,并基于挤占时间计算挤占正常通信的挤占数量;在算出挤占数量之后,停止发送挤占数量的正常通信数据;这样可以保证固件升级在用户预设的预期升级时长内完成。同样的,在停止发送挤占数量的正常通信数据之后,也需要根据网关与待升级节点之间的通信间隔和单包传输时长计算网关与待升级节点之间的空闲时隙。通过计算空闲时隙,可以进一步计算每一个空闲时隙能够下发的固件升级数据,并在空闲时隙和挤占时间向待升级节点发送固件升级数据。
[0078]
具体地,在一些实施例中,挤占时间的计算公式为:
[0079]
t
occupy
=max((t
firmware-t
expect
),0)
[0080]
其中,t
occupy
是需要挤占正常通信的挤占时间,t
expect
是预期升级时长,t
firmware
是实际固件升级时长;
[0081]
而根据挤占时间计算挤占数量的计算公式为:
[0082][0083]
其中,t
occupy
是需要挤占正常通信的挤占时间,t
history
是单包传输时长,pn
occupy
为挤占数量。
[0084]
在一实施例中,所述在所述升级时间向待升级节点发送固件升级数据的步骤包括:
[0085]
判断所述空闲时隙是否小于最大升级包传输时长;
[0086]
若所述空闲时隙小于最大升级包传输时长,则确定向所述待升级节点发送一包固件升级数据。
[0087]
本实施例中,根据空闲时隙的开始时间及持续时长来决定一包固件升级数据的长度,以及本次空闲时隙能够发送多少包固件升级数据。具体地,首先判断空闲时隙的持续时长是否小于最大升级包传输时长;若空闲时隙小于最大升级包传输时长,则确定在该段空
闲时隙向待升级节点发送一包固件升级数据,以及确定固件升级数据的长度要小于最大升级包的大小。在一些实施例中最大升级包为256字节,则首先判断空闲时隙的持续时长是否小于256字节数据的传输时长,若该空闲时隙的持续时长小于256字节数据的传输时长,则确定向待升级节点发送一包固件升级数据,并该包固件升级数据的的长度小于256字节。通过这种方式可以确定每个空闲时隙是否能发送一个以上的固件升级数据,能够充分的利用空闲时隙进行固件升级,不会挤占大量的正常通信时间,因此不至于过多的影响正常通信的数据包传输。
[0088]
在一实施例中,所述判断所述空闲时隙是否小于最大升级包传输时长的步骤之后包括:
[0089]
若空闲时隙大于或等于最大升级包传输时长,则判断所述空闲时隙除以最大升级包传输时长的余数是否大于零;
[0090]
若所述空闲时隙除以最大升级包传输时长的余数大于零,则确定向所述待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商加一;
[0091]
若所述空闲时隙除以最大升级包传输时长的余数等于零,则确定向所述待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商。
[0092]
本实施例中,在确定空闲时隙的持续时长大于或等于最大升级包传输时长之后,同样能够确定本次空闲时隙能够发送多少包固件升级数据,以及每一包固件升级数据的长度,值得注意的是,每一包固件升级数据的长度不必完全一致。具体地,若空闲时隙除以最大升级包传输时长的余数大于零,则确定向待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商加一,其中整数商和余数都为整数;其中,该空闲时隙发送的前整数商的数量个固件升级数据的长度均为最大升级包的大小,最后一个固件升级数据的长度小于最大升级包的大小,具体由空闲时隙除以最大升级包传输时长的余数决定。若空闲时隙除以最大升级包传输时长的余数等于零,则确定向待升级节点发送的固件升级数据的数量为空闲时隙除以最大升级包传输时长的整数商;且所有固件升级数据的数量的大小均为最大升级包的大小。在一些实施例中最大升级包为256字节,若空闲时隙除以256字节数据传输时长的余数大于零,且整数商为a,则该空闲时隙发送的固件升级数据为a+1个,且该空闲时隙中前a个固件升级数据的长度均为256个字节,第a+1个固件升级数据的长度小于256个字节。若空闲时隙除以256字节数据传输时长的余数等于0,且整数商为b,则该空闲时隙发送的固件升级数据为b个,且这b个固件升级数据的长度均为256个字节。通过这种方式可以确定每个空闲时隙恰好能够发送的最多固件升级数据,既能够充分的利用空闲时隙进行固件升级,又不至于影响正常通信的数据包传输。
[0093]
在一实施例中,所述根据比较结果向待升级节点发送固件升级数据的步骤之后包括:
[0094]
逐个轮询所有所述待升级节点的接收状态;
[0095]
若存在所述待升级节点接收所述固件升级数据失败,则再次向所述待升级节点发送固件升级数据。
[0096]
本实施例中,向待升级节点发送固件升级数据的方式为广播发送,这样可以使lora网络中所有节点都接收到固件升级数据。在广播发送所有固件升级数据之后,再逐个轮询所有所述待升级节点的接收状态,如果存在待升级节点接收固件升级数据失败,则再
次向所述待升级节点发送固件升级数据。通过这种方法可以保证所有待升级节点都成功接收所有固件升级数据,提高固件升级的成功率。
[0097]
本发明还提出一种设备,设备包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的节点升级的程序,所述节点升级的程序用于执行本发明各个实施例所述的方法。
[0098]
本发明还提出一种计算机可读存储介质,其上存储有节点升级的程序。所述计算机可读存储介质包括计算机可读存储介质,所述计算机可读存储介质可以是图1的中的存储器,也可以是如rom(read-only memory,只读存储器)/ram(random access memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机计算机可读存储介质包括若干指令用以使得一台具有处理器的物联网终端设备(可以是手机,计算机,服务器,物联网终端,或者网络设备等)执行本发明各个实施例所述的方法。
[0099]
在本发明中,术语“第一”“第二”“第三”“第四”“第五”仅用于描述的目的,而不能理解为指示或暗示相对重要性,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0100]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0101]
尽管上面已经示出和描述了本发明的实施例,本发明保护的范围并不局限于此,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1