一种嵌入式系统的远程升级方法与流程

文档序号:17089407发布日期:2019-03-13 23:16阅读:185来源:国知局
一种嵌入式系统的远程升级方法与流程

本发明属于系统升级技术领域,具体涉及一种嵌入式系统的远程升级方法。



背景技术:

嵌入式系统广泛应用于各类信息采集和自动控制领域,嵌入式系统通常布置位置较远,因此,普遍采用基于网络的远程升级方式。

传统的嵌入式系统的远程升级方法,服务器需要将最新版本的应用程序安装包通过网络传输给安装有嵌入式系统的主机,并且,所传输的应用程序安装包为完整的嵌入式系统文件,具有传输数据量大和操作过程复杂的问题,从而不利于主机进行远程升级。



技术实现要素:

针对现有技术存在的缺陷,本发明提供一种嵌入式系统的远程升级方法,可有效解决上述问题。

本发明采用的技术方案如下:

本发明提供一种嵌入式系统的远程升级方法,包括以下步骤:

步骤1,主机对存储介质进行分区,将存储介质划分为引导文件区、内核文件区、文件系统区、应用程序区和擦除保护区;其中,所述引导文件区用于存储引导文件;所述内核文件区用于存储内核文件;所述文件系统区用于存储文件系统;所述应用程序区用于存储应用程序;所述擦除保护区用于存储升级配置文件;

步骤2,服务器根据本次需升级的系统文件类型,升成对应类型的升级数据包;其中,所述系统文件类型包括引导文件、内核文件、文件系统和应用程序;然后,所述服务器在指定的存储地址存储所述升级数据包;

步骤3,所述服务器向安装嵌入式系统的主机下发升级指令;其中,所述升级指令中携带升级数据包名称、升级数据包下载地址信息以及完整性校验值;

步骤4,所述主机接收所述升级指令,并从所述升级指令中解析出所述升级数据包下载地址信息和所述升级数据包名称;

步骤5,所述主机根据所述升级数据包下载地址信息和所述升级数据包名称,所述主机从对应的下载位置下载到对应的所述升级数据包;

步骤6,在下载完成后,所述主机对下载到的所述升级数据包进行完整性校验,如果完整性校验不通过,所述主机向所述服务器反馈升级错误代码,并停止升级,流程结束;如果完整性校验通过,则执行步骤7;

步骤7,所述主机将所述升级数据包解压到指定存储位置;

步骤8,所述主机对解压到的所述升级数据包进行文件格式校验,确保文件格式的正确性和完整性,如果校验不通过,所述主机重启并删除下载到的所述升级数据包;如果校验通过,则执行步骤9;

步骤9,所述主机自动重启,进入升级程序,升级过程为:所述主机根据所述升级数据包的系统文件类型,定位到对应的存储介质分区;然后,所述主机将对应的所述存储介质分区中的所有内容均擦除,再向所述存储介质分区中写入所述升级数据包;在写入完成所述升级数据包后,所述主机再次自动重启,实现系统升级更新;

步骤10,在升级结束后,所述主机删除所述指定存储位置存储的所述升级数据包,然后,所述主机向所述服务器反馈升级成功的通知消息。

优选的,步骤1中,所述主机对存储介质进行分区时,根据各类系统文件以及所述升级配置文件的最大需求容量值,确定对应的存储分区的容量。

优选的,所述主机和所述服务器之间通过tcp/ip协议进行通信连接。

优选的,步骤3中,所述嵌入式系统为linux系统。

优选的,步骤6中,所述主机对下载到的所述升级数据包采用md5校验方法进行完整性校验。

优选的,步骤5中,所述主机从对应的下载位置下载到对应的所述升级数据包,具体为:

所述服务器以4mb为一个切割单位,将所述升级数据包切割为连续的多个数据块,然后将各个所述数据块存储于所述指定的存储地址;在所述主机下载所述升级数据包时,所述主机以所述数据块为单元进行下载,如果在下载某个数据块m的过程中,所述主机与所述服务器断开连接,则当所述主机与所述服务器重新建立通讯连接后,所述主机返回到所述数据块m的起始字节,从所述数据块m的起始字节开始对所述数据块m进行下载;在下载完成所述数据块m后,再继续下载下一个数据块,直到下载完成所述升级数据包。

本发明提供的一种嵌入式系统的远程升级方法具有以下优点:

本发明提供了一种针对主机的嵌入式linux系统进行远程升级的方法,该方法中,主机通过对存储介质进行分区的方式,将嵌入式系统的引导文件、内核文件、文件系统和应用程序分别存储于不同的分区,从而实现在远程升级时,可以分别对不同分区进行独立升级,以减少传输升级包的数据量,减少操作复杂度。特别是对于大批量主机同时进行远程升级时,可以避免网络拥塞,提高升级速率和效率。

附图说明

图1为本发明提供的一种嵌入式系统的远程升级方法的流程示意图;

图2为本发明提供的一种嵌入式系统的远程升级方法的详细流程示意图。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明提供一种嵌入式系统的远程升级方法,用于实现服务器对主机的远程升级,其中,主机是指安装嵌入式系统的硬件设备,例如,安装linux嵌入式系统的硬件设备,本发明提供的嵌入式系统的远程升级方法,主要构思为:将系统文件根据功能划分为多个类别,主机对其存储介质进行分区,存储介质通过分区的方式存储各类系统文件,例如,引导文件、内核文件、文件系统和应用程序,因此,服务器可以根据需要升级的系统文件类别,向主机下发对应对应类别的系统文件升级数据包;主机将升级数据包存储于对应的分区,从而有选择的对系统进行升级。由于服务器只需要向主机下发某一个类别的系统文件升级数据包,而不是完整的系统文件升级数据包,从而减少了传输数据量;由于主机仅对某一个类别的系统文件进行升级,而不是对完整的系统文件进行升级,从而减少了主机进行系统升级的操作过程复杂度。

另外,本发明在主机进行系统升级时加入了验证功能,能够对升级的文件格式进行校验,从而保证升级的正确性。

具体的,参考图1和图2,嵌入式系统的远程升级方法包括以下步骤:

步骤1,主机对存储介质进行分区,将存储介质划分为引导文件区、内核文件区、文件系统区、应用程序区和擦除保护区;其中,引导文件区用于存储引导文件;内核文件区用于存储内核文件;文件系统区用于存储文件系统;应用程序区用于存储应用程序;擦除保护区用于存储升级配置文件;

其中,主机对存储介质进行分区时,根据各类系统文件以及升级配置文件的最大需求容量值,确定对应的存储分区的容量。划分到的各存储分区的容量一旦确定,就不会再发生变化。具体的,分区原则主要依赖于文件的大小,根据文件的大小匹配相应的区域。分区的方法采用最佳适应算法:从全部空闲区中找出能满足作业要求的,且在大小满足最小空闲分区的一种计算方法。该方法能使碎片尽量小化,合理的分配相应的运算资源,保证整个系统以及远程升级能稳定运行。本发明中,对于所分区域进行了自定义的命名,方便升级包可以找到对应的分区。

本发明中,引导文件区、内核文件区、文件系统区和应用程序区各自存储的引导文件、内核文件、文件系统和应用程序是指可独立进行系统升级的某一个类别的系统文件。而擦除保护区所存储的升级配置文件,是指在进行系统升级时需要使用到的重要配置文件,为避免在升级过程中升级配置文件被误擦除,因此,本申请专门设立用于存储升级配置文件的擦除保护区,以和其他用于存储某个类别系统文件的分区进行区别独立出来,从而保证系统升级的稳定性和安全性。

步骤2,服务器根据本次需升级的系统文件类型,升成对应类型的升级数据包;其中,系统文件类型包括引导文件、内核文件、文件系统和应用程序;然后,服务器在指定的存储地址存储升级数据包;

步骤3,主机和服务器之间通过tcp/ip协议进行通信连接,服务器向安装嵌入式系统的主机下发升级指令;嵌入式系统为linux系统;其中,升级指令中携带升级数据包名称、升级数据包下载地址信息以及完整性校验值;

其中,在具体实现上,升级数据包下载地址信息可以为升级数据包下载ip地址和路径信息的组合。

步骤4,主机接收升级指令,并从升级指令中解析出升级数据包下载地址信息和升级数据包名称;

步骤5,主机根据升级数据包下载地址信息和升级数据包名称,主机从对应的下载位置下载到对应的升级数据包;

本步骤具体为:

服务器以4mb为一个切割单位,将升级数据包切割为连续的多个数据块,然后将各个数据块存储于指定的存储地址;在主机下载升级数据包时,主机以数据块为单元进行下载,如果在下载某个数据块m的过程中,主机与服务器断开连接,则当主机与服务器重新建立通讯连接后,主机返回到数据块m的起始字节,从数据块m的起始字节开始对数据块m进行下载;在下载完成数据块m后,再继续下载下一个数据块,直到下载完成升级数据包。

步骤6,在下载完成后,主机对下载到的升级数据包进行完整性校验,具体的,主机对下载到的升级数据包采用md5校验方法进行完整性校验。

如果完整性校验不通过,主机向服务器反馈升级错误代码,并停止升级,流程结束;如果完整性校验通过,则执行步骤7;

步骤7,主机将升级数据包解压到指定存储位置;

步骤8,主机对解压到的升级数据包进行文件格式校验,确保文件格式的正确性和完整性,如果校验不通过,主机重启并删除下载到的升级数据包;如果校验通过,则执行步骤9;

步骤9,主机自动重启,进入升级程序,升级过程为:主机根据升级数据包的系统文件类型,定位到对应的存储介质分区;然后,主机将对应的存储介质分区中的所有内容均擦除,再向存储介质分区中写入升级数据包;在写入完成升级数据包后,主机再次自动重启,实现系统升级更新;

步骤10,在升级结束后,主机删除指定存储位置存储的升级数据包,然后,主机向服务器反馈升级成功的通知消息。

在上述步骤中,服务器一次向主机下发的升级数据包可以为针对两个以上分区的升级文件,例如,针对引导文件区的引导文件升级数据包、以及针对内核文件的内核文件升级数据包。在此种情况下,主机在解压到两类升级数据包后,主机根据擦除保护区的升级配置文件,根据这两类升级数据包的优先级别,按优先级别依次对这两类升级数据包进行系统升级。

实际应用中,服务器可以同时对多台主机同时下发升级指令,再由主机各自执行升级操作。

对于升级过程中出现的异常情况,采用以下方法处理:

(1)在下载之前主机将判断升级数据包大小,若大于限定的容量最大值,主机将向服务器反馈错误代码,并且不会下载该升级数据包。

(2)如果在下载的过程中主机断电,主机在重启时将不会识别已下载的残缺升级包,并且在主机完成重启后将自动删除已下载的残缺升级包。

(3)如果主机接收到多条应用程序或文件系统升级指令,主机将首先删除上一个已经下载的升级包后再执行下载动作。

与现有技术相比,本发明提供的嵌入式系统的远程升级方法具有以下优点:

(1)主机将嵌入式系统按照引导文件、内核文件、文件系统和应用程序分别存储在不同的分区,一方面可以大大减少升级包文件的数据量,减少服务器与主机之间的数据传输量和时间;另一方面,有利于减少升级操作的复杂度,减少升级步骤;

(2)该方法的升级过程由主机独立自动完成,并能够向服务器及时反馈升级情况,有助于服务器了解升级情况,减少人力工作量,提高管理效率。

参考图2,下面介绍一个具体实施例:

步骤201,服务器向安装嵌入式系统的主机下发升级指令。升级指令中包含升级数据包名称、下载ip地址和路径信息。

步骤202,主机从升级指令中解析出升级数据包名称、下载ip地址和路径信息。

步骤203,主机将ip地址和升级包路径拼接起来,得到升级包在http服务器上完整的网络路径,并从指定位置下载指定升级包。此处下载的升级包为某类系统文件的升级包,而非完整的系统文件升级包;例如,引导文件、内核文件、文件系统或应用程序的升级包;

如果从该地址获取不到升级包,主机将向服务器反馈错误代码,并停止升级。

步骤204,主机完成升级包下载后,对升级包进行md5校验。如果校验不通过,主机将向服务器反馈错误代码,并停止升级;如果校验通过,主机将向服务反馈校验通过代码,并进入下一步骤。

步骤205,主机将升级包内的文件解压到指定存储位置。

步骤206,主机将下载的原始升级包删除,以释放存储空间。

步骤207,主机对升级数据包的文件格式进行校验,确保文件格式的正确性和完整性,并确定升级分区和目标文件。其中,主机对存储介质进行分区,将存储介质划分为引导文件区、内核文件区、文件系统区、应用程序区和擦除保护区;主机根据接收到的升级数据包的类别,确定对应的分区,例如,如果升级数据包的类别为内核文件升级数据包,则升级分区即为内核文件区。

如果校验不通过,主机将重启并删除所有升级文件,并停止升级;如果校验通过,主机将进入下一步骤。

步骤208,主机自动重启并更新对应存储分区的文件。即:主机将将对应的存储介质分区中的所有内容均擦除,再向存储介质分区中写入升级数据包;在写入完成升级数据包后,主机再次自动重启,实现系统升级更新;

步骤209,主机删除所有升级文件。

步骤210,主机向服务器反馈升级成功代码。

本发明创新点包括以下几点:

(1)主机对存储介质进行分区,将嵌入式系统的引导文件、内核文件、文件系统和应用程序分别存储于不同的分区。

(2)远程升级时,服务器通过tcp/ip协议与主机建立通信连接。

(3)主机通过校验文件格式确定升级的对应分区和目标文件,并支持同时升级多个分区。

(4)服务器下发升级指令后,主机升级操作都是自动完成的,不需要人为操作和干预。

本发明提供了一种针对主机的嵌入式linux系统进行远程升级的方法,该方法中,主机通过对存储介质进行分区的方式,将嵌入式系统的引导文件、内核文件、文件系统和应用程序分别存储于不同的分区,从而实现在远程升级时,可以分别对不同分区进行独立升级,以减少传输升级包的数据量,减少操作复杂度。特别是对于大批量主机同时进行远程升级时,可以避免网络拥塞,提高升级速率和效率。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1