本发明涉及通信领域,具体涉及基于LoRa通讯的升级方法、系统及相应的终端设备和服务器。
背景技术:
目前基于LoRa通讯的物联网组网方案比较成熟,广泛应用在智慧城市、智慧环境、智慧农业等领域中,但采用LoRa通讯的终端不具备代码升级功能,一旦产品出现问题,则需要大批量召回,成本巨大。
基于LoRa通讯的物联网组网方案不具备终端代码升级功能,灵活性差,风险较高;一旦产品出现问题,则需要大批量召回,成本巨大。基于GPRS技术的物联网组网方案虽然可以进行终端设备代码升级,但其功耗大,成本高,每次只能对单一终端设备升级,而物联网设备往往数量巨大,因此造成升级效率低,服务器负荷压力大。
现有基于GPRS的终端代码升级方法为点对点升级,而基于LoRa通讯的通信速率较低,在SF7传输下速率仅有GPRS的十分之一,采用点对点升级耗时长,难以承受,也不能发挥LoRa技术具备广播传输的特点。
技术实现要素:
本发明旨在提供基于LoRa通讯的升级方法、系统及相应的终端设备和服务器,以解决现有技术方案中的基于LoRa通讯的终端设备不具备升级功能的问题。
为了实现所述目的,本发明基于LoRa通讯的升级方法,用于升级终端设备的固件代码,包括:
将终端设备分组;
响应于固件代码升级任务,服务器向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同;
终端设备响应于服务器发送的升级通知指令,根据所述升级通知指令接收服务器广播的升级包用以升级。
优选的,所述将终端设备分组包括:服务器根据各终端设备的信号强弱进行分组;信号强的终端设备组的预设扩频因子数值小于信号弱的终端设备组的预设扩频因子。
优选的,服务器下发时间数据以规定终端设备的上传时间段,终端设备接受服务器下发的时间数据在上报时间段发送业务数据以及接受服务器发送的升级通知指令。
优选的,所述将终端设备分组包括:服务器将终端设备分成两组;一组终端设备的预设扩频因子置为SF9,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第一个时间段;另一组终端设备的预设扩展因子置为SF12,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第二个时间段;所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:在所述第一个时间段以SF9广播升级包,在所述第二个时间段以SF12广播升级包。
优选的,所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:将升级包拆分成若干数据包,并广播所述数据包,其中,每个数据包包含有序列号和总包数;终端设备在升级通知指令所在上传时间段的下一上传时间段的第三个时间段检测判断升级包数据是否有缺失,如果有缺失,在所述第三个时间段向服务器请求缺失的数据包。
优选的,所述第一个时间段为所述下一上传时间段的第一个1/3时间段;所述第二个时间段为所述下一上传时间段的第二个1/3时间段;所述第三个时间段为所述下一上传时间段的第三个1/3时间段。
优选的,所述终端设备在所述上报时间段的一个随机时间发送业务数据;且/或,所述终端设备在所述第三个时间段的一个随机时间向服务器请求缺失的数据包。
本发明的另一方面,基于LoRa通讯的升级系统,用于升级终端设备的固件代码,包括服务器和终端设备;
所述服务器被配置为:将终端设备分组;响应于固件代码升级任务,向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同;
所述终端设备被配置为:响应于服务器发送的升级通知指令,根据所述升级通知指令接收服务器广播的升级包用以升级。
本发明的另一方面,一种终端设备,所述终端设备被配置为:响应于服务器发送的用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,根据所述升级通知指令在对应的预设时间以对应的预设因子打开接收窗以接收服务器广播的升级包。
本发明的另一方面,一种服务器,所述服务器被配置为:将终端设备分组;响应于固件代码升级任务,向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同。
通过实施本发明可以取得以下有益技术效果:
1.实现基于LoRa通讯的终端设备固件代码升级,并基于终端设备分组以不同的扩频因子SF进行升级,提高升级效率。
2.服务器根据各终端设备的信号强弱进行分组,针对扩频因子值越小时传输速度越快以及传输距离越短的特点,信号强的终端设备组预设扩频因子值小,信号弱的终端设备组预设扩频因子值大;进而可以距离近的终端设备可以快速接收升级包;而距离远的终端设备依旧可以接受到升级包,进而提高升级包的传输效率。
3.终端设备在上报时间段发送业务数据以及接受服务器发送的升级通知指令,该上报时间段是周期性的时间段,周期性的时间段的优点在于,服务器与终端设备之间可以统一设定,如可以设定:服务端在本时间段发送升级通知指令时,在下一时间段进行升级;并设定在下一个时间段的第几个时间区间由哪一组设备终端进行升级包接收;进一步还可以设定下一个时间段的第几个时间区间由哪一组设备终端以什么扩频因子值进行升级包接收。这样的设置,使得升级通知指令无需复杂的数据即可知道设备终端在何时接收升级包、以什么扩频因子值进行升级包接收。
4.所述终端设备在所述上报时间段的一个随机时间发送业务数据,进而减少终端设备同时发送业务数据的几率,降低服务器压力,或减少数据上传设置的复杂度。
5.通过将升级包拆分为若干数据包,可以便于传输;同时在第三个时间段请求缺失的数据包,保证数据包的完整性。
附图说明
图1为实施例1中基于LoRa通讯的升级方法的流程图;
图2为实施例2中基于LoRa通讯的升级系统的连接图。
具体实施方式
为了便于本领域技术人员的理解,下面结合具体实施例对本发明作进一步的说明:
实施例1:
本发明提供了基于LoRa通讯的升级方法,用于升级终端设备的固件代码,如图1所示,包括:
步骤S1:将终端设备分组;
步骤S2:响应于固件代码升级任务,服务器向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同;
步骤S3:终端设备响应于服务器发送的升级通知指令,根据所述升级通知指令接收服务器广播的升级包用以升级。
本实施例有效利用LoRa(Long Range)通讯的扩频因子SF,通过对终端设备进行分组,使得不同组的终端设备在接受升级包时采用不同的扩频因子,当终端设备的固件代码需要升级时,服务器通知各组终端设备在预设时间以预设因子打开接收窗;并与各组终端设备打开接收窗的预设时间和预设因子相对应的,服务器在相对应的时间以相对应的预设因子广播升级包;使得终端设备可以接受到服务区广播的升级包,并根据升级包升级,实现基于LoRa通讯的终端设备固件代码升级;并基于终端设备分组以不同的扩频因子SF进行升级,提高升级效率。由于不同扩频因子SF,其传播速度、传播距离以及功耗不相同,采用本实施例的方法,可以根据实际需求依据不同扩频因子的特点进行分组,最终满足所述实际需求。
可以知道的,LoRa通讯可采用LoRaWAN通讯协议。
在一种实施方式中,所述根据所述升级通知指令接收服务器广播的升级包用以升级包括:终端设备在升级通知指令中指代的预设时间、以预设扩频因子打开接收窗,以接收服务器广播升级包。
在一种实施方式中,所述将终端设备分组包括:服务器根据各终端设备的信号强弱进行分组;信号强的终端设备组的预设扩频因子数值小于信号弱的终端设备组的预设扩频因子。服务器根据各终端设备的信号强弱进行分组,针对扩频因子值越小时传输速度越快以及传输距离越短的特点,信号强的终端设备组预设扩频因子值小,信号弱的终端设备组预设扩频因子值大;进而可以距离近的终端设备可以快速接收升级包;而距离远的终端设备依旧可以接受到升级包,进而提高升级包的传输效率。可以知道的,服务器根据各终端设备的信号强弱进行分组时,是在终端设备采用的相同扩频因子值时进行的信号强弱判断。
在一种实施方式中,服务器下发时间数据以规定终端设备的上传时间段,终端设备接受服务器下发的时间数据在上报时间段发送业务数据以及接受服务器发送的升级通知指令。终端设备在上报时间段发送业务数据以及接受服务器发送的升级通知指令,该上报时间段是周期性的时间段,周期性的时间段的优点在于,服务器与终端设备之间可以统一设定,如可以设定:服务端在本时间段发送升级通知指令时,在下一时间段进行升级;并设定在下一个时间段的第几个时间区间由哪一组设备终端进行升级包接收;进一步还可以设定下一个时间段的第几个时间区间由哪一组设备终端以什么扩频因子值进行升级包接收。这样的设置,使得升级通知指令无需复杂的数据即可知道设备终端在何时接收升级包、以什么扩频因子值进行升级包接收。作为较优的实施方式,设备终端在升级时间段不再上传数据。
作为上述基于LoRa通讯的升级方法的实施方式,所述终端设备在所述上报时间段的一个随机时间发送业务数据,进而减少终端设备同时发送业务数据的几率,降低服务器压力。
作为上述基于LoRa通讯的升级方法的实施方式,所述将终端设备分组包括:服务器将终端设备分成两组;一组终端设备的预设扩频因子置为SF9,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第一个时间段;另一组终端设备的预设扩展因子置为SF12,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第二个时间段;所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:在所述第一个时间段以SF9广播升级包,在所述第二个时间段以SF12广播升级包。扩频因子值为9时,终端设备与服务器通信时,具备了速度;扩频因子值为12时,具备了距离;通过在不同时间段分别以SF9和SF12传输升级包,即兼顾了距离、又兼顾了速度。可以知道的,预设扩频因子置为SF9的那组设备终端为通信信号相对较好的设备终端;预设扩频因子置为SF12的那组设备终端为通信信号相对较差的设备终端。本实施例中,由于升级时间以发送升级通知指令的时间作为基础,故升级通知指令可以采用很简单的信号,进而简化升级通知指令的复杂度。
作为上述基于LoRa通讯的升级方法的实施方式,所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:将升级包拆分成若干数据包,并广播所述数据包,其中,每个数据包包含有序列号和总包数;终端设备在升级通知指令所在上传时间段的下一上传时间段的第三个时间段检测判断升级包数据是否有缺失,如果有缺失,在所述第三个时间段向服务器请求缺失的数据包。通过将升级包拆分为若干数据包,可以便于传输;同时在第三个时间段请求缺失的数据包,保证数据包的完整性。
在一种实施方式中,所述第一个时间段为所述下一上传时间段的第一个1/3时间段;所述第二个时间段为所述下一上传时间段的第二个1/3时间段;所述第三个时间段为所述下一上传时间段的第三个1/3时间段。
在一种实施方式中,所述终端设备在所述第三个时间段的一个随机时间向服务器请求缺失的数据包。可以防止终端设备在请求缺失的数据包时,发生冲突。可以知道的,在第三个时间段缺失的数据包量较少,此时对速度的要求不要,可以统一以SF12进行通信。
在一种实施方式中,服务器下发时间数据以同步设备终端时间。
实施例2:
如图2所述,基于LoRa通讯的升级系统,用于升级终端设备的固件代码,包括服务器1和终端设备2;
所述服务器1被配置为:将终端设备分组;响应于固件代码升级任务,向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同;
所述终端设备2被配置为:响应于服务器发送的升级通知指令,根据所述升级通知指令接收服务器广播的升级包用以升级。
在一种实施例中,服务器被配置为:根据各终端设备的信号强弱进行分组;信号强的终端设备组的预设扩频因子数值小于信号弱的终端设备组的预设扩频因子。
在一种实施例中,服务器被配置为:下发时间数据以规定终端设备的上传时间段,终端设备被配置为:接受服务器下发的时间数据在上报时间段发送业务数据以及接受服务器发送的升级通知指令。
在一种实施例中,所述将终端设备分组包括:服务器将终端设备分成两组;一组终端设备的预设扩频因子置为SF9,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第一个时间段;另一组终端设备的预设扩展因子置为SF12,该组终端设备的预设时间为升级通知指令所在上传时间段的下一上传时间段的第二个时间段;所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:在所述第一个时间段以SF9广播升级包,在所述第二个时间段以SF12广播升级包。
在一种实施例中,所述向各组终端设备在预设时间以预设扩频因子广播升级包包括:将升级包拆分成若干数据包,并广播所述数据包,其中,每个数据包包含有序列号和总包数;终端设备在升级通知指令所在上传时间段的下一上传时间段的第三个时间段检测判断升级包数据是否有缺失,如果有缺失,在所述第三个时间段向服务器请求缺失的数据包。
在一种实施例中,所述第一个时间段为所述下一上传时间段的第一个1/3时间段;所述第二个时间段为所述下一上传时间段的第二个1/3时间段;所述第三个时间段为所述下一上传时间段的第三个1/3时间段。
在一种实施例中,所述终端设备在所述上报时间段的一个随机时间发送业务数据。
在一种实施例中,所述终端设备在所述第三个时间段的一个随机时间向服务器请求缺失的数据包。
本实施例中的系统用于执行实施例1中的方法,其原理和效果与方法中的一致,本实施例不再进行详细描述。
实施例3:
一种终端设备,所述终端设备被配置为:响应于服务器发送的用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,根据所述升级通知指令在对应的预设时间以对应的预设因子打开接收窗以接收服务器广播的升级包。
本实施例为实施例2系统的终端设备,其原理、效果和可选实施方式可以参考实施例2中的内容,本发明不再重复描述。
实施例4:
一种服务器,所述服务器被配置为:将终端设备分组;响应于固件代码升级任务,向各组终端设备发送用于通知各组终端设备在预设时间以预设扩频因子打开接收窗的升级通知指令,以及向各组终端设备在预设时间以预设扩频因子广播升级包,其中,各组终端设备的预设时间和预设扩频因子不相同。
本实施例为实施例2系统的服务器,其原理、效果和可选实施方式可以参考实施例2中的内容,本发明不再重复描述。
以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。