700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 设备升级方法 装置 物联网设备和存储介质与流程

设备升级方法 装置 物联网设备和存储介质与流程

时间:2018-12-19 04:29:13

相关推荐

设备升级方法 装置 物联网设备和存储介质与流程

本申请涉及设备升级技术领域,具体而言,涉及一种设备升级方法、装置、物联网设备和存储介质。

背景技术:

在各种复杂的现场工作环境下,智能设备经常需要更新自身运行程序以进行设备升级。

目前,很多智能设备在升级时,是通过烧录器直接烧录的方式实现的,但是这种有线升级方案通常需要现场工作人员具有一定的专业技能,且需要相关人员到现场将一些智能设备暂时停止运作才能进行升级操作,人力成本高,升级效率低。

技术实现要素:

本申请实施例的目的在于提供一种设备升级方法、装置、物联网设备和存储介质,用以改善现有技术中人力成本高,升级效率低的问题。

第一方面,本申请实施例提供一种设备升级方法,应用于待升级设备,所述方法包括:

在指定标志位为第一预设值时,接收控制设备发送的升级数据;

将所述升级数据存储在第一存储空间中;

在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值;

当检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,所述第二存储空间用于存储所述待升级设备的当前运行程序;

根据所述第二存储空间内的所述升级数据对所述当前运行程序进行更新升级。

在上述方法中,基于指定标志位的值可以确定升级流程目前执行到了哪个环节,通过指定标志位可以帮助待升级设备进行记忆,即使待升级设备出现突发情况导致升级过程被迫中断,也可以根据指定标志位的值继续进行升级流程,降低对于设备的影响。在上述方法中,用户无需关注当前升级流程具体到了哪个环节,可减少现场工作人员的工作量,能够降低人力成本,提升升级效率。

在可选的实施方式中,所述指定标志位为boot标志位,所述在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值,包括:在接收到所述结束发送指令后,将所述boot标志位设置为所述第二预设值;将运行指针从指向所述第二存储空间切换至指向boot区;

所述当检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,包括:当检测到所述boot标志位为所述第二预设值,且所述运行指针指向所述boot区时,将所述第一存储空间内的所述升级数据拷贝至所述第二存储空间,并在拷贝结束后将所述运行指针切换至指向所述第二存储空间。

在上述实施方式中,待升级设备仅在boot标志位为第二预设值且运行指针指向boot区时才进行数据拷贝,能够提升升级成功率,还可降低对于设备的不良影响。

在可选的实施方式中,在所述接收控制设备发送的升级数据之前,所述方法还包括:

接收所述控制设备发送的启动升级指令;

判断所述启动升级指令中是否包括指定身份标识;

在所述启动升级指令中包括所述指定身份标识时,向所述控制设备发送第一应答指令,以供所述控制设备根据所述第一应答指令发送所述升级数据。

通过上述实施方式,可以在待升级设备经过身份验证的情况下进行升级。

在可选的实施方式中,所述指定标志位为boot标志位,在所述判断所述启动升级指令中是否包括指定身份标识之后,所述方法还包括:

在所述启动升级指令中包括所述指定身份标识时,将所述boot标志位设置为所述第一预设值。

通过上述实施方式,可以使得待升级设备在经过身份验证的情况下进入升级初期,等待并接收升级数据。

在可选的实施方式中,所述接收控制设备发送的升级数据,包括:

接收所述控制设备发送的多个固件数据包,所述多个固件数据包中的每个数据包中包括所述升级数据的一部分。

通过上述实施方式,在控制设备以拆包发送方式发送升级数据的情况下,待升级设备可以配合拆包发送方式接收多个固件数据包,从而得到升级数据。

在可选的实施方式中,所述方法还包括:

在每次接收到所述控制设备发送的所述固件数据包后,向所述控制设备发送第二应答指令,以供所述控制设备根据所述第二应答指令发送下一条数据,所述下一条数据包括:下一个固件数据包或者所述结束发送指令。

通过上述实施方式,待升级设备可通过第二应答指令通知控制设备该待升级设备已经接收到上一个固件数据包,以便于控制设备根据该第二应答指令发送下一条数据。

在可选的实施方式中,所述方法还包括:

接收所述控制设备发送的版本查询指令;

根据所述第二存储空间内的所述升级数据,将所述升级数据对应的版本信息发送给所述控制设备。

通过上述实施方式,可以使得待升级设备能够向反馈该待升级设备的实际版本信息。

第二方面,本申请实施例提供一种设备升级装置,应用于待升级设备,所述装置包括:

接收模块,用于在指定标志位为第一预设值时,接收控制设备发送的升级数据;

存储模块,用于将所述升级数据存储在第一存储空间中;

设置模块,用于在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值;

拷贝模块,用于在检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,所述第二存储空间用于存储所述待升级设备的当前运行程序;

升级模块,用于根据所述第二存储空间内的所述升级数据对所述当前运行程序进行更新升级。

通过上述装置可以执行前述第一方面的设备升级方法,提升升级效率,降低现场工作人员的操作难度。

第三方面,本申请实施例提供一种物联网设备,所述物联网设备包括:

存储器;

处理器;

所述存储器存储有所述处理器可执行的计算机程序,所述计算机程序被所述处理器执行时执行前述第一方面所述的方法。

第四方面,本申请实施例提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行前述第一方面所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种应用场景下的控制设备与物联网设备之间的交互示意图。

图2为本申请实施例提供的一种物联网设备的功能模块示意图。

图3为本申请实施例提供的一种设备升级方法的流程图。

图4为本申请实施例提供的一个实例中的升级流程示意图。

图5为本申请实施例提供的一种设备升级装置的功能模块框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

现有技术中,由于现场应用场景复杂,许多智能硬件设备无法保证同一版本的程序运行逻辑能够让硬件设备适配所有场景,因此经常会对硬件设备进行升级,以更新设备的运行程序。而对于电梯、闸机等安装位置受限、且涉及的各组件需要联动的硬件设备,网络通讯功能是较为简单的,这类设备的升级难以完全依靠远程升级实现,所以现有的一种做法是在设备升级时采用烧录器直接烧录的方式实现。这种有线升级方案虽然直接,但是由于设备自身的复杂性,操作相对复杂,通常需要现场工作人员具有一定的专业技能,且需要相关人员到现场将一些设备暂时停止运作才能进行升级操作,且设备的启停也会对升级过程造成影响,升级效率低,升级成本高。

有鉴于此,发明人提供以下实施例,可用以对物联网设备进行无线升级,这种升级方式下,可以减少现场工作人员需要关注的升级细节,降低现场施工复杂度,提升升级效率,降低升级成本。此外,即使升级过程需要暂时中断或遇上其他突发情况导致升级过程被迫中断,也能够降低对于设备的影响。

请参阅图1,图1是本申请实施例提供的一种应用场景下的控制设备100与物联网设备200之间的交互示意图。

如图1所示,控制设备100可以与多个物联网设备200无线连接,与控制设备100连接的任意物联网设备200都可能成为待升级设备。

控制设备100可以是手持移动设备、计算机、机器人等方便变换位置的设备,控制设备100具有运算处理能力,能够向物联网设备200发送升级数据,还能够接收物联网设备200的应答指令,从而实现与物联网设备200的数据交互。

物联网设备200可以是用于对电梯、闸机等不方便移动的固件设备进行参数获取及控制的设备。在具体实施时,物联网设备200可以是安装在电梯/闸机系统中的组件,即,可以作为电梯/闸机系统的一部分。

可以理解的是,物联网设备200也可以是用于对空调、电视机等设备进行参数获取及控制的设备。本申请实施例提供的设备升级方法能够适用于电梯、闸机,也可以适用于空调、电视机等其他设备。

物联网设备200可以根据控制设备100发出的指令进行应答,例如,可以根据控制设备100发送的每条数据向该控制设备100反馈应答指令。

作为一种实现方式,控制设备100可以是机器人,与该机器人连接的物联网设备200是用于对电梯进行参数获取和控制的设备。在升级前,技术人员可以将需要升级的升级数据(或称升级文件)拷贝到机器人本体的主控设备上(例如工控机)。该机器人本体中可以安装与物联网设备200同频段的无线通信模块,以使得机器人能够将升级数据通过无线通信模块发送给该物联网设备200。

其中,无线通信的频段可以是但不限于2.4g、433m等频段。在具体实施时,可以将机器人推到该物联网设备200附近,以避免机器人与该物联网设备200之间因距离超出近场通信的无线通信范围而影响升级过程。具体的无线通信方式不应理解为对本申请的限制。

请参阅图2,图2示出的是本申请实施例提供的一种物联网设备200的功能模块示意图。

该物联网设备200可以作为待升级设备,可包括存储器201、处理器202、通信单元203。

其中,存储器201存储有处理器202可执行的计算机程序,计算机程序被处理器202执行时执行下述的设备升级方法。

存储器201是一种存储介质。该存储器201可以是只读存储器(readonlymemory,rom)、随机存储器(randomaccessmemory,ram)等。ram包括dram(dynamicram,动态随机存储器)和sram(staticram,静态随机存储器)。

处理器202具有运算处理能力,可以是中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)、数字信号处理器,也可以是专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他分立硬件组件搭建的处理器。处理器202在运行存储器201中的程序时执行下述的设备升级方法。

通信单元203包括通信总线,用于实现物联网设备200的各组件之间的直接或间接连接。通信单元203还包括无线通信模块,通过该无线通信通信模块可以与控制设备100进行无线通信。物联网设备200中的无线通信模块与控制设备100中的无线通信模块具有相同的工作频段。当然,物联网设备200也可以提供通信接口,以满足设备与设备之间的直接连接需求。

可以理解的是,图2所示的设备仅作为示意,具体实施时,物联网设备200可能具有更多的组件或具体其他配置情况,对此本申请不作限制。

请参阅图3,图3是本申请实施例提供的一种设备升级方法的流程图,该方法应用于待升级设备。该待升级设备可以是图1中的物联网设备200。

需要说明的是,通常情况下,在完成对于物联网设备200的初始配置时(升级前),物联网设备200的各个相关硬件组件视为固定组件,本申请实施例中所指的升级实际上是指通过新的升级数据或新的应用程序运行逻辑对已有的硬件运行逻辑进行升级,使得原始的硬件组件能够以新的运行逻辑工作。

如图3所示,该设备升级方法包括步骤s21-s25。

s21:在指定标志位为第一预设值时,接收控制设备发送的升级数据。

其中,指定标志位可以具有多种状态值,待升级设备可以通过检测指定标志位的值,以确定当前的指定标志位是否为第一预设值。

当检测到指定标志位为第一预设值时,表示可以接收外部控制设备发送的升级数据,等待并接收控制设备发送的升级数据。

s22:将升级数据存储在第一存储空间中。

其中,可以将每次收到的升级数据都存储在第一存储空间中。通过第一存储空间可以实现对于升级数据的暂时存储,即,第一存储空间可以作为应用程序暂存区。

s23:在接收到控制设备发送的结束发送指令后,将指定标志位设置为第二预设值。

其中,待升级设备可以检测当前是否接收到控制设备发送的结束发送指令,在接收到结束发送指令时,表示控制设备的升级数据已经发送完毕。此时,待升级设备将指定标志位设置为第二预设值。

当指定标志位为第二预设值时,表示待升级设备对升级数据的接收过程已经结束,此时的第一存储空间存储有完整的升级数据。

s24:当检测到指定标志位为第二预设值时,将第一存储空间内的升级数据拷贝至第二存储空间。

其中,第二存储空间用于存储待升级设备的当前运行程序。

在一个实例中,可以对待升级设备的flash闪存进行地址划分,以得到flash闪存提供的第一存储空间、第二存储空间。根据此原理也可以得到指定标志位及其他更多的存储空间,例如可以得到用于存储操作参数、配置参数的参数区、用于引导升级的boot区等。其中,flash闪存是一种内存器件,是一种非易失性(non-volatile)内存。在没有电流供应的条件下,flash闪存也能够长久地保持数据。本申请不对具体的存储空间划分过程作限定。

由于在指定标志位为第二预设值时可以表示第一存储空间内已有能够用于升级的升级数据,因此可以将第一存储空间内的升级数据拷贝至第二存储空间,以利于后续升级。

s25:根据第二存储空间内的升级数据对当前运行程序进行更新升级。

其中,第二存储空间内的升级数据中可以包含新的应用程序,通过运行新的应用程序可以实现更新升级。具体的更新升级内容与实际的升级数据内容、实际的物联网设备类型有关。

通过上述方法,基于指定标志位的值可以确定升级流程目前执行到了哪个环节,通过指定标志位可以帮助待升级设备进行记忆。通过待升级设备的两个存储空间,可以在指定标志位的值满足对应条件时对升级数据进行处理。即,在指定标志位的值为第一预设值时,接收升级数据,并将接收到的升级数据暂时存储在第一存储空间内,当指定标志位的值为第二预设值时,对升级数据进行拷贝,并根据拷贝的升级数据对第二存储空间内的当前运行程序进行更新升级。在上述升级流程中,用户无需关注当前升级流程具体到了哪个环节,降低了人力成本,提升升级效率。在上述升级流程中,待升级设备只用得知指定标志位是什么,就可以确定接下来执行哪一步,不用作详细的数据检测。例如,待升级设备无需通过繁琐的检测方式(例如解析具体的升级数据内容并识别一些复杂的校验码)检测升级数据是否传输完成了,只要指定标志位满足相应的条件就可以执行下一步,这可以降低待升级设备的数据处理量,提升升级效率。由于整个升级流程逻辑清晰且简洁,对于处理器202的性能要求较低,待升级设备可以根据上述方法流程自动进行快速升级。

此外,即使待升级设备出现突发情况导致升级过程被迫中断,也可以根据指定标志位的值确定当前所在的环节(是否完成了升级数据的传输),从而继续进行升级流程,降低对于设备的影响。

一种可能的场景下,若在接收升级数据的过程中出现断电,只要指定标志位的值仍然是第一预设值,待升级设备就可以在重新启动后继续接收控制设备发送的升级数据。例如,待升级设备可以向控制设备发送一个请求指令以请求控制设备继续发送升级数据,或控制设备可以在一段时间内未收到待升级设备的应答指令时,重发上一条数据(无需完全重发所有与升级相关的指令、数据)并在得到待升级设备的应答指令的情况下继续发送升级数据。

另一种可能的场景下,若在指定标志位为第二预设值,且拷贝操作未完成的情况下出现断电,在待升级设备重启时,检测到指定标志位为第二预设值,可以继续进行拷贝或重新拷贝,以使第二存储空间能够得到完整的升级数据。在拷贝完成以前,待升级设备仍以第二存储空间内的原始数据(对应升级前的版本)工作。

在上述场景中,即使整个升级流程还未完成,通过指定标志位的记忆功能,也无需让控制设备完全重发所有与升级相关的指令、数据,避免了相同数据的多次重复发送,提升了升级效率,节约了通信资源。

可选地,本领域技术人员可以根据实际需要设置是否要将第一存储空间内已经被拷贝过的升级数据进行删除,也可以根据实际需求设置是否要删除第二存储空间的原始数据。若要删除,为了避免数据轻易丢失,可在进行删除(或者进行数据覆盖操作)之前进行数据备份,例如可以将原始数据拷贝至其他的存储空间进行备份。

作为一种实施方式,在指定标志位为boot标志位的情况下,上述s23可以包括子步骤s231-s232。相应的,上述s24可以包括子步骤s241。

s231:在接收到结束发送指令后,将boot标志位设置为第二预设值。

其中,待升级设备在接收到结束发送指令后,可以将boot标志位的值从第一预设值更改为第二预设值,表示升级数据的接收过程结束。

s232:将运行指针从指向第二存储空间切换至指向boot区。

boot区是待升级设备的一个存储空间,是除了第一存储空间、第二存储空间以外的存储空间。

当运行指针指向第二存储空间时,待升级设备可以第二存储空间内的当前运行程序正常工作。

当运行指针指向boot区时,可能是待升级设备正在进行重启或复位,在运行指针指向boot区时可以检测boot标志位的值,并通过boot标志位的值确定接下来是要进行数据拷贝还是直接运行第二存储空间内的程序。

其中,待升级设备在接收到结束发送指令后,可以将运行指针从指向第二存储空间切换至指向boot区,并检测boot标志位的值。

s241:当检测到boot标志位为第二预设值,且运行指针指向boot区时,将第一存储空间内的升级数据拷贝至第二存储空间,并将运行指针切换至指向第二存储空间。

其中,在将第一存储空间内的升级数据拷贝至第二存储空间后(拷贝完成后),将运行指针切换至指向第二存储空间,以此可以避免重复拷贝。

当boot标志位为第二预设值时表示升级数据的接收过程已经结束,第一存储空间内已有升级数据,当运行指针指向boot区时才运行进行数据拷贝操作,以此可以避免其他情况下进行拷贝操作而影响待升级设备的正常运作。

在上述方法中,引入了boot标志位和boot区,待升级设备仅在boot标志位为第二预设值且运行指针指向boot区时才进行数据拷贝,以此可以实现在待升级设备重启或复位时,根据boot标志位的值对升级数据进行拷贝。可以避免因在boot标志位非第二预设值(升级数据还未接收完)时进行升级而导致升级失败,或运行指针未指向boot区(待升级设备当前正在为用户提供服务)的情况下进行升级而对设备的各组件造成损坏。因此,通过上述实现方式可以提升升级成功率,还可降低对于设备的不良影响。

可选地,待升级设备在接收控制设备发送的升级数据之前,还可以执行步骤s201-s203。

s201:接收控制设备发送的启动升级指令。

s202:判断启动升级指令中是否包括指定身份标识。

s203:在启动升级指令中包括指定身份标识时,向控制设备发送第一应答指令,以供控制设备根据第一应答指令发送升级数据。

作为一种实现方式,启动升级命令中可以包含待升级设备的身份标识,用于区分各种不同类型的待升级设备,例如,身份标识在1-20范围内的设备可表示用于控制电梯的待升级设备,身份标识在21-50范围内的设备可表示用于控制闸机的待升级设备。

指定身份标识是指与接收到启动升级命令的待升级设备匹配的身份标识。当一个身份标识为15的待升级设备在接收到启动升级命令后,识别出启动升级命令中的身份标识为15,则判定启动升级指令中包括指定身份标识,向该控制设备发送第一应答指令,并等待控制设备根据第一应答指令发送的升级数据。而若识别出启动升级命令中的身份标识不是15,则判定启动升级指令中不存在指定身份标识,无需发送第一应答指令。

通过上述s201-s203,可以在待升级设备经过身份验证的情况下进行升级。

可选地,若指定标志位为boot标志位,在执行上述s202之后,待升级设备还可以执行子步骤s204。可以理解的是,s204与s203可同时执行,也可以异步执行。

s204:在启动升级指令中包括指定身份标识时,将boot标志位设置为第一预设值。

其中,可以将boot标志位从一个默认值更改为第一预设值,当boot标志位为默认值时,待升级设备既不接收升级数据,也不对升级数据进行拷贝,即,在boot标志位为默认值时,待升级设备以第二存储空间内的原始程序正常工作。

通过上述实现方式,在接收到的启动升级指令中包含指定身份标识的情况下,将boot标志位设为第一预设值,可以使得待升级设备在经过身份验证的情况下,进入升级初期,等待并接收升级数据(见步骤s21)。

当控制设备接收到第一应答指令后,得知待升级设备已经做好升级准备,控制设备可以向待升级设备发送升级数据。

作为一种实现方式,升级数据可以包括用于一次版本升级的完整升级数据(即可以理解为升级数据为完整的新版本的运行程序)。

作为另一种实现方式,升级数据也可以包括多个固件数据包,每个固件数据包中可以有用于升级的升级数据块。

作为再一种实现方式,升级数据可以包括升级前、后的差异数据。

若控制设备是以拆包发送方式发送的升级数据,则上述s21中接收控制设备发送的升级数据的过程可以包括子步骤s211。

s211:接收控制设备发送的多个固件数据包,多个固件数据包中的每个数据包中包括升级数据的一部分。

其中,每个固件数据包的字节长度由控制设备确定,控制设备每次发送的固件数据包可以有32个字节,也可以有更多或更少的字节。

多个固件数据包可以是按序发送的,待升级设备可以根据每个数据包的序号对接收到的多个固件数据包进行排序。

通过上述实现方式,在控制设备以拆包发送方式发送升级数据的情况下,待升级设备可以配合拆包发送方式接收多个固件数据包,从而得到完整的升级数据。

其中,在每次接收到控制设备发送的固件数据包后,待升级设备可以向控制设备发送第二应答指令,以供控制设备根据第二应答指令发送下一条数据,该下一条数据包括:下一个固件数据包或者结束发送指令。

在一种可能的情况下,也许待升级设备当前接收到的固件数据包不是最后一个数据包,待升级设备向控制设备发送第二应答指令后,控制设备可根据该第二应答指令发送下一个固件数据包。第二应答指令中可以包括当前接收到的数据包序号。

在另一种可能的情况下,也许待升级设备当前接收到的固件数据包是最后一个数据包,待升级设备向控制设备发送第二应答指令后,控制设备根据该第二应答指令发送结束发送指令。

可以理解的是,控制设备也可以在发送最后一个固件数据包的同时,发送结束发送指令。

在上述实现方式中,控制设备可以通过第二应答指令得知待升级设备已经接收到上一个固件数据包,此时控制设备可以发送下一个固件数据包,也可以发送结束发送指令。

可选地,待升级设备可以对接收到的每个固件数据包进行解析,以提取每个固件数据包中的升级数据块,并根据得到的所有升级数据块获取升级数据。

若升级数据中包括原始版本的数据,以及在原始版本的数据基础上新增的差异数据,待升级设备在执行s24时,可以将升级数据中的差异数据拷贝至第二存储空间,在执行s25时,可以根据差异数据对第二存储空间内的当前运行程序进行升级。

可选地,在待升级设备执行完s24之后,可将所述指定标志位设置为第三预设值。

第三预设值可以作为指定标志位的默认值。本领域技术人员可以根据实际需要设置第一预设值、第二预设值、第三预设值的具体值,仅需满足第一预设值、第二预设值、第三预设值三者不同即可。

在一种应用场景下,当对升级数据的拷贝操作结束之后,第二存储空间内已有用于进行更新升级的升级数据,检测到指定标志位为第三预设值这一默认值时,可避免待升级设备进行重复拷贝。

在另一种应用场景下,待升级设备只是在正常工作的情况下进行了复位操作,复位过程中,运行指针可能从指向第二存储空间切换为指向boot区,若检测到boot标志位为第三预设值,则可以在不进行拷贝操作的情况下,直接将运行指针再切换至指向第二存储空间,以运行第二存储空间内的原有程序,以此可以避免错误启动升级流程而导致设备出现故障。可选地,设备升级方法还可以包括步骤s26-s27。

s26:接收控制设备发送的版本查询指令。

s27:根据第二存储空间内的升级数据,将升级数据对应的版本信息发送给控制设备。

待升级设备发送的版本信息可以包括软件版本信息、硬件版本信息,控制设备可以对待升级设备反馈的版本信息进行显示,显示方式包括但不限于文字、图像、动画等。

可以理解的是,控制设备发送版本查询指令的查询时机、查询对象可以根据实际需要而变化。待升级设备可以在升级前和/或升级后,根据控制设备发送的版本查询指令,读取第二存储空间内的数据内容,以得到第二存储空间内的当前运行程序对应的版本信息,并将升级前和/或升级后的版本信息反馈给控制设备。

通过上述实现方式,有利于向控制设备反馈待升级设备的实际版本信息,以便于控制设备根据待升级设备反馈的版本信息确定是否有必要进行升级,也有利于控制设备根据待升级设备的实际版本信息确定升级数据的内容。

下面结合图4介绍一个实例中的升级流程。

如图4所示,在确定要对待升级设备进行升级时,控制设备首先向待升级设备发送启动升级指令。待升级设备识别出该启动升级指令中携带了指定身份标识15,向控制设备发送第一应答指令,并且将boot标志位由默认值ff(十六进制)更改为1(第一预设值),此时等待升级数据。

控制设备收到第一应答指令后,向待升级设备发送升级数据。升级数据被拆为每次32字节的数据包形式进行发送。待升级设备在每次接收到升级数据后向控制设备发送第二应答指令。控制设备在收到一个第二应答指令后,继续发送下一个32字节的数据包,直至发送完最后一个数据包。待升级数据对收到的每个数据包进行数据提取,以提取出每个数据包中的有效字节,有效字节可以小于或等于32字节,并将有效字节写入第一存储空间,以实现对于升级数据的暂存。

控制设备在发送最后一条升级数据的同时,或发完最后一条升级数据后,向待升级设备发送结束发送指令。待升级设备根据该结束发送指令,向控制设备反馈第三应答指令,并且将boot标志位从1改为0(第二预设值)。一旦待升级设备进行重启或复位,运行指针切换至指向boot区,则将第一存储空间内的升级数据拷贝至第二存储空间。拷贝结束后,将boot标志位恢复为第三预设值(默认值)。当运行指针切换至指向第二存储空间时,根据第二存储空间内的升级程序对当前运行程序进行更新升级。更新升级结束后,待升级设备可以响应版本查询指令,向控制设备反馈当前的版本信息。

需要说明的是,并非每一次升级都会完全执行前述实例的所有流程步骤,例如有可能在一段时间内接收完升级数据后,将boot标志位设为了第二预设值,但是待升级设备可能当前不适合重启或复位,因此暂时不对升级数据进行拷贝操作。直到待升级设备的运行指针、指定标志位都满足条件的情况下,才进行拷贝和后续的升级流程。

由于每次升级时,无需完全执行所有的流程步骤,因此可以基于待升级设备的实际情况继续进行升级,无需工作人员用一个控制设备守着一个待升级设备升级完后才对下一个待升级设备进行升级,即使待升级设备在升级过程中遇上断电或其他突发情况,也无需从头执行所有升级步骤,能够提升升级效率,且可以降低工作人员的操作难度。

基于同一发明构思,本申请实施例还提供一种设备升级装置500,图5为本申请实施例提供的一种设备升级装置500的功能模块框图,该装置应用于待升级设备。

如图5所示,该设备升级装置500可包括:接收模块501、存储模块502、设置模块503、拷贝模块504、升级模块505。

接收模块501,用于在指定标志位为第一预设值时,接收控制设备发送的升级数据。

存储模块502,用于将升级数据存储在第一存储空间中。

设置模块503,用于在接收到控制设备发送的结束发送指令后,将指定标志位设置为第二预设值。

拷贝模块504,用于在检测到指定标志位为第二预设值时,将第一存储空间内的升级数据拷贝至第二存储空间,第二存储空间用于存储待升级设备的当前运行程序。

升级模块505,用于根据第二存储空间内的升级数据对当前运行程序进行更新升级。

通过上述装置可以执行前述的设备升级方法,能够提升升级效率,降低工作人员的操作难度。

可选地,设置模块503还可用于在接收到所述结束发送指令后,将所述boot标志位设置为所述第二预设值;将运行指针从指向所述第二存储空间切换至指向boot区;拷贝模块504还可用于当检测到所述boot标志位为所述第二预设值,且所述运行指针指向所述boot区时,将所述第一存储空间内的所述升级数据拷贝至所述第二存储空间,并在拷贝结束后将所述运行指针切换至指向所述第二存储空间。

可选地,该设备升级装置500还可包括判断模块、应答模块。接收模块501还可用于接收所述控制设备发送的启动升级指令;判断模块用于判断所述启动升级指令中是否包括指定身份标识;应答模块用于在所述启动升级指令中包括所述指定身份标识时,向所述控制设备发送第一应答指令,以供所述控制设备根据所述第一应答指令发送所述升级数据。

可选地,设置模块503还可用于在所述启动升级指令中包括所述指定身份标识时,将所述boot标志位设置为所述第一预设值。

可选地,接收模块501还可用于接收所述控制设备发送的多个固件数据包,所述多个固件数据包中的每个数据包中包括所述升级数据的一部分。

可选地,应答模块可用于:在每次接收到所述控制设备发送的所述固件数据包后,向所述控制设备发送第二应答指令,以供所述控制设备根据所述第二应答指令发送下一条数据,所述下一条数据包括:下一个固件数据包或者所述结束发送指令。

可选地,接收模块501还可用于接收所述控制设备发送的版本查询指令;应答模块用于根据所述第二存储空间内的所述升级数据,将所述升级数据对应的版本信息发送给所述控制设备。

关于本申请实施例提供的设备升级装置500的其他细节,请进一步参考前述设备升级方法中的相关描述,在此不再赘述。

除了上述实施例以外,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器202运行时执行前述设备升级方法。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,或一些特征可以忽略,或不执行。另一点,所讨论的相互之间的连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术特征:

1.一种设备升级方法,其特征在于,应用于待升级设备,所述方法包括:

在指定标志位为第一预设值时,接收控制设备发送的升级数据;

将所述升级数据存储在第一存储空间中;

在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值;

当检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,所述第二存储空间用于存储所述待升级设备的当前运行程序;

根据所述第二存储空间内的所述升级数据对所述当前运行程序进行更新升级。

2.根据权利要求1所述的方法,其特征在于,所述指定标志位为boot标志位,所述在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值,包括:

在接收到所述结束发送指令后,将所述boot标志位设置为所述第二预设值;

将运行指针从指向所述第二存储空间切换至指向boot区;

所述当检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,包括:

当检测到所述boot标志位为所述第二预设值,且所述运行指针指向所述boot区时,将所述第一存储空间内的所述升级数据拷贝至所述第二存储空间,并在拷贝结束后将所述运行指针切换至指向所述第二存储空间。

3.根据权利要求1所述的方法,其特征在于,在所述接收控制设备发送的升级数据之前,所述方法还包括:

接收所述控制设备发送的启动升级指令;

判断所述启动升级指令中是否包括指定身份标识;

在所述启动升级指令中包括所述指定身份标识时,向所述控制设备发送第一应答指令,以供所述控制设备根据所述第一应答指令发送所述升级数据。

4.根据权利要求3所述的方法,其特征在于,所述指定标志位为boot标志位,在所述判断所述启动升级指令中是否包括指定身份标识之后,所述方法还包括:

在所述启动升级指令中包括所述指定身份标识时,将所述boot标志位设置为所述第一预设值。

5.根据权利要求1所述的方法,其特征在于,所述接收控制设备发送的升级数据,包括:

接收所述控制设备发送的多个固件数据包,所述多个固件数据包中的每个数据包中包括所述升级数据的一部分。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

在每次接收到所述控制设备发送的所述固件数据包后,向所述控制设备发送第二应答指令,以供所述控制设备根据所述第二应答指令发送下一条数据,所述下一条数据包括:下一个固件数据包或者所述结束发送指令。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收所述控制设备发送的版本查询指令;

根据所述第二存储空间内的所述升级数据,将所述升级数据对应的版本信息发送给所述控制设备。

8.一种设备升级装置,其特征在于,应用于待升级设备,所述装置包括:

接收模块,用于在指定标志位为第一预设值时,接收控制设备发送的升级数据;

存储模块,用于将所述升级数据存储在第一存储空间中;

设置模块,用于在接收到所述控制设备发送的结束发送指令后,将所述指定标志位设置为第二预设值;

拷贝模块,用于在检测到所述指定标志位为所述第二预设值时,将所述第一存储空间内的所述升级数据拷贝至第二存储空间,所述第二存储空间用于存储所述待升级设备的当前运行程序;

升级模块,用于根据所述第二存储空间内的所述升级数据对所述当前运行程序进行更新升级。

9.一种物联网设备,其特征在于,所述物联网设备包括:

存储器;

处理器;

所述存储器存储有所述处理器可执行的计算机程序,所述计算机程序被所述处理器执行时执行权利要求1-7任一项所述的方法。

10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1-7任一项所述的方法。

技术总结

本申请实施例提供一种设备升级方法、装置、物联网设备和存储介质,该设备升级方法应用于待升级设备,该方法包括:在指定标志位为第一预设值时,接收控制设备发送的升级数据;将升级数据存储在第一存储空间中;在接收到控制设备发送的结束发送指令后,将指定标志位设置为第二预设值;当检测到指定标志位为第二预设值时,将第一存储空间内的升级数据拷贝至第二存储空间,第二存储空间用于存储待升级设备的当前运行程序;根据第二存储空间内的升级数据对当前运行程序进行更新升级。以此可以改善现有技术中升级效率低的问题。

技术研发人员:支涛;应甫臣;吕伟辽

受保护的技术使用者:北京云迹科技有限公司

技术研发日:.11.01

技术公布日:.02.25

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。