CN101593119B - 一种独占闪存组合设备空中固件升级方法及装置 - Google Patents
一种独占闪存组合设备空中固件升级方法及装置 Download PDFInfo
- Publication number
- CN101593119B CN101593119B CN 200910085633 CN200910085633A CN101593119B CN 101593119 B CN101593119 B CN 101593119B CN 200910085633 CN200910085633 CN 200910085633 CN 200910085633 A CN200910085633 A CN 200910085633A CN 101593119 B CN101593119 B CN 101593119B
- Authority
- CN
- China
- Prior art keywords
- subset
- upgrading
- master control
- controlled
- aku
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种独占闪存(Flash)组合设备空中固件升级(FOTA)方法,包括:从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;根据升级包的不同结构采用对应的升级方式对所述组合设备执行升级操作。本发明还同时公开了一种独占Flash组合设备FOTA装置,运用该方法和装置可实现对含有两个子设备的组合设备进行升级,且本发明FOTA方法中升级包下载和升级结果上报过程与现有技术相同,因此,与现有服务器之间有良好的兼容性,进而节省了网络资源。
Description
技术领域
本发明涉及空中固件升级(FOTA,Firmware Over The Air)技术,尤其涉及一种终端独占闪存(Flash)组合设备FOTA方法及装置。
背景技术
随着移动通信尤其是时分同步码分多址(TD-SCDMA)网络的发展,终端已不再是简单的通讯工具,现有的终端集成了多媒体、个人信息管理和娱乐等功能,已变得与个人计算机一样复杂。并且,由于终端制造商推出新的产品功能的周期越来越短,运营商推出新业务的周期也将越来越短,因此,需要终端制造商能给用户提供简便、有效的升级服务。
目前,FOTA作为通过空中接口远程管理、更新终端设备中固件的方法已受到越来越多的关注,并且随着终端功能的不断完善,FOTA已成为设备管理(DM,Device Management)中的关键技术,并得到了通信产业的高度重视,因而也将越来越多地应用于移动通信业务中。
利用FOTA技术不仅可以下载升级包,也可以更新终端的操作系统,这样,终端制造商就能通过移动网络将升级包发送到目标用户的终端设备上,从而对相关固件或系统进行升级,不但方便了用户,也为终端制造商节约了成本。现在主流的FOTA技术方案一般包含终端发现、升级包下载、升级包安装三个流程。现有技术中,FOTA仅用于终端中独占Flash的单设备的升级操作,还未应用于较复杂的组合式设备,如:无线接入设备iHOME的升级过程中。这里,所述iHOME为中国移动推出的用以满足日益增加的终端产品网络用户需求的组合设备,iHOME主要由两部分组成,分别为:用于无线网络接入的内置TD模块和用于家用设备接入的无线路由设备。也就是说,现有FOTA技术无法对复杂的组合式设备执行升级操作。
发明内容
有鉴于此,本发明的主要目的在于提供一种独占Flash组合设备FOTA方法及装置,可实现对含有两个子设备的组合设备进行升级。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种独占Flash组合设备空中固件升级FOTA方法,该方法包括:
从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;
所述升级包包括主控子设备升级差分包和受控子设备升级差分包,采用带校验的并行的升级方式对所述组合设备执行升级操作;或,所述升级包仅包括主控子设备升级差分包或受控子设备升级差分包,采用带校验的串行升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包,采用带校验的分步带回退的升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包,采用不带校验的升级方式对所述组合设备执行升级操作。
其中,所述组合设备包括:主控子设备和受控子设备;
相应的,从服务器下载并解析为:从服务器下载组合设备的升级包到主控子设备,由主控子设备对当前下载的升级包进行解析。
其中,所述带校验的并行的升级方式操作流程具体为:
主控子设备和受控子设备接收到各自的升级包并校验成功后,主控子设备和受控子设备同时重启,进入升级模式,主控子设备和受控子设备均完成升级后,主控子设备向服务器上报组合设备升级成功,升级过程结束;主控子设备和受控子设备中任意一个的升级包校验失败时,组合设备的升级状态为升级失败,升级过程结束。
其中,所述带校验的串行的升级方式操作流程具体为:
主控子设备或受控子设备存储自身的升级差分包后重启进入升级模式,对主控子设备升级差分包或受控子设备升级差分包进行校验,如果校验成功,则执行后续升级操作并向服务器上报升级结果,之后再从服务器上选择一次升级,下载未升级的另一子设备的升级包完成升级操作。
其中,所述带校验的分步带回退的升级方式操作流程具体为:
受控子设备检测所接收的升级包中含有受控子设备回退差分包后对受控子设备升级差分包和受控子设备回退差分包进行校验,校验成功后,受控子设备执行升级操作,如果受控子设备升级失败,则组合设备升级失败,升级过程结束;如果受控子设备升级成功,则主控子设备进入升级模式,如果主控子设备升级成功,则组合设备升级成功;如果主控子设备升级失败,则受控子设备重启进入回退模式执行回退操作,组合设备升级失败,升级过程结束。
其中,所述不带校验的分步带回退的升级方式操作流程具体为:
受控子设备检测所接收的升级包中是否含有受控子设备回退差分包,如果没有受控子设备回退差分包,则组合设备升级失败,升级过程结束;如果含有受控子设备回退差分包,则主控子设备与受控子设备同时重启,进入升级模式升级,升级完成后主控子设备与受控子设备分别重启,主控子设备根据两个子设备的升级结果执行对应的操作。
本发明还提供了一种独占Flash组合设备FOTA装置,该装置包括:
下载及解析模块,用于从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;
升级模块,所述升级包包括主控子设备升级差分包和受控子设备升级差分包时,用于采用带校验的并行的升级方式对所述组合设备执行升级操作;或,所述升级包仅包括主控子设备升级差分包或受控子设备升级差分包时,用于采用带校验的串行升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包时,用于采用带校验的分步带回退的升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包时,用于采用不带校验的升级方式对所述组合设备执行升级操作。
其中,所述组合设备包括:主控子设备和受控子设备;
相应的,所述下载及解析模块为主控子设备中的DM Client模块;
所述升级模块为:主控子设备中的第一Update Agent模块和受控子设备中的第二Update Agent模块;
其中,所述DM Client模块,用于下载并解析组合设备的升级包;校验主控子设备的升级包;接收第一Update Agent模块上报的组合设备的升级状态,并上报给服务器;
所述第一Update Agent模块,用于根据组合设备的升级包的解析结果选择组合设备对应的升级方式,并执行主控子设备的升级操作;接收主控子设备的升级包的校验结果,并向DM Client模块上报组合设备的升级结果;
所述第二Update Agent模块,用于执行受控子设备的升级操作。
其中,所述主控子设备还包括第一Flash模块;所述受控子设备还包括第二Flash模块;其中,
所述第一Flash模块,用于存储主控子设备的升级包;
所述第二Flash模块,用于存储受控子设备的升级包;
相应的,所述第一Update Agent模块,还用于将主控子设备的升级包存储于第一Flash模块中。
其中,所述主控子设备和受控子设备中均包括输入/输出I/O模块,用于受控子设备的升级包的传输、以及主控子设备和受控子设备的信息传输;
相应的,所述第一Update Agent模块,还用于将受控子设备的升级包传输到DM Mgr模块中暂存;查询或接收受控子设备的升级包接收完毕、检测或校验结果、受控子设备的升级或回退结果;
所述第二Update Agent模块,还用于上报受控子设备的升级包接收、检测或校验结果、受控子设备的升级或回退结果。
其中,所述受控子设备中还包括DM Mgr模块,用于暂存、校验和检测受控子设备的升级包;将受控子设备的升级包传输给第二Update Agent模块;
相应的,所述第二Update Agent模块,还用于接收DM Mgr模块受控子设备的升级包的校验、检测结果;接收DM Mgr模块发送的受控子设备的升级包并将受控子设备的升级包发送给第二Flash模块。
本发明提供的独占Flash组合设备FOTA方法及装置,提出了独特设计的升级包和升级流程,通过解析已下载的组合设备的升级包,根据升级包的不同结构采用对应的升级方式,对所述组合设备执行升级操作。因此,本发明可以实现对由两个子设备组成的组合设备执行升级操作。
本发明中,FOTA方法中升级包下载和升级结果上报过程与现有技术相同,因此,与现有服务器之间有良好的兼容性,进而节省了网络资源。
附图说明
图1为本发明独占Flash组合设备FOTA装置结构示意图;
图2为本发明并行升级方式的升级包结构图;
图3为本发明串行升级方式的升级包结构图;
图4为本发明分步带回退升级方式的升级包结构图;
图5为本发明不带校验升级方式的升级包结构图;
图6为本发明独占Flash组合设备FOTA方法实现流程示意图;
图7为本发明并行方式的FOTA升级实现流程示意图;
图8为本发明串行方式的FOTA升级实现流程示意图;
图9为本发明分步带回退的FOTA升级实现流程示意图;
图10为本发明不带校验的FOTA升级实现流程示意图。
具体实施方式
本发明的基本思想是:提出了独特设计的升级包和升级流程,通过解析已下载的组合设备的升级包,根据升级包的不同结构采用对应的升级方式对所述组合设备执行升级操作。
这里,所述组合设备由主控子设备和受控子设备组成;所述升级方式包括带校验的升级方式和不带校验的升级方式,其中,带校验的升级方式又分为:并行的升级方式、串行的升级方式和分步带回退的升级方式。
下面结合附图及具体实施例对本发明作进一步详细说明。
本发明的独占Flash组合设备FOTA装置包括:下载及解析模块和升级模块;其中,所述下载及解析模块,用于从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;所述升级模块,用于根据升级包的不同结构采用对应的升级方式对所述组合设备执行升级操作。
具体的,如图1所示,该独占Flash组合设备由主控子设备和受控子设备两部分组成,相应的,所述下载及解析模块为主控子设备中的设备管理客户端(DM Client)模块;所述升级模块为:主控子设备中的第一升级代理(UpdateAgent)模块和受控子设备中的第二Update Agent模块。
该装置还包括:设备管理控制(DM Mgr)模块、第一Flash模块、第二Flash模块和输入/输出(I/O)模块等;其中,
DM Client模块,用于与服务器建立数据连接并下载整个组合设备的升级包;解析整个组合设备的升级包,并校验主控子设备的升级包;接收第一UpdateAgent模块上报的整个组合设备的升级状态,并上报给服务器;
这里,所述与服务器建立数据连接并下载整个组合设备的升级包,具体的,DM Client模块接收来自服务器的PUSH消息,或接收终端提供给用户的升级选择菜单消息;并从服务器下载整个组合设备的升级包,发送到第一UpdateAgent模块中,同时暂存整个组合设备的升级包;
DM Mgr模块,用于暂存和校验I/O模块发送的受控子设备升级差分包、或I/O模块发送的受控子设备升级差分包、以及受控子设备回退差分包,或检测所暂存的升级包中是否含有受控子设备回退差分包,并把校验或检测结果发送给第二Update Agent模块;将受控子设备的升级包传输给第二Update Agent模块;
第一Update Agent模块,用于根据整个组合设备的升级包的解析结果选择整个组合设备对应的升级方式,并执行主控子设备的升级操作;将DM Client模块解析所得的主控子设备的升级包存储于主控子设备中的第一Flash模块中,将受控子设备的升级包传输到DM Mgr模块中暂存;查询或接收受控子设备的升级包接收完毕、检测或校验结果、受控子设备的升级或回退结果;接收DMClient模块主控子设备的升级包的校验结果,并向DM Client模块上报整个组合设备的升级结果;
这里,所述将主控子设备的升级包存储于主控子设备中的第一Flash模块中,具体为:第一Update Agent模块将主控子设备升级差分包、或主控子设备升级差分包和主控子设备回退差分包传输到第一Flash模块中存储;
第二Update Agent模块,用于执行受控子设备的升级操作;上报受控子设备的升级包接收、检测或校验结果、受控子设备的升级或回退结果;接收DMMgr模块受控子设备的升级包的校验、检测结果;接收DM Mgr模块发送的受控子设备的升级包并将受控子设备的升级包发送给第二Flash模块;
第一Flash模块,用于存储主控子设备升级差分包、或存储主控子设备升级差分包和主控子设备回退差分包;
第二Flash模块,用于存储受控子设备升级差分包、或存储受控子设备升级差分包和受控子设备回退差分包;
I/O模块,用于受控子设备的升级包的传输、以及主控子设备和受控子设备的信息传输;
这里,所述受控子设备的升级包包括受控子设备升级差分包、或受控子设备升级差分包和受控子设备回退差分包;所述信息包括:两个子设备相关差分包的校验和检测结果、两个子设备的升级结果等。
图2~5为本发明升级包的几种不同结构图。如图所示,图2中的升级包由包头信息、主控子设备升级差分包和受控子设备升级差分包三部分组成;图3中的升级包由包头信息和主控子设备升级差分包组成、或由包头信息和受控子设备升级差分包组成;图4中的升级包由包头信息、主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包组成;图5中的升级包由包头信息、主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包组成;
这里,所述包头信息内容可包括主控子设备和受控子设备升级包的大小、完整性等信息。
图6为本发明独占Flash组合设备FOTA方法实现流程示意图,如图6所示,该流程包括以下步骤:
步骤601:从服务器下载整个组合设备的升级包到主控子设备;
具体为:服务器或终端用户触发主控子设备中的DM Client模块与服务器建立数据连接,DM Client模块接收来自服务器的PUSH消息、或接收终端提供给用户的升级选择菜单消息;用户接受下载操作后,DM Client模块下载和暂存整个组合设备的升级包。
步骤602:主控子设备解析升级包,并根据解析的升级包中的信息确定升级包的结构;然后,根据升级包的不同结构采用对应的升级方式对所述组合设备执行步骤603a~603d的升级操作。
具体的,如果解析所得升级包包括主控子设备升级差分包和受控子设备升级差分包时,则执行步骤603a;如果解析所得升级包仅包括主控子设备升级差分包或受控子设备升级差分包时,则执行步骤603b;如果解析所得升级包包括主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包时,则执行步骤603c;如果解析所得升级包包括主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包时,则执行步骤603d;
这里,具体由主控子设备中的DM Client模块解析暂存的升级包,并发送给第一Update Agent模块,再由第一Update Agent模块根据解析结果选择对应的升级方式执行后续的升级操作。
步骤603a:采用并行的升级方式对所述组合设备执行升级操作,之后结束当前处理流程;
步骤603b:采用串行的升级方式对所述组合设备执行升级操作,之后结束当前处理流程;
步骤603c:采用分步带回退的升级方式对所述组合设备执行升级操作,之后结束当前处理流程;
步骤603d:采用不带校验的升级方式对所述组合设备执行升级操作,之后结束当前处理流程。
其中,步骤603a所述并行的升级方式流程具体如图7所示,包括以下步骤:
步骤701:主控子设备存储主控子设备升级差分包,并将受控子设备升级差分包传输给受控子设备;
具体为:主控子设备中的第一Update Agent模块将解析所得的主控子设备升级差分包存储于第一Flash模块中,并将受控子设备升级差分包通过两子设备间的输入/输出(I/O)模块传输给受控子设备中的DM Mgr模块,且暂存在DM Mgr模块中。
步骤702:主控子设备和受控子设备同时在操作系统(OS)之上分别对各自的升级差分包进行校验;
具体为:DM Client模块与DM Mgr模块同时对各自暂存的主控子设备升级差分包和受控子设备升级差分包进行校验,并将校验结果分别发送到第一Update Agent模块和第二Update Agent模块;
这里,DM Mgr模块完成对受控子设备升级差分包的校验后,将受控子设备升级差分包发送到第二Update Agent模块,第二Update Agent模块将受控子设备升级差分包传输到第二Flash模块中存储,以备后续升级使用。
本发明中,所述在OS之上对主控子设备或受控子设备的升级包进行校验,是指在主控子设备或受控子设备的应用层上对主控子设备或受控子设备的升级包进行校验;所述主控子设备的升级包为:主控子设备升级差分包、或主控子设备升级差分包和主控子设备回退差分包;所述受控子设备的升级包为:受控子设备升级差分包、或受控子设备升级差分包和受控子设备回退差分包。
步骤703:受控子设备完成校验后向主控子设备上报校验结果,或主控子设备完成校验后查询受控子设备的校验结果;
具体为:受控子设备完成校验后由第二Update Agent模块循环向第一Update Agent模块上报校验结果,或主控子设备完成校验后由第一Update Agent模块循环查询第二Update Agent模块中的校验结果,直至校验结果的上报或查询过程结束;
本发明中,所述循环上报或循环查询的目的是为了避免由于两个子设备所用的校验或升级时间不同而造成的单次上报或查询失败,即:若主控子设备校验或升级时间相对较长,则未收到受控子设备单次上报的结果;若受控子设备校验或升级时间相对较长,则主控子设备单次查询将查询不到受控子设备的校验或升级结果。
步骤704~705:主控子设备确认两个子设备的校验结果,如果两个子设备均校验成功,则两个子设备同时重启进入升级模式;如果两个子设备中任一子设备校验失败,则主控子设备向服务器上报整个组合设备的升级状态为升级失败,之后执行步骤708;
具体为:第一Update Agent模块确认两个子设备的校验结果,如果两个子设备均校验成功,则两个子设备同时重启进入升级模式,之后执行步骤706,这里,所述两个子设备的升级过程由第一Update Agent模块和第二Update Agent模块完成;如果两个子设备中任一子设备校验失败,则第一Update Agent模块通过DM Client模块向服务器上报整个组合设备的升级状态为升级失败。
步骤706:受控子设备升级完成后重启,向主控子设备上报升级完成消息或主控子设备升级完成后重启,查询受控子设备是否完成升级;
具体为:第二Update Agent模块完成升级过程后触发受控子设备重启,第二Update Agent模块循环向第一Update Agent模块上报升级完成消息或第一Update Agent模块完成升级过程后触发主控子设备重启,第一Update Agent模块循环查询第二Update Agent模块是否完成升级,直至上报或查询过程结束。
步骤707:主控子设备和受控子设备均完成升级后,主控子设备向服务器上报整个组合设备升级成功;
具体为:第一Update Agent模块完成升级并确认第二Update Agent模块完成升级后,第一Update Agent模块通过DM Client模块向服务器上报整个组合设备升级成功;
这里,由于升级前对主控子设备升级差分包和受控子设备升级差分包进行了校验且校验已成功,而且主控子设备和受控子设备同时进行升级,则只要两个子设备升级完成即证明两个子设备已升级成功。
步骤708:升级过程结束。
步骤603b所述串行的升级方式流程具体如图8所示,包括以下步骤:
步骤801:解析所得的升级包仅包括主控子设备升级差分包时,主控子设备存储主控子设备升级差分包;解析所得的升级包仅包括受控子设备升级差分包时,主控子设备将受控子设备升级差分包传输给受控子设备;
具体为:解析所得的升级包仅包括主控子设备升级差分包时,第一UpdateAgent模块将主控子设备升级差分包存储于第一Flash模块中;解析所得的升级包仅包括受控子设备升级差分包时,第一Update Agent模块将受控子设备升级差分包传输给DM Mgr模块暂存;
这里,如果解析所得的升级包仅包括受控子设备升级差分包时,DM Mgr模块完成对受控子设备升级差分包的校验后,将受控子设备升级差分包发送到第二Update Agent模块,第二Update Agent模块将受控子设备升级差分包传输到第二Flash模块中存储,以备后续升级使用。
步骤802:升级包中仅包括主控子设备升级差分包时,主控子设备重启进入升级模式;升级包中仅包括受控子设备升级差分包时,受控子设备重启进入升级模式。
步骤803:进入升级模式的主控子设备或受控子设备在OS之上对主控子设备升级差分包或受控子设备升级差分包进行校验;
具体为:DM Client模块或DM Mgr模块在OS之上对主控子设备升级差分包或受控子设备升级差分包进行校验。
步骤804:如果主控子设备或受控子设备校验失败,则执行步骤807;如果主控子设备或受控子设备校验成功,则主控子设备或受控子设备开始升级,之后执行步骤805;
具体为:如果DM Client模块或DM Mgr模块对各自的升级差分包校验失败,则执行步骤807;如果DM Client模块或DM Mgr模块对各自的升级差分包校验成功,则第一Update Agent模块和第二Update Agent模块开始执行升级操作。
步骤805:如果上述为主控子设备升级,则主控子设备升级完成后重启,向服务器上报升级结果;如果上述为受控子设备升级,则受控子设备升级完成后重启,将升级结果上报给主控子设备或主控子设备查询受控子设备的升级结果,之后主控子设备将所得的升级结果上报给服务器;
具体为:如果上述为主控子设备升级,则第一Update Agent模块完成升级操作后主控子设备重启,由DM Client模块向服务器上报升级结果;如果上述为受控子设备升级,则第二Update Agent模块完成升级操作后受控子设备重启,将升级结果上报给第一Update Agent模块或由第一Update Agent模块查询第二Update Agent模块的升级结果,之后由DM Client模块将所得的升级结果上报给服务器。
步骤806~807:再从服务器上选择一次升级,此次从服务器下载的升级包仅包括还未升级的另一子设备的升级包,重复步骤801到步骤805,最终整个组合设备的升级过程结束;
这里,如果所述整个组合设备升级前的版本号为V1,则在任一个子设备升级之后应为一中间版本Vtmp,即:下载的第一个升级包完成从V1到Vtmp的升级,服务器上还有一个从Vtmp升级到V2的升级包供另一个子设备升级使用,这样,最终完成对两个子设备组成的整个组合设备的升级。
步骤603c所述分步带回退的升级方式流程具体如图9所示,包括以下步骤:
步骤901:主控子设备存储主控子设备升级差分包,并将受控子设备升级差分包和受控子设备回退差分包传输给受控子设备;
具体为:第一Update Agent模块将主控子设备升级差分包存储于第一Flash模块中,并将受控子设备升级差分包和受控子设备回退差分包传输给受控子设备中的DM Mgr模块暂存;
这里,DM Mgr模块完成对受控子设备升级差分包的校验后,将受控子设备升级差分包发送到第二Update Agent模块,第二Update Agent模块将受控子设备升级差分包传输到第二Flash模块中存储,以备后续升级使用。
步骤902:受控子设备检测所接收的升级包中是否含有受控子设备回退差分包,如果没有受控子设备回退差分包,则通知主控子设备,由主控子设备上报服务器整个组合设备的升级失败,执行步骤909;如果含有受控子设备回退差分包,则执行步骤903;
具体为:DM Mgr模块检测所暂存的升级包中是否含有受控子设备回退差分包,如果DM Mgr模块未检测到受控子设备回退差分包,将检测结果经第二Update Agent模块发送到第一Update Agent模块,再由DM Client模块上报服务器整个组合设备的升级失败;如果DM Mgr模块检测到受控子设备回退差分包,则执行后续操作。
这里,所述受控子设备对升级包进行检测的目的在于:避免受控子设备的升级包在传输过程中损坏。
步骤903:受控子设备在OS之上对受控子设备升级差分包和受控子设备回退差分包进行校验,如果校验失败,则执行步骤909;如果校验成功,则执行步骤904;
具体为:受控子设备的DM Mgr模块在OS之上对受控子设备升级差分包和受控子设备回退差分包进行校验,如果校验失败,则结束升级过程;如果校验成功,则执行后续操作。
这里,在本步骤执行过程中,主控子设备仍然保持运行状态。
步骤904:受控子设备执行升级操作,升级完成后通知主控子设备升级结果,或主控子设备查询受控子设备的升级结果;
具体为:第二Update Agent模块执行完升级操作后将升级结果发送给Update Agent模块,或由第一Update Agent模块查询第二Update Agent模块的升级结果。
步骤905:主控子设备判断受控子设备的升级结果,如果升级失败,则上报服务器整个组合设备升级失败,执行步骤909;如果升级成功,则执行步骤906;
具体为:第一Update Agent模块判断第二Update Agent模块所发送的升级结果,如果升级失败,则由DM Client模块上报服务器这整个组合设备升级失败;如果升级成功,则执行后续操作。
步骤906:主控子设备在OS之上对主控子设备升级差分包进行校验,如果校验失败,则执行步骤909;如果校验成功,则执行步骤907;
具体为:主控子设备的DM Client模块在OS之上对主控子设备升级差分包进行校验,如果校验失败,则升级过程结束;如果校验成功,则执行后续操作。
步骤907:主控子设备执行升级操作,如果主控子设备升级成功,则上报服务器整个组合设备升级成功,执行步骤909;如果主控子设备升级失败,则将主控子设备升级失败的结果通知受控子设备,执行步骤908;
具体为:第一Update Agent模块执行升级操作,如果第一Update Agent模块升级成功,则由DM Client模块上报服务器整个组合设备升级成功,升级过程结束;如果第一Update Agent模块升级失败,则第一Update Agent模块将升级失败的结果通知第二Update Agent模块,执行后续操作。
这里,在本步骤执行过程中,受控子设备仍然保持运行状态。
步骤908:受控子设备收到主控子设备反馈的升级失败的结果,重启进入回退模式,利用回退差分包进行回退,回退完成后通知主控子设备或主控子设备查询受控子设备的回退结果,之后主控子设备向服务器上报整个组合设备升级失败;
具体为:第二Update Agent模块收到第一Update Agent模块反馈的升级失败的结果后重启进入回退模式,回退完成后通知第一Update Agent模块或第一Update Agent模块查询第二Update Agent模块的回退结果,之后由DM Client模块向服务器上报整个组合设备升级失败。
这里,所述回退为回退到升级前的版本,此外,由于升级差分包和回退差分包是成对设计的,如果升级能成功,则回退一定能成功;在受控子设备回退过程中,主控子设备一直保持运行状态。
步骤909:升级过程结束。
步骤603d所述不带校验的升级方式流程具体如图10所示,包括以下步骤:
步骤1001:主控子设备存储主控子设备升级差分包和主控子设备回退差分包,并将受控子设备升级差分包和受控子设备回退差分包传输给受控子设备;
具体为:第一Update Agent模块将主控子设备升级差分包和主控子设备回退差分包存储于第一Flash模块中,并将受控子设备升级差分包和受控子设备回退差分包传输给受控子设备中的DM Mgr模块暂存;
这里,DM Mgr模块完成对受控子设备升级差分包的校验后,将受控子设备升级差分包发送到第二Update Agent模块,第二Update Agent模块将受控子设备升级差分包传输到第二Flash模块中存储,以备后续升级使用。
步骤1002~1003:受控子设备检测所接收的升级包中是否含有受控子设备回退差分包,如果没有受控子设备回退差分包,则通知主控子设备,由主控子设备上报服务器整个组合设备升级失败,之后执行步骤1007;如果含有受控子设备回退差分包,则执行步骤1004;
具体为:DM Mgr模块检测所暂存的升级包中是否含有受控子设备回退差分包,如果DM Mgr模块未检测到受控子设备回退差分包,将检测结果经第二Update Agent模块发送到第一Update Agent模块,再由DM Client模块上报服务器整个组合设备的升级失败;如果DM Mgr模块检测到受控子设备回退差分包,则执行后续操作。
这里,所述受控子设备对升级包进行检测的目的在于:避免受控子设备的升级包在传输过程中损坏。
步骤1004:受控子设备通知主控子设备升级包接收完毕,主控子设备收到受控子设备升级包接收完毕的通知后,主控子设备与受控子设备同时重启进入升级模式升级;
具体为:第二Update Agent模块将升级包接收完毕的结果发送到第一Update Agent模块,之后主控子设备与受控子设备同时重启进入升级模式升级。
步骤1005:升级完成后主控子设备与受控子设备分别重启,受控子设备将升级结果上报给主控子设备,主控子设备根据两个子设备的升级结果,对出现的四种情况执行对应的操作:如果主控子设备和受控子设备均升级成功,则执行步骤1006e;如果主控子设备升级成功,受控子设备升级失败,则执行步骤1006f;如果主控子设备升级失败,受控子设备升级成功,则执行步骤1006g;如果主控子设备和受控子设备均升级失败,则执行步骤1006h;
步骤1006e:主控子设备和受控子设备删除各自的回退差分包,之后主控子设备上报服务器整个组合设备升级成功,之后执行步骤1007;
具体为:第一Update Agent模块确定第一Update Agent模块和第二UpdateAgent模块均升级成功时,第一Update Agent模块和第二Update Agent模块删除各自的回退差分包,之后由DM Client模块上报服务器整个组合设备升级成功,升级过程结束。
步骤1006f:主控子设备通知受控子设备删除受控子设备回退差分包,主控子设备重启进入回退模式,利用回退差分包进行回退,回退成功后上报服务器整个组合设备升级失败,之后执行步骤1007;
具体为:第一Update Agent模块确定第一Update Agent模块升级成功而第二Update Agent模块失败时,主控子设备重启进入回退模式,第一Update Agent模块利用回退差分包进行回退,回退成功后由DM Client模块上报服务器整个组合设备升级失败,升级过程结束。
步骤1006g:主控子设备删除主控子设备回退差分包,并通知受控子设备重启进入回退模式,利用受控子设备回退差分包进行回退,回退完成后上报主控子设备,主控子设备上报服务器整个组合设备升级失败,之后执行步骤1007;
具体为:第一Update Agent模块确定第一Update Agent模块升级失败而第二Update Agent模块成功时,第一Update Agent模块删除主控子设备回退差分包,并通知受控子设备重启进入回退模式,第二Update Agent模块利用受控子设备回退差分包进行回退,回退完成后上报第一Update Agent模块,由DMClient模块上报服务器整个组合设备升级失败,升级过程结束。
步骤1006h:主控子设备和受控子设备删除各自的回退差分包,之后主控子设备上报服务器整个组合设备升级失败,之后执行步骤1007;
具体为:第一Update Agent模块确定第一Update Agent模块和第二UpdateAgent模块均升级失败时,由DM Client模块上报服务器整个组合设备升级失败,升级过程结束。
步骤1007:升级过程结束。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种独占闪存组合设备空中固件升级方法,其特征在于,该方法包括:
从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;
所述升级包包括主控子设备升级差分包和受控子设备升级差分包,采用带校验的并行的升级方式对所述组合设备执行升级操作;或,所述升级包仅包括主控子设备升级差分包或受控子设备升级差分包,采用带校验的串行升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包,采用带校验的分布带回退的升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包,采用不带校验的升级方式对所述组合设备执行升级操作。
2.根据权利要求1所述的独占闪存组合设备空中固件升级方法,其特征在于,所述组合设备包括:主控子设备和受控子设备;
相应的,从服务器下载并解析为:从服务器下载组合设备的升级包到主控子设备,由主控子设备对当前下载的升级包进行解析。
3.根据权利要求1所述的独占闪存组合设备空中固件升级方法,其特征在于,所述带校验的并行的升级方式操作流程具体为:
主控子设备和受控子设备接收到各自的升级包并校验成功后,主控子设备和受控子设备同时重启,进入升级模式,主控子设备和受控子设备均完成升级后,主控子设备向服务器上报组合设备升级成功,升级过程结束;主控子设备和受控子设备中任意一个的升级包校验失败时,组合设备的升级状态为升级失败,升级过程结束。
4.根据权利要求1所述的独占闪存组合设备空中固件升级方法,其特征在于,所述带校验的串行的升级方式操作流程具体为:
主控子设备或受控子设备存储自身的升级差分包后重启进入升级模式,对主控子设备升级差分包或受控子设备升级差分包进行校验,如果校验成功,则执行后续升级操作并向服务器上报升级结果,之后再从服务器上选择一次升级,下载未升级的另一子设备的升级包完成升级操作。
5.根据权利要求1所述的独占闪存组合设备空中固件升级方法,其特征在于,所述带校验的分布带回退的升级方式操作流程具体为:
受控子设备检测所接收的升级包中含有受控子设备回退差分包后对受控子设备升级差分包和受控子设备回退差分包进行校验,校验成功后,受控子设备执行升级操作,如果受控子设备升级失败,则组合设备升级失败,升级过程结束;如果受控子设备升级成功,则主控子设备进入升级模式,如果主控子设备升级成功,则组合设备升级成功;如果主控子设备升级失败,则受控子设备重启进入回退模式执行回退操作,组合设备升级失败,升级过程结束。
6.根据权利要求1所述的独占闪存组合设备空中固件升级方法,其特征在于,所述不带校验的分布带回退的升级方式操作流程具体为:
受控子设备检测所接收的升级包中是否含有受控子设备回退差分包,如果没有受控子设备回退差分包,则组合设备升级失败,升级过程结束;如果含有受控子设备回退差分包,则主控子设备与受控子设备同时重启,进入升级模式升级,升级完成后主控子设备与受控子设备分别重启,主控子设备根据两个子设备的升级结果执行对应的操作。
7.一种独占闪存组合设备空中固件升级装置,其特征在于,该装置包括:
下载及解析模块,用于从服务器下载并解析组合设备的升级包,确定当前下载升级包的结构;
升级模块,所述升级包包括主控子设备升级差分包和受控子设备升级差分包时,用于采用带校验的并行的升级方式对所述组合设备执行升级操作;或,所述升级包仅包括主控子设备升级差分包或受控子设备升级差分包时,用于采用带校验的串行升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、受控子设备升级差分包和受控子设备回退差分包时,用于采用带校验的分布带回退的升级方式对所述组合设备执行升级操作;或,所述升级包包括主控子设备升级差分包、主控子设备回退差分包、受控子设备升级差分包和受控子设备回退差分包时,用于采用不带校验的升级方式对所述组合设备执行升级操作。
8.根据权利要求7所述的独占闪存组合设备空中固件升级装置,其特征在于,所述组合设备包括:主控子设备和受控子设备;
相应的,所述下载及解析模块为主控子设备中的设备管理客户端DM Client模块;
所述升级模块为:主控子设备中的第一升级代理Update Agent模块和受控子设备中的第二Update Agent模块;
其中,所述DM Client模块,用于下载并解析组合设备的升级包;校验主控子设备的升级包;接收第一Update Agent模块上报的组合设备的升级状态,并上报给服务器;
所述第一Update Agent模块,用于根据组合设备的升级包的解析结果选择组合设备对应的升级方式,并执行主控子设备的升级操作;接收主控子设备的升级包的校验结果,并向DM Client模块上报组合设备的升级结果;
所述第二Update Agent模块,用于执行受控子设备的升级操作。
9.根据权利要求7或8所述的独占闪存组合设备空中固件升级装置,其特征在于,所述主控子设备还包括第一闪存模块;所述受控子设备还包括第二闪存模块;其中,
所述第一闪存模块,用于存储主控子设备的升级包;
所述第二闪存模块,用于存储受控子设备的升级包;
相应的,所述第一Update Agent模块,还用于将主控子设备的升级包存储于第一闪存模块中。
10.根据权利要求9所述的独占闪存组合设备空中固件升级装置,其特征在于,所述主控子设备和受控子设备中均包括输入/输出I/O模块,用于受控子设备的升级包的传输、以及主控子设备和受控子设备的信息传输;
相应的,所述第一Update Agent模块,还用于将受控子设备的升级包传输到设备管理控制DM Mgr模块中暂存;查询或接收受控子设备的升级包接收完毕、检测或校验结果、受控子设备的升级或回退结果;
所述第二Update Agent模块,还用于上报受控子设备的升级包接收、检测或校验结果、受控子设备的升级或回退结果。
11.根据权利要求10所述的独占闪存组合设备空中固件升级装置,其特征在于,所述受控子设备中还包括DM Mgr模块,用于暂存、校验和检测受控子设备的升级包;将受控子设备的升级包传输给第二Update Agent模块;
相应的,所述第二Update Agent模块,还用于接收DM Mgr模块受控子设备的升级包的校验、检测结果;接收DM Mgr模块发送的受控子设备的升级包并将受控子设备的升级包发送给第二闪存模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910085633 CN101593119B (zh) | 2009-05-26 | 2009-05-26 | 一种独占闪存组合设备空中固件升级方法及装置 |
PCT/CN2009/075868 WO2010135897A1 (zh) | 2009-05-26 | 2009-12-23 | 一种独占闪存组合设备空中固件升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910085633 CN101593119B (zh) | 2009-05-26 | 2009-05-26 | 一种独占闪存组合设备空中固件升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101593119A CN101593119A (zh) | 2009-12-02 |
CN101593119B true CN101593119B (zh) | 2013-07-03 |
Family
ID=41407789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910085633 Active CN101593119B (zh) | 2009-05-26 | 2009-05-26 | 一种独占闪存组合设备空中固件升级方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101593119B (zh) |
WO (1) | WO2010135897A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593119B (zh) * | 2009-05-26 | 2013-07-03 | 中兴通讯股份有限公司 | 一种独占闪存组合设备空中固件升级方法及装置 |
CN101916200B (zh) * | 2010-08-03 | 2015-08-26 | 中兴通讯股份有限公司 | 终端升级的方法、终端升级回退的方法和升级管理中心 |
CN103150193A (zh) * | 2013-04-10 | 2013-06-12 | 天津三星光电子有限公司 | 一种移动终端的软件升级方法 |
CN106325892A (zh) * | 2015-06-15 | 2017-01-11 | 中兴通讯股份有限公司 | 差分回退升级方法及装置 |
CN105897863A (zh) * | 2016-03-28 | 2016-08-24 | 努比亚技术有限公司 | 移动终端版本升级回退方法及装置 |
CN107402795A (zh) * | 2017-08-04 | 2017-11-28 | 北京煜邦电力技术股份有限公司 | 一种固件升级方法和系统 |
CN109905256A (zh) * | 2017-12-07 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 一种固件更新方法和装置 |
CN108667908B (zh) * | 2018-04-13 | 2021-04-06 | 广州虎牙信息科技有限公司 | 客户端交互时的信息反馈方法、装置、设备及存储介质 |
CN110337038B (zh) * | 2019-07-09 | 2021-05-11 | 深圳市友华通信技术有限公司 | 融合网关设备的升级方法 |
CN111506326A (zh) * | 2020-04-07 | 2020-08-07 | Oppo(重庆)智能科技有限公司 | 终端设备的升级方法、装置、设备及存储介质 |
CN115729573A (zh) * | 2021-09-01 | 2023-03-03 | 富联精密电子(天津)有限公司 | 固件升级方法、装置、芯片及计算机存储介质 |
CN114019843B (zh) * | 2021-10-12 | 2023-11-28 | 浙江中控技术股份有限公司 | 一种基于fpga实现hart通信的用户空间i/o框架 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384997A (zh) * | 2006-03-01 | 2009-03-11 | 安讯士有限公司 | 用于对多个装置进行升级的方法及系统 |
CN101383847A (zh) * | 2008-08-25 | 2009-03-11 | 中兴通讯股份有限公司 | 一种无线数据终端的固件升级方法及装置 |
CN101420431A (zh) * | 2008-11-28 | 2009-04-29 | 中兴通讯股份有限公司 | Fota服务器、终端及其软件版本的处理方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100424644C (zh) * | 2005-12-30 | 2008-10-08 | 北京华旗资讯数码科技有限公司 | 一种固件程序在线升级的方法及硬件设备 |
CN100589078C (zh) * | 2007-08-21 | 2010-02-10 | 中兴通讯股份有限公司 | 多核终端的固件升级方法 |
CN101399852B (zh) * | 2007-09-26 | 2011-04-20 | 中兴通讯股份有限公司 | 通过网络接口实现无线接入盒升级的方法 |
CN101593119B (zh) * | 2009-05-26 | 2013-07-03 | 中兴通讯股份有限公司 | 一种独占闪存组合设备空中固件升级方法及装置 |
-
2009
- 2009-05-26 CN CN 200910085633 patent/CN101593119B/zh active Active
- 2009-12-23 WO PCT/CN2009/075868 patent/WO2010135897A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384997A (zh) * | 2006-03-01 | 2009-03-11 | 安讯士有限公司 | 用于对多个装置进行升级的方法及系统 |
CN101383847A (zh) * | 2008-08-25 | 2009-03-11 | 中兴通讯股份有限公司 | 一种无线数据终端的固件升级方法及装置 |
CN101420431A (zh) * | 2008-11-28 | 2009-04-29 | 中兴通讯股份有限公司 | Fota服务器、终端及其软件版本的处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2010135897A1 (zh) | 2010-12-02 |
CN101593119A (zh) | 2009-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593119B (zh) | 一种独占闪存组合设备空中固件升级方法及装置 | |
CN107769949B (zh) | 一种应用组件部署方法及部署节点 | |
CN100484288C (zh) | 通过空中传送来下载和升级无线设备的终端软件 | |
CN106484450A (zh) | 一种软件升级方法及装置 | |
EP2456257B1 (en) | Method and system for upgrading wireless data card | |
CN106484448A (zh) | 一种软件升级方法及装置 | |
CA2517548A1 (en) | Update system and method for updating a scanning subsystem in a mobile communication framework | |
CN101909282B (zh) | 终端操作的触发方法、装置及系统 | |
CN103685487A (zh) | 无线通信网络中的子节点升级方法 | |
CN105224362A (zh) | 上位机对下位机进行程序升级的方法及系统 | |
CN106886438A (zh) | 基于fpga的系统远程更新方法 | |
CN105897461A (zh) | 多系统ota升级方法和多系统设备 | |
CN106850241A (zh) | 一种车载obd终端及其远程升级方法 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
CN103248424A (zh) | 光模块固件升级方法及系统 | |
CN102915249A (zh) | 远程地实现固件升级的方法和装置 | |
CN102215479A (zh) | 升级包下载及安装的方法、服务器及系统 | |
WO2022142153A1 (zh) | 电表升级方法、系统、智能电表及存储介质 | |
CN103475512A (zh) | 物联网远程管理平台迁移方法、装置及物联网终端 | |
CN101056209A (zh) | 一种无线终端映像文件维护方法及设备 | |
CN111538515A (zh) | 一种电能表程序的升级方法、装置和设备 | |
CN104965747A (zh) | 软件升级的方法及装置 | |
CN104333856A (zh) | 一种Java SIM卡转网的方法、SIM卡、服务器和系统 | |
CN106951296A (zh) | 一种软件更新方法及装置 | |
CN101197959B (zh) | 一种终端的控制方法、系统和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |