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

固件更新方法和固件更新系统

文献发布时间:2023-06-19 11:52:33


固件更新方法和固件更新系统

技术领域

本发明涉及一种更新方法和更新系统,且特别涉及一种固件更新方法和固件更新系统。

背景技术

一般来说,终端装置(Terminal Device)是通过主机(Host)来进行固件更新,而且在传统固件更新方法中,主机会将多个固件更新文件打包成一大文件传输至终端装置。请参阅图1,图1是传统固件更新方法的示意图。如图1所示,每一固件更新文件被用来更新终端装置12的一固件。例如,固件更新文件131被用来更新终端装置12的系统软件121,且固件更新文件132和133则分别被用来更新终端装置12的应用程序122和123。因此,当终端装置12收到由主机10所打包并传输的大文件13后,终端装置12还必须从大文件13中分离出每一固件更新文件,这样才能使得终端装置12可根据每一固件更新文件来更新相应的该固件。然而,受限于主机10和终端装置12间的接口(例如,USB或UART等)带宽限制,使得传输大文件13的时间将耗费许多,造成终端装置12得花过多时间来进行固件更新。因此,如何使终端装置12更快地完成固件更新则成为本领域的一项重要课题。

因此,需要提供一种固件更新方法和固件更新系统来解决上述问题。

发明内容

有鉴于此,本发明实施例提供一种固件更新方法和固件更新系统。固件更新方法执行于固件更新系统中,固件更新系统包括主机和终端装置,主机存有多个固件更新文件,每一固件更新文件被用来更新终端装置的一固件,所述固件更新方法包括:针对这些固件更新文件的第K个固件更新文件,其中K为正整数,主机通过一算法来决定第K个固件更新文件是否需要压缩;若第K个固件更新文件需要压缩,主机藉由一压缩算法来压缩第K个固件更新文件,并将压缩后的第K个固件更新文件直接传输至终端装置,而若第K个固件更新文件不需要压缩,主机则直接传输原始的第K个固件更新文件至终端装置;以及针对压缩后的第K个固件更新文件,终端装置藉由压缩算法来解压缩压缩后的第K个固件更新文件,并利用解压缩后的第K个固件更新文件来更新相应的该固件,而针对原始的第K个固件更新文件,终端装置则直接利用原始的第K个固件更新文件来更新相应的该固件。

本发明实施例提供的该固件更新系统包括:一终端装置;以及一主机,该主机存有多个固件更新文件,每一该些固件更新文件被用来更新该终端装置的一固件,针对该些固件更新文件的第K个固件更新文件,其中K为正整数,该主机通过一算法来决定该第K个固件更新文件是否需要压缩,若该第K个固件更新文件需要压缩,该主机藉由一压缩算法来压缩该第K个固件更新文件,并将压缩后的该第K个固件更新文件直接传输至该终端装置,而若该第K个固件更新文件不需要压缩,该主机则直接传输原始的该第K个固件更新文件至该终端装置;其中针对压缩后的该第K个固件更新文件,该终端装置藉由该压缩算法来解压缩压缩后的该第K个固件更新文件,并利用解压缩后的该第K个固件更新文件来更新相应的该固件,而针对原始的该第K个固件更新文件,该终端装置则直接利用原始的该第K个固件更新文件来更新相应的该固件。

本发明实施例所提供的固件更新方法和固件更新系统,可以是由主机个别传输固件更新文件至终端装置,且在传输每一固件更新文件前,主机通过算法来检查每一固件更新文件是否需要压缩。对于需要压缩的固件更新文件,主机则使用压缩算法来减小该固件更新文件的文件大小,以至于也减少传输该固件更新文件至终端装置的传输时间。另外,为了使终端装置能具有越高的解压缩速度,本实施例还在终端装置上提出一些改良机制,例如可藉由暂存区收集器来收集在终端装置运行期间所保留和使用的存储器空间,以作为解压缩期间的暂存区,而且藉由系统中止器来中止其他任务的执行,以便终端装置的处理器不会被其他任务所占用,也避免这些存储器空间被其他任务的数据所覆盖。

为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。

附图说明

图1是传统固件更新方法的示意图。

图2A和图2B是本发明实施例所提供的固件更新方法的步骤流程图。

图3是本发明实施例所提供的固件更新系统的框图。

图4是图3的固件更新系统中的终端装置的框图。

图5是图4的终端装置中的各组件所进行固件更新方法的时序示意图。

图6是图4的终端装置所进行系统初始化时的示意图。

主要组件符号说明:

1、3 固件更新系统

10、30 主机

12、32 终端装置

131、132、133、331、332、333 固件更新文件

121、321 系统软件

122、123、322、323 应用程序

13 大文件

421 暂存区收集器

422 系统中止器

423 文件解压缩器

424 固件激活器

425 处理器

426 易失性存储器

427 非易失性存储器

S201~S213 流程步骤

具体实施方式

以下是通过特定的具体实施例来说明本发明的实施方式,本领域技术人员可由本说明书所提供的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以施行或应用,本说明书中的各项细节也可基于不同观点与应用,在不悖离本发明的构思下进行各种修改与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸的描绘,事先声明。以下的实施方式将进一步详细说明本发明的相关技术内容,但所提供的内容并非用以限制本发明的保护范围。

应当可以理解的是,虽然本文中可能会使用到“第一”、“第二”、“第三”等术语来描述各种元件或者信号,但这些元件或者信号不应受这些术语的限制。这些术语主要是用以区分一元件与另一元件,或者一信号与另一信号。另外,本文中所使用的术语“或”,应视实际情况可能包含相关联的列出项目中的任一个或者多个的组合。

首先,请同时参阅图2A、图2B和图3,图2A和图2B是本发明实施例所提供的固件更新方法的步骤流程图,图3是本发明实施例所提供的固件更新系统的框图。需说明的是,图2A和图2B的固件更新方法可执行于图3的固件更新系统3中,但本发明并不限制图2A和图2B的固件更新方法仅能够执行于图3的固件更新系统3中。如图3所示,固件更新系统3包括主机30和终端装置32。主机30存有多个固件更新文件,且每一固件更新文件被用来更新终端装置32的一固件。例如,固件更新文件331被用来更新终端装置32的系统软件321,且固件更新文件332和333则分别被用来更新终端装置32的应用程序322和323,总而言之,本发明并不限制主机30所存有的固件更新文件数目。

在本实施例中,针对这些固件更新文件的每一个,或者说第K个固件更新文件,其中K为正整数,主机30是通过一算法来决定第K个固件更新文件是否需要压缩。若第K个固件更新文件需要压缩,主机30藉由一压缩算法来压缩第K个固件更新文件,并将压缩后的第K个固件更新文件直接传输至终端装置32,而若第K个固件更新文件不需要压缩,主机30则直接传输原始的第K个固件更新文件至终端装置32。因此,如图2A所示,在步骤S201中,主机30可先初始化变量K为1,并且在步骤S202中,主机30通过算法来决定第K个固件更新文件是否需要压缩。若是,主机30即执行步骤S203,藉由压缩算法来压缩第K个固件更新文件,并将压缩后的第K个固件更新文件直接传输至终端装置32;若不是,主机30则执行步骤S204,直接传输原始的第K个固件更新文件至终端装置32。

接着,在步骤S205中,主机30会判断第K个固件更新文件是否为其存有的最后一个固件更新文件。若不是,主机30即执行步骤S206来让变量K加1,并且在K加1后,返回执行步骤S202;若是,固件更新系统3则继续执行步骤S207。也就是说,相较于图1的主机10,本实施例的主机30将个别传输固件更新文件至终端装置32,且在传输每一固件更新文件前,主机30通过算法来检查每一固件更新文件是否需要压缩。对于需要压缩的固件更新文件,主机30则使用压缩算法来减小该固件更新文件的文件大小,以至于也减少了传输该固件更新文件至终端装置32的传输时间。举例来说,根据现有的压缩算法,例如ZIP、LZMA或RAR等,该固件更新文件的压缩率最高可达源文件大小的10%,总而言之,为了考虑终端装置32的处理器的运算能力和存储器的大小,本实施例的主机30则选择使用LZMA来减小该固件更新文件的文件大小,但本发明并不以此为限制。

另外,既然主机30已不用将全部固件更新文件打包成一大文件,而是可个别传输至终端装置32,因此,本实施例还节省了在终端装置32上的文件分离时间。也就是说,本实施例可视为改由主机30来执行分离每一固件更新文件的工作,且这工作则只须一次性地在主机30上执行。因此,对于固件更新系统3还包括其他终端装置,且其他终端装置也依序通过主机30来进行固件更新的话,本实施例就可节省更多在固件更新系统3上的固件更新时间。特别说明的是,主机30的处理器的运算能力较终端装置的处理器的运算能力强。至于有关步骤S202的算法将会在下文中藉由其他范例来做详尽说明,因此其细节于此就先不再多加赘述。

请注意的是,由于利用压缩算法来压缩文件的运作原理已为本技术领域中的技术人员所公知,因此有关步骤S203的细节也就不再多加赘述,而且本发明并不限制主机30在判断第K个固件更新文件是否为其存有的最后一个固件更新文件的具体实现方式,本技术领域中的技术人员应可依据实际需求或应用来进行相关设计。然后,如图2B所示,在终端装置32收到这些固件更新文件的步骤S207中,终端装置32可先同样初始化变量K为1,并且在步骤S208中,终端装置32会检查收到的第K个固件更新文件是否为压缩后的第K个固件更新文件。若是,终端装置32即执行步骤S209,藉由压缩算法来解压缩压缩后的第K个固件更新文件,并利用解压缩后的第K个固件更新文件来更新相应的该固件;若不是,终端装置32则执行步骤S210,直接利用原始的第K个固件更新文件来更新相应的该固件。相对地,在步骤S211中,终端装置32会判断第K个固件更新文件是否为其收到的最后一个固件更新文件。若不是,终端装置32即执行步骤S212来让变量K加1,并且在K加1后,返回执行步骤S208;若是,固件更新系统3则进入步骤S213以结束固件更新程序。

为了方便以下说明,本实施例则以固件更新文件331作为这些固件更新文件的第一个固件更新文件(即K=1),且固件更新文件332作为这些固件更新文件的第二个固件更新文件(即K=2)的例子来进行说明,但其并非用以限制本发明。因此,当主机30通过算法决定第一个固件更新文件331需要压缩的话,主机30则藉由压缩算法来压缩第一个固件更新文件331,并将压缩后的第一个固件更新文件331直接传输至终端装置32,而当主机30通过算法决定第二个固件更新文件332不需要压缩的话,主机30则直接传输原始的第二个固件更新文件332至终端装置32。相对地,在终端装置32收到这些固件更新文件后,针对压缩后的第一个固件更新文件331,终端装置32可藉由压缩算法来解压缩压缩后的第一个固件更新文件331,并利用解压缩后的第一个固件更新文件331来更新系统软件321,而针对原始的第二个固件更新文件332,终端装置32则直接利用原始的第二个固件更新文件332来更新应用程序322。

请再注意的是,本发明除了不限制终端装置32在检查第K个固件更新文件是否为压缩后的第K个固件更新文件的具体实现方式外,本发明也不限制终端装置32在判断第K个固件更新文件是否为其收到的最后一个固件更新文件的具体实现方式,本技术领域中的技术人员应可依据实际需求或应用来进行相关设计。在本实施例中,针对这些固件更新文件的第K个固件更新文件,步骤S202的算法可为判断(Tt

实务上,Tt

由此可见,假如在主机30和终端装置32间的数据传输速率为175kbps,终端装置32的解压缩速度为260kbps,原始的第一个固件更新文件331的文件大小为22MB,且压缩后的第一个固件更新文件331的文件大小为10MB的情况下,主机30可根据上述公式(1)~(3)来求出原始的第一个固件更新文件331所传输至终端装置32的传输时间约为129秒,压缩后的第一个固件更新文件331所传输至终端装置32的传输时间约为59秒,且压缩后的第一个固件更新文件331的解压缩时间约为40秒。也就是说,在K=1的步骤S202中,因为(Tt

应当理解的是,终端装置32的解压缩速度依据终端装置32的处理器的运算能力和存储器的大小所决定。例如,处理器的运算能力越差,且存储器大小越少的终端装置32就具有越低的解压缩速度。然而,为了使终端装置32能具有越高的解压缩速度,本发明还在终端装置32上提出一些改良机制,至于有关其细节将会在下文中藉由其他附图来做详尽说明,故于此就先不再多加赘述。总而言之,前述的解压缩速度是可通过实验所获得,但本发明并不以此为限制,而且本发明亦不限制主机30所获知数据传输速率、解压缩速度及文件大小等参数的具体实现方式,本技术领域中的技术人员应可依据实际需求或应用来进行设计。

另外,除了终端装置32的处理器的运算能力和存储器的大小外,终端装置32的解压缩速度还可依据压缩算法的词库大小(Dictionary Size)所决定,且该词库大小也可依据终端装置32的存储器大小所决定。例如,越高的词库大小可能导致越高的解压缩速度,但也会消耗越多的存储器的大小。因此,受限于终端装置32上的存储器的大小,尤其是指终端装置32上的易失性存储器,例如随机存取存储器(RAM)的大小,本实施例可将压缩算法,例如LZMA的词库大小设定为14,但本发明亦不以此为限制。

另一方面,请一并参阅图4和图5,图4是终端装置32的框图,图5则是终端装置32中的各组件所进行固件更新方法的时序示意图。如图4所示,终端装置32可包括暂存区收集器(Buffer Collector)421、系统中止器(Suspender)422、文件解压缩器423和固件激活器(Activator)424。需说明的是,上述各组件可以是通过纯软件来实现,或者是通过硬件搭配固件或软件来实现,但本发明并不以此为限制。除此之外,上述各组件可以是整合或分开设置,但本发明亦不以此为限制。需再次说明的是,若上述各组件为纯软件,各组件储存于非易失性存储器并由终端装置32的处理器执行各组件来实现各组件的功能。因此,如图4所示,终端装置32还可包括处理器425、易失性存储器426和非易失性存储器427。

如前所述,终端装置32上的存储器的大小,尤其是指终端装置32上的易失性存储器426的大小最可能严重影响解压缩速度。因此,如图5所示,在终端装置32系统初始化时,终端装置32可藉由暂存区收集器421来从其易失性存储器426,例如RAM中收集至少一空间,并在系统初始化结束后,该至少一空间被作为解压缩的暂存区使用。也就是说,暂存区收集器421将用来收集在终端装置32运行期间所保留和使用的存储器空间,而且实务上,暂存区收集器421将尝试收集一预设大小的存储器空间,例如两个(2

举例来说,可请一并参阅图6,图6是终端装置32所进行系统初始化时的示意图。在终端装置32系统初始化时,终端装置32的信息收发可包括应用程序A和应用程序B之间能够互相存取资源并进行协调工作,则利用行程间通信(Inter-Process Communication,IPC)技术来传送数据或信号。因此,这时候的易失性存储器426会储存应用程序A所传递至应用程序B的信息、应用程序B所传递至应用程序A的信息。本实施例可将这两种信息简称为数据1和数据2,且数据1和数据2所储存于易失性存储器426,例如RAM中都会有对应的存储器地址和大小,因此,暂存区收集器421从易失性存储器426中收集至少一空间是指收集易失性存储器426的这些存储器地址和大小。请注意,应用程序A和应用程序B可以是指终端装置32上的其他应用程序,但本发明并不限制它们的具体功能和内容。

另外,文件解压缩器423旨在用来对压缩后的第K个固件更新文件进行解压缩,以获得解压缩后的第K个固件更新文件,而且因为暂存区收集器421所收集到的这些存储器空间都将在解压缩期间给文件解压缩器423使用,所以终端装置32不允许其他组件在解压缩期间使用这些存储器空间,否则终端装置32上的易失性存储器426将处于混乱状态。由此可见,系统中止器422旨在中止终端装置32的其他任务,以便终端装置32的处理器425不会被其他任务所占用,而且这些存储器空间也不会同时被其他任务的数据所覆盖。相对地,系统中止器422可把易失性存储器426,例如RAM中的数据1、数据2和数据3写入非易失性存储器427,例如闪存(Flash Memory)中,以避免数据1、数据2和数据3在解压缩和固件更新期间遗失。如图5所示,需说明的是,主机30会传送一固件下载指令至终端装置32,使得终端装置32进行下载,待下载完毕后,主机30会传送一固件激活指令至终端装置32,此时,系统中止器422开始执行。也就是说,当终端装置32收到这些固件更新文件时,系统中止器422将先中止其他任务的执行,然后再将易失性存储器426,例如RAM中的数据1、数据2和数据3写入非易失性存储器427中,以腾出这些存储器空间后,文件解压缩器423才开始对压缩过的固件更新文件进行解压缩,而且直到终端装置32利用完这些固件更新文件来更新固件后,系统中止器422则可恢复其他任务的执行。

应当理解的是,终端装置32所收到的固件更新文件都将先存在非易失性存储器427中,而且在针对收到的第K个固件更新文件为压缩后的第K个固件更新文件时,文件解压缩器423的运作流程就可包括如下步骤。首先,将压缩后的第K个固件更新文件从非易失性存储器427中写入至前述作为解压缩期间的输入用存储器,即暂存区收集器421从易失性存储器426中所收集的其中一个(2

综上所述,本发明实施例所提供的固件更新方法和固件更新系统,可以是由主机个别传输固件更新文件至终端装置,且在传输每一固件更新文件前,主机通过算法来检查每一固件更新文件是否需要压缩。对于需要压缩的固件更新文件,主机则使用压缩算法来减小该固件更新文件的文件大小,以至于也减少传输该固件更新文件至终端装置的传输时间。另外,为了使终端装置能具有越高的解压缩速度,本实施例还在终端装置上提出一些改良机制,例如可藉由暂存区收集器来收集在终端装置运行期间所保留和使用的存储器空间,以作为解压缩期间的暂存区,而且藉由系统中止器来中止其他任务的执行,以便终端装置的处理器不会被其他任务所占用,也避免这些存储器空间被其他任务的数据所覆盖。

以上所提供的内容仅为本发明的优选可行实施例,并非因此局限本发明的专利保护范围,所以凡是运用本发明说明书及附图内容所做的等同技术变化,均包含于本发明的专利保护范围内。

相关技术
  • 固件更新方法和固件更新系统
  • 具有固件更新功能的系统、电子装置及其固件更新方法
技术分类

06120113084473