嵌入式终端设备固件升级方法及系统.pdf

上传人:奻奴 文档编号:1278007 上传时间:2018-04-12 格式:PDF 页数:10 大小:548.43KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610930976.8

申请日:

2016.10.31

公开号:

CN106528213A

公开日:

2017.03.22

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/445申请日:20161031|||公开

IPC分类号:

G06F9/445; G06F9/50

主分类号:

G06F9/445

申请人:

中冶华天南京工程技术有限公司

发明人:

王星星; 赵贤林; 姜岚

地址:

210019 江苏省南京市建邺区富春江东街18#

优先权:

专利代理机构:

北京鸿元知识产权代理有限公司 11327

代理人:

陈英俊;林锦辉

PDF下载: PDF下载
内容摘要

本发明公开了一种嵌入式终端设备固件升级方法及系统,包括:外部固定电平决定初始CPU的控制权,主控CPU和辅控CPU执行初始化,判断升级指令;接收固件升级程序;辅控CPU对固件升级程序进行校验,将新的固件升级程序写入辅控CPU的FLASH存储区;进行固件升级,升级后复位运行新程序;主控CPU和辅控CPU完成CPU控制权的交换。本发明通过设置双向通信的双CPU系统进行固件升级解决了传统固件升级方法中出现异常导致升级失败进而导致设备崩溃的问题;避免升级过程中设备重启间隙对系统造成隐患;在保证系统不瘫痪的同时,双CPU系统进行CPU控制权的切换进而实现嵌入式终端设备固件方便快捷、可靠地升级。

权利要求书

1.一种嵌入式终端设备固件升级方法,其特征在于:包括以下步骤:
外部固定电平决定初始CPU控制权;主控CPU和辅控CPU执行初始化;所述主控CPU和辅
控CPU判断是否为固件升级指令;
所述主控CPU与辅控CPU接收固件升级程序;
所述辅控CPU对固件升级程序进行校验;
所述辅控CPU将新的固件升级程序写入存储区;
所述辅控CPU接收升级指令开始升级,升级后复位运行新程序,完成主控CPU和辅控CPU
的控制权的交换;
其中,所述主控CPU与辅控CPU之间通过双向通信完成两者间指令的接收和传达。
2.根据权利要求1所述的嵌入式终端设备固件升级方法,其特征在于:所述主控CPU和
辅控CPU间至少有一种通信接口完成双向通信。
3.根据权利要求1所述的嵌入式终端设备固件升级方法,其特征在于:在接收固件升级
程序时,主控CPU接收服务器发送的固件升级程序,同时转发给所述辅控CPU。
4.根据权利要求1所述的嵌入式终端设备固件升级方法,其特征在于:若校验不准确,
所述辅控CPU通知主控CPU校验失败,并由所述主控CPU向服务器发送重发固件升级程序请
求。
5.根据权利要求1所述的嵌入式终端设备固件升级方法,其特征在于:若判断不是固件
升级指令,需进一步判断是否为其他自定义指令。
6.根据权利要求1所述的嵌入式终端设备固件升级方法,其特征在于:所述主控CPU和
辅控CPU进行控制权交换的步骤包括:
所述主控CPU向辅控CPU发送CPU控制权交换指令,关闭除了与辅控CPU通信以外的所有
通信;
所述辅控CPU完成状态切换后,通知主控CPU已完成状态切换,开始控制系统运行;
所述主控CPU接收辅控CPU状态切换完成指令,将主控CPU所有的输出口切换为输出低
电平,转变为新辅控CPU;所述辅控CPU状态切换为新主控CPU控制系统运行,完成CPU控制权
的交换。
7.一种嵌入式终端设备固件升级系统,其特征在于:包括:服务器,主控CPU,辅控CPU,
通信模块,存储模块以及外部固定电平,其中:
所述服务器用于提供新的固件升级程序,并向主控CPU传达指令;
所述主控CPU与辅控CPU之间通过通信接口完成双向通信连接;
所述主控CPU,用于向服务器传达指令,接收服务器发送的指令;向辅控CPU传达指令,
接收辅控CPU发送的指令;还用于控制系统的运行;
所述辅控CPU,用于向主控CPU传达指令,接收主控CPU发送的指令;还用于进行固件升
级程序的校验,并进行固件升级;
所述存储模块,用于存储固件升级程序;
所述通信模块,用于建立服务器与主控CPU以及服务器与辅控CPU间的连接;
所述外部固定电平,用于决定初始CPU控制权。
8.根据权利要求7所述的嵌入式终端设备固件升级系统,其特征在于:所述存储模块包
括两个存储区,分别单独存储主控CPU的固件升级程序和辅控CPU的固件升级程序。

说明书

嵌入式终端设备固件升级方法及系统

技术领域

本发明涉及嵌入式终端设备固件升级方法及系统,特别是涉及一种基于双CPU系
统的嵌入式终端设备固件无缝升级方法及系统。

背景技术

嵌入式技术的迅速发展使得越来越多的嵌入式终端设备应用在人们的日常生活
中,其中不乏应用在一些偏远地方,甚至工作在无人看管的场合下。

目前对嵌入式终端设备进行固件升级的方式主要有两种,一种是由维护人员亲自
到达设备现场使用仿真器或者烧写工具进行固件升级,如果设备分布在一些偏远地方,那
么这种升级方式将浪费大量的人力资源,效率低。另外一种是在线升级方式:在程序运行过
程中接收升级文件并覆盖旧程序。此种在线升级方式的不足之处在于:

(1)一旦升级过程出现异常(如中断、干扰、错码、突然断电或是设备无故重启等异
常情况)会导致升级失败,进而导致设备崩溃;

(2)新程序出现问题时无法切换回旧程序;

(3)升级完成后设备必须重新启动,会中断处理当前业务一段时间,对于工业场合
应用的设备可能会导致致命的后果。

发明内容

为了解决上述传统固件升级方式中存在的不足,提出一种新的方便快捷、可靠性
高的基于双CPU系统嵌入式终端设备固件升级方法及系统,目的在于:确保固件能够被有效
升级成功,防止系统在固件升级过程中因为异常而导致升级失败,进而导致系统崩溃;实现
双CPU系统的控制权的无缝切换,避免升级过程中设备重启间隙对系统造成的隐患。

为实现上述的目的,本发明提供一种嵌入式终端设备固件升级方法,包括以下步
骤:

外部固定电平决定初始CPU控制权;主控CPU和辅控CPU执行初始化;所述主控CPU
和辅控CPU判断是否为固件升级指令;

所述主控CPU与辅控CPU接收固件升级程序;

所述辅控CPU对固件升级程序进行校验;

所述辅控CPU将新的固件升级程序写入存储区;

所述辅控CPU接收升级指令开始升级,升级后复位运行新程序,完成主控CPU和辅
控CPU的控制权的交换;

其中,所述主控CPU与辅控CPU之间通过双向通信完成两者间指令的接收和传达。

本发明还提供一种嵌入式终端设备固件升级系统,包括:服务器,主控CPU,辅控
CPU,通信模块,存储模块以及外部固定电平,其中:

所述服务器用于提供新的固件升级程序,并向主控CPU传达指令;

所述主控CPU与辅控CPU之间通过通信接口完成双向通信连接;

所述主控CPU,用于向服务器传达指令,接收服务器发送的指令;向辅控CPU传达指
令,接收辅控CPU发送的指令;还用于控制系统的运行;

所述辅控CPU,用于向主控CPU传达指令,接收主控CPU发送的指令;还用于进行固
件升级程序的校验,并进行固件升级;

所述存储模块,用于存储固件升级程序;

所述通信模块,用于建立服务器与主控CPU以及服务器与辅控CPU间的连接;

所述外部固定电平,用于决定初始CPU控制权。

相对于现有技术的固件升级方法,本发明的基于双CPU系统的固件升级方法及系
统具有如下技术效果:

1、本发明将原来由单一CPU控制的系统改为双CPU控制,双CPU间通过双向通信连
接,实现了固件升级后,CPU控制权的无缝切换,避免了升级过程中的设备重启间隙对系统
造成的隐患。

2、本发明可以很方便的实现新旧程序之间的切换,只需通过服务器发送切换CPU
控制权指令就可实现。

3、本发明避免出现升级过程由于异常情况导致系统崩溃问题。

4、本发明固件升级方法节省人力,方便快捷,可靠性高。

5、本发明固件升级完成后无需重新启动设备,可以继续当前业务的进程。

6、本发明存储模块的设置,使得双CPU的固件升级程序可以分别独立存储。

附图说明

图1是本发明升级系统结构框架图;

图2是本发明主控CPU固件升级流程图;

图3是本发明辅控CPU固件升级流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述:

如图1所示,本发明提供一种嵌入式终端设备固件升级系统,包括:

服务器,主控CPU,辅控CPU,通信模块,存储模块以及外部固定电平,其中:

所述服务器用于提供新的固件升级程序,并向主控CPU传达指令;

所述主控CPU与辅控CPU之间通过通信接口完成双向通信连接;

所述主控CPU,用于向服务器传达指令,接收服务器发送的指令;向辅控CPU传达指
令,接收辅控CPU发送的指令;还用于控制系统的运行;

所述辅控CPU,用于向主控CPU传达指令,接收主控CPU发送的指令;还用于进行固
件升级程序的校验,并进行固件升级;

所述存储模块,用于存储固件升级程序;

所述通信模块,用于建立服务器与主控CPU以及服务器与辅控CPU间的连接;

所述外部固定电平,用于决定初始CPU控制权。

进一步地,所述存储模块包括:主控CPU的FLASH存储区和辅控CPU的FLASH存储区,
其中,所述主控CPU的FLASH存储区与主控CPU连接,用于存储主控CPU的固件升级程序;所述
辅控CPU的FLASH存储区与辅控CPU连接,用于存储辅控CPU的固件升级程序。

本实施例中,所述服务器通过通信模块连接在双CPU的相应输入管脚上,并向双
CPU传输信号;双CPU的信号通过二输入或门对外驱动外部接口。

进一步地,所述主控CPU10与辅控CPU20之间至少有一种通信接口完成双向通信,
本实施例所述双CPU间的双向通信是串口通信连接,从而实现主控CPU10与辅控CPU20间指
令的相互传送,完成CPU控制权的无缝切换。所述双CPU间的双向通信还可以是SPI连接。

进一步地,所述服务器可以通过有线或无线方式与双CPU连接。本实施例优选无线
方式连接。

如图2所示,本发明提供的一种嵌入式终端设备固件程序升级方法,在固件升级过
程中,主控CPU进行固件升级的流程如下:

首先,上电检测是否为主控CPU,外部固定电平决定初始主控CPU;主控CPU按照正
常业务流程执行初始化。

步骤S102,某一时间主控CPU与服务器通信处理程序发生中断,主控CPU需判断是
否为固件升级指令;若非固件升级指令,则继续判断是否为其他自定义指令。

步骤S103,若为固件升级指令,主控CPU通知辅控CPU准备接收固件升级程序;待收
到辅控CPU准备好接收的指令后,主控CPU向服务器回复固件升级指令。

步骤S105,服务器按照既定协议向主控CPU发送固件升级程序,主控CPU接收的同
时将固件升级程序转发给辅控CPU。

辅控CPU收到完整固件升级指令后通知主控CPU,主控CPU通知服务器已接收完新
固件升级程序并准备升级,然后主控CPU将服务器开始升级的指令转送给辅控CPU。

步骤S110,主控CPU接收辅控CPU校验失败的指令后,主控CPU向服务器发送重发固
件升级程序请求。

步骤S111,接收到辅控CPU的传送状态值指令后,主控CPU将系统当前所有状态变
量以及所有输出IO口状态传输给辅控CPU。

主控CPU发送控制权交换指令给辅控CPU,此时主控CPU关闭除了与辅控CPU通信中
断以外的所有中断,等待辅控CPU完成控制状态切换。

主控CPU接收到状态切换完成指令之后将自己所有的输出口切换为输出低电平,
主控CPU切换到新辅控CPU流程。

如图3所示,本发明提供的一种嵌入式终端设备固件程序升级方法,在固件升级过
程中,辅控CPU进行固件升级的流程如下:

首先,上电检测是否为辅控CPU,外部固定电平决定辅控CPU;辅控CPU将所有输出
口初始化为低电平,输入口正常设置为输入口。

步骤S202,某一时间辅控CPU与主控CPU通信处理程序发生中断,辅控CPU需判断是
否为固件升级指令;若非固件升级指令,则继续判断是否为其他自定义指令。

步骤S204,若为固件升级指令,辅控CPU收到主控CPU发送的接收指令后,通知主控
CPU已经准备好接受固件升级程序。

步骤S206,辅控CPU接收主控CPU转发的固件升级程序。

步骤S207,辅控CPU对固件升级程序进行校验。

步骤S208,若校验结果准确,辅控CPU将固件升级程序写入自己的辅控CPU的FLASH
存储区准备升级,同时辅控CPU通知主控CPU已接收到完整固件升级程序,辅控CPU收到开始
升级指令后进行固件升级,辅控CPU升级完之后触发看门狗复位开始运行新固件程序,在初
始化后通知主控CPU发送系统当前所有状态值。

步骤S209,若校验不准确,辅控CPU通知主控CPU校验失败,向主控CPU发送重发固
件程序升级请求。

步骤S212,辅控CPU向主控CPU发送接收完状态值指令,准备开始控制权交换。

辅控CPU接收主控CPU发送的控制权交换指令,辅控CPU完成状态切换之后通知主
控CPU已完成状态切换,开始控制系统运行。辅控CPU状态切换为新主控CPU并控制系统运
行,完成CPU控制权的交换。

结合图1、2和3,对本发明提供的一种嵌入式终端设备固件程序升级方法的步骤做
具体描述:

首先,上电检测是否为主控CPU,是否为辅控CPU,外部固定电平决定是主控CPU还
是辅控CPU;主控CPU和辅控CPU执行正常业务流程初始化:主控CPU按照正常业务流程执行
初始化,辅控CPU将所有输出口初始化为低电平,输入口正常设置为输入口。

步骤S102,某一时间主控CPU与服务器通信处理程序发生中断,主控CPU需判断是
否为固件升级指令;若非固件升级指令,则继续判断是否为其他自定义指令。

步骤S202,某一时间辅控CPU与主控CPU通信处理程序发生中断,辅控CPU需判断是
否为固件升级指令;若非固件升级指令,则继续判断是否为其他自定义指令。

步骤S103,若为固件升级指令,主控CPU通过通知辅控CPU准备接收固件升级程序。

步骤S204,辅控CPU通知主控CPU已经准备好接受固件升级程序。

步骤S105,主控CPU向服务器回复固件升级指令响应;服务器按照既定协议向主控
CPU发送固件升级程序,同时主控CPU将固件升级程序转发给辅控CPU。

步骤S206,辅控CPU接收主控CPU转发的固件升级程序。

步骤S207,辅控CPU对固件升级程序进行校验。

步骤S208,若校验结果准确,辅控CPU将固件升级程序写入自己的辅控CPU的FLASH
存储区准备升级,同时辅控CPU通知主控CPU已接收到完整固件升级程序,并由主控CPU通知
服务器已接收完新固件升级程序并准备升级。辅控CPU进行固件升级,辅控CPU升级完之后
触发看门狗复位开始运行新固件程序,在初始化后通知主控CPU准备接收系统当前所有状
态值。

步骤S209,若校验不准确,辅控CPU通知主控CPU校验失败,向主控CPU发送重发固
件程序升级请求。

步骤S110,主控CPU向服务器发送重发固件升级程序请求。

步骤S111,主控CPU将系统当前所有状态变量以及所有输出IO口状态传输给辅控
CPU。

步骤S212,辅控CPU向主控CPU发送接收完状态值指令,准备开始控制权交换。

主控CPU发送控制权交换指令给辅控CPU,此时主控CPU关闭除了与辅控CPU通信中
断以外的所有中断,等待辅控CPU完成控制状态切换。辅控CPU完成状态切换之后通知主控
CPU已完成状态切换,开始控制系统运行。

主控CPU接收到状态切换完成指令之后将自己所有的输出口切换为输出低电平,
转变为新辅控CPU,等待新主控CPU发送指令,与此同时辅控CPU状态切换为新主控CPU控制
系统运行,完成CPU控制权的交换。

若再次固件升级,则只需此状态下的新主控CPU和新辅控CPU重复以上步骤即可进
行新固件的升级。

综上所述,本发明通过双向通信连接的双CPU系统,进行固件升级解决了传统固件
升级方法在升级过程中出现异常导致升级失败进而导致设备崩溃的问题;避免升级过程中
设备重启间隙对系统造成的隐患;在保证系统不瘫痪的同时,双CPU系统进行CPU控制权的
无缝切换进而实现嵌入式终端设备固件方便快捷、可靠地升级。

以上所述,仅是本发明的较佳实施方式,不应该被视为是对本发明范围的限制,而
且本发明所主张的权利要求范围并不仅局限于此,凡熟悉此领域技艺的人士,依据本发明
所揭露的技术内容,可轻易思及的等效变化,均应落入本发明的保护范围。

嵌入式终端设备固件升级方法及系统.pdf_第1页
第1页 / 共10页
嵌入式终端设备固件升级方法及系统.pdf_第2页
第2页 / 共10页
嵌入式终端设备固件升级方法及系统.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《嵌入式终端设备固件升级方法及系统.pdf》由会员分享,可在线阅读,更多相关《嵌入式终端设备固件升级方法及系统.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明公开了一种嵌入式终端设备固件升级方法及系统,包括:外部固定电平决定初始CPU的控制权,主控CPU和辅控CPU执行初始化,判断升级指令;接收固件升级程序;辅控CPU对固件升级程序进行校验,将新的固件升级程序写入辅控CPU的FLASH存储区;进行固件升级,升级后复位运行新程序;主控CPU和辅控CPU完成CPU控制权的交换。本发明通过设置双向通信的双CPU系统进行固件升级解决了传统固件升级方法中出。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1