一种可软件在线升级的嵌入式系统及在线升级方法

文档序号:6587526阅读:414来源:国知局
专利名称:一种可软件在线升级的嵌入式系统及在线升级方法
技术领域
本发明涉及一种嵌入式计算机软件在线升级的技术,尤其是具有嵌入式操作系 统的嵌入式计算机的系统软件和应用软件在线升级。
背景技术
传统的嵌入式终端设备,由于资源和环境条件的限制,在生产阶段就需要将软 件代码固化,设备出厂后是无法在现场在线修改的。一旦出现升级需求,要么是设备返 厂维修,要么是在现场拆机更换部件板或替换程序存储芯片。随着计算机应用水平的不断提高,为了能够满足客户持续变化的需求,延长产 品的生命周期,改善系统的性能,嵌入式产品需要具备在线升级能力。目前公知的嵌入式软件在线升级方法,将工作环境理想化了。现实环境中,我 们可能面临各种异常,如通讯传输误码、存储操作故障、传输中断、人工操作失误等现 象,任何一项异常的发生,都会造成升级过程失败,甚至引起系统瘫痪导致产品失效。

发明内容
本发明的目的在于克服现有技术之不足,提供一种可软件在线升级的嵌入式系 统及在线升级方法,使用这种方法,能够有效识别在线升级过程中的各种异常状况,并 采取相应措施加以补救,或误码重传,或断点续传,或无效抛弃,或失败还原,确保在 线升级的正确性和鲁棒性。本发明解决其技术问题所采用的技术方案是一种可软件在线升级的嵌入式系 统,包括—嵌入式终端,其包括主控芯片、程序存储器、数据存储器、远程通信接口和 本地/近程通信接口;主控芯片分别与程序存储器、数据存储器、远程通信接口和本地 /近程通信接口相连接;该程序存储器至少划分为具有对等结构的A区和B区,每个区 又进一步划分为具有相同的大小和结构的三个子区域;所述的三个子区域分别是用来存 储启动程序的启动程序区、用来存储引导程序的引导程序区和用来存储系统程序的系统 程序区;该数据存储器设有能够同时存储业务程序、业务数据及其升级程序包的存储空 间;所述的启动程序区还存储有升级控制信息;一设在远程并能通过无线网络接入而与所述嵌入式终端相连接的第一主站,该 第一主站与嵌入式终端之间设有相互认可的通信协议以使第一主站与嵌入式终端之间能 够实现数据交换,第一主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进 行软件升级;一设在近程并能通过无线方式接入而与所述嵌入式终端相连接的第二主站,该 第二主站与嵌入式终端之间设有相互认可的通信协议以使第二主站与嵌入式终端之间能 够实现数据交换,第二主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进 行软件升级;
一设在近程并能通过本地接入而与所述嵌入式终端相连接的第三主站,该第三 主站与嵌入式终端之间设有相互认可的通信协议以使第三主站与嵌入式终端之间能够实 现数据交换,第三主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进行软 件升级。所述的程序存储器采用Flash存储器件。所述的第二主站、第三主站分别为手持式设备或台式计算机或手提电脑。一种嵌入式系统的软件在线升级方法,包括如下步骤a.嵌入式终端根据预先设定的引导模式从A区启动,加载A区的引导程序,引 导A区的操作系统程序,进入工作状态;b.由第一主站或第二主站或第三主站的其中一个主站向嵌入式终端发送若干个 用于软件升级的升级程序包;嵌入式终端检验升级程序包,确保能够完整正确地接收到 所有的升级程序包;c.发送升级程序包的主站向嵌入式终端发送指令,通知嵌入式终端进行软件升 级更新;d.嵌入式终端使用升级程序包更新B区,并在A区的启动程序区中登记升级控 制信息,该升级控制信息标记为新版本就绪;e.嵌入式终端重新启动,从A区启动,检查A区登记的升级控制信息,在发现 升级控制信息标记为新版本就绪时,再一次登记升级控制信息,该升级控制信息标记为 新版本启用,并加载B区的引导程序,引导B区的操作系统程序,进入工作状态;f.若引导系统成功,则将B区的引导程序区和系统程序区复制到A区,再次登记 升级控制信息,该升级控制信息标记为新版本已更新;升级过程结束;&若引导系统失败,经过一个预先设定时间的超时,嵌入式终端在看门狗电路 作用下进行复位;h.嵌入式终端重新启动,从A区启动,检查升级控制信息,发现升级控制信息 的标记仍为新版本启用而未被修改为新版本已更新,则加载A区的引导程序,引导A区 的操作系统程序,进入工作状态;i.引导系统成功,将A区的引导程序区和系统程序区复制到B区,再次登记升级 控制信息,该升级控制信息标记为新版本废弃;系统恢复到升级前的状态,升级过程结
束ο所述的预先设定的引导模式是依次从A区和B区轮流进行,每次成功进行系统 软件升级后则调换引导区域。所述的升级程序包被分解为一个升级包描述数据块和若干个升级数据块,这些 数据块顺次从第一主站或第二主站或第三主站传送到嵌入式终端上,暂存在嵌入式终端 的数据存储器的预先划定的区域上,传送结束后由嵌入式终端自动合并还原为升级程序 包。所述的升级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包 的数据块顺次从第一主站或第二主站或第三主站传送到嵌入式终端,这个过程可以被系 统其他事项中断;两个数据块传送之间,第一主站或第二主站或第三主站可以下发其 他指令,嵌入式终端可以被重新启动,第一主站或第二主站或第三主站也可以被重新启动。所述的升级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包 的数据块传送具有故障自动恢复的能力;第一主站或第二主站或第三主站可以查询到正 在传送的升级包的数据块数量,并继续传送后续的升级包数据块。所述的升级程序包在分块传送和合并还原的过程中,经过了二层的检查校验, 其过程如下在每个升级数据块的传送过程中包含自身的校验信息,嵌入式终端接收后先核 对升级数据块的校验信息,正确后才进行存储,并通知对应的主站发送下一个升级数据 块;在升级包描述数据块中包含校验信息,嵌入式终端在所有数据块传送结束后, 合并还原成升级程序包,还要对升级包描述数据块的校验信息进行检查校验,以此确保 升级程序包正确传送。所述的一次远程升级更新过程,可以同时更新多个程序模块,每个程序模块做 为一个升级程序包进行传送,多个升级程序包之间可以并发传送。本发明的一种可软件在线升级的嵌入式系统及在线升级方法,嵌入式终端设备 由主控芯片、程序存储器件、数据存储器件、以及能够和主站(可以是第一主站,也可 以是第二主站,或者可以是第三主站)通信的通讯接口构成。软件部分包括系统程序(启 动程序、引导程序和嵌入式操作系统)和业务程序。在主站(包括第一主站、第二主站和第三主站)与嵌入式终端之间制定有一个通 讯协议,该通讯协议使得嵌入式终端设备和主站之间可以交换数据。升级程序包按照该 种通讯协议方式由主站传送到嵌入式终端设备。该通讯协议能够支持多种通讯方式,可 以是远程通讯(如TCP/UDP、GPRS/CDMA、PSTN、230MHz无线等),或者是本地连 接的通讯(如USB、RS232、RS485、高速红外等),还可以是近距离通讯(如远红外、 无线射频、蓝牙等)。只要能够实现主站和嵌入式设备交换数据的通讯方式都能够完成在 线升级包的传输。软件升级包的传输和更新过程在业务程序中实现。系统的引导过程依次从A区和B区轮流进行,每次进行系统软件升级则调换引 导区域。系统软件升级包更新的区域是当前非引导区域。即系统从A区引导,则软件版 本更新至B区。反之,系统从B区引导,则软件版本更新至A区。操作系统引导成功之后,再检查A存储区和B存储区的软件版本是否一致,如 果不一致,则用引导区的版本替换非引导区的版本,以此保持2个区域(即A存储区和B 存储区)的软件版本同步。若更新后的操作系统不能成功引导,则从旧版本系统引导区引导,并将更新过 的系统区域还原成旧版本。本发明的有益效果是,由于采用了一设在远程并能通过无线网络接入而与所述 嵌入式终端相连接的第一主站、一设在近程并能通过无线方式接入而与所述嵌入式终端 相连接的第二主站、一设在近程并能通过本地接入而与所述嵌入式终端相连接的第三主 站和包括有主控芯片、程序存储器、数据存储器、远程通信接口及本地/近程通信接口 的嵌入式终端来构成可软件在线升级的嵌入式系统;且在嵌入式终端的程序存储器中划分有具有对等结构的A区和B区,系统的引导过程依次从A区和B区轮流进行,每次 进行系统软件升级则调换引导区域;系统软件升级包更新的区域是当前非引导区域,即 系统从A区引导,则软件版本更新至B区;反之,系统从B区引导,则软件版本更新至 A区。该嵌入式系统及在线升级方法,具有如下有益效果一是,系统程序在程序存储 器保存双备份,如果升级过程失败,可以从上一次成功启动的区域还原,具有鲁棒性; 二是,传输过程具有多重校验,具备故障恢复的能力,支持并发传输;三是,各种通讯 方式均可以实现升级操作,具有灵活性;四是,升级过程的传输和控制过程在应用层实 现,用户可以自行升级。以下结合附图及实施例对本发明作进一步详细说明;但本发明的一种可软件在 线升级的嵌入式系统及在线升级方法不局限于实施例。


图1是本发明的可软件在线升级的嵌入式系统的结构示意图;图2是本发明的嵌入式终端的结构示意图;图3是本发明的嵌入式终端的程序存储器的划分方式示意图;图4是本发明的软件升级包的传输和更新过程流程图。
具体实施例方式实施例,参见附图所示,本发明的一种可软件在线升级的嵌入式系统,包括—嵌入式终端1,其包括主控芯片11、程序存储器12、数据存储器13、远程 通信接口 14和本地/近程通信接口 15;主控芯片11分别与程序存储器12、数据存储 器13、远程通信接口 14和本地/近程通信接口 15相连接;该程序存储器12至少划分 为具有对等结构的A区和B区,每个区又进一步划分为具有相同的大小和结构的三个子 区域;所述的三个子区域分别是用来存储启动程序的启动程序区LOADER、用来存储引 导程序的引导程序区BOOT和用来存储系统程序的系统程序区SYSTEM ;该数据存储器 13设有能够同时存储业务程序、业务数据及其升级程序包的存储空间;所述的启动程序 区LOADER还存储有升级控制信息;该嵌入式终端1可以还具有带数字寄存器的电子器 件,如果具有带数字寄存器的电子器件,该数字寄存器被用来存放升级控制信息的校验 信息;嵌入式终端1具有引导程序BSP和嵌入式操作系统;一设在远程并能通过无线网络5接入而与所述嵌入式终端相连接的第一主站2, 该第一主站2与嵌入式终端1之间设有相互认可的通信协议以使第一主站2与嵌入式终端 1之间能够实现数据交换,第一主站2向嵌入式终端1发送升级程序包及其升级指令,嵌 入式终端1进行软件升级;无线网络5是公用或专用的远程通讯网络;一设在近程并能通过无线方式接入而与所述嵌入式终端相连接的第二主站3,该 第二主站3与嵌入式终端1之间设有相互认可的通信协议以使第二主站3与嵌入式终端1 之间能够实现数据交换,第二主站3向嵌入式终端发送升级程序包及其升级指令,嵌入 式终端1进行软件升级;一设在近程并能通过本地接入而与所述嵌入式终端相连接的第三主站4,该第三 主站4与嵌入式终端1之间设有相互认可的通信协议以使第三主站4与嵌入式终端1之间能够实现数据交换,第三主站4向嵌入式终端发送升级程序包及其升级指令,嵌入式终 端1进行软件升级。其中程序存储器12采用Flash存储器件;第二主站3、第三主站4分别为手持式设备或台式计算机或手提电脑。一种嵌入式系统的软件在线升级方法,包括如下步骤a.嵌入式终端1根据预先设定的引导模式从A区启动,加载A区的引导程序, 引导A区的操作系统程序,进入工作状态;如图4的框401至框408所示;b.由第一主站2或第二主站3或第三主站4的其中一个主站向嵌入式终端1发送 若干个用于软件升级的升级程序包;嵌入式终端1检验升级程序包,确保能够完整正确 地接收到所有的升级程序包;如图4的框409所示;c.发送升级程序包的主站向嵌入式终端1发送指令,通知嵌入式终端1进行软件 升级更新;d.嵌入式终端1使用升级程序包更新B区,并在A区的启动程序区中登记升级 控制信息,该升级控制信息标记为新版本就绪;如图4的框410所示;e.嵌入式终端1重新启动,从A区启动,检查A区登记的升级控制信息,在发 现升级控制信息标记为新版本就绪时,再一次登记升级控制信息,该升级控制信息标记 为新版本启用,并加载B区的引导程序,引导B区的操作系统程序,进入工作状态;如 图4的框411所示;f.若引导系统成功,则将B区的引导程序区和系统程序区复制到A区,再次登 记升级控制信息,该升级控制信息标记为新版本已更新;升级过程结束;如图4的框407 所示;&若引导系统失败,经过一个预先设定时间的超时,嵌入式终端在看门狗电路 作用下进行复位;如图4的框412所示;h.嵌入式终端重新启动,从A区启动,检查升级控制信息,发现升级控制信息 的标记仍为新版本启用而未被修改为新版本已更新,则加载A区的引导程序,引导A区 的操作系统程序,进入工作状态;如图4的框401至框406所示;i.引导系统成功,将A区的引导程序区和系统程序区复制到B区,再次登记升级 控制信息,该升级控制信息标记为新版本废弃;系统恢复到升级前的状态,升级过程结 束;如图4的框407所示。其中预先设定的引导模式是依次从A区和B区轮流进行,每次成功进行系统软件升 级后则调换引导区域。升级程序包被分解为一个升级包描述数据块和若干个升级数据块,这些数据块 顺次从第一主站或第二主站或第三主站传送到嵌入式终端上,暂存在嵌入式终端的数据 存储器的预先划定的区域上,传送结束后由嵌入式终端自动合并还原为升级程序包。升级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包的数据 块顺次从第一主站或第二主站或第三主站传送到嵌入式终端,这个过程可以被系统其他 事项中断;两个数据块传送之间,第一主站或第二主站或第三主站可以下发其他指令,嵌入式终端可以被重新启动,第一主站或第二主站或第三主站也可以被重新启动。升级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包的数据 块传送具有故障自动恢复的能力;第一主站或第二主站或第三主站可以查询到正在传送 的升级包的数据块数量,并继续传送后续的升级包数据块。升级程序包在分块传送和合并还原的过程中,经过了二层的检查校验,其过程 如下在每个升级数据块的传送过程中包含自身的校验信息,嵌入式终端接收后先核 对升级数据块的校验信息,正确后才进行存储,并通知对应的主站发送下一个升级数据 块;在升级包描述数据块中包含校验信息,嵌入式终端在所有数据块传送结束后, 合并还原成升级程序包,还要对升级包描述数据块的校验信息进行检查校验,以此确保 升级程序包正确传送。在一次远程升级更新过程中,可以同时更新多个程序模块,每个程序模块做为 一个升级程序包进行传送,多个升级程序包之间可以并发传送;提高通讯通道的效率。本发明的一种可软件在线升级的嵌入式系统及在线升级方法,嵌入式终端设备 由主控芯片、程序存储器件、数据存储器件、以及能够和主站(可以是第一主站,也可 以是第二主站,或者可以是第三主站)通信的通讯接口构成。软件部分包括系统程序(启 动程序、引导程序和嵌入式操作系统)和业务程序。在主站(包括第一主站、第二主站和第三主站)与嵌入式终端之间制定有一个通 讯协议,该通讯协议使得嵌入式终端设备和主站之间可以交换数据。升级程序包按照该 种通讯协议方式由主站传送到嵌入式终端设备。该通讯协议能够支持多种通讯方式,可 以是远程通讯(如TCP/UDP、GPRS/CDMA、PSTN、230MHz无线等),或者是本地连 接的通讯(如USB、RS232、RS485、高速红外等),还可以是近距离通讯(如远红外、 无线射频、蓝牙等)。只要能够实现主站和嵌入式设备交换数据的通讯方式都能够完成在 线升级包的传输。软件升级包的传输和更新过程在业务程序中实现。系统的引导过程依次从A区和B区轮流进行,每次进行系统软件升级则调换引 导区域。系统软件升级包更新的区域是当前非引导区域。即系统从A区引导,则软件版 本更新至B区。反之,系统从B区引导,则软件版本更新至A区。操作系统引导成功之后,再检查A存储区和B存储区的软件版本是否一致,如 果不一致,则用引导区的版本替换非引导区的版本,以此保持2个区域(即A存储区和B 存储区)的软件版本同步。若更新后的操作系统不能成功引导,则从旧版本系统引导区引导,并将更新过 的系统区域还原成旧版本。上述实施例仅用来进一步说明本发明的可软件在线升级的嵌入式系统及在线升 级方法,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的 任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围内。
权利要求
1.一种可软件在线升级的嵌入式系统,其特征在于包括一嵌入式终端,其包括主控芯片、程序存储器、数据存储器、远程通信接口和本地 /近程通信接口;主控芯片分别与程序存储器、数据存储器、远程通信接口和本地/近 程通信接口相连接;该程序存储器至少划分为具有对等结构的A区和B区,每个区又进 一步划分为具有相同的大小和结构的三个子区域;所述的三个子区域分别是用来存储启 动程序的启动程序区、用来存储引导程序的引导程序区和用来存储系统程序的系统程序 区;该数据存储器设有能够同时存储业务程序、业务数据及其升级程序包的存储空间; 所述的启动程序区还存储有升级控制信息;一设在远程并能通过无线网络接入而与所述嵌入式终端相连接的第一主站,该第一 主站与嵌入式终端之间设有相互认可的通信协议以使第一主站与嵌入式终端之间能够实 现数据交换,第一主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进行软 件升级;一设在近程并能通过无线方式接入而与所述嵌入式终端相连接的第二主站,该第二 主站与嵌入式终端之间设有相互认可的通信协议以使第二主站与嵌入式终端之间能够实 现数据交换,第二主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进行软 件升级;一设在近程并能通过本地接入而与所述嵌入式终端相连接的第三主站,该第三主站 与嵌入式终端之间设有相互认可的通信协议以使第三主站与嵌入式终端之间能够实现数 据交换,第三主站向嵌入式终端发送升级程序包及其升级指令,嵌入式终端进行软件升 级。
2.根据权利要求1所述的可软件在线升级的嵌入式系统,其特征在于所述的程序 存储器采用Flash存储器件。
3.根据权利要求1所述的可软件在线升级的嵌入式系统,其特征在于所述的第二 主站、第三主站分别为手持式设备或台式计算机或手提电脑。
4.一种如权利要求1所述的嵌入式系统的软件在线升级方法,其特征在于包括如 下步骤a.嵌入式终端根据预先设定的引导模式从A区启动,加载A区的引导程序,引导A 区的操作系统程序,进入工作状态;b.由第一主站或第二主站或第三主站的其中一个主站向嵌入式终端发送若干个用于 软件升级的升级程序包;嵌入式终端检验升级程序包,确保能够完整正确地接收到所有 的升级程序包;c.发送升级程序包的主站向嵌入式终端发送指令,通知嵌入式终端进行软件升级更新;d.嵌入式终端使用升级程序包更新B区,并在A区的启动程序区中登记升级控制信 息,该升级控制信息标记为新版本就绪;e.嵌入式终端重新启动,从A区启动,检查A区登记的升级控制信息,在发现升级 控制信息标记为新版本就绪时,再一次登记升级控制信息,该升级控制信息标记为新版 本启用,并加载B区的引导程序,引导B区的操作系统程序,进入工作状态;f.若引导系统成功,则将B区的引导程序区和系统程序区复制到A区,再次登记升级控制信息,该升级控制信息标记为新版本已更新;升级过程结束;&若引导系统失败,经过一个预先设定时间的超时,嵌入式终端在看门狗电路作用 下进行复位;h.嵌入式终端重新启动,从A区启动,检查升级控制信息,发现升级控制信息的标 记仍为新版本启用而未被修改为新版本已更新,则加载A区的引导程序,引导A区的操 作系统程序,进入工作状态;i.引导系统成功,将A区的引导程序区和系统程序区复制到B区,再次登记升级控制 信息,该升级控制信息标记为新版本废弃;系统恢复到升级前的状态,升级过程结束。
5.根据权利要求4所述的嵌入式系统的软件在线升级方法,其特征在于所述的预 先设定的引导模式是依次从A区和B区轮流进行,每次成功进行系统软件升级后则调换 引导区域。
6.根据权利要求4所述的嵌入式系统的软件在线升级方法,其特征在于所述的升 级程序包被分解为一个升级包描述数据块和若干个升级数据块,这些数据块顺次从第一 主站或第二主站或第三主站传送到嵌入式终端上,暂存在嵌入式终端的数据存储器的预 先划定的区域上,传送结束后由嵌入式终端自动合并还原为升级程序包。
7.根据权利要求6所述的嵌入式系统的软件在线升级方法,其特征在于所述的升 级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包的数据块顺次从第 一主站或第二主站或第三主站传送到嵌入式终端,这个过程可以被系统其他事项中断; 两个数据块传送之间,第一主站或第二主站或第三主站可以下发其他指令,嵌入式终端 可以被重新启动,第一主站或第二主站或第三主站也可以被重新启动。
8.根据权利要求6所述的嵌入式系统的软件在线升级方法,其特征在于所述的升 级程序包为第一主站或第二主站或第三主站发送的升级包;该升级包的数据块传送具有 故障自动恢复的能力;第一主站或第二主站或第三主站可以查询到正在传送的升级包的 数据块数量,并继续传送后续的升级包数据块。
9.根据权利要求6所述的嵌入式系统的软件在线升级方法,其特征在于所述的升 级程序包在分块传送和合并还原的过程中,经过了二层的检查校验,其过程如下在每个升级数据块的传送过程中包含自身的校验信息,嵌入式终端接收后先核对升 级数据块的校验信息,正确后才进行存储,并通知对应的主站发送下一个升级数据块;在升级包描述数据块中包含校验信息,嵌入式终端在所有数据块传送结束后,合并 还原成升级程序包,还要对升级包描述数据块的校验信息进行检查校验,以此确保升级 程序包正确传送。
10.根据权利要求7或8所述的嵌入式系统的软件在线升级方法,其特征在于所述 的一次远程升级更新过程,可以同时更新多个程序模块,每个程序模块做为一个升级程 序包进行传送,多个升级程序包之间可以并发传送。
全文摘要
本发明公开了一种可软件在线升级的嵌入式系统及在线升级方法,包括嵌入式终端和能够分别与嵌入式终端进行数据传输的远程主站、近程主站、本地主站;嵌入式终端包括有主控芯片、程序存储器、数据存储器、远程通信接口及本地/近程通信接口;嵌入式终端的程序存储器被划分有具有对等结构的A区和B区,在主站向嵌入式终端发送软件包时,嵌入式终端的系统的引导过程依次从A区和B区轮流进行,每次进行系统软件升级则调换引导区域;系统程序在程序存储器保存双备份,如果升级过程失败,可以从上一次成功启动的区域还原。使用这种方法,能够有效识别在线升级过程中的各种异常状况,并采取相应措施加以补救,或误码重传,或断点续传,或无效抛弃,或失败还原,确保在线升级的正确性和鲁棒性。
文档编号G06F9/445GK102023876SQ20091030693
公开日2011年4月20日 申请日期2009年9月14日 优先权日2009年9月14日
发明者何树生, 李松涛, 林冬武, 许良刚 申请人:漳州科能电器有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1