嵌入式终端设备的软件升级方法及装置的制作方法

文档序号:6334396阅读:117来源:国知局
专利名称:嵌入式终端设备的软件升级方法及装置的制作方法
技术领域
本发明涉及一种软件的升级装置及方法,尤其涉及一种嵌入式终端设备的软件升级方法及装置。
背景技术
机顶盒软件升级是一项重要的内容,尤其是IPTV,交互式机顶盒的出现,使得机顶盒的内容和服务越来越新,越来越丰富,软件升级也变得非常频繁,设计一种高效、可靠的软件升级、启动的策略和方法,成为机顶盒软件技术的非常重要的一项内容。现有的机顶盒软件的升级方法包括以下三种方法一中国专利CN101719072公开了一种嵌入式终端设备的软件升级方法及升级装置,其公开了一种嵌入式终端设备的软件升级方法及升级装置,所述软件升级方法包括在终端设备系统启动后、应用程序运行前,检测终端设备是否需要升级的步骤,以及在需要升级时执行升级过程的步骤。方法二中国专利CN101567962公开了一种机顶盒的双Loade r升级方法,包括如下步骤开机后,CPU首先运行Marter程序,检测是否有升级要求;有则先跳转到主 Loader进行升级;若主Loader被破坏,则跳到备份Loader进行升级;如果检测到没有升级要求或者两个Loader都被破坏,则跳转到应用程序;在Loader程序升级顺利结束并重新启动后,由Marter程序负责对两Loader进行比对,用升级后的新的Loader替换掉原来的未升级的Loader,再跳转到应用程序。方法三中国专利CN101714093公开了一种机顶盒的三段式双备份Loader升级方法,该方法是在机顶盒FLASH的不同存储空间,存放两Loader程序及一 Booter程序,该两 Loader程序分别为可互换的主Loader程序和从Loader程序,该主Loader程序和从Loader 程序轮流更新,互为备份,升级跳转使用最新的模块。在实现上述本发明的过程中,发明人发现现有技术中至少存在如下问题1.升级自身软件,软件是单段式的程序(没有备份),这样升级过程中如果出现故障,如出现突然断电、断网的情况,容易导致自身软件被破坏,从而导致软件本身运行不正常,机顶盒不能正常工作,只能通过人工重装软件的方法进行,效率低。2.方法二中的机顶盒虽然采用了双备份的升级方法,但升级过程还是升级本身软件,相对于方法一来说只是多了一次升级机会而已,如果两次升级失败,还是出现方法一的问题,并不能有效的解决升级出错问题。3.方法二中的机顶盒虽然采用了双备份的升级方法,机顶盒升级失败后没有将软件恢复到升级前的状态(老版本),没有很好的容错处理,有些情况下需要升级失败机顶盒重启后老版本软件依然能运行。4.方法三中的软件升级虽然完成(升级分区已经写入了新的软件),但新版本软件并不能正常启动,机顶盒不具备恢复到上一个版本的功能,从而机顶盒软件虽然升级成功但仍然不能正常运行。

发明内容
本发明的实施例提供一种高效、稳定的嵌入式终端设备的软件升级方法及装置。为达到上述目的,本发明的实施例采用如下技术方案一种嵌入式终端设备的软件升级方法,嵌入式终端设备的通道包括第一通道及第二通道,升级前,第一通道与第二通道的状态为老版本软件的正常启动状态;所述软件升级方法包括以下步骤正常启动第一通道;检测是否有新版本软件需要升级;当检测到有新版本软件需要升级时,将第二通道设置成老版本软件的升级状态;升级第二通道;检测第二通道的升级是否成功;当检测到第二通道的升级失败时,重启嵌入式终端设备并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。一种嵌入式终端设备的软件升级装置,嵌入式终端设备的通道包括第一通道及第二通道;所述软件升级装置包括状态设置模块,用于设置第一通道及第二通道的状态,升级前,将第一通道与第二通道的状态设置为老版本软件的正常启动状态;升级时,将第二通道的状态设置为老版本软件的升级状态;升级失败时,将第二通道的状态设置为老版本软件的正常启动状态;检测模块,用于检测是否有新版本软件需要升级,并检测第二通道是否成功升级;升级模块,用于在检测到有新版本软件需要升级时,升级第二通道;备份模块,用于在检测到第二通道的升级失败时,通过重启嵌入式终端设备而将第二通道同步为老版本软件。本发明实施例提供的嵌入式终端设备的软件升级方法及装置,在第二通道的升级失败时能将第二通道恢复到升级前的状态(老版本软件的正常启动状态),依然可以再次进行升级,不会影响嵌入式终端设备软件的运行,而且该过程的实现是自动完成的,高效、 可靠、稳定,最大程度减少嵌入式终端设备在软件升级过程中的故障。


图1为本发明应用的嵌入式终端设备中通道的结构框图。
图2为本发明嵌入式终端设备的软件升级方法的流程图。
图3为图2的接续流程图。
图4为本发明嵌入式终端设备的通道状态变化的流程图。
图5为本发明嵌入式终端设备的软件升级方法的实施例的流程图。
图6为图5的接续流程图。
图7为本发明嵌入式终端设备的软件升级方法的实施例的流程图。
图8为图7的接续流程图。
图9为本发明嵌入式终端设备的软件升级装置的原理框图。
具体实施例方式下面结合附图对本发明实施例嵌入式终端设备的软件升级方法及装置进行详细描述。如图1所示,嵌入式终端设备可为机顶盒、数字电视、交互式网络电视或其它嵌入式终端设备,嵌入式终端设备的通道包括两个通道,一个通道包括KernelA和AppA,另一个通道包括KernelB和AppB,嵌入式终端设备在通电开机时,CPU首先运行BootLoader程序, 由BootLoader程序中检测是否需要升级,并根据两个通道的状态决定启用哪个通道。如图2、图3所示,嵌入式终端设备包括第一通道与第二通道,升级前,第一通道与第二通道的状态为老版本软件的正常启动状态;嵌入式终端设备的软件升级方法包括以下步骤,步骤110 正常启动第一通道;步骤120 检测是否有新版本软件需要升级;当检测到有新版本软件需要升级时, 执行步骤130 ;否则结束流程;步骤130 将第二通道设置成老版本软件的升级状态;步骤140 升级第二通道;步骤150 检测第二通道的升级是否成功;当检测到第二通道的升级失败时,执行步骤160 ;当检测到第二通道的升级成功时,执行步骤170 ;步骤160 重启嵌入式终端设备并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态;并结束流程;步骤170 将第一通道的状态设置为等待备份新版本软件,将第二通道的状态设置为新版本软件的正常启动状态;步骤171 重启嵌入式终端设备并启动第二通道的新版本软件;步骤172 检测第二通道的新版本软件是否正常启动;当检测到第二通道的新版本软件正常启动时,执行步骤173 ;否则,执行步骤174 ;步骤173 将第一通道同步为新版本软件,并将第一通道的状态设置为新版本软件的正常启动状态,并结束流程;步骤174 将第一通道设置成老版本软件的正常启动状态,而将第二通道设置成新版本软件的错误启动状态;步骤175 重启嵌入式终端设备,正常启动第一通道并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。图4中第一通道为主通道A,第二通道为备份通道B,通道的状态利用数字及字母表示,例如本实施例中的数字分别表示以下几种状态,而本实施例中的new表示新版本软件,old表示老版本软件。5、4:表示该通道为正常启动状态。当第一次启动失败后,第二次启动前通道的状态用数字4表示;其余状况下,正常启动状态用数字5表示。3 表示该通道启动错误状态。2 表示该通道软件版本为老版本,等待备份为新版本。1 表示该通道为正在升级状态。
如图4、图5、图6所示,当第一通道为主通道A,第二通道为备份通道B时,升级前, 主通道A的状态为老版本软件的正常启动状态,备份通道B的状态为老版本软件的正常启动状态,升级处理过程中主通道A与备份通道B的状态可根据相应的步骤改变,其中,启动主通道的次数为两次,若第一次启动主通道失败,则设置主通道的状态为再次启动,若第二次启动主通道失败,则设置主通道的状态为错误启动状态,然后重启嵌入式终端设备并启动备份通道,接着进入步骤300 ;具体如下所示步骤200 第一次启动主通道A并检测是否成功;若成功,则执行步骤220 ;若失败,设置主通道A的状态为再次启动状态,再执行步骤201 ;步骤201 第二次启动主通道A并检测是否成功;若成功,则执行步骤220 ;若失败,设置主通道A的状态为错误启动状态,重启嵌入式终端设备后执行步骤300 ;步骤220 检测是否有新版本软件需要升级;当检测到有新版本软件需要升级时, 执行步骤230;否则结束流程;步骤230 将备份通道B设置成老版本软件的升级状态;步骤MO 升级备份通道B ;步骤250 检测备份通道B的升级是否成功;当检测到备份通道B的升级失败时, 执行步骤260 ;当检测到备份通道B的升级成功时,执行步骤270 ;步骤沈0 重启嵌入式终端设备并将备份通道B同步为老版本软件,并将备份通道 B的状态设置为老版本软件的正常启动状态;并结束流程;步骤270 将主通道A的状态设置为等待备份新版本软件,将备份通道B的状态设置为新版本软件的正常启动状态;步骤271 重启嵌入式终端设备并启动备份通道B的新版本软件;步骤272 检测备份通道B的新版本软件是否正常启动;当检测到备份通道B的新版本软件正常启动时,执行步骤273 ;否则,执行步骤274 ;步骤273 将主通道A同步为新版本软件,并将主通道A的状态设置为新版本软件的正常启动状态,并结束流程;步骤274 将主通道A设置成老版本软件的正常启动状态,而将备份通道B设置成新版本软件的错误启动状态;步骤275 重启嵌入式终端设备,正常启动主通道A并将备份通道B同步为老版本软件,并将备份通道B的状态设置为老版本软件的正常启动状态。如图4、图7、图8所示,当第一通道为备份通道B,第二通道为主通道A时,升级前, 主通道A的状态为老版本软件的正常启动状态,备份通道B的状态为老版本软件的正常启动状态,升级处理过程中主通道A与备份通道B的状态可根据相应的步骤改变,其中,启动主通道失败的次数为两次后重启嵌入式终端设备,将进入以下步骤,具体如下所示步骤300 第一次启动备份通道B并检测是否成功;若成功,设置备份通道B的状态为正常启动状态,再执行步骤320 ;若失败,设置备份通道B的状态为再次启动状态,再执行步骤301 ;步骤301 第二次启动备份通道B并检测是否成功;若成功,设置备份通道B的状态为正常启动状态,再执行步骤320 ;若失败,设置备份通道B的状态为错误启动状态,再结束流程;
步骤320 检测是否有新版本软件需要升级;当检测到有新版本软件需要升级时, 执行步骤330;否则结束流程;步骤330 将主通道A设置成老版本软件的升级状态;步骤;340 升级主通道A ;步骤350 检测主通道A的升级是否成功;当检测到主通道A的升级失败时,执行步骤360 ;当检测到主通道A的升级成功时,执行步骤270 ;步骤360 重启嵌入式终端设备并将主通道A同步为老版本软件,并将主通道A的状态设置为老版本软件的正常启动状态;并结束流程;步骤370 将备份通道B的状态设置为等待备份新版本软件,将主通道A的状态设置为新版本软件的正常启动状态;步骤371 重启嵌入式终端设备并启动主通道A的新版本软件;步骤372 检测主通道A的新版本软件是否正常启动;当检测到主通道A的新版本软件正常启动时,执行步骤373 ;否则,执行步骤374 ;步骤373 将备份通道B同步为新版本软件,并将备份通道B的状态设置为新版本软件的的正常启动状态,并结束流程;步骤374 将备份通道B设置成老版本软件的正常启动状态,而将主通道A设置成新版本软件的错误启动状态;步骤375 重启嵌入式终端设备,正常启动备份通道B并将主通道A同步为老版本软件,并将主通道A的状态设置为老版本软件的正常启动状态。如图9所示,嵌入式终端设备可为机顶盒、数字电视、交互式网络电视或其它嵌入式终端设备,本发明嵌入式终端设备的软件升级装置包括状态设置模块30,用于设置第一通道及第二通道的状态,升级前,将第一通道与第二通道的状态设置为老版本软件的正常启动状态;升级时,将第二通道的状态设置为老版本软件的升级状态;升级失败时,将第二通道的状态设置为老版本软件的正常启动状态;检测模块40,用于检测是否有新版本软件需要升级,并检测通道是否成功升级;升级模块50,用于在检测到有新版本软件需要升级时,升级第二通道;备份模块60,用于在检测到第二通道的升级失败时,通过重启嵌入式终端设备而将第二通道同步为老版本软件。检测模块40检测到第二通道的升级成功时,通过状态设置模块30将第一通道的状态设置为等待备份新版本软件,将第二通道的状态设置为新版本软件的正常启动状态。且检测模块40还用于检测通道是否成功启动;检测模块40检测到第二通道的新版本软件启动成功时,通过备份模块60将第一通道同步为新版本软件,并通过状态设置模块30将第一通道的状态设置成新版本软件的正常启动状态。检测模块40检测到第二通道的新版本软件启动失败时,由状态设置模块30将第一通道设置成老版本软件的正常启动状态,而将第二通道设置成新版本软件的错误启动状态。重启嵌入式终端设备,检测模块40检测到第一通道为老版本软件的正常启动状态,且第二通道为新版本软件的错误启动状态,则正常启动第一通道,通过备份模块60将第二通道同步为老版本软件,并通过状态设置模块30将第二通道的状态设置成老版本软
9件的正常启动状态。当第一通道为主通道,所述第二通道为备份通道时,启动主通道的次数可为两次, 检测模块40检测到第一次启动主通道成功后,通过状态设置模块30将主通道设置成正常启动状态;检测模块40检测到第一次启动主通道失败后,状态设置模块30设置主通道的状态为再次启动;检测模块40检测到第二次启动主通道成功后,通过状态设置模块30将主通道设置成正常启动状态,而将备份通道设置成老版本软件的升级状态;而检测模块40检测到第二次启动主通道失败后,状态设置模块30设置主通道的状态为错误启动状态,然后重启嵌入式终端设备并启动备份通道。当第一通道为备份通道,所述第二通道为主通道时,重启嵌入式终端设备并启动备份通道,其中,启动备份通道的次数为两次,检测模块40检测到第一次启动备份通道成功后,通过状态设置模块30将备份通道设置成正常启动状态,而将主通道设置成老版本软件的升级状态;检测模块40检测到第一次启动备份通道失败后,状态设置模块30设置备份通道的状态为再次启动,检测模块40检测到第二次启动备份通道成功后,通过状态设置模块30将备份通道设置成正常启动状态,而将主通道设置成老版本软件的升级状态。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种嵌入式终端设备的软件升级方法,嵌入式终端设备的通道包括第一通道及第二通道,升级前,第一通道与第二通道的状态为老版本软件的正常启动状态;其特征在于所述软件升级方法包括以下步骤,(1)正常启动第一通道;(2)检测是否有新版本软件需要升级;(3)当检测到有新版本软件需要升级时,将第二通道设置成老版本软件的升级状态;(4)升级第二通道;(5)检测第二通道的升级是否成功;(6)当检测到第二通道的升级失败时,重启嵌入式终端设备并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。
2.根据权利要求1所述的嵌入式终端设备的软件升级方法,其特征在于,在步骤(5)之后还包括以下步骤,(7)在检测到第二通道的升级成功时,将第一通道的状态设置为等待备份新版本软件, 将第二通道的状态设置为新版本软件的正常启动状态。
3.根据权利要求2所述的嵌入式终端设备的软件升级方法,其特征在于,在步骤(7)之后还包括以下步骤,(7-1)重启嵌入式终端设备并启动第二通道的新版本软件;(7-2)检测第二通道的新版本软件是否正常启动;(7-3)当检测到第二通道的新版本软件正常启动时,将第一通道同步为新版本软件,并将第一通道的状态设置为新版本软件的正常启动状态。
4.根据权利要求3所述的嵌入式终端设备的软件升级方法,其特征在于,在步骤(7-2) 之后还包括以下步骤,(7-4)当检测到第二通道的新版本软件启动失败时,将第一通道没置成老版本软件的正常启动状态,而将第二通道设置成新版本软件的错误启动状态。
5.根据权利要求4所述的嵌入式终端设备的软件升级方法,其特征在于,在(7-4)之后还包括以下步骤,(7-5)重启嵌入式终端设备,正常启动第一通道并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。
6.根据权利要求1-5中任一项所述的嵌入式终端设备的软件升级方法,其特征在于, 所述第一通道为主通道,所述第二通道为备份通道。
7.根据权利要求6所述的嵌入式终端设备的软件升级方法,其特征在于,启动主通道的次数为两次,在第一次启动主通道失败后,设置主通道的状态为再次启动,接着进入步骤 ⑴。
8.根据权利要求1-5中任一项所述的嵌入式终端设备的软件升级方法,其特征在于, 所述第一通道为备份通道,所述第二通道为主通道。
9.根据权利要求8所述的嵌入式终端设备的软件升级方法,其特征在于,在步骤(1)之前还包括以下步骤,启动主通道失败。
10.根据权利要求9所述的嵌入式终端设备的软件升级方法,其特征在于,启动主通道失败的次数为两次,在第一次启动主通道失败后,设置主通道的状态为再次启动,在第二次启动主通道失败后,设置主通道的状态为错误启动状态,然后重启嵌入式终端设备并启动备份通道,接着进入步骤(1)。
11.根据权利要求10所述的嵌入式终端设备的软件升级方法,其特征在于,启动第一通道的次数为两次,在第一次启动第一通道失败后,设置第一通道的状态为再次启动,接着进入步骤(1)。
12.—种嵌入式终端设备的软件升级装置,嵌入式终端设备的通道包括第一通道及第二通道;其特征在于所述软件升级装置包括状态设置模块,用于设置第一通道及第二通道的状态,升级前,将第一通道与第二通道的状态设置为老版本软件的正常启动状态;升级时,将第二通道的状态设置为老版本软件的升级状态;检测模块,用于检测是否有新版本软件需要升级,并检测第二通道是否成功升级;升级模块,用于在检测到有新版本软件需要升级时,升级第二通道;备份模块,用于在检测到第二通道的升级失败时,通过重启嵌入式终端设备而将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。
13.根据权利要求12所述的嵌入式终端设备的软件升级装置,其特征在于,检测模块检测到第二通道的升级成功时,通过状态设置模块将第一通道的状态设置为等待备份新版本软件,将第二通道的状态设置为新版本软件的正常启动状态。
14.根据权利要求13所述的嵌入式终端设备的软件升级装置,其特征在于,检测模块检测到第二通道的新版本软件启动成功时,通过备份模块将第一通道同步为新版本软件, 并通过状态设置模块将第一通道的状态设置为新版本软件的正常启动状态。
15.根据权利要求13所述的嵌入式终端设备的软件升级装置,其特征在于,检测模块检测到第二通道的新版本软件启动失败时,由状态设置模块将第一通道设置成老版本软件的正常启动状态,而将第二通道设置成新版本软件的错误启动状态。
16.根据权利要求15所述的嵌入式终端设备的软件升级装置,其特征在于,重启嵌入式终端设备,检测模块检测到第一通道为老版本软件的正常启动状态,且第二通道为新版本软件的错误启动状态,则正常启动第一通道,通过备份模块将第二通道同步为老版本软件,并通过状态设置模块将第二通道的状态设置为老版本软件的正常启动状态。
17.根据权利要求12-16中任一项所述的嵌入式终端设备的软件升级装置,其特征在于,所述第一通道为主通道,所述第二通道为备份通道。
18.根据权利要求17所述的嵌入式终端设备的软件升级装置,其特征在于,启动主通道的次数为两次,在第一次启动主通道失败后,状态设置模块设置主通道的状态为再次启动,第二次启动主通道成功后,通过状态设置模块将主通道设置成正常启动状态,而将备份通道设置成老版本软件的升级状态。
19.根据权利要求12-16中任一项所述的嵌入式终端设备的软件升级装置,其特征在于,所述第一通道为备份通道,所述第二通道为主通道。
20.根据权利要求19所述的嵌入式终端设备的软件升级装置,其特征在于,重启嵌入式终端设备,当检测模块检测到启动主通道失败两次之后,启动备份通道。
21.根据权利要求20所述的嵌入式终端设备的软件升级装置,其特征在于,启动主通道失败的次数为两次,在第一次启动主通道失败后,状态设置模块设置主通道的状态为再次启动,在第二次启动主通道失败后,状态设置模块设置主通道的状态为错误启动状态,然后重启嵌入式终端设备并启动备份通道。
22.根据权利要求21所述的嵌入式终端设备的软件升级装置,其特征在于,启动备份通道的次数为两次,在第一次启动备份通道失败后,状态设置模块设置备份通道的状态为再次启动,第二次启动备份通道成功后,通过状态设置模块将备份通道设置成正常启动状态,而将主通道设置成老版本软件的升级状态。
全文摘要
本发明公开一种嵌入式终端设备的软件升级方法及装置,其中,嵌入式终端设备的通道包括第一通道及第二通道,升级前,第一通道与第二通道的状态为老版本软件的正常启动状态;所述软件升级方法包括以下步骤正常启动第一通道;检测是否有新版本软件需要升级;当检测到有新版本软件需要升级时,将第二通道设置成老版本软件的升级状态;升级第二通道;检测第二通道的升级是否成功;当检测到第二通道的升级失败时,重启嵌入式终端设备并将第二通道同步为老版本软件,并将第二通道的状态设置为老版本软件的正常启动状态。所述软件升级装置包括状态设置模块、检测模块、升级模块及备份模块,当检测到升级失败时,能将通道恢复到升级前的状态,以减少嵌入式终端设备在软件升级过程中的故障。
文档编号G06F9/445GK102163152SQ20101051972
公开日2011年8月24日 申请日期2010年10月26日 优先权日2010年10月26日
发明者刘立华 申请人:青岛海信传媒网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1