CN113971287A - 基于LoRa通信的批量升级方法、升级*** - Google Patents
基于LoRa通信的批量升级方法、升级*** Download PDFInfo
- Publication number
- CN113971287A CN113971287A CN202111197612.0A CN202111197612A CN113971287A CN 113971287 A CN113971287 A CN 113971287A CN 202111197612 A CN202111197612 A CN 202111197612A CN 113971287 A CN113971287 A CN 113971287A
- Authority
- CN
- China
- Prior art keywords
- software package
- data packets
- encrypted data
- packet
- version software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种基于LoRa通信的批量升级方法、升级***。该方法包括:获取终端设备的当前版本软件包,以及获取最新版本软件包;根据所述当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包;将所述差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包;根据预设定制处理规则对所述多个传输数据包进行加密处理,得到多个加密数据包;将所述多个加密数据包下发至所述终端设备,以使所述终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作。本申请的基于LoRa通信的升级方法,能够提高传输速率和传输可靠性。
Description
技术领域
本申请涉及物联网升级技术领域,尤其涉及一种基于LoRa通信的批量升级方法、升级***。
背景技术
目前嵌入式软件技术和物联网技术发展迅速,适用于各种场景的物联网设备越来越多。在物联网应用中,终端设备数量较多,分布较为广泛,并且终端设备一旦部署后就难以再拆卸,这种特点给终端设备的升级带来了很多不便。
相关技术中,通过逐个手动升级维护的方式给终端设备中进行升级维护,然而,这必然带来了巨大的工作量和加大了升级成本。通过挨个无线升级的方式进行升级维护,由于LoRa通信速率较低的缘故,升级包传输往往耗时数十分钟甚至几个小时。当对数以百计的设备进行升级时,这样的传输效率是无法满足使用需要的。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种基于LoRa通信的批量升级方法,能够通过服务器对终端设备进行无线批量升级,降低了升级包传输耗时,提高终端设备的升级效率。
本申请还提出一种基于LoRa通信的批量升级***。
根据本申请的第一方面实施例的基于LoRa通信的批量升级方法,应用于服务器,所述方法包括:
获取终端设备的当前版本软件包,以及获取最新版本软件包;
根据所述当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包;
将所述差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包;
根据预设定制处理规则对所述多个传输数据包进行加密处理,得到多个加密数据包;
将所述多个加密数据包下发至所述终端设备,以使所述终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作。
根据本申请实施例的基于LoRa通信的批量升级方法,至少具有如下有益效果:通过根据当前版本软件包和最新版本软件包之间的数据差异,以得到差分软件包,且差分软件包包括数据差异位置和对应的操作指令,而不需要将整个最新版本软件包全部传输,节省了升级包传输的时间,且便于文件的传输以及终端设备的升级;然后,将差分软件包进行拆分并进行前向纠错编码,然后***冗余数据得到多个传输数据包,以实现差分软件包能够分批次的传输,保证了传输的可靠性;然后对多个传输数据包进行加密处理,得到多个加密数据包,以加强传输过程中的安全性;再将加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包进行升级。通过这样设置,能够提高升级的速率,降低升级包传输的时间,且提高升级包传输的安全性,提高了终端设备升级的效率,并且服务器同时下发多个加密数据包,对于同一版本信息的终端设备只需要根据同一个预设广播信息接收到对应的多个加密数据包,从而实现服务器对终端设备的批量升级。
根据本申请的一些实施例,所述方法还包括:
获取LoRa通信的数据传输的信号质量;
根据所述信号质量和预设数据传输规则确定所述加密数据包的重传次数,所述预设数据传输规则包括所述信号质量和所述重传次数的对应关系。
根据本申请的一些实施例,所述根据所述当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包,包括:
获取所述当前版本软件包和最新版本软件包的差异信息;其中,所述差异信息包括差异位置和差异内容;
在所述差异位置上添加所述差异内容对应的操作指令,得到所述差分软件包。
根据本申请的一些实施例,所述将所述差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包,包括:
以最大包长度对所述差分软件包进行拆分处理和组包以得到若干个待处理数据包;其中,所述最大包长度根据当前状态下的LoRa通信速率确定;
对所述待处理数据包进行前向纠错编码并添加包头信息,得到所述传输数据包,所述包头信息包括:校验码、版本信息、数据包长度信息。
根据本申请的一些实施例,所述根据预设定制处理规则对所述多个传输数据包进行加密处理,得到多个加密数据包,包括:
根据预设定制处理规则对所述多个传输数据包添加广播信息,得到所述多个加密数据包,所述广播信息包括广播序号和广播密钥。
根据本申请的一些实施例,所述将所述多个加密数据包下发至所述终端设备,以使所述终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作,包括:
通过广播方式下发至所述终端设备,以使终端设备根据预设广播信息接收到对应加密数据包并进行升级操作。
根据本申请的第二方面实施例的基于LoRa通信的升级方法,应用于终端设备,所述方法包括:
上传当前版本软件包,以使服务器根据所述当前版本软件包生成多个加密数据包;
根据预设广播信息接收来自所述服务器发送的所述多个加密数据包;
根据预设定制处理规则对所述多个加密数据包进行解密处理,以得到多个传输数据包;
将所述多个传输数据包进行解析,得到对应的操作指令;
根据所述操作指令对所述当前版本软件包进行数据处理,得到最新版本软件包,并根据所述最新版本软件包进行升级操作。
根据本申请实施例的基于LoRa通信的批量升级方法,至少具有如下有益效果:通过根据当前版本软件包和最新版本软件包之间的数据差异,以得到差分软件包,且差分软件包包括数据差异位置和对应的操作指令,而不需要将整个最新版本软件包全部传输,节省了升级包传输的时间,且便于文件的传输以及终端设备的升级;然后,将差分软件包进行拆分并进行前向纠错编码,然后***冗余数据得到多个传输数据包,以实现差分软件包能够分批次的传输,保证了传输的可靠性;然后对多个传输数据包进行加密处理,得到多个加密数据包,以加强传输过程中的安全性;再将加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包进行升级。通过这样设置,能够提高升级的速率,降低升级包传输的时间,且提高升级包传输的安全性,提高了终端设备升级的效率,并且服务器同时下发多个加密数据包,对于同一版本信息的终端设备只需要根据同一个预设广播信息接收到对应的多个加密数据包,从而实现服务器对终端设备的批量升级。
根据本申请的一些实施例,所述根据预设广播信息接收来自所述服务器发送的所述多个加密数据包,包括:
接收来自服务器与预设广播信息匹配的所述多个加密数据包,并获取所述加密数据包的包头信息;
若所述包头信息和预设包头信息匹配,则继续接收所述服务器发送的所述加密数据包;
若所述包头信息和预设包头信息不匹配,停止接收所述服务器发送的所述加密数据包。
根据本申请的一些实施例,还包括:
获取根据所述最新版本软件包进行升级操作后的运行状态;
若所述运行状态为正常状态,将所述最新版本软件包的版本信息和所述运行状态发送至所述服务器;
若所述运行状态为异常状态,获取设备编号,并将所述设备编号和所述运行状态发送至所述服务器。
根据本申请第三方面实施例的基于LoRa通信的批量升级***,***包括服务器和若干终端设备;
其中,服务器和若干终端设备连接,服务器用于执行如第一方面实施例中任意一项实施例的基于LoRa通信的批量升级方法;
终端设备用于执行如第二方面实施例中任意一项实施例的基于LoRa通信的升级方法。
本申请第三方面实施例的基于LoRa通信的批量升级***,至少具有以下有益效果:通过根据当前版本软件包和最新版本软件包之间的数据差异,以得到差分软件包,且差分软件包包括数据差异位置和对应的操作指令,而不需要将整个最新版本软件包全部传输,节省了升级包传输的时间,且便于文件的传输以及终端设备的升级;然后,将差分软件包进行拆分并进行前向纠错编码,然后***冗余数据得到多个传输数据包,以实现差分软件包能够分批次的传输,保证了传输的可靠性;然后对多个传输数据包进行加密处理,得到多个加密数据包,以加强传输过程中的安全性;再将加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包进行升级。通过这样设置,能够提高升级的速率,降低升级包传输的时间,且提高升级包传输的安全性,提高了终端设备升级的效率,并且服务器同时下发多个加密数据包,对于同一版本信息的终端设备只需要根据同一个预设广播信息接收到对应的多个加密数据包,从而实现服务器对终端设备的批量升级。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
下面结合附图和实施例对本申请做进一步的说明,其中:
图1为本申请一些实施例提供的基于LoRa通信的批量升级方法的流程图;
图2为本申请一些实施例提供的基于LoRa通信的批量升级方法的流程图;
图3为本申请一些实施例提供的基于LoRa通信的批量升级方法的流程图;
图4为本申请一些实施例提供的基于LoRa通信的批量升级方法的流程图;
图5为本申请一些实施例提供的基于LoRa通信的升级方法的流程图;
图6为本申请一些实施例提供的基于LoRa通信的升级方法的流程图;
图7为本申请一些实施例提供的基于LoRa通信的升级方法的流程图;
图8为本申请一些实施例提供的基于LoRa通信的批量升级***的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本申请的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本申请中的具体含义。
本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在此,对本申请中涉及到的名词进行解释:
LoRa就是远距离无线电(Long Range Radio),是semtech公司创建的低功耗局域网无线标准,它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍。LoRa这一技术可以为电池供电的无线设备提供局域、全国或全球的网络。LoRa瞄准的是物联网中的一些核心需求,如安全双向通讯、移动通讯和静态位置识别等服务。该技术无需本地复杂配置,就可以让智能设备间实现无缝对接互操作,给物联网领域的用户、开发者和企业自由操作权限。LoRa传输距离远,在城镇的传输距离可达2-5Km,郊区可达15Km;LoRa的容量大:一个LoRa网关可以连接成千上万个LoRa节点,并且,LoRa具有前向纠错的能力。
循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
在物联网应用中,需要大量地使用无线终端设备,这些无线终端设备具有两个特点:1、无线终端设备的分布区域广泛,很多设备一旦部署就难以再进行拆卸;2、设备的数量庞大。当这些无线终端设备需要升级时,使用传统方式逐个手动升级维护会产生很大的工作量。并且,现有的终端设备中应用程序的升级方式都是采用有线方式。具体为,通过线路的连接将新版本的应用程序烧录到终端设备中,然后终端设备根据新版本的应用程序进行升级。这种方式升级过程操作较为复杂,对于已部署难以拆卸的设备不容易实现。
基于此,可以采取无线的方式进行升级。但是,一般来说物联网通信的远程传输会带来丢包、误码的问题,并且由于传输带宽较低,传输文件的速率也非常低下,经常需要花费数小时传输升级包。为此,本申请提出一种基于LoRa通信的批量升级方法,能够提高升级的速率,使得终端设备升级更加方便、可靠。
下面结合图1对本申请实施例的基于LoRa通信的批量升级方法进行详细介绍。
第一方面,如图1所示,本申请的一些实施例提供了一种基于LoRa通信的批量升级方法,包括步骤101、步骤S102、步骤S103、步骤S104和步骤S105。下面对这五个步骤进行详细描述,应理解,本申请实施例的基于LoRa通信的批量升级方法包括但不限于步骤S101至步骤S105。
步骤S101:获取终端设备的当前版本软件包,以及获取最新版本软件包;
具体地,在步骤S101中,当前版本软件包指的是终端设备当前所运行的软件包。服务器可以直接接收与其连接的所有终端设备的当前版本软件包,也可以是获取与其连接的所有终端设备的当前版本软件包的版本信息,然后根据版本信息确定与该版本对应的软件包。对于根据版本信息确定与该版本对应的软件包,可以是通过服务器预存有上一个或者上几个版本的软件包,直接根据版本信息匹配得到当前版本软件包即可,也可以是其他方式确定,对此本申请不作具体限制。并且,由于在上次升级过程中,有的终端设备没有升级成功或者其他原因导致终端设备的当前版本软件包可能不一致,因此,需要获取所有终端设备的当前版本软件包的版本信息。最新版本软件包指的是当前已发布、可供终端设备更新到最新版本的软件包。
步骤S102:根据当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包;
具体地,在步骤S102中,由于获取终端设备的当前版本软件包和最新版本软件包可能不一致,则存在差分软件包。在终端设备的当前版本软件包和最新版本软件包不一致的情况下,根据当前版本软件包和最新版本软件包之间的数据差异确定差分软件包,且差分软件包为当前版本软件包和最新版本软件包之间的数据差异位置以及对应的操作指令,因此只需要传输差分软件包给终端设备,无需将整个最新版本软件包传送至终端设备,节省了软件升级包发送的时间,从而提高终端设备进行升级操作的效率。若终端设备的当前版本软件包和最新版本软件包一致的情况下,则不存在差分软件包。例如:存在两个终端设备,分别定义为终端设备A和终端设备B。若终端设备A的当前版本软件包的版本信息为V1,而终端设备B的当前版本软件包的版本信息为V2,若服务器存储的最新版本软件包的版本信息为V3,此时,由于当前版本软件包不同,其具体内容也存在着区别,在这种情况下,服务器需要根据V1版本的当前版本软件包和最新版本软件包之间的数据差异制作一个差分软件包,再根据V2版本的当前版本软件包和最新版本软件包之间的数据差异制作一个差分软件包,且制作得到的差分软件包都是表示数据差异位置和对应的操作指令,无需将整个V3版本的最新版本软件包分别下发至终端设备A和终端设备B,从而节省了升级包传输时间,进而提高升级包传输效率。
步骤S103:将差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包;
具体地,在步骤S103中,由于LoRa通信属于无线通信,一次性将整个差分软件包全部传输到终端设备上容易出现问题,因此需要将差分软件包进行拆分处理,得到多个传输数据包,并对传输数据包进行前向纠错编码和***冗余数据,得到多个传输数据包,然后将多个传输数据包分批传输,从而实现整个差分软件包的传输,且保证传输数据包传输的可靠性。
步骤S104:根据预设定制处理规则对多个传输数据包进行加密处理,得到多个加密数据包;
由于服务器直接将传输数据包发送至终端设备,若传输数据包在传输过程中丢失,则会造成信息泄露,因此根据预设定制处理规则对多个传输数据包进行加密处理,得到多个加密数据包,以通过加密的方式保证了数据传输的安全性。
步骤S105:将多个加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作。
具体地,在步骤105中,由于传统的升级包发送都是服务器逐个发送至终端设备,但是逐个发送会耗费大量的时间,且降低了终端设备升级的效率,因此,统一将所有的多个加密数据包下发至终端设备,则终端设备只需要根据预设广播信息接收到对应的加密数据包即可,则服务器无需将加密数据包逐个发送至终端设备,实现升级包批量发送,则终端设备可以批量进行升级操作,提高终端设备升级的效率。例如:服务器根据V3版本的最新版本软件包和V1版本的当前版本软件包得到多个加密数据包A,根据V3版本的最新版本软件包和V2版本的当前软件包得到多个加密数据包B,且携带V1版本的当前版本软件包的终端设备使用预设广播信息为a以接收到多个加密数据包A,而携带V2版本的当前版本软件包的终端设备使用预设广播信息为b以接收多个加密数据包B,因此不同版本的当前版本软件包的终端设备只需要携带对应的预设广播信息即可接收到对应的多个加密数据包,从而提高了升级包下发的效率,且提高终端设备进行升级操作的效率。
本申请实施例的基于LoRa通信的批量升级方法,通过根据当前版本软件包和最新版本软件包之间的数据差异,以得到差分软件包,且差分软件包包括数据差异位置和对应的操作指令,而不需要将整个最新版本软件包全部传输,节省了升级包传输的时间,且便于文件的传输以及终端设备的升级;然后,将差分软件包进行拆分并进行前向纠错编码,然后***冗余数据得到多个传输数据包,以实现差分软件包能够分批次的传输,保证了传输的可靠性;然后对多个传输数据包进行加密处理,得到多个加密数据包,以加强传输过程中的安全性;再将加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包进行升级。通过这样设置,能够提高升级的速率,降低升级包传输的时间,且提高升级包传输的安全性,提高了终端设备升级的效率,并且服务器同时下发多个加密数据包,对于同一版本信息的终端设备只需要根据同一个预设广播信息接收到对应的多个加密数据包,从而实现服务器对终端设备的批量升级。
下面结合图2对本申请实施例的基于LoRa通信的批量升级方法进行详细介绍。
如图2所示,在本申请的一些实施例中,基于LoRa通信的批量升级方法还包括步骤S201和步骤S202。
步骤S201:获取LoRa通信的数据传输的信号质量;
步骤S202:根据信号质量和预设数据传输规则确定加密数据包的重传次数,预设数据传输规则包括信号质量和重传次数的对应关系。
具体地,在本实施例中,服务器需要获取通信是信号传输的信号质量,当信号不好时,需要将每一个加密数据包都重传,重传次数根据信号质量和预设数据传输规则决定,如重新传输3次等。终端设备接收到相同的加密数据包时,需要将多余的加密数据包丢弃。在本实施例中,信号质量是根据终端设备一段时间内上行心跳包的到达率、信噪比和信号强度进行统计得到的。
下面结合图3对步骤S102进行详细描述。
如图3所示,在本申请的一些实施例中,步骤S102包括步骤S301和步骤S302。下面对这两个步骤进行详细描述,应理解,步骤S102包括但不限于步骤S301和步骤S302。
步骤S301:获取当前版本软件包和最新版本软件包的差异信息;其中,差异信息包括差异位置和差异内容;
具体地,在步骤S301中,先获取当前版本软件包和最新版本软件包的差异信息,然后可以根据差异信息确定差分升级包,且差分升级包存储着操作指令以及操作指令需要进行操作的数据位置,因此获取当前版本软件包和最新版本软件包之间的差异位置和差异内容,即可根据差异位置和差异内容确定对应的操作指令。
步骤S302:在差异位置上添加差异内容对应的操作指令,得到差分软件包。
其中,操作指令包括:增加(ins)、删除(del)、修改(mod)、复制(cpy)。例如:ins[len][data]表示为:在当前操作位置添加len个字节的数据,数据内容为data,cpy[105]表示在当前操作位置从当前版本软件包中复制105字节的数据。
具体地,在步骤S302中,将步骤S301得到的差异信息提取出来,并将所有的差异信息进行压缩整合处理,得到差分软件包。例如:在比较差异信息时,需要将有差异的位置记录下来,如:ins[len][data][loc],表示在loc位置添加len个字节的数据,其中,loc表示位置,可以用行数或者其他位置指示表示;cpy[105][loc],在loc位置从当前版本软件包中复制105字节的数据。将这些差异信息进行压缩整合处理并添加对应的操作指令,得到差分软件包,差分软件包表示当前版本软件包和最新版本软件包所有差异位置对应的操作指令。通过这样设置,最终只需要传输差分软件包,对于当前版本软件包和最新版本软件包无差异的地方,直接复制即可,从而,最终传输的升级包只有差分软件包,减小了升级包的大小,提高了传输效率,降低了误码率。
下面结合图4对上述步骤S103进行详细介绍。
如图4所示,步骤S103包括步骤S401和步骤S402,下面对这两个步骤进行详细描述,应理解,上述步骤S103包括但不限于步骤S401和步骤S402。
步骤S401:以最大包长度对差分软件包进行拆分处理和组包以得到若干个待处理数据包;其中,最大包长度根据当前状态下的LoRa通信速率确定;
步骤S402:对待处理数据包进行前向纠错编码并添加包头信息,得到传输数据包,包头信息包括:校验码、版本信息、数据包长度信息包。
在本实施例中,LoRa通信速率决定了当前LoRa能够传输的最大包长度,根据最大包长度,将差分软件包进行拆分处理,得到多个待处理数据包,并对待处理数据包进行前向纠错编码,然后再添加包头信息得到多个传输数据包,且多个传输数据包分批次的传输,这样设置,既提高了传输效率,又保证传输的可靠性,在一定丢包率之下也能完成升级包传输。
具体地,将差分升级包拆分后根据预设组包规则进行组包以得到待处理数据包,且预设组包规则为:任务号+包序号+数据。其中,任务号表示当前传输任务的编号,在接收端(终端设备)将收到同一任务号下的数据包按照包序号进行组合,最终形成完整文件。当一次传输完成后,部分设备传输失败需要重传时,已成功完成传输的设备可按过滤掉该任务号对应的重传数据。包序号表示在同一任务号下的不同数据包的编号,接收端(终端设备)将收到同一任务号下的数据包按照包序号进行组合,最终形成完整文件。例如:[103][1][data1],表示任务号为103,包序号为1的数据包,内容为data1。
具体地,在步骤S402中,将步骤S401得到的多个待处理数据包中的每一个待处理数据包都加入循环冗余校验码(Cyclic Redundancy Check,CRC),使得少部分数据丢包的情况下,其他数据包的冗余码也能够还原出丢失数据。应理解,加入的校验码可以为循环冗余校验码,也可以是其他的校验码,本申请不做具体限制,在此仅以循环冗余校验码进行举例说明。
在本申请的一些实施例中,步骤S104包括如下步骤:
步骤501:根据预设定制处理规则对多个传输数据包添加广播信息,得到多个加密数据包,广播信息包括广播序号和广播密钥。
其中,每一个终端设备上设置预设广播信息,且预设广播信息包括预设广播序号和预设广播密钥,且不同版本的终端设备携带广播序号不同,且不同终端设备的预设密钥也不同,其中,根据预设定制处理规则对传输数据包进行加密处理,且加密方式包括但不限于对称加密、非对称加密等等。在接收终端设备的当前版本软件包时,需要获取每个终端设备的设备号,然后,依据设备号匹配一个预设广播密钥,因此服务器根据预设广播密钥对传输数据包进行加密处理,得到多个加密数据包。其中,加密时,同一组合的多个加密数据包的加密秘钥可以相同,也可以不同。通过这样设置,增强了文件传输的安全性。
在一些实施例中,步骤105包括但不限于包括以下步骤:
步骤601:通过广播方式下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包并进行升级操作。
具体地,服务器通过广播方式将多个加密数据包下发至LoRa通信基站,则终端设备可以根据预设广播序号获取对应的多个加密数据包。其中,对于同一版本的当前版本软件包生成的多个加密数据包,同一版本的终端设备携带的广播序号相同,则可以根据同一广播序号接收到对应的多个加密数据包,从而实现终端设备的批量升级,节约了时间和传输所需要的时间,提高了升级的效率,而且服务器以广播方式发送多个加密数据包,节省了加密数据包接收的时间。
如图5所示,第二方面,本申请的一些实施例提供了一种基于LoRa通信的升级方法,应用于终端设备,方法包括步骤S701、步骤S702、步骤S703和步骤S704。
步骤S701:上传当前版本软件包,以使服务器根据当前版本软件包生成多个加密数据包;
具体地,在步骤S701中,当前版本软件包指的是终端设备当前所运行的软件包。终端设备可以直接上传当前版本软件包,也可以直接上传与当前版本软件包对应的版本信息,以使服务器根据当前版本软件包生成对应的多个加密数据包。
步骤S702:根据预设广播信息接收来自服务器发送的多个加密数据包;
具体地,由于服务器是以广播方式下发多个加密数据包,为了获取匹配的加密数据包,则根据预设广播信息可以接收到对应的多个加密数据包,从而服务器无需逐个将加密数据包发送至终端设备,只需要多个终端设备根据预设广播信息接收到对应的多个加密数据包即可,提高升级包传输的效率,进而提高终端设备进行升级操作的效率。
步骤S703:根据预设定制处理规则对多个加密数据包进行解密处理,以得到多个传输数据包;
具体地,在步骤S703中,加密数据包是由服务器进行一系列处理得到的,因此,在终端设备中需要对加密数据包进行对应的解密处理,以得到能够进行升级使用的传输数据包。
步骤S704:将多个传输数据包进行解析,得到对应的操作指令和差分软件包。
具体地,在步骤S704中,由于解密后的传输数据包是服务器根据差分软件包进行处理后得到的,因此需要对传输数据包进行解析以得到对应的操作指令,则可以根据操作指令将当前版本软件包进行数据处理以得到最新版本软件包,然后再依据最新版本软件包进行升级。
步骤S705:根据操作指令对当前版本软件包进行数据处理,得到最新版本软件包,并根据最新版本软件包进行升级操作。
其中,操作指令包括:***指令、删除指令、修改指令、复制指令,***指令为在当前位置***数据;修改指令为修改当前数据;删除指令为从当前位置起删除n个字节;复制指令为从旧版应用程序复制n个字节到当前位置,因此根据操作指令直接对原本的当前版本软件包进行数据处理即可得到最新版本软件包,从而节省了升级包传输的时间,且节省了升级包存储空间,根据操作指令对当前版本软件包进行数据处理后生成的即为新版应用程序,则可以根据新版应用程序进行升级操作。
本申请实施例的基于LoRa通信的升级方法,终端设备将正在运行的当前版本软件包上传至服务器,以使服务器根据当前版本软件包下发加密数据包;然后,根据预设定制处理规则对每一个加密数据包进行定制处理,得到多个差分组合包,再依据当前版本软件包、差分组合包和预设组包规则进行升级。通过这样设置,能够提高升级的速率,降低升级时的人工工作量,减少升级的成本。
下面结合图6对本申请实施例中步骤S702进行详细介绍。
如图6所示,在本申请的一些实施例中步骤S702包括步骤S801、步骤S802和步骤S803。下面对这三个步骤进行详细描述,应理解,步骤S703包括但不限于步骤S801、步骤S802和步骤S803。
步骤S801:接收来自服务器与预设广播信息匹配的多个加密数据包,并获取加密数据包的包头信息;
步骤S802:若包头信息和预设包头信息匹配,则继续接收服务器发送的加密数据包;
步骤S803:若包头信息和预设包头信息不匹配,停止接收服务器发送的加密数据包。
具体地,由于根据预设广播信息接收匹配的多个加密数据包,但是并不是直接接收到多个加密数据包后即存储,需要再判断加密数据包是否符合,因此获取加密数据包的包头信息,且包头信息包括:版本信息、升级包长度、包数量、CRC校验码,因此需要检验包头信息和预设包头信息是否匹配相当于进行校验码校验、版本信息校验、文件长度校验等等。其中,校验码校验中的校验码与服务器添加的校验码一致,如服务器为CRC校验,则终端设备也为CRC校验。版本信息校验旨在判断服务器下发的加密数据包的版本信息是否与终端设备一致,若校验成功也即若包头信息和预设包头信息匹配,则继续接收服务器发送的加密数据包,反之停止接收服务器发送的加密数据包,以保证接收的加密数据包符合要求,提高了升级操作的准确性。
参照图7,在本申请的一些实施例中,基于LoRa通信的升级方法还包括但不限于步骤S706、步骤S707和步骤S708。
步骤S706:获取根据最新版本软件包进行升级操作后的运行状态;
步骤S707:若运行状态为正常状态,将最新版本软件包的版本信息和运行状态发送至服务器;
步骤S708:若运行状态为异常状态,获取设备编号,并将设备编号和运行状态发送至服务器。
通过这样设置,服务器能够根据终端设备上传的信息确定每一个终端设备的运行状态。对于本次升级失败的终端设备,服务器需要分析其失败的原因,以更好的进行下一次的升级。终端设备的运行版本信息也可以作为下次升级的依据。
如图8所示,第三方面,本申请的一些实施例还提出了一种基于LoRa***,***包括服务器100和若干终端设备200。其中,服务器100和若干终端设备200连接,服务器100用于执行如第一方面实施例中任意一项实施例的基于LoRa通信的批量升级方法;终端设备200用于执行如第二方面实施例中任意一项实施例的基于LoRa通信的升级方法。
本申请第三方面实施例的基于LoRa通信的批量升级***,至少具有以下有益效果:通过根据当前版本软件包和最新版本软件包之间的数据差异,以得到差分软件包,且差分软件包包括数据差异位置和对应的操作指令,而不需要将整个最新版本软件包全部传输,节省了升级包传输的时间,且便于文件的传输以及终端设备的升级;然后,将差分软件包进行拆分并进行前向纠错编码,然后***冗余数据得到多个传输数据包,以实现差分软件包能够分批次的传输,保证了传输的可靠性;然后对多个传输数据包进行加密处理,得到多个加密数据包,以加强传输过程中的安全性;再将加密数据包下发至终端设备,以使终端设备根据预设广播信息接收到对应加密数据包进行升级。通过这样设置,能够提高升级的速率,降低升级包传输的时间,且提高升级包传输的安全性,提高了终端设备升级的效率,并且服务器同时下发多个加密数据包,对于同一版本信息的终端设备只需要根据同一个预设广播信息接收到对应的多个加密数据包,从而实现服务器对终端设备的批量升级。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下作出各种变化。此外,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
Claims (10)
1.一种基于LoRa通信的批量升级方法,其特征在于,应用于服务器,所述方法包括:
获取终端设备的当前版本软件包,以及获取最新版本软件包;
根据所述当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包;
将所述差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包;
根据预设定制处理规则对所述多个传输数据包进行加密处理,得到多个加密数据包;
将所述多个加密数据包下发至所述终端设备,以使所述终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取LoRa通信的数据传输的信号质量;
根据所述信号质量和预设数据传输规则确定所述加密数据包的重传次数,所述预设数据传输规则包括所述信号质量和所述重传次数的对应关系。
3.根据权利要求1所述的方法,所述根据所述当前版本软件包和最新版本软件包之间数据差异的位置添加对应的操作指令,以生成差分软件包,包括:
获取所述当前版本软件包和最新版本软件包的差异信息;其中,所述差异信息包括差异位置和差异内容;
在所述差异位置上添加所述差异内容对应的操作指令,得到所述差分软件包。
4.根据权利要求1所述的方法,其特征在于,所述将所述差分软件包拆分并进行前向纠错编码,并***冗余数据以得到多个传输数据包,包括:
以最大包长度对所述差分软件包进行拆分处理和组包以得到若干个待处理数据包;其中,所述最大包长度根据当前状态下的LoRa通信速率确定;
对所述待处理数据包进行前向纠错编码并添加包头信息,得到所述传输数据包,所述包头信息包括:校验码、版本信息、数据包长度信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据预设定制处理规则对所述多个传输数据包进行加密处理,得到多个加密数据包,包括:
根据预设定制处理规则对所述多个传输数据包添加广播信息,得到所述多个加密数据包,所述广播信息包括广播序号和广播密钥。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述将所述多个加密数据包下发至所述终端设备,以使所述终端设备根据预设广播信息接收到对应所述加密数据包并进行升级操作,包括:
通过广播方式下发至所述终端设备,以使终端设备根据预设广播信息接收到对应加密数据包并进行升级操作。
7.一种基于LoRa通信的升级方法,其特征在于,应用于终端设备,所述方法包括:
上传当前版本软件包,以使服务器根据所述当前版本软件包生成多个加密数据包;
根据预设广播信息接收来自所述服务器发送的所述多个加密数据包;
根据预设定制处理规则对所述多个加密数据包进行解密处理,以得到多个传输数据包;
将所述多个传输数据包进行解析,得到对应的操作指令;
根据所述操作指令对所述当前版本软件包进行数据处理,得到最新版本软件包,并根据所述最新版本软件包进行升级操作。
8.根据权利要求7所述的方法,其特征在于,所述根据预设广播信息接收来自所述服务器发送的所述多个加密数据包,包括:
接收来自服务器与预设广播信息匹配的所述多个加密数据包,并获取所述加密数据包的包头信息;
若所述包头信息和预设包头信息匹配,则继续接收所述服务器发送的所述加密数据包;
若所述包头信息和预设包头信息不匹配,停止接收所述服务器发送的所述加密数据包。
9.根据权利要求7或8所述的方法,其特征在于,还包括:
获取根据所述最新版本软件包进行升级操作后的运行状态;
若所述运行状态为正常状态,将所述最新版本软件包的版本信息和所述运行状态发送至所述服务器;
若所述运行状态为异常状态,获取设备编号,并将所述设备编号和所述运行状态发送至所述服务器。
10.一种基于LoRa通信的批量升级***,其特征在于,所述***包括服务器和若干终端设备;
其中,所述服务器和所述若干终端设备连接,所述服务器用于执行如权利要求1至6中任意一项所述的基于LoRa通信的批量升级方法;
所述终端设备用于执行如权利要求7至9中任意一项所述的基于LoRa通信的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197612.0A CN113971287A (zh) | 2021-10-14 | 2021-10-14 | 基于LoRa通信的批量升级方法、升级*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197612.0A CN113971287A (zh) | 2021-10-14 | 2021-10-14 | 基于LoRa通信的批量升级方法、升级*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113971287A true CN113971287A (zh) | 2022-01-25 |
Family
ID=79587400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111197612.0A Pending CN113971287A (zh) | 2021-10-14 | 2021-10-14 | 基于LoRa通信的批量升级方法、升级*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971287A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115361104A (zh) * | 2022-08-26 | 2022-11-18 | 深圳市欧瑞博科技股份有限公司 | 智能设备升级方法、***、计算机设备和存储介质 |
-
2021
- 2021-10-14 CN CN202111197612.0A patent/CN113971287A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115361104A (zh) * | 2022-08-26 | 2022-11-18 | 深圳市欧瑞博科技股份有限公司 | 智能设备升级方法、***、计算机设备和存储介质 |
CN115361104B (zh) * | 2022-08-26 | 2024-06-14 | 深圳市欧瑞博科技股份有限公司 | 智能设备升级方法、***、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008757B (zh) | 一种物联网终端固件更新中数据保护方法及*** | |
US8351363B2 (en) | Method and apparatus for enhanced file distribution in multicast or broadcast | |
CN108282247B (zh) | 一种控制信息传输方法及装置 | |
RU2460218C2 (ru) | Способ уведомления о состоянии в системе беспроводной связи | |
CN103685487A (zh) | 无线通信网络中的子节点升级方法 | |
CN111262876B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN102299772A (zh) | 在egprs移动电子通信设备中接收和管理下行链路无线电链路控制数据块的方法 | |
CN111240713A (zh) | 一种用电检测远程断点续传的方法 | |
WO2022116088A1 (zh) | 固件数据处理方法及装置 | |
CN109391673A (zh) | 一种管理更新文件的方法、***及终端设备 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
CN106537959B (zh) | 电信网络中编码和解码帧的方法 | |
CN110754055A (zh) | 通信方法、网络设备和终端 | |
CN113971287A (zh) | 基于LoRa通信的批量升级方法、升级*** | |
JP6929946B2 (ja) | データ伝送方法、装置、送信端、受信端及びシステム | |
CN114465775A (zh) | 安全传输方法及装置 | |
CN104901972A (zh) | 一种文件接收和补包的方法 | |
CN106471785A (zh) | 一种虚拟载波侦听方法及装置 | |
CN113141263B (zh) | 一种升级方法、装置、***和存储介质 | |
CN109672707B (zh) | 数据传输方法及装置、计算机存储介质 | |
CN112114838A (zh) | 一种软件版本升级方法、终端及基站 | |
CN111770488A (zh) | Ehplmn更新方法、相关设备及存储介质 | |
CN116057925A (zh) | 一种数据传输方法、数据下载方法及终端 | |
KR20210011243A (ko) | Http/2 헤더 압축 패킷 모니터링 방법 및 장치 | |
CN113703822B (zh) | 一种差分升级方法、装置和作业机械 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |