掌桥专利:专业的专利平台
掌桥专利
首页

一种固件的升级方法、装置、电子设备和可读存储介质

文献发布时间:2024-04-18 20:00:50


一种固件的升级方法、装置、电子设备和可读存储介质

技术领域

本发明属于电子设备技术领域,具体涉及一种固件的升级方法、装置、电子设备和可读存储介质。

背景技术

植入式或半植入式医疗仪器种类很多,如心脏起搏器与除颤器、脑起搏器、神经刺激器等,为防止体液渗入,电路需要进行全密封。植入式医疗仪器的电路,一般以微控制器(MCU)为核心,以软件控制整个电路的检测或刺激功能,以及通过双向无线通信与体内系统交换数据。在植入式医疗设备植入患者体内使用后,只需要由医生或专业人员,用体外控制系统与医疗仪器建立双向无线通信,把新版本的软件写入程序存储器,即可实现一些新的治疗功能,从而避免了手术更换仪器带来的麻烦,同时也大大节省了费用。

对于植入式医疗设备的固件升级,主要利用外部程控系统通过无线连接将数据推送到设备端。

但远程升级受限于无线通信方式,有着通信速度慢,数据不稳定等问题,升级时间往往较长,而升级过程中设备无法正常工作,这对于需要全天候处于治疗工作状态设备而言是不可取的。

发明内容

本发明的目的是提供一种固件升级方法、装置、电子设备和可读存储介质,该方法可以在不影响终端设备正常工作的状态下对其进行升级。

为解决上述问题,本发明的第一方面提供了一种固件的升级方法,包括:

终端设备获取执行任务时任务的执行时间间隔;

利用所述任务的执行时间间隔获取升级数据包;

根据所述升级数据包进行固件升级。

优选地,利用任务的执行时间间隔获取升级数据包,包括:

在每个所述任务的执行时间间隔,终端设备依次向移动终端发送升级数据包请求指令,请求获取一个升级数据包;

所述升级数据包为由所述移动终端获取的升级固件包拆分成的多个等长度的具有独立编号的升级数据片段。

优选地,在获取执行任务时任务的执行时间间隔之前,还包括:

获取固件的固件版本号并与现存执行的固件版本号比对,比对通过后在任务执行间隔,向所述移动终端发送升级响应指令,并开始请求获取所述升级数据包。

优选地,利用任务的执行时间间隔获取升级数据包,还包括:

对利用任务的执行时间间隔获取升级数据包的过程进行校验;

校验通过则将所述升级数据包写入对应的FLASH地址;

校验不通过则反复请求获取校验不通过的升级数据包。

优选地,升级数据包的获取被打断后,重新发送被打断的升级数据包对应的所述升级数据包请求指令。

优选地,固件升级数据包进行固件升级,包括:

对接收的全部的所述升级数据包进行校验;

校验无误后进入BOOT程序,在BOOT程序中将接收到的完整升级数据复制到应用程序,执行新的应用程序。

根据本发明的第二方面提供了一种固件的升级方法,包括:

获取升级数据包;

响应于终端设备的请求,在所述终端设备任务的执行时间间隔向所述终端设备发送升级数据包。

优选地,获取升级数据包,包括:

获取升级固件包,将所述升级固件包拆分成的多个等长度的升级数据包,对所述升级数据包排序并编号;

所述响应于终端设备的请求,在终端设备任务的执行时间间隔向终端设备发送升级数据包,包括:

在每个所述终端设备任务的执行时间间隔,向所述终端设备发送一个指定编号的所述升级数据包,所述编号由所述终端设备的请求指定。

根据本发明的第三方面提供了一种固件的升级装置,包括:

间隔获取模块,用于获取执行任务时任务执行时间间隔;

升级数据获取模块,用于利用所述执行时间间隔获取升级数据包;

升级模块,用于根据所述升级数据包进行固件升级。

根据本发明的第四方面提供了一种固件的升级装置,升级固件包拆分模块,用于获取升级数据包;

响应传输模块,用于基于终端设备的请求,向所述终端设备发送所述升级数据包。

本发明的上述技术方案具有如下有益的技术效果:

本发明的固件升级方法中升级数据包的传输由终端设备发起,基于任务的执行时间间隔控制升级数据包的传输频率,使得终端设备在升级数据的传输过程中依然可以正常工作。

附图说明

图1是本发明第一实施例中应用于终端设备的固件升级的方法流程图;

图2是本发明第一实施例的方法的逻辑框图;

图3本发明第二实施例中应用于移动终端的固件升级的方法流程图;

图4是本发明第二实施例的方法的逻辑框图;

图5是本发明第三实施例的移动终端与终端设备交互流程的示意图;

图6是本发明第四实施例的升级装置示意图;

图7是本发明第五实施例的升级装置示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

实施例一:

图1是本发明一个实施例的一种固件升级的方法流程图。

如图1所示,一种以终端设备为执行主体的固件升级的方法,包括:

S11.获取执行任务时任务的执行时间间隔;

S12.利用任务的执行间间隔获取升级数据包;

S13.根据升级数据包进行固件升级。

本实施例中,升级数据包的传输由终端设备发起,基于终端设备在执行任务时,任务的执行时间间隔,控制移动终端想终端设备传输升级数据包的频率,使得终端设备在升级数据的传输过程中依然可以正常工作。

下面结合图2的逻辑框图对本实施例的固件升级的方法进行详细说明:

在步骤S11.获取执行时任务的执行时间间隔之前,与移动终端通过蓝牙建立通信连接。

本实施例中,移动终端以手机APP,终端设备以植入式医疗仪器为例,使用低功耗蓝牙(BLE)作为无线通信方式。BLE具有高可靠性,高安全性,通信速率最高可达到2Mb/s,能够完全满足植入式电子设备对通信安全性,稳定性,速率的要求。

在与移动终端通过立通信连接后,获取任务的执行时间间间隔之前,还包括:

获取升级固件包的固件版本号并与现存执行的固件版本号比对,比对通过后在任务的执行时间间隔,,向移动终端发送升级响应指令,并开始请求获取升级数据包。

具体的,终端设备作为生理信号采集系统时,执行的任务为对生理信号的采集,获取该生理信号采集的时间间隔即为任务的执行时间间隔。

通过终端设备主导,利用任务的执行时间间隔,或不执行任务时开始升级,而非用户通过移动终端主导何时开始对终端设备升级,能够避免因终端设备正在运行而遗忘对其进行升级的情况,及时自动开始升级。

S12.利用任务的执行时间间隔获取升级数据包;

本实施例中,升级数据包为用于对终端设备升级的固件数据,由移动终端获取的升级固件包拆分成的多个等长度的具有独立编号的升级数据片段。为方便换算,将升级固件包拆分为每个长度均为128字节的升级数据包,并顺次进行编号,最后一个升级数据包不足128字节时,剩余数据补“0xFF”。

以终端设备为信号采集系统为例,信号采集系统执行信号采集任务时,执行每秒钟10次采样周期的要求,但实际每次信号采集和数据传输耗时均小于100ms,存在数据传输时间间隔。在每个传输时间间隔内,终端设备向移动终端发送升级数据包请求指令,请求获取一个升级数据包,获取后顺次写入终端设备中对应的FLASH地址的升级固件存储区。

因此,以终端设备为主导,可以利用数据传输时间间隔发送升级数据包的数据包指令,使得终端设备在数据采集周期内依然可以正常工作。而由移动终端主导升级则无法获取终端设备的任务执行状态,升级数据的传输难以避免会影响到终端设备生理信号的采集和传输,从而影响终端设备的使用。

进一步的,在每个请求获取升级数据包的过程中,终端设备对可能出现的错误,包括数据校验错误,传输超时未收到数据等情况利用CRC-16码进行校验。校验通过则将升级数据包写入终端设备对应的FLASH地址的应用程序区;校验不通过则反复向移动终端请求发校验不通过的升级数据包,移动终端无需关注升级数据包传输情况,只需按照终端设备发出的数据包请求指令执行即可。

具体的,数据包请求指令包括:指令代码、固件版本号、升级数据包序号以及循环冗余码校验(CRC编码),移动终端根据请求的升级数据包的序号向终端设备发送对应的升级数据包。因此,当升级数据包的传输被打断,通过发送被打断的升级数据包对应的数据包请求指令即可实现断点续传。

S13.根据升级数据包进行固件升级。

通过计算升级数据包的CRC编码对接收的全部的升级数据包进行完整性和准确性的校验;

校验无误后,终端设备重启进入BOOT程序,在BOOT程序中将接收到完整的升级数据复制到应用程序,执行新的应用程序完成升级,该重启耗时不超过1~3秒。

本发明的实施方式中以终端设备为主导,利用任务的执行时间间隔自动开始升级以及基于任务的执行时间间隔发送升级数据包的数据包指令,控制移动终端对升级包的传输频率,使得终端设备在获得升级数据包的过程中,依然可以正常工作。

实施例二:

图3是本发明第二实施例的一种固件升级的方法流程图。

如图3所示,一种以移动终端为执行主体的固件升级的方法,包括:

S21.获取升级数据包;

S22.响应于终端设备的请求,在所述终端设备任务的执行时间间隔向终端设备发送升级数据包。

本实施例中的移动终端基于终端设备发送的升级数据包请求指令,被动为终端设备发送升级文件,利用终端设备任务执行时任务的执行时间间隔发送升级数据包,从而保证终端设备在获得升级数据包的过程中,依然可以正常工作。

下面结合图4的逻辑框图对本实施例的固件升级的方法进行详细说明:

在执行步骤S21之前,与终端设备通过蓝牙建立通信连接。

本实施例中,移动终端以手机APP或平板电脑上的APP,终端设备以植入式医疗仪器为例,使用低功耗蓝牙(BLE)作为无线通信方式。BLE具有高可靠性,高安全性,通信速率最高可达到2Mb/s,能够完全满足植入式电子设备对通信安全性,稳定性,速率的要求。

与服务器端建立通信连接后,从服务器端获取升级文件,升级文件包括:升级固件信息和升级固件包,升级固件信息包括:固件版本号、固件数据长度和固件CRC校验值。

移动终端根据终端设备的固件版本号和设备ID从服务器端获取最新版本的升级固件信息;将获取的终端设备的固件版本号,与获取的服务器端的固件版本号比对,判断服务器端是否存在升级文件。

服务器端可以为云端服务器,通过互联网建立通信连接;与终端设备通过蓝牙建立通信连接。

确认存在升级文件后获取升级文件,移动终端向终端设备发送包括:指令代码、固件版本号、固件数据长度、固件CRC校验值的升级请求指令,等待终端设备回复升级响应指令以及获取升级数据包的请求。

之后执行步骤S21.获取升级数据包;

升级数据包为由升级固件包拆分成的多个等长度的升级数据包。升级固件包为用于对终端设备升级的升级数据,为方便换算,本实施例中将升级固件包拆分为每个长度均为128字节的升级数据包,依次进行编号,最后一个升级数据包不足128字节时,剩余数据补“0xFF”。

S22.响应于终端设备的请求,在终端设备任务的执行时间间隔向终端设备发送升级数据包。

移动终端根据终端设备发送的升级数据包请求指令,发送相应的升级数据包。该请求指令中包含升级数据包编号,移动终端根据数据包编号发送指定的升级数据包至终端设备。因此,当升级数据包的传输被打断,根据数据包请求指令,发送被打断的对应编号的升级数据包即可实现断点续传。

当全部升级数据包传输完毕后,移动终端提示用户是否重启终端设备使升级生效。

本实施例中的移动终端基于终端设备发送的升级数据包请求指令,被动为终端设备发送升级文件,利用终端设备的任务的执行时间间隔发送升级数据包,从而保证终端设备在获得升级数据包的过程中,依然可以正常工作。避免了由移动终端主导升级文件传输时,升级数据的传输占用蓝牙通信的带宽,使得终端设备不能正常工作的情况。

实施例三:

下面结合图5所示的移动终端与终端设备的交互流程,结合应用于终端设备和应用于移动终端的固件升级方法进行详细说明:

S31.移动终端查询服务器端是否存在升级文件,提示用户是否对终端设备的固件进行升级:

与服务器端建立通信连接,移动终端根据固件版本号和终端设备的设备ID从服务器端获取从服务器端获取升级文件,升级文件包括:升级固件信息和升级固件包,升级固件信息包括:固件版本号、固件数据长度和CRC校验值。

移动终端将获取的终端设备的固件版本号,与获取的服务器端的固件版本号比对,判断服务器端是否存在升级文件。如存在,则提示用户对终端设备进行升级。

本实施例中,服务器端可以为云端服务器,通过互联网与移动终端建立通信连接;同时,移动终端与终端设备通过蓝牙建立通信连接。

移动终端为手机或平板电脑上的APP,终端设备以植入式医疗仪器为例,使用低功耗蓝牙(BLE)作为无线通信方式。BLE具有高可靠性,高安全性,通信速率最高可达到2Mb/s,能够完全满足植入式电子设备对通信安全性,稳定性,速率的要求。

S32.移动终端向终端设备发送升级固件信息,并将升级固件包拆分成若干等长度的升级数据包排序并编号:

移动终端向终端设备发送升级固件信息,等待终端设备回复升级响应指令以及获取升级数据包的请求。

具体的,移动终端向终端设备发送如表1所示的升级请求指令:

表1移动终端发送的升级固件信息

同时,移动终端将从服务器端获取的升级固件包拆分成多个等长度的升级数据包,每收到一个升级数据包请求指令,向终端设备发送一个升级数据包。

升级固件包为用于对终端设备升级的升级数据,为方便换算,本实施例中将升级固件拆分为每个长度均为128字节的升级数据包,依次进行编号,最后一个升级数据包不足128字节时,剩余数据补“0xFF”。

S33.终端设备根据其任务执行的状态向移动终端发起升级数据包请求指令,每个升级数据包请求指令对应请求获取一个具有指定编号的升级数据包,并将收到的升级数据包依次写入终端设备中对应的FLASH地址:

终端设备根据其任务执行的状态通过向移动终端回复如表2所示的升级响应指令以确认升级:

表2终端设备发送的升级响应指令

并发起升级数据包请求指令,如表3所示:

表3终端设备发送的升级数据包请求指令

移动终端应终端设备的请求,发送含有指定编号的升级数据包,对应的回复指令如下表4:

表4移动终端回复终端设备的指令

具体的,终端设备依次请求获取第一升级数据包、第二升级数据包…,移动终端依次对应发送第一升级数据包、第二升级数据包…,直至移动终端应请求发送完毕全部的升级数据包,终端设备依次全部写入终端设备中对应的FLASH地址应用程序区。

当某一编号的升级数据包的传输被打断时,移动终端只需依照终端设备的请求指令,发送指定编号的升级数据包,使得数据传输被打断后无需对剩余文件重新计算校验,简化数据传输流程,实现断点续传。

进一步的,在终端设备每个请求获取升级数据包的过程中,终端设备对可能出现的错误,包括数据校验错误,超时未收到数据等情况利用CRC-16码进行校验。校验通过则将升级数据包写入对应的FLASH地址应用程序区;校验不通过则反复向移动终端发送校验不通过的升级数据包对应的升级数据包请求指令,移动终端无需关注升级数据包传输情况,只需按照终端设备请求的数据包请求指令执行即可。

具体的,终端设备的固件升级是指对应用程序的升级,终端设备内部FLASH的划分如下,包括:

BOOT程序区:用于引导应用程序,不可升级、擦除或修改;

应用程序区:用于应用程序功能的实现,可升级;

升级固件信息存储区:保存升级固件信息,包括:升级标志,固件版本号,固件长度,固件校验值,当前写入的数据长度。

升级固件包存储区:存储待升级的升级固件包,升级时由移动终端写入数据,由BOOT程序读取并复制到应用程序区以完成升级。

S34.终端设备对获取的全部升级数据包进行校验:

对接收的全部的升级数据包进行完整性和准确性的校验,通过计算升级数据包的CRC-16编码并与固件校验值对应的CRC-16编码比对,一致则证明数据接收正确;如果不一致,说明数据错误,重新开始数据请求流程。

S35.移动终端提示用户是否重启终端设备完成升级。

用户同意后,终端设备进入BOOT程序,在BOOT程序中将接收到的升级数据包复制到应用程序区,重启执行新的应用程序,完成升级,该重启耗时不超过1~3秒。

现有终端设备一般以微控制器(MCU)为核心通过双向无线通信与体内系统交换数据,由于受功耗和体积的限制,难以处理复杂的任务。如果升级数据传输由手机APP主导的话,难免会对终端设备的正常业务造成影响。以需要实时采集生理信号的设备为例,升级数据的传输会占用蓝牙通信的带宽,导致采集的生理信号不能及时发送给手机APP。因此,本发明由终端设备主导数据传输,终端设备可以选择在任务空闲的时候请求升级数据,从而避免了固件传输对正常业务流程的影响。

本发明的方法,一方面移动终端通过对升级固件包拆包传输并对拆分后的升级数据包进行编号,使得数据传输被打断后无需对剩余文件重新计算校验,简化数据传输流程,实现段断点续传;

一方面,终端设备在检测到某一升级数据包传输出错时,可以反复请求同意升级数据包,使得移动终端无需关注升级数据包的传输进度,只需按照终端设备发送的升级数据包请求指令发送指定升级数据包;

另一方面,由终端设备主导升级,根据其任务执行时任务的执行时间间隔请求升级数据包的传输频率,使得终端设备在获得升级数据包的过程中,依然可以正常工作。

实施例四:

本发明第四实施例提供了一种固件的升级装置,如图6所示,包括:

间隔获取模块,用于获取执行任务时任务的执行时间间隔;

升级数据获取模块,用于利用任务的执行时间间隔获取升级数据包;

升级模块,用于根据升级数据包进行固件升级。

该升级装置基于终端设备的任务的执行时间间隔控制升级数据包的传输频率,使终端设备在升级数据的传输过程中依然可以正常工作。

实施例五:

本发明第五实施例提供了一种固件的升级装置,如图7所示,包括:

升级固件包拆分模块,用于获取升级数据包;

响应传输模块,用于基于终端设备的请求,向终端设备发送升级数据包。

该升级装置基于终端设备的请求,利用终端设备的任务的执行时间间隔传输升级数据包,使终端设备在升级数据的传输过程中依然可以正常工作。

实施例六:

本发明第六实施例提供了一种电子设备,包括:处理器,存储器及存储在存储器上并可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如上述任一项的固件的升级方法的步骤。

实施例七:

本发明第七实施例提供了一种可读存储介质,该可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的固件的升级方法的步骤。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,简称ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。

相关技术
  • 用于聚合物组合物的阻燃剂组合及其用途
  • 用于聚合物组合物的增效的阻燃剂组合及其用途
  • 用于聚合物组合物的阻燃剂组合及其用途
  • 一种阻燃橡胶组合物及复合阻燃剂
  • 一种阻燃型树脂预聚物及使用其制备的树脂组合物、半固化片和层压板
  • 阻燃剂组合物、包含该阻燃剂组合物的阻燃性树脂组合物及该阻燃性树脂组合物的成形体
  • 阻燃剂组合物、包含该阻燃剂组合物的阻燃性树脂组合物及该阻燃性树脂组合物的成形体
技术分类

06120116545261