一种LoRa终端设备空中升级方法及系统与流程

文档序号:14010431阅读:475来源:国知局
一种LoRa终端设备空中升级方法及系统与流程

本发明涉及lora应用领域,尤其涉及一种lora终端设备空中升级方法,还涉及一种实现所述lora终端设备空中升级方法的系统。



背景技术:

由于lora通信的低数据率特性以及对终端设备的信道使用有占空比的约束,对终端设备进行固件升级存在一系列技术难题,突出的有以下三点:

(1)lora终端设备正常工作时大部分的时间处于休眠,用自身网络进行升级不现实。

(2)如果需要升级的终端设备数量庞大,可能会造成整个lora网络的拥堵,影响整个系统的通信性能。

(3)对于采用电池供电的终端设备,如果空中升级手段不合理,会大幅度增加功耗,电池寿命降低。



技术实现要素:

为解决现有技术中的问题,本发明提供一种lora终端设备空中升级方法,还提供一种实现所述lora终端设备空中升级方法的系统。

本发明lora终端设备空中升级方法包括如下步骤:

s1:服务器收到升级需求,获取需要升级的lora终端设备信息;

s2:获取或计算可移动升级装置及需要升级的lora终端设备的位置;

s3:找出升级区域未被使用并且可用的频点,划分为升级频段,并将其与lora终端设备的初始收发频点传给可移动升级装置;

s4:服务器在升级区域找出一个初始位置并将坐标发送给可移动升级装置,控制可移动升级装置移动到指定坐标点;

s5:服务器发送升级指令给需要升级的lora终端设备,lora终端设备进入升级模式;

s6:服务器向可移动升级装置下发升级开启指令,可移动升级装置收到升级开启指令后,向lora终端设备发送切换收发频点指令,使lora终端设备切换至升级频点;

s7:lora终端设备接收可移动升级装置的升级固件进行升级。

本发明作进一步改进,还包括步骤s8:lora终端设备升级成功后,将结果反馈到服务器,服务器根据升级质量或结果对可移动升级装置的位置进行调整。

本发明作进一步改进,在步骤s5中,所述lora终端设备收到服务器的升级指令后,获取升级指令中的初始收发频点,将发送功率及数据率设置为最大,将初始接收频点设置为服务器提供的频点,打开接收可移动升级装置的收发频点指令。

本发明作进一步改进,在步骤s6中,所述lora终端设备判断是否收到可移动升级装置的收发频点切换指令,如果是,改变收发频点,接收升级固件的数据包。

本发明作进一步改进,在步骤s7中,所述lora终端设备收到可移动升级装置的升级包后,执行步骤为:

s71:判断是否从可移动升级装置收到升级包,如果否,继续接收,如果是,检测帧头是否合法,如果不合法,放弃该升级包,继续接收可移动装置的升级包;如果合法,执行下一步;

s72:判断crc校验是否成功,如果是,执行下一步,如果否,放弃该升级包,继续接收可移动装置的升级包;

s73:检测接收到的升级包是否为重复帧,如果是,放弃该升级包,继续接收可移动装置的升级包,如果否,根据数据包的帧号按顺序写到程序备份区对应位置,有效帧数加1;

s74:根据升级包中的总帧数与实际已经接收到的有效帧数对比判断是否升级完成,如果是,将更新标志置1,并写到程序备份区对应位置,然后执行下一步,如果否,判断是否接收到最后一个升级包或者接收超时,如果是,统计丢失的包,并将丢失的包的帧号及lora终端设备id定时发给可移动升级装置让其下次重发,然后接收可移动升级装置发送的升级包,如果否,继续接收可移动升级装置发送的升级包;

s75:接收完所有升级包,进行升级。

本发明作进一步改进,步骤s75的执行步骤包括:

s751:lora终端设备软复位进入bootloader,读取更新标志的值,判断是否为1,如果是,将程序备份区的固件区数据拷贝到程序运行去,更新标志置为0,然后执行步骤s752,如果否,执行步骤s753;

s752:判断检验是否成功,如果是,执行步骤s753,如果否,重新拷贝,循环执行步骤s752;

s753:跳转到程序运行去执行;

s754:执行完毕,lora终端设备进入正常通信模式,向服务器上传升级结果;

s755:服务器收到该lora终端设备上传的数据,表示升级成功。

本发明作进一步改进,在步骤s6中所述可移动升级装置收到服务器的升级开启指令处理步骤包括:

a61:判断是否收到服务器的升级指令,如果是,读取自身存储介质的升级固件,如果读取成功,将升级固件分割,按格式打包成升级包并按照顺序进行编号,然后执行下一步,如果读取失败,将读取失败的信息反馈给服务器;

a62:将发送频点设置为lora终端设备的初始接收频点,接收频点设置为lora终端设备的初始发送频点;

a63:按顺序广播升级包,判断所有升级包发完后是否接收到lora终端设备上报的丢包信息,如果否,本次升级结束,并向服务器反馈,如果是,执行下一步;

a64:统计各个lora终端设备的所丢的数据包,重新发送数据包并反馈给服务器,然后执行步骤a62。

本发明还提供一种实现所述lora终端设备空中升级方法的系统,包括服务器、lora终端设备和可移动升级装置,其中,所述服务器通过lora网关与lora终端设备相连,所述服务器获取需要升级的lora终端设备信息,找出升级区域未被使用并且可用的频点,划分为升级频段,并将其与lora终端设备的初始收发频点传给可移动升级装置,然后控制可移动升级装置移动到指定位置通过升级频段对所述lora终端设备进行升级。

本发明作进一步改进,所述可移动升级装置包括mcu、存储介质、运动执行单元、多个lora收发单元、导航单元,所述mcu分别与存储介质、运动执行单元、多个lora收发单元、导航单元相连,其中,所述lora收发单元包括多个用于为lora终端设备升级的收发模块和一个用于与服务器通信的lora收发器。

本发明作进一步改进,所述mcu通过spi转接口分别与lora收发器和每个收发模块相连,其中,所述收发模块包括1片lora数字基带芯片及2片lorarf收发芯片。

与现有技术相比,本发明的有益效果是:采用由服务器自动划分的升级专用频段,避开当前lora通信所用的频段,达到lora终端设备空中升级时不影响其它终端设备的正常通信以及整个系统的通信性能的效果;采用广播的方式可同时给多个终端设备升级,支持断点重传再加上有针对性的良好的重传策略,有效地减少了某些终端设备升级过程中的功耗及增加升级效率;动态控制有效解决因为升级装置与被升级设备的距离远而影响升级质量与速度的问题。

附图说明

图1为本发明结构示意图;

图2为可移动升级装置结构示意图;

图3为本发明方法流程图;

图4为lora终端设备的flash分区;

图5为lora终端设备空中升级处理流程图;

图6为可移动升级装置的升级处理流程图;

图7为可移动升级装置上传到lora终端设备的升级包格式;

图8为lora终端设备上传到可移动升级装置的数据包格式;

图9为服务器在空中升级过程中的处理流程图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

如图1所示,本发明升级系统包括服务器、lora终端设备(以下简称终端设备)和可移动升级装置(简称升级装置),其中,所述服务器通过lora网关与lora终端设备相连,所述服务器获取需要升级的lora终端设备信息,找出升级区域未被使用并且可用的频点,划分为升级频段,并将其与lora终端设备的初始收发频点传给可移动升级装置,然后控制可移动升级装置移动到指定位置通过升级频段对所述lora终端设备进行升级。

如图2所示,所述可移动升级装置包括高性能的mcu(微控制单元)、存储介质、运动执行单元、多个lora收发单元、导航单元,所述mcu分别与存储介质、运动执行单元、多个lora收发单元、导航单元相连。

其中,本例lora收发单元分为两部分,一部分专用于与lora终端设备通信进行升级,,每个lora收发单元由1片lora数字基带芯片及2片lorarf收发芯片及其外围电路组成,lora数字基带芯片可以是sx1301或sx1308等sx13xx系列芯片,lorarf(射频)收发芯片可以是sx1255或sx1257等,多片sx13xx可确保并行收发及同时进行多批升级;另一部分专用于与lora通信系统中的lora网关通信的lora收发器,可以是sx127x系列的ic,作为另一个终端设备的角色与服务器进行交互。本例的一片lora数字基带芯片可以同时处理8通道的数据,具体可由用户按需求配置。

本例的可移动升级装置还包括spi转接口,所述mcu通过spi转接口分别与lora收发器和每个收发模块相连。spi(串行外设接口)转接口可以是usb转spi或直接采用mcu的spi等。

本例的导航单元可以是gps、glonass、galileo、北斗等,负责运动导航。运动执行单元可以是无人机、无人车等。本例的存储介质通过usb接口与mcu相连,可以是u盘等,用于存放升级固件。

本例升级前,终端设备及升级装置都需要事先在服务器注册登记,升级固件事先保存在升级装置的usb存储介质。也可通过在可移动升级装置扩展ip网络通信,事先由服务器通过ip网络将升级固件传到升级装置。

如图3所示,lora终端设备空中升级方法包括如下步骤:

s1:服务器收到升级需求,获取需要升级的lora终端设备信息;

s2:获取或计算可移动升级装置及需要升级的lora终端设备的位置;

s3:找出升级区域未被使用并且可用的频点,划分为升级频段,并将其与lora终端设备的初始收发频点传给可移动升级装置;

s4:服务器在升级区域找出一个初始位置并将坐标发送给可移动升级装置,控制可移动升级装置移动到指定坐标点;

s5:服务器发送升级指令给需要升级的lora终端设备,lora终端设备进入升级模式;

s6:服务器向可移动升级装置下发升级开启指令,可移动升级装置收到升级开启指令后,向lora终端设备发送切换收发频点指令,使lora终端设备切换至升级频点;

s7:lora终端设备接收可移动升级装置的升级固件进行升级。

此外,还可以包括步骤s8:lora终端设备升级成功后,将结果反馈到服务器,服务器根据升级质量或结果对可移动升级装置的位置进行调整。

如图4所示,本例终端设备中央处理器的flash由bootloader、程序运行区、程序备份区组成,flash是存储芯片的一种,通过特定的程序可以修改里面的数据。终端设备复位时先进入bootloader执行;程序备份区用于存放升级标志及实际固件;程序执行区用于执行程序。

如图5所示,本例空中升级过程中,终端设备的执行步骤为:复位时先进入bootloader,检测程序备份区的升级标志看是否需要更新固件,若需要则将存放在程序备份区的固件拷贝到程序运行区,完成后跳转到程序运行区,若不需要升级,直接跳转到程序运行区执行,跳转到程序运行区后进入正常通信模式。

本例的详细执行过程包括:

在步骤s5中,所述lora终端设备收到服务器的升级指令后,获取升级指令中的初始收发频点,将发送功率及数据率设置为最大,将初始接收频点设置为服务器提供的频点,打开接收可移动升级装置的收发频点指令。

在步骤s6中,所述lora终端设备判断是否收到可移动升级装置的收发频点切换指令,如果是,改变收发频点,接收升级固件的数据包。

在步骤s7中,本例升级装置上传到终端设备的升级包格式如图7所示,包括帧头、帧号、总帧数、payload(有效载荷)和crc(循环冗余校验码),所述lora终端设备收到可移动升级装置的升级包后,执行步骤为:

s71:判断是否从可移动升级装置收到升级包,如果否,继续接收,如果是,检测帧头是否合法,如果不合法,放弃该升级包,继续接收可移动装置的升级包;如果合法,执行下一步;

s72:判断crc校验是否成功,如果是,执行下一步,如果否,放弃该升级包,继续接收可移动装置的升级包;

s73:检测接收到的升级包是否为重复帧,如果是,放弃该升级包,继续接收可移动装置的升级包,如果否,根据数据包的帧号将payload按顺序写到程序备份区对应位置,有效帧数加1;

s74:根据升级包中的总帧数与实际已经接收到的有效帧数对比判断是否升级完成,如果是,将更新标志置1,并写到程序备份区对应位置,然后执行下一步,如果否,判断是否接收到最后一个升级包或者接收超时,如果是,统计丢失的包,并将丢失的包的帧号及lora终端设备id定时发给可移动升级装置让其下次重发,然后接收可移动升级装置发送的升级包,如果否,继续接收可移动升级装置发送的升级包;如图8所示,终端设备上传到升级装置的数据包格式包括:帧头、终端设备id、总的缺帧数、payload和crc,其中,payload包括缺的具体帧列表。

s75:接收完所有升级包,进行升级。

步骤s75的处理过程具体包括:

s751:lora终端设备软复位进入bootloader,读取更新标志的值,判断是否为1,如果是,将程序备份区的固件区数据拷贝到程序运行去,更新标志置为0,然后执行步骤s752,如果否,执行步骤s753;

s752:判断检验是否成功,如果是,执行步骤s753,如果否,重新拷贝,循环执行步骤s752;

s753:跳转到程序运行去执行;

s754:执行完毕,lora终端设备进入正常通信模式,向服务器上传升级结果;

s755:服务器收到该lora终端设备上传的数据,表示升级成功。

在空中升级过程中,本例的升级装置主要有两个线程负责,其中第一个线程主要负责接收并处理服务器传过来的指令及控制升级装置的运动;第二个线程专门处理升级流程及向服务器上报信息。

如图6所示,在步骤s6中,所述可移动升级装置收到服务器的升级开启指令后,第二个线程的处理步骤包括:

a61:判断是否收到服务器的升级指令,如果是,读取自身存储介质的升级固件,如果读取成功,将升级固件分割,按格式打包成升级包并按照顺序进行编号,然后执行下一步,如果读取失败,将读取失败的信息反馈给服务器;

a62:将发送频点设置为lora终端设备的初始接收频点,接收频点设置为lora终端设备的初始发送频点;

a63:按顺序广播升级包,判断所有升级包发完后是否接收到lora终端设备上报的丢包信息,如果否,本次升级结束,并向服务器反馈,如果是,执行下一步;

a64:统计各个lora终端设备的所丢的数据包,重新发送数据包并反馈给服务器,然后执行步骤a62。

如图9所示,作为本发明的一实施例,本例中服务器端的详细执行过程为:

c1:判断是否收到客户端等的升级需求,如果是,获取或计算升级装置及需要升级的终端设备的位置;

c2:结合区域规范的频段统计当前已经正在被用掉的频点,找出空闲频段用作升级频段;

c3:结合所需升级的终端设备的分布及lora的最大通信距离寻找升级装置的初始位置点并发控制指令指示升级装置移动到指定位置;

c4:分别向终端设备及升级装置发送升级开启指令;

c5:判断服务器是否收到已经进入升级模式后的终端设备升级完成后上传的数据,如果是,指示对应终端设备已经升级完成;

c6:判断是否还有未升级完成的终端设备或收到升级装置的升级失败反馈信息,如果否,返回执行步骤c1,如果是,判断根据当次升级完成的终端设备的数量判断升级指令是否有改善,如果是,返回执行步骤c5,如果否,控制升级装置往未完成升级的终端设备分布区域移动;

c7:发送收发频点切换指令到升级装置进行下一轮回升级。

本发明具有以下突出优势:

(1)采用由服务器自动划分的升级专用频段,避开当前lora通信所用的频段,达到lora终端设备空中升级时不影响其它终端设备的正常通信以及整个系统的通信性能的效果;

(2)采用广播的方式可同时给多个终端设备升级,支持断点重传再加上有针对性的良好的重传策略,有效地减少了某些终端设备升级过程中的功耗及增加升级效率;

(3)升级装置的可移动性及自带的导航系统再结合服务器的综合决策与动态控制确保了所有的终端设备的顺利完成,并有效解决因为升级装置与被升级设备的距离远而影响升级质量与速度的问题;

(4)重传时服务器对收发频点的切换及升级装置的位置动态调节可有效避免因通信信道被干扰或质量不好而对升级质量产生的影响,同时,变频也可以一定程度保证升级的安全性。

以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1