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

技术编号:14881500 阅读:428 留言:0更新日期:2017-03-24 04:04
本发明专利技术公开了一种嵌入式终端设备固件升级方法及系统,包括:外部固定电平决定初始CPU的控制权,主控CPU和辅控CPU执行初始化,判断升级指令;接收固件升级程序;辅控CPU对固件升级程序进行校验,将新的固件升级程序写入辅控CPU的FLASH存储区;进行固件升级,升级后复位运行新程序;主控CPU和辅控CPU完成CPU控制权的交换。本发明专利技术通过设置双向通信的双CPU系统进行固件升级解决了传统固件升级方法中出现异常导致升级失败进而导致设备崩溃的问题;避免升级过程中设备重启间隙对系统造成隐患;在保证系统不瘫痪的同时,双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控制权;主控CPU和辅控CPU执行初始化;所述主控CPU和辅控CPU判断是否为固件升级指令;所述主控CPU与辅控CPU接收固件升级程序;所述辅控CPU对固件升级程序进行校验;所述辅控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进行控制权交换的步骤...

【专利技术属性】
技术研发人员:王星星赵贤林姜岚
申请(专利权)人:中冶华天南京工程技术有限公司
类型:发明
国别省市:江苏;32

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

1