一种软件更新方法

文档序号:6341331阅读:403来源:国知局
专利名称:一种软件更新方法
技术领域
本发明涉及嵌入式产品,具体地说,是涉及嵌入式产品的软件更新方法。
背景技术
对于电视机顶盒等嵌入式电子产品来说,其系统程序分为三部分BOOT程序、 LOADER程序和APP程序。BOOT程序主要负责系统的初始化和引导,是系统启动后首先执行 的程序。LOADER程序主要用来负责系统的升级,在BOOT程序运行过程中若发现APP异常或 存在升级需求,将进入该程序对系统进行升级。APP程序为系统的主要功能程序,系统的各 使用功能均在APP中实现。在对嵌入式产品进行升级更新时,可以采用三种接口更新方式,分别为串口更新、 USB更新及网络更新。串口更新由于更新速度较慢、使用不便,即将退出使用。USB更新方 便快捷,但无法实现一对多的升级,不适用于多设备同时进行升级操作。因此,目前应用较 多的方式是采用网络接口、在LOADER程序下进行系统软件的更新。但是,采用网络接口、在LOADER程序下执行软件的更新存在下述缺点一方面,在 LOADER程序下需要将更新数据文件打包成为mpeg-2格式的码流,并使用码流播放器播放 出来,然后再通过QAM调制器完成调制,并上变频到指定频点。这个更新过程复杂,需要较 多的专用昂贵设备,成本较高。另一方面,需要在系统启动并进入正常使用过程之后,才能 检测网络中是否存在软件更新信息,并在存在软件更新信息时再进行更新。但在产品批量 生产或维修的生产线,要等到产品正常启动之后再进行软件更新的检测和更新操作,势必 延长了软件更新时间,严重降低生产效率,增加了生产线的成本。

发明内容
本发明的目的在于针对现有嵌入式产品软件更新存在的上述缺点和不足,提供一 种新的软件更新方法,通过在系统BOOT程序下、采用网络更新方式进行软件的网络自动更 新,提高了更新效率,简化了更新过程,降低了更新成本。为实现上述发明目的,本发明采用下述技术方案予以实现—种软件更新方法,所述方法包括下述步骤a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;C、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。如上所述的软件更新方法,为实现一键更新,所述步骤a具体包括下述分步骤al、在待更新软件的产品的BOOT程序中移植产品的操作按键程序;a2、在BOOT程序运行过程中通过操作按键触发软件更新。如上所述的软件更新方法,为实现多设备同时方便地进行软件更新,所述步骤b 具体包括下述分步骤bl、启动BOOT程序中的网络协议,从网络服务器获取待更新软件的产品的IP地址和网络服务器的IP地址;b2、根据所获取的IP地址从网络服务器中获取软件更新文件的索引文件;b3、根据索引文件从网络服务器获取软件更新文件。如上所述的软件更新方法,所述索引文件包括有软件更新文件的文件名称和文件 长度,在所述步骤b3中,待更新软件的产品根据文件名称和文件长度从网络服务器中获取 软件更新文件。如上所述的软件更新方法,所述索引文件还包括有软件更新文件的文件写入地 址,在所述步骤c中,待更新软件的产品根据文件写入地址将软件更新文件烧录至指定的 位置,完成待更新软件的产品的软件更新。如上所述的软件更新方法,为保证获取到正确的软件更新文件,所述索引文件包 括有软件更新文件的CRC检验值,在所述步骤步骤b与所述步骤c之间还包括步骤cO 待 更新软件的产品从网络服务器获取软更新文件后,对获取的文件数据进行CRC检验,并将 检验值与索引文件中的软件更新文件的CRC校验值相比较,在两个CRC校验值相等时,校验 成功,执行步骤C。如上所述的软件更新方法,在待更新软件的产品完成软件更新后,网络服务器收 回分配给该待更新软件的产品的IP地址,以避免IP地址资源的浪费。如上所述的软件更新方法,为实时了解软件更新进程,在待更新软件的产品的 BOOT程序中移植有产品的显示面板驱动程序,在BOOT程序的软件更新过程中,通过显示面 板驱动程序驱动显示面板,用来显示软件更新的状态。如上所述的软件更新方法,所述显示面板驱动程序优选为LED驱动程序。如上所述的软件更新方法,为实现不同型号的产品设备的软件更新,所述网络服 务器采用目录管理,不同目录下存放不同型号的待更新软件的产品的软件更新文件;在待 更新软件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过 程中触发产品型号对应的操作按键,并从网络服务器的对应目录下获取与产品型号相对应 的软件更新文件。与现有技术相比,本发明的优点和积极效果是1、本发明采用C/S架构,在产品的BOOT程序运行过程触发软件更新,并通过网络 协议从网络服务器获取软件更新文件,不必在产品完成BOOT程序、进入正常运行的LOADER 程序后再进行软件更新,一方面可以缩短软件更新时间,提高更新速度提高生产效率,另一 方面省掉了 LOADER程序下更新时的专用昂贵设备,降低了产品更新成本,简化了更新过程。2、本发明通过在BOOT程序中移植操作按键程序,便于产品通过一键操作实现更 新软件的自动获取、更新及校验,简化了更新操作,提高了生产效率。3、本发明采用C/S架构,只需配置一台电脑作为网络服务器,通过网络服务器的 DHCP服务,可以供多台产品同时进行更新操作,提高了生产线的更新效率,便于生产线上产 品的批量制造和维修。4、本发明通过在BOOT程序中移植产品显示面板驱动程序及操作按键程序,可以 利用产品自身的显示面板显示更新进度,利用产品自身的按键进行更新操作,无需再额外 配置其他的显示设备和控制设备,操作简单,更新方便。
结合附图阅读本发明的具体实施方式
后,本发明的其他特点和优点将变得更加清
林 疋。


图1是本发明软件更新方法一个实施例的流程图。
具体实施例方式下面结合附图和具体实施方式
对本发明的技术方案作进一步详细的说明。本发明从解决生产线上对机顶盒等嵌入式产品的系统软件更新角度出发,考虑到 现有这些嵌入式产品基本是从系统的BOOT程序启动系统、且在BOOT程序中集成有网络传 输功能的特点,提出从系统的BOOT程序中进行软件更新。具体来说,采用下述下述过程实现产品的软件更新a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;C、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。采用上述软件更新方法,既能发挥网络更新的优点,又可以缩短更新时间,提高更 新效率,简化更新过程,尤其适合于在生产线上实现产品的大批量生产和返修。图1所示为本发明软件更新方法一个实施例的流程图。首先,简要说明对网络服务器的配置要求及文件设置。该实施例采用C/S架构,一个网络服务器可以对应多台作为客户端的产品,实现 多台产品同时进行软件更新。在产品进行软件更新时,需要其主动连接网络服务器。若网 络中存在多台产品同时存在软件更新请求,就要求不同客户端产品的IP设置不能重复;同 时,为了操作方便,要求客户端产品能够获取到网络服务器的地址,因此,要求网络服务器 设置有DHCP服务软件来动态为客户端设备分配IP地址,且DHCP服务所能支持的客户端数 目越多,可以同时升级的客户端产品就越多。而且,为节省资源,在某个客户端产品的软件 更新请求结束之后,网络服务器将收回所分配的IP地址,以供其他客户端使用。此外,要从网络服务器获取软件更新文件,要求网络服务器在客户端产品软件更 新之前,预先将软件更新文件及对软件更新文件进行信息描述的索引文件放置在共享目录 下,以便于客户端产品能够获取。该实施例以机顶盒作为待更新软件的嵌入式产品为例,机顶盒实现软件更新的具 体流程如下SlOl 机顶盒启动,进入BOOT程序。S102 判断是否存在软件更新按键操作。若存在更新按键操作,执行步骤S103 ;否 则,转至步骤S111。该实施例为简化机顶盒软件更新操作,实现一键更新,预先在机顶盒的BOOT程序 中移植了机顶盒的操作按键程序,用户可以在BOOT程序运行过程中通过操作相应的操作 按键触发软件更新。例如,可以设置长按机顶盒面板上的“音量+”或“音量-,,按键作为软 件更新的触发信号。在机顶盒运行BOOT程序时,将自动检测是否存在长按“音量+”或“音 量_”的按键操作,进而判断是否需要执行软件更新。
5
S103 在存在更新按键操作时,启动BOOT中的网络协议,从网络服务器获取机顶 盒的IP地址和网络服务器的IP地址。其中,机顶盒的IP地址是网络服务器的分配给该机 顶盒的一个特定IP地址。S104 根据IP地址及型号选择按键从网络服务器的相应目录下获取索引文件。型号不同的机顶盒在进行软件更新时会对应有不同的软件更新文件,该实施例为 扩大软件更新的产品范围、实现一台网络服务器对不同型号的机顶盒的软件更新,网络服 务器采用目录管理,在根目录下设置不同的子目录,不同子目录以机顶盒的型号命令,且在 不同子目录下存放对应不同型号的待更新软件的产品的软件更新文件。而且,在待更新软 件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过程中触 发产品型号对应的操作按键,即可网络服务器的对应目录下获取与产品型号相对应的软件 更新文件。为便于软件更新文件的获取和管理,该实施例每个软件更新文件均对应设置有相 应的索引文件,且索引文件按照一定的语法结构组装,用来描述软件更新文件的具体信息。 例如,在该实施例中,索引文件包括有下述字段文件名称,用于描述软件更新文件的文件名称;文件长度,用于描述软件更新文件的大小;文件写入地址,用于描述软件更新文件写入到机顶盒中的位置;CRC校验值,用于描述软件更新文件的CRC校验结果。若存在有多个软件更新文件,在索引文件中依次描述每个软件更新文件的上述字 段信息。索引文件可以采用.txt文件或XML文件来描述。S105 根据索引文件从网络服务器获取软件更新文件到机顶盒内存。具体来说,根据索引文件中的文件名称和文件长度从网络服务器获取软件更新文 件,并将该文件通过网络文件传输协议传输至机顶盒的内存中。S106 判断机顶盒是否成功获取软件更新文件。若获取成功,执行步骤S107 ;否 则,转至步骤S111。S107 在成功获取软件更新文件后,根据索引文件对软件更新文件进行CRC校验。该步骤的目的是保证机顶盒获取到正确的软件更新文件。具体来说,是机顶盒先 对获取的软件更新文件的数据进行CRC检验,然后将检验值与索引文件中的软件更新文件 的CRC校验值相比较,在两个CRC校验值相等时,表示校验成功。若两个CRC校验值不相等, 则判定校验失败。当然,也可以在索引文件中设置其他形式的校验值,在机顶盒端采用相应 的校验形式来校验数据的准确性。S108 判断软件更新文件是否校验成功。若校验成功,执行步骤S109 ;否则,转至 步骤S111。、S109 根据索引文件将软件更新文件烧录到指定的位置。具体来说,是根据索引文件中的文件写入地址将文件烧录到机顶盒flash中的相
应位置。SllO 判断索引文件中是否还有软件更新文件。若有,转至步骤S105,继续根据索 引文件的描述从网络服务器获取;若没有,则完成软件更新。然后执行步骤sill。Slll 校验 APP 程序。
在机顶盒运行BOOT程序过程中,若不存在软件更新按键操作、或软件更新文件获 取失败、或软件更新文件校验失败,均跳过软件更新过程,进入校验APP程序的过程。S112 判断APP校验是否正常。若校验正常,执行步骤S114 ;若校验异常,则执行 步骤S113。S113 在APP校验异常时,启动机顶盒系统的LOADER程序,进行相应处理。S114 在APP校验正常时,启动系统的APP程序,进行相应功能程序的运行。另外,在该实施例的机顶盒软件更新过程中,为实时了解软件更新进程,还可以在 机顶盒的BOOT程序中移植机顶盒显示面板驱动程序。这样一来,在BOOT程序的软件更新 过程中,就可通过显示面板驱动程序驱动显示面板,用来显示软件更新的状态。例如,显示 面板驱动程序为机顶盒面板上的4个LED的LED驱动程序,分别用4个LED显示内容的不 同来表示软件更新状态。若LED显示内容为“Β00Τ”,表示机顶盒已经进入BOOT程序,等待 触发软件更新操作按键;若显示内容为“U-—”,表示接收到长按“音量-”的按键信号;若显 示内容为“U+++”,表示接收到长按“音量_”的按键信号;若显示内容为“-—d”,表示开始 DHCP服务,获取I P地址;若显示内容为“一-n”,表示开始接收第η个软件更新文件;若显 示内容为“一-E”,表示软件更新过程出现错误;若显示内容为“一ο”,表示软件更新成功; 若显示内容为“ΑΡΡ-”,表示进入APP应用程序等。通过在BOOT程序中移植机顶盒显示面板 的驱动程序、通过机顶盒显示面板直接显示软件更新状态,无需在额外连接显示屏来查看 状态,操作简单,更新方便。本发明通过在网络服务器端批量设置需要烧录的软件更新文件,将待更新软件的 产品作为客户端,在客户端的BOOT引导程序环境中执行一条操作按键指令,即能完成产品 所有软件更新数据的传输、下载、校验及烧录的软件更新操作,使用方便,适合于生产线上 产品的大批量生产及返修时使用。以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实 施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施 例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替 换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。
权利要求
1.一种软件更新方法,其特征在于,所述方法包括下述步骤a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;C、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。
2.根据权利要求1所述的软件更新方法,其特征在于,所述步骤a具体包括下述分步骤al、在待更新软件的产品的BOOT程序中移植产品的操作按键程序; a2、在BOOT程序运行过程中通过操作按键触发软件更新。
3.根据权利要求1所述的软件更新方法,其特征在于,所述步骤b具体包括下述分步骤bl、启动BOOT程序中的网络协议,从网络服务器获取待更新软件的产品的IP地址和网 络服务器的IP地址;b2、根据所获取的IP地址从网络服务器中获取软件更新文件的索引文件; b3、根据索引文件从网络服务器获取软件更新文件。
4.根据权利要求3所述的软件更新方法,其特征在于,所述索引文件包括有软件更新 文件的文件名称和文件长度,在所述步骤b3中,待更新软件的产品根据文件名称和文件长 度从网络服务器中获取软件更新文件。
5.根据权利要求4所述的软件更新方法,其特征在于,所述索引文件包括有软件更新 文件的文件写入地址,在所述步骤c中,待更新软件的产品根据文件写入地址将软件更新 文件烧录至指定的位置,完成待更新软件的产品的软件更新。
6.根据权利要求5所述的软件更新方法,其特征在于,所述索引文件包括有软件更新 文件的CRC检验值,在所述步骤步骤b与所述步骤c之间还包括步骤cO 待更新软件的产 品从网络服务器获取软更新文件后,对获取的文件数据进行CRC检验,并将检验值与索引 文件中的软件更新文件的CRC校验值相比较,在两个CRC校验值相等时,校验成功,执行步 马聚C ο
7.根据权利要求3所述的软件更新方法,其特征在于,在待更新软件的产品完成软件 更新后,网络服务器收回分配给该待更新软件的产品的IP地址。
8.根据权利要求1所述的软件更新方法,其特征在于,在待更新软件的产品的BOOT程 序中移植有产品的显示面板驱动程序,在BOOT程序的软件更新过程中,通过显示面板驱动 程序驱动显示面板,用来显示软件更新的状态。
9.根据权利要求8所述的软件更新方法,其特征在于,所述显示面板驱动程序为LED驱 动程序。
10.根据权利要求1至9中任一项所述的软件更新方法,其特征在于,所述网络服务器 采用目录管理,不同目录下存放不同型号的待更新软件的产品的软件更新文件;在待更新 软件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过程中 触发产品型号对应的操作按键,并从网络服务器的对应目录下获取与产品型号相对应的软 件更新文件。
全文摘要
本发明公开了一种软件更新方法,所述方法包括下述步骤在待更新软件的产品的BOOT程序运行过程中触发软件更新;启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。本发明通过在系统BOOT程序下、采用网络更新方式进行软件的网络自动更新,提高了更新效率,简化了更新过程,降低了更新成本。
文档编号G06F9/445GK102073519SQ20101062284
公开日2011年5月25日 申请日期2010年12月31日 优先权日2010年12月31日
发明者李铁柱, 邓泽学 申请人:青岛海信宽带多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1