单片机在线升级系统及方法技术方案

技术编号:19690999 阅读:27 留言:0更新日期:2018-12-08 10:57
本发明专利技术涉及单片机在线升级技术,其公开了一种单片机在线升级方法,解决传统技术中单片机在线升级方案存在的升级效率低和不利于延长单片机使用寿命的问题。该方法包括:获取单片机的当前镜像数据和目标镜像数据;对当前镜像数据和目标镜像数据进行分片;将当前镜像数据的分片与目标镜像数据的分片依次逐片比较,将存在差异的目标镜像数据的分片下发至单片机的存储器的非执行区;将单片机的存储器的非执行区中保存的目标镜像数据的分片拷贝至执行区。此外,本发明专利技术还公开了一种单片机在线升级系统,适用于单片机在线升级。

【技术实现步骤摘要】
单片机在线升级系统及方法
本专利技术涉及单片机在线升级技术,具体涉及一种单片机在线升级系统及方法。
技术介绍
目前在电子设备中,以单片机为控制处理器的嵌入式系统应用越来越广泛。单片机主要是通过运行其内部存储的镜像来实现各种电子设备功能。由于在单片机的实际应用中需要根据需求不断的修正镜像,故需要对单片机不断的进行升级。手动升级方式由于需要依赖烧写环境,且拆卸设备而比较麻烦,因此,厂家或用户青睐于更加高效的在线升级方式。申请号201410355659.9的专利公开了一种单片机的在线升级方法,其公开了:ARM向单片机发送升级通知命令,单片机接收到升级通知命令后,单片机进行复位操作,然后单片机运行引导下载程序并读取引导下载程序中的升级标志位;单片机向ARM发送进入升级模式的通知命令,ARM按照升级数据包传输协议向单片机发送所需的升级数据包,单片机将接收到的升级数据包存储到单片机的内部存储器中;单片机擦除引导下载程序中的升级标志位和复位操作程序,单片机重新运行引导下载程序,单片机中的运行指令跳转到应用程序的入口地址,开始运行应用程序。申请号为201310124921.4的专利公开了一种单片机在线升级方法及系统,其公开了:当单片机需要升级的时候,S1.判断是否需要对用户程序进行升级,若是,则S2,若否,则转S4;S2.调用备份模块将用户程序备份到外部存储装置;S3.调用升级模块接收外部系统所发送的升级文件协议帧,并解析升级文件协议帧,且将解析后的升级文件协议帧保存至单片机的内部存储器;S4.判断引导程序的当前升级标识是否为升级成功状态或为升级完毕状态,若是,则转S6,若否,则S5;S5.调用恢复模块将外部存储装置中备份的用户程序恢复至内部存储器的用户程序区;S6.调用用户程序的跳转函数,并立即执行用户程序指令。可以看出,上述两种方案均是通过某种方式将目标镜像全部传输到单片机的非执行区,完成之后再通过某种方式全部拷贝到执行区运行,从而完成在线升级操作。其存在以下缺陷:1、需要将目标镜像整体都下发到单片机的存储器的非执行区中,耗时较长,升级效率低。2、升级过程中,将下载到单片机存储器非执行区中的目标镜像全部拷贝至执行区,以达到升级有效的作用,该策略增大了执行区的平均擦写次数,不利于单片机寿命的延长。
技术实现思路
本专利技术所要解决的技术问题是:提出一种单片机在线升级系统及方法,解决传统技术中单片机在线升级方案存在的升级效率低和不利于延长单片机使用寿命的问题。一方面,本专利技术的实施例提出了一种单片机在线升级系统,其包括:上位机、单片机和镜像存储器;所述上位机,用于从镜像存储器中获取当前镜像文件和目标镜像文件,对当前镜像文件和目标镜像文件进行分片;然后将所述当前镜像文件的分片与所述目标镜像文件的分片进行比较,将存在差异的目标镜像文件的分片下发至单片机;所述单片机,用于从上位机依次接收存在差异的目标镜像文件的分片,保存至单片机的存储器的非执行区,并将非执行区中保存的目标镜像文件的所有分片拷贝至执行区中所述当前镜像文件的对应位置;所述镜像存储器,用于保存升级前后的镜像文件。作为进一步优化,所述上位机具体包括:升级判断模块,用于获取单片机中当前镜像文件的版本号和所述镜像存储器中目标镜像文件的版本号,比较判断当前镜像文件的版本号与目标镜像文件的版本号是否一致,若是,则提示不需要升级,否则,则通知读取模块;读取模块,用于根据所述当前镜像文件的版本号和目标镜像文件的版本号分别从镜像存储器中获取当前镜像文件和目标镜像文件;分片模块,用于将当前镜像文件调整至与目标镜像文件相同大小后,对当前镜像文件和目标镜像文件分别按照相同大小进行分片,获得当前镜像文件的分片和目标镜像文件的分片;编号模块,用于分别对当前镜像文件的分片和目标镜像文件的分片依次进行编号;比较模块,用于依次对具有相同编号的当前镜像文件的分片和目标镜像文件的分片进行比较;分片下发模块,用于根据比较模块的比较结果,对存在差异的目标镜像文件的分片进行校验,并将校验值和分片编号添加至该分片的头部形成组合数据段后下发给单片机。作为进一步优化,所述单片机具体包括:数据接收模块,用于从上位机接收组合数据段;下载校验模块,用于对从上位机接收的组合数据段中的目标镜像文件的分片进行与上位机相同算法的校验,并与上位机对该分片的校验值进行比较;数据写入模块,用于将校验通过的组合数据段写入到单片机存储器的非执行区;数据拷贝模块,用于将单片机的存储器的非执行区中保存的组合数据段中的目标镜像文件的分片拷贝至单片机的存储器的执行区。作为进一步优化,所述数据拷贝模块包括:偏移值计算模块,用于依次对存储器的非执行区中的各个组合数据段的头部进行解析,获得对应的分片编号,然后根据所述分片编号和每个分片的大小计算偏移值;拷贝模块,用于根据计算的偏移值依次将非执行区中的组合数据段中的目标镜像文件的分片拷贝至对应的执行区;拷贝校验模块,用于对拷贝至对应执行区中的目标镜像文件的分片进行校验,并与该组合数据段中的校验值进行比较。另一方面,本专利技术的实施例还提出了一种单片机在线升级方法,应用于上述单片机在线升级系统,该方法包括:获取单片机的当前镜像文件和目标镜像文件;对当前镜像文件和目标镜像文件进行分片;将当前镜像文件的分片与目标镜像文件的分片依次逐片比较,将存在差异的目标镜像文件的分片下发至单片机的存储器的非执行区;将单片机的存储器的非执行区中保存的目标镜像文件的分片拷贝至执行区的所述当前镜像文件的对应位置。作为进一步优化,该方法具体包括以下步骤:A.获取单片机当前镜像文件的版本号;B.判断获取的当前镜像文件的版本号与目标镜像版本号是否一致,若是,则提示不需要升级,结束流程;否则,则进入步骤C;C.根据当前镜像版本号和目标镜像版本号分别从镜像存储器中读取当前镜像文件和目标镜像文件;D.将当前镜像文件调整至与目标镜像文件相同大小后,对当前镜像文件和目标镜像文件分别按照相同大小进行分片,并对获得的分片依次编号;E.依次取当前镜像文件中的分片和目标镜像文件中相同编号的分片进行比较;F.判断分片比较是否一致,若一致,则进入步骤G,若不一致,则进入步骤H;G.判断所有分片是否比较完成,若是,则进入步骤K,否则,取当前镜像文件中的下一个编号的分片与目标镜像文件中相同编号的分片进行比较,返回步骤F;H.上位机对目标镜像文件中与当前镜像文件中存在差异的分片计算校验值,并将校验值和分片编号组成一个字段添加至该分片的头部形成组合数据段后下发给单片机;I.单片机对组合数据段中的分片进行相同算法的校验,并与上位机对该分片的校验值进行比较,如果一致,则向上位机反馈接收成功消息,并将该组合数据段写入到单片机存储器的非执行区,返回步骤G;否则,向上位机反馈接收失败消息,进入步骤J;J.上位机将该组合数据段重新下发给单片机,返回步骤I;K.上位机通知单片机执行升级拷贝;L.单片机将存储器非执行区中保存的所有组合数据段中的分片均拷贝至对应的执行区中。作为进一步优化,步骤D具体包括:上位机分别计算出当前镜像文件的大小和目标镜像文件的大小,然后把目标镜像文件等分成m片,并按照1到m依次进行编号;如果当前镜像文件的大小大于目标镜像文件的大小,则把当前镜像文件中对应本文档来自技高网
...

【技术保护点】
1.单片机在线升级系统,其特征在于,包括:上位机、单片机和镜像存储器;所述上位机,用于从镜像存储器中获取当前镜像文件和目标镜像文件,对当前镜像文件和目标镜像文件进行分片;然后将所述当前镜像文件的分片与所述目标镜像文件的分片进行比较,将存在差异的目标镜像文件的分片下发至单片机;所述单片机,用于从上位机依次接收存在差异的目标镜像文件的分片,保存至单片机的存储器的非执行区,并将非执行区中保存的目标镜像文件的所有分片拷贝至执行区中所述当前镜像文件的对应位置;所述镜像存储器,用于保存升级前后的镜像文件。

【技术特征摘要】
1.单片机在线升级系统,其特征在于,包括:上位机、单片机和镜像存储器;所述上位机,用于从镜像存储器中获取当前镜像文件和目标镜像文件,对当前镜像文件和目标镜像文件进行分片;然后将所述当前镜像文件的分片与所述目标镜像文件的分片进行比较,将存在差异的目标镜像文件的分片下发至单片机;所述单片机,用于从上位机依次接收存在差异的目标镜像文件的分片,保存至单片机的存储器的非执行区,并将非执行区中保存的目标镜像文件的所有分片拷贝至执行区中所述当前镜像文件的对应位置;所述镜像存储器,用于保存升级前后的镜像文件。2.如权利要求1所述的单片机在线升级系统,其特征在于,所述上位机具体包括:升级判断模块,用于获取单片机中当前镜像文件的版本号和所述镜像存储器中目标镜像文件的版本号,比较当前镜像文件的版本号与目标镜像文件的版本号是否一致,如是,则提示不需要升级,否则通知读取模块;读取模块,用于根据所述当前镜像文件的版本号和目标镜像文件的版本号分别从镜像存储器中获取当前镜像文件和目标镜像文件;分片模块,用于将当前镜像文件调整至与目标镜像文件相同大小后,对当前镜像文件和目标镜像文件分别按照相同大小进行分片,获得当前镜像文件的分片和目标镜像文件的分片;编号模块,用于分别对当前镜像文件的分片和目标镜像文件的分片依次进行编号;比较模块,用于依次对具有相同编号的当前镜像文件的分片和目标镜像文件的分片进行比较;分片下发模块,用于根据比较模块的比较结果,对存在差异的目标镜像文件的分片进行校验,并将校验值和分片编号添加至该分片的头部形成组合数据段后下发给单片机。3.如权利要求2所述的单片机在线升级系统,其特征在于,所述单片机具体包括:数据接收模块,用于从上位机接收组合数据段;下载校验模块,用于对从上位机接收的组合数据段中的目标镜像文件的分片进行与上位机相同算法的校验,并与上位机对该分片的校验值进行比较;数据写入模块,用于将校验通过的组合数据段写入到单片机存储器的非执行区;数据拷贝模块,用于将单片机的存储器的非执行区中保存的组合数据段中的目标镜像文件的分片拷贝至单片机的存储器的执行区。4.如权利要求3所述的单片机在线升级系统,其特征在于,所述数据拷贝模块包括:偏移值计算模块,用于依次对存储器的非执行区中的各个组合数据段的头部进行解析,获得对应的分片编号,然后根据所述分片编号和每个分片的大小计算偏移值;拷贝模块,用于根据计算的偏移值依次将非执行区中的组合数据段中的目标镜像文件的分片拷贝至对应的执行区;拷贝校验模块,用于对拷贝至对应执行区中的目标镜像文件的分片进行校验,并与该组合数据段中的校验值进行比较。5.单片机在线升级方法,其特征在于,该方法包括:获取单片机的当前镜像文件和目标镜像文件;对当前镜像文件和目标镜像文件进行分片;将当前镜像文件的分片与目标镜像文件的分片依次逐片比较,将存在差异的目标镜像文件的分片下发至单片机的存储器的非执行区;将单片机的存储器的非执行区中保存的目标镜像文件的分片拷贝至执行区的所述当前镜像文件的对应位置。6.如权利要求5所述的单片机在线升级方法,其特征在于,该方法具体包括以下步骤:A.获取单片机当前镜像文件的版本号;B.判断获取的当前镜像文件的版本号与目标镜像文件...

【专利技术属性】
技术研发人员:林威林
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1