一种软件在线升级方法及系统技术方案

技术编号:28836528 阅读:56 留言:0更新日期:2021-06-11 23:33
本发明专利技术提供一种软件在线升级方法及系统,涉及软件升级技术领域,包括:步骤S1,实时监测并接收上位机发送的一固件升级程序;步骤S2,将固件升级程序保存至第三存储区后,将一升级标志位配置为一第一预设值,随后重启设备;步骤S3,在船用嵌入式设备每次启动时,执行第一存储区中保存的一启动程序读取升级标志位,判断升级标志位的值是否为第一预设值:若是,则将固件升级程序拷贝至第二存储区,并将升级标志位配置为一第二预设值,完成船用嵌入式设备的软件在线升级;若否,则跳转执行当前运行程序。有益效果是能够在不更改任何硬件设备的前提下,实现通过上位机软件对微控制器嵌入式软件进行版本升级,且不影响设备的正常运行。

【技术实现步骤摘要】
一种软件在线升级方法及系统
本专利技术涉及软件升级
,尤其涉及一种软件在线升级方法及系统。
技术介绍
随着半导体技术的不断进步,嵌入式设备在军用和民用领域得到了广泛应用,但应用场景的复杂化多元化对嵌入式设备的维护、固件更新提出了新的要求。在设备的全生命周期中,因为需求更改或软件缺陷等原因,对设备进行维护是不可避免的环节,此时需要更新嵌入式设备软件程序。而现有的嵌入式设备的软件设计方案无法满足船用嵌入式设备的软件升级需求,一方面,现有软件设计方案需要进行设备拆卸,当前船舶应用领域中嵌入式设备体积较大,大多拆卸困难,采用将设备拆卸并替换新的设备的方式进行嵌入式设备的软件升级,费时费力且操作复杂,不便维护;另一方面,在船舶应用场景中,普遍应用的通信总线是CAN现场总线,CAN现场总线在升级中需要制定特殊的CAN升级协议,若系统协议比较复杂,可能会出现无法兼容已生产的设备,导致升级失败或者无法升级。
技术实现思路
针对现有技术中存在的问题,本专利技术提供一种软件在线升级方法,用于船用嵌入式设备,所述船用嵌入式设备包括一微控制器、分别连接所述微控制器的一串口通信接口以及一存储器,所述存储器预先配置有一第一存储区、一第二存储区、一第三存储区以及一第四存储区,所述第二存储区中保存有当前运行程序;所述软件在线升级方法包括:步骤S1,所述微控制器执行所述当前运行程序过程中实时监测外部的一上位机通过所述串口通信接口发送的升级指令,并在监测接收到所述升级指令后接收所述上位机发送的一固件升级程序;<br>步骤S2,所述微控制器将所述固件升级程序保存至所述第三存储区后,将所述第四存储区存储的一升级标志位配置为一第一预设值,随后重启所述船用嵌入式设备;步骤S3,所述微控制器在所述船用嵌入式设备每次启动时,首先执行所述第一存储区中保存的一启动程序进行硬件初始化并读取所述升级标志位,判断所述升级标志位的值是否为所述第一预设值:若是,则转向步骤S4;若否,则转向步骤S5;步骤S4,所述微控制器将所述固件升级程序拷贝至所述第二存储区,将所述固件升级程序作为所述当前运行程序并将所述升级标志位配置为一第二预设值,完成所述船用嵌入式设备的软件在线升级;步骤S5,所述微控制器跳转执行所述当前运行程序,随后返回所述步骤S1。优选的,所述步骤S1中,所述微控制器与所述上位机之间采用Ymodem协议进行通信实现接收所述固件升级程序。优选的,所述步骤S4包括:步骤S41,所述微控制器将所述固件升级程序拷贝至所述第二存储区;步骤S42,所述微控制器读取所述第二存储区中的当前存储程序,并将所述当前存储程序与所述第三存储区中的所述固件升级程序进行比对,判断所述当前存储程序与所述固件升级程序是否一致:若是,则转向步骤S43;若否,则返回所述步骤S41;步骤S43,所述微控制器擦除所述第三存储区中的所述固件升级程序,并将所述升级标志位配置为所述第二预设值。优选的,执行所述步骤S41之前,还包括所述微控制器擦除所述第二存储区中存储的所述当前运行程序。本专利技术还提供一种软件在线升级系统,应用上述的软件在线升级方法,用于对船用嵌入式设备进行软件在线升级,所述船用嵌入式设备包括:存储器,所述存储器包括用于存储启动程序的一第一存储区、用于存储当前运行程序的一第二存储区、用于缓存固件升级程序的一第三存储区以及存储有升级标志位的配置值的一第四存储区;微控制器,分别连接一串口通信接口和所述存储器,所述微控制器包括:数据接收模块,用于在执行所述当前运行程序过程中实时监测外部的一上位机通过所述串口通信接口发送的升级指令,并在监测接收到所述升级指令后接收所述上位机发送的一固件升级程序;数据处理模块,连接所述数据接收模块,用于将所述固件升级程序保存至所述第三存储区后,将所述第四存储区存储的一升级标志位配置为一第一预设值,随后重启所述船用嵌入式设备;启动控制模块,用于在所述船用嵌入式设备每次启动时执行所述启动程序进行硬件初始化并读取所述配置值,在所述配置值为所述第一预设值时将所述固件升级程序拷贝至所述第二存储区,将所述固件升级程序作为所述当前运行程序并将所述升级标志位配置为一第二预设值,完成所述船用嵌入式设备的软件在线升级;程序跳转模块,连接所述启动控制模块,用于在所述配置值不为所述第一预设值时或所述软件在线升级完成后跳转执行所述当前运行程序。优选的,所述微控制器与所述上位机之间采用Ymodem协议进行通信实现接收所述固件升级程序。优选的,所述启动控制模块包括:程序拷贝单元,用于将所述固件升级程序拷贝至所述第二存储区;数据比较单元,连接所述程序拷贝单元,用于读取所述第二存储区中的当前存储程序,并在所述当前存储程序与所述第三存储区中的所述固件升级程序不一致时重新拷贝所述固件升级程序,以及在所述当前存储程序与所述固件升级程序一致时擦除所述第三存储区中的所述固件升级程序,并将所述升级标志位配置为所述第二预设值。优选的,所述启动控制模块还包括一数据擦除单元,连接所述程序拷贝单元,用于在拷贝所述固件升级程序之前擦除所述第二存储区中存储的所述当前运行程序。上述技术方案具有如下优点或有益效果:1)能够在不更改任何硬件设备的前提下,实现通过上位机软件对微控制器嵌入式软件进行版本升级,且不影响设备的正常运行;2)无需进行设备拆卸,从而有效避免设备拆卸可能引入的系统隐患,同时提高了设备的可维护性;3)通过串口通信接口并基于Ymodem协议与上位机进行通信,保证固件升级程序能够准确无误地烧写至微控制器的存储器中,实现船用嵌入式设备的在线升级。附图说明图1为本专利技术的较佳的实施例中,一种软件在线升级方法的流程示意图;图2为本专利技术的较佳的实施例中,固件升级程序拷贝过程的流程示意图;图3为本专利技术的较佳的实施例中,一种软件在线升级系统的结构示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本专利技术并不限定于该实施方式,只要符合本专利技术的主旨,则其他实施方式也可以属于本专利技术的范畴。本专利技术的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种软件在线升级方法,用于船用嵌入式设备,船用嵌入式设备包括一微控制器、分别连接微控制器的一串口通信接口以及一存储器,存储器预先配置有一第一存储区、一第二存储区、一第三存储区以及一第四存储区,第二存储区中保存有当前运行程序;如图1所示,软件在线升级方法包括:步骤S1,微控制器执行当前运行程序过程中实时监测外部的一上位机通过串口通信接口发送的升级指令,并在监测接收到升级指令后接收上位机发送的一固件升级程序;步骤S2,微控制器将固件升级程序保存至第三存储区后,将第四存储区存储的一升级标志位配置为一第一预设值,随后重启船用嵌入式设备;步骤S3,微控制器在船用本文档来自技高网...

【技术保护点】
1.一种软件在线升级方法,其特征在于,用于船用嵌入式设备,所述船用嵌入式设备包括一微控制器、分别连接所述微控制器的一串口通信接口以及一存储器,所述存储器预先配置有一第一存储区、一第二存储区、一第三存储区以及一第四存储区,所述第二存储区中保存有当前运行程序;/n所述软件在线升级方法包括:/n步骤S1,所述微控制器执行所述当前运行程序过程中实时监测外部的一上位机通过所述串口通信接口发送的升级指令,并在监测接收到所述升级指令后接收所述上位机发送的一固件升级程序;/n步骤S2,所述微控制器将所述固件升级程序保存至所述第三存储区后,将所述第四存储区存储的一升级标志位配置为一第一预设值,随后重启所述船用嵌入式设备;/n步骤S3,所述微控制器在所述船用嵌入式设备每次启动时,首先执行所述第一存储区中保存的一启动程序进行硬件初始化并读取所述升级标志位,判断所述升级标志位的值是否为所述第一预设值:/n若是,则转向步骤S4;/n若否,则转向步骤S5;/n步骤S4,所述微控制器将所述固件升级程序拷贝至所述第二存储区,将所述固件升级程序作为所述当前运行程序并将所述升级标志位配置为一第二预设值,完成所述船用嵌入式设备的软件在线升级;/n步骤S5,所述微控制器跳转执行所述当前运行程序,随后返回所述步骤S1。/n...

【技术特征摘要】
1.一种软件在线升级方法,其特征在于,用于船用嵌入式设备,所述船用嵌入式设备包括一微控制器、分别连接所述微控制器的一串口通信接口以及一存储器,所述存储器预先配置有一第一存储区、一第二存储区、一第三存储区以及一第四存储区,所述第二存储区中保存有当前运行程序;
所述软件在线升级方法包括:
步骤S1,所述微控制器执行所述当前运行程序过程中实时监测外部的一上位机通过所述串口通信接口发送的升级指令,并在监测接收到所述升级指令后接收所述上位机发送的一固件升级程序;
步骤S2,所述微控制器将所述固件升级程序保存至所述第三存储区后,将所述第四存储区存储的一升级标志位配置为一第一预设值,随后重启所述船用嵌入式设备;
步骤S3,所述微控制器在所述船用嵌入式设备每次启动时,首先执行所述第一存储区中保存的一启动程序进行硬件初始化并读取所述升级标志位,判断所述升级标志位的值是否为所述第一预设值:
若是,则转向步骤S4;
若否,则转向步骤S5;
步骤S4,所述微控制器将所述固件升级程序拷贝至所述第二存储区,将所述固件升级程序作为所述当前运行程序并将所述升级标志位配置为一第二预设值,完成所述船用嵌入式设备的软件在线升级;
步骤S5,所述微控制器跳转执行所述当前运行程序,随后返回所述步骤S1。


2.根据权利要求1所述的软件在线升级方法,其特征在于,所述步骤S1中,所述微控制器与所述上位机之间采用Ymodem协议进行通信实现接收所述固件升级程序。


3.根据权利要求1所述的软件在线升级方法,其特征在于,所述步骤S4包括:
步骤S41,所述微控制器将所述固件升级程序拷贝至所述第二存储区;
步骤S42,所述微控制器读取所述第二存储区中的当前存储程序,并将所述当前存储程序与所述第三存储区中的所述固件升级程序进行比对,判断所述当前存储程序与所述固件升级程序是否一致:
若是,则转向步骤S43;
若否,则返回所述步骤S41;
步骤S43,所述微控制器擦除所述第三存储区中的所述固件升级程序,并将所述升级标志位配置为所述第二预设值。


4.根据权利要求3所述的软件在线升级方法,其特征在于,执行所述步骤S41之前,还包括所述微控制器擦除所述第二存储区中存储的所述当前运行程序。

【专利技术属性】
技术研发人员:叶蓓许涛桂栋
申请(专利权)人:上海船舶运输科学研究所
类型:发明
国别省市:上海;31

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

1