专利名称:Ipmc在线升级方法和装置的制作方法
技术领域:
本发明涉及通信技术领域,特别涉及一种IPMC在线升级方法和装置。
背景技术:
IPMC(Intelligent Platform Management Controller,智能平台管理控制器)的在线升级是ATCA (Advanced Telecommunications ComputingArchitecture,高级电信计算体系结构)平台中的一项重要操作维护功能。由于IPMC在线升级的操作细节是与特定硬件实现绑定的,因此IPMIvl. 5 (Intelligent Platform Management Interface Specification v 1. 5,智能平台管理接口规范)规范和PICMG3. 0 (PCI Industrial ComputerMa皿facturersGroup,PCI工业计算机制造组织)规范均没有对IPMC具体升级操作流程进行规定。 ATCA平台中IPMC负责本板的槽位号获取,上下电控制,复位控制,指示灯控制,温
度、电压和转速监控等重要功能。如图1所示,为现有技术ATCA平台连接框图,IPMC由机
框管理控制器ShMC(Shel预anagementController,机框管理控制器)管理,ShMC与IPMC间
采用IPMB (IntelligentPlatform Management Bus,智能平台管理总线)总线通信。 现有技术对IPMC在线升级主要采用如下两种方式 1) IPMC采用一个启动控制区和两个启动映像文件区升级方式 在该方式中,IPMC需有足够的FLASH空间,将FLASH空间划分为三个部分启动控
制区、启动映像区1和启动映像区2。如图2所示,为现有技术中FLASH空间配置图,启动映
像区中的文件一个作为主映像文件,另一个作为备用映像文件,启动控制区放置映像控制
参数,由系统上层软件配置。系统在启动映像文件之前,根据启动控制区参数来决定装载或
升级FLASH中哪一个区域的映像文件。 该方式的缺点是要求必须有足够的存储空间,用于存储启动控制区的设置参数和两个启动映像文件;其次还要求有操作系统支持,否则该升级方式不可实现;并且该方式存在资源大量浪费的问题,并且整个系统的成本较高。
2)IPMC采用互相升级方式 如图3所示,为现有技术中IPMC使用互相升级方式的示意图。通过框内一个提供升级单板A来升级框内其它被升级单板的IPMC,在其它被升级单板的IPMC升级完后,由其它单板升级单板A的IPMC。这样通过互相升级来完成框内所有单板的IPMC在线升级。在该方式中,升级文件通过BT(Block Transfer,块传输)口传输到提供升级单板A的IPMC,再由IPMB总线传送到被升级单板B,完成B板IPMC的在线升级。 该方式的缺点是,提供升级单板A的处理器在升级IPMC时会较长时间占用处理器资源,并且BT 口在此过程中不能再使用,因此会影响到该单板处理器处理与BT接口相关的功能。另外,在一个框内必须选择一个提供升级单板A,当其它单板升级完成后,再来升级A板,所以相同类型的单板不能一次升级完成,需要两次升级操作。
发明内容
本发明的目的在于提供一种实现IPMC在线升级的简单方法,避免上述方案一中提到对硬件依赖程度比较大,成本较高的缺点;同时还能够解决方案二中操作步骤比较繁杂的问题。 为达到上述目的,本发明一方面提出一种智能平台管理控制器IPMC在线升级方法,包括至少一个IPMC,各个所述IPMC通过智能平台管理总线IPMB与机框管理控制器ShMC相连,所述IPMC内分为应用程序APP用户代码区和应用中升级IAP在线升级区,所述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见,包括以下步骤所述ShMC通过所述IPMB向所述IPMC发送存储区切换命令;所述IPMC根据所述存储区切换命令从所述APP用户代码区切换至所述IAP在线升级区;所述ShMC通过所述IPMB向所述IPMC发送升级命令和升级文件数据;所述IPMC根据接收的所述升级命令和升级文件数据对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。 作为本发明的一个实施例,还包括设置在所述IPMC上电复位后,所述IAP在线升级区可见。 在上述实施例中,还包括在所述IPMC上电复位后,开启定时器;所述IPMC判断在所述定时器超时前是否收到所述ShMC的升级命令;如果在所述定时器超时前收到所述ShMC的升级命令,则所述IPMC关闭所述定时器进行在线升级;如果在所述定时器超时前未收到所述ShMC的升级命令,则所述IPMC从所述IAP在线升级区切换至所述APP用户代码区。 作为本发明的一个实施例,所述IPMC根据接收的所述升级命令和升级文件数据对所述APP用户代码区擦除并重新编程包括所述IPMC接收所述ShMC发送的升级命令;所述IPMC根据所述升级命令对所述APP用户代码区进行擦除;所述IPMC接收所述ShMC发送的所述升级文件数据;所述IPMC根据所述升级文件数据对所述APP用户代码区进行编程。
在上述实施例中,在所述IPMC根据所述升级命令对所述APP用户代码区进行擦除还包括所述IPMC向所述ShMC返回升级命令的响应包,所述ShMC在收到所述升级命令的响应包后向所述IPMC发送升级文件数据。 在上述实施例中,所述IPMC接收所述ShMC发送的所述升级文件数据包括所述IPMC接收所述ShMC发送的升级文件数据包后,向所述ShMC返回对应的响应包;所述ShMC在正确接收到所述IPMC返回的所述响应包后,继续向所述IPMC发送后续的升级文件数据包,如果所述ShMC未收到或未正确接收到所述IPMC返回的所述响应包,则所述ShMC将所述升级文件数据包重传给所述IPMC。 作为本发明的一个实施例,在所述IPMC根据所述存储区切换命令从所述APP用户代码区切换至所述IAP在线升级区之后,还包括所述IPMC向所述ShMC返回所述存储区切换命令的响应包,所述ShMC在收到所述存储区切换命令的响应包后向所述IPMC发送升级命令。 在上述实施例中,所述IPMC为具有自擦除存储器的控制器。具体地,所述IPMC可为可执行自擦除的Flash单片机。 在上述实施例中,所述升级文件数据包中包含有版本信息和循环冗余校验CRC校验信息。 在上述实施例中,在每条升级消息内都具有至少两个校验码。
在上述实施例中,在每条升级消息内都具有其对应的序列号。 本发明另一方面还提出一种IPMC在线升级系统,包括ShMC和至少一个IPMC,各个所述IPMC通过IPMB与所述ShMC相连,所述IPMC内分为APP用户代码区和IAP在线升级区,所述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见,所述ShMC,用于通过所述IPMB对所述IPMC进行升级,向所述IPMC发送存储区切换命令、升级命令和升级文件数据;所述IPMC,用于接收所述ShMC发送的存储区切换命令,并根据所述存储区切换命令从所述APP用户代码区切换至所述IAP在线升级区,并根据接收的所述升级命令和升级文件数据对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。
作为本发明的一个实施例,所述IPMC在上电复位后,默认为所述IAP在线升级区可见。 作为本发明的一个实施例,所述IPMC,用于在所述IPMC上电复位后,开启定时器,
并判断在所述定时器超时前是否收到所述ShMC的升级命令;如果在所述定时器超时前收
到所述ShMC的升级命令,则关闭所述定时器进行在线升级;如果在所述定时器超时前未收
到所述ShMC的升级命令,则从所述IAP在线升级区切换至所述APP用户代码区。 在上述实施例中,所述升级文件数据包中包含有版本信息和循环冗余校验CRC校
验信息。 在上述实施例中,所述IPMC在收到并执行所述ShMC通过所述IPMB向所述IPMC发送存储区切换命令、升级命令和升级文件数据之后,向所述ShMC返回相应的响应包,所述ShMC在正确地收到所述响应包后进行进一步的操作,如果未收到或未正确地收到所述响应包后则将相应的命令重传给所述IPMC。 在上述实施例中,所述IPMC为具有自擦除存储器的控制器。具体地,所述IPMC可为可执行自擦除的Flash单片机。 在上述实施例中,在每条升级消息内都具有至少两个校验码。
在上述实施例中,在每条升级消息内都具有其对应的序列号。 本发明再一方面还提出一种ShMC,包括IPMC升级功能模块,用于对通过IPMB与所述ShMC相连的各个IPMC进行升级,向所述IPMC发送存储区切换命令、升级命令和升级文件数据,其中所述IPMC内分为APP用户代码区和IAP在线升级区,所述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见。 作为本发明的一个实施例,所述IPMC升级功能模块包括发送子模块、控制子模块和接收子模块,所述发送子模块,用于根据所述控制子模块的控制指令向所述IPMC发送存储区切换命令、升级命令和升级文件数据;所述接收子模块,用于接收所述IPMC返回的响应包;所述控制子模块,用于在所述接收子模块正确地收到所述响应包后进行进一步的操作,如果所述接收子模块未收到或未正确地收到所述响应包后则将相应的命令重传给所述IPMC。 在上述实施例中,所述升级文件数据包中包含有版本信息和循环冗余校验CRC校验信息。 在上述实施例中,在每条升级消息内都具有至少两个校验码。
在上述实施例中,在每条升级消息内都具有其对应的序列号。 本发明再一方面还提出一种IPMC,,且所述IPMC内分为APP用户代码区和IAP在线升级区,所述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见,还包括APP接收模块、APP切换控制模块、IAP接收模块和IAP控制模块,所述APP接收模块,用于接收ShMC通过IPMB向所述IPMC发送的存储区切换命令;所述APP控制模块,用于根据所述存储区切换命令从所述APP用户代码区切换至所述IAP在线升级区;所述IAP接收模块,用于接收所述ShMC发送的升级命令和升级文件数据;所述IAP控制模块,用于根据所述IAP接收模块接收的所述升级命令和升级文件数据对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。 作为本发明的一个实施例,所述IPMC在上电复位后,默认为所述IAP在线升级区可见。 作为本发明的一个实施例,所述IAP控制模块包括定时器子模块、判断子模块和控制子模块,所述定时器子模块,用于在所述IPMC上电复位后,开启定时器;所述判断子模块,用于判断在所述定时器超时前是否收到所述ShMC的升级命令;所述控制子模块,用于在所述判断子模块判断所述定时器超时前收到所述ShMC的升级命令,则关闭所述定时器进行在线升级;如果在所述定时器超时前未收到所述ShMC的升级命令,则从所述IAP在线升级区切换至所述APP用户代码区。 作为本发明的一个实施例,所述IAP控制模块,还用于根据所述升级命令对所述APP用户代码区进行擦除,并根据所述升级文件数据对所述APP用户代码区进行编程。
作为本发明的一个实施例,还包括IAP响应包返回模块,用于在所述IPMC执行切换后,对所述APP用户代码区进行擦除后,或正确接收到升级文件数据包之后,向所述ShMC返回相应的响应包。 在上述实施例中,所述IAP接收模块包括解析子模块,用于解析所述升级文件数据包中包含的版本信息和循环冗余校验CRC校验信息。 在上述实施例中,所述IAP接收模块包括解析子模块,用于解析每条升级消息内的校验码。 在上述实施例中,所述IAP接收模块包括解析子模块,用于解析每条升级消息内的序列号。 在上述实施例中,所述IPMC为具有自擦除存储器的控制器。具体地,所述IPMC可为可执行自擦除的Flash单片机。 本发明中ShMC对各个IPMC同时进行升级且一次完成,不需要反复操作,并且本发明中IPMC不需要太大的存储空间。并且本发明对IPMC进行在线升级时对其他功能没有影响,可以大批量、高可靠地对IPMC进行在线升级。本发明成本低,实现简单,不需要增加任何外部器件。 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中 图1为现有技术ATCA平台连接框图; 图2为现有技术中FLASH空间配置图; 图3为现有技术中IPMC使用互相升级方式的示意图; 图4为本发明实施例Flash程序空间的配置示意图; 图5为本发明实施例IPMC在线升级方法的流程图; 图6为本发明实施例IPMC在线升级系统的结构图。
具体实施例方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明通过ShMC对各个IPMC进行升级,通过IPMB总线向被升级的IPMC发送升级 命令和升级文件数据,并将IPMC分为APP(A卯licationProgramm,应用程序)用户代码区和 IAP(In-A卯lication Programming,应用中升级)在线升级区两部分,这样在升级时IPMC 从APP用户代码区切换至IAP在线升级区,由IAP在线升级区对APP用户代码区进行擦除 和重新编程,从而实现对所述IPMC的在线升级。作为本发明的一个实施例,IPMC可为具有 自擦除存储器的控制器,更为具体地,IPMC可为可执行自擦除的Flash单片机。以下实施 例将以可执行自擦除的Flash单片机为例进行描述,但是需要说明的是下述实施例仅是为 了更清楚,更完整的理解本发明的上述思想,并不是说本发明只能够通过可执行自擦除的 Flash单片机实现,其他具有自擦除存储器的控制器,或者其他的控制器也可通过本发明的 上述思想实现相同的目的,达到相同的技术效果。 其中,自擦除的FLASH控制器(如单片机)的程序空间可以根据寄存器进行不同 方式的配置。作为本发明的一个实施例,如图4所示,为本发明实施例Flash程序空间的配 置示意图,在该实施例中,将单片机的程序存储空间分为IAP在线升级区和APP用户代码区 两个部分,其中,IAP在线升级区完成APP用户代码区的软件升级功能,包含板卡插入时接 入到ShMC的基本IPMI功能,IPMB总线驱动,升级文件接收功能和编程APP用户代码区功 能,以及升级完成后的重启生效功能。而APP用户代码区包含用户应用程序代码和存储区 切换代码。用户应用程序代码实现IPMI规范和PICMG3. 0规范规定的全部IPMC的功能,存 储区切换代码完成在线升级时由APP用户代码区切换到IAP在线升级区功能。
更为具体地,在上述实施例中,由于该单片机的地址范围是16bit,所以程序只能 在64KB空间内寻址。作为一个实施例,该单片机的整个程序空间为72KB,有8KB不可寻址。 其程序空间的具体使用如下在IPMC运行用户应用程序代码时,APP用户代码区的64KB空 间可见,IAP在线升级区不可见,也不可寻址。在对IPMC进行在线升级时,IAP在线升级区 可见,而APP用户代码区的低8KB空间不可见,但整个APP用户代码区可以通过IAP在线升 级区采用专用的IAP编程指令访问。因此本发明能够实现IAP在线升级区对APP用户代码区的在线编程。其中,单片机程序存储区切换功能就是使IAP在线升级区或APP用户代码 区的低8KB占用程序地址空间的低8KB地址。作为本发明的一个实施例,具体切换由单片 机提供的寄存器来控制,在该实施例中IPMC上电后,默认为IAP在线升级区可见。更为优 选地,为了避免误操作改写代码而造成程序永久性不可恢复的现象,本实施例在对APP用 户代码区升级时,必须使用单片机内部的IAP编程指令。 如图5所示,为本发明实施例IPMC在线升级方法的流程图,在该实施例中包括至 少一个IPMC,各个IPMC通过IPMB与ShMC相连,IPMC为具有自擦除Flash的控制器(如具 有自擦除Flash的单片机),且IPMC内的Flash分为APP用户代码区和IAP在线升级区,所 述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见, 所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见。该实施例包括以下步 骤 步骤S501, ShMC通过IPMB向IPMC发送存储区切换命令。 步骤S502, IPMC根据存储区切换命令从APP用户代码区切换至IAP在线升级区。 步骤S503, IPMC向ShMC返回存储区切换命令的响应包。 步骤S504, ShMC在收到存储区切换命令的响应包后向IPMC发送升级命令。 步骤S505, IPMC根据升级命令对APP用户代码区进行擦除。 步骤S506, IPMC向ShMC返回升级命令的响应包。 步骤S507, ShMC向IPMC发送升级文件数据包,其中,在IPMC收到ShMC的升级文 件数据包后都要向ShMC返回相应的响应包,如果ShMC未收到或未正确接收到IPMC返回的 响应包,则ShMC将升级文件数据包重传给IPMC ;如果ShMC正确接收到IPMC返回的响应包 后,继续向IPMC发送后续的升级文件数据包。这样本发明通过交互的消息收发模式,ShMC 在发送消息后等待IPMC的响应消息,判断响应消息是否得到正确地接收和执行,若没有响 应或没有正确接收和处理,则ShMC启动重传功能。 步骤S508, IPMC根据接收的升级文件数据对APP用户代码区进行重新编程。其 中,作为本发明的一个实施例,在对APP用户代码区升级时,应使用单片机内部的IAP编程 指令,从而避免出现因为误操作改写代码而造成程序永久性不可恢复的现象。
步骤S509 , IPMC重启生效。 作为本发明的一个实施例,在所述IPMC上电复位后,默认为IAP在线升级区可见。 这样在IPMC上电复位后,IPMC首先等待ShMC对其进行升级。优选地,本实施例还可设置 一 IAP区驻留定时器,在IPMC上电复位后,开启该IAP区驻留定时器,IPMC判断在该IAP 区驻留定时器超时前是否收到ShMC的升级命令;如果在该IAP区驻留定时器超时前收到 ShMC的升级命令,则IPMC关闭该IAP区驻留定时器并进行在线升级;如果在该IAP区驻留 定时器超时前未收到ShMC的升级命令,则IPMC从IAP在线升级区切换至APP用户代码区。 在IPMC收到存储区切换命令后,APP区切换至IAP区运行,此为非上电复位,不开启该IAP 区驻留定时器,等待升级命令和升级文件数据流。如果IPMC在线升级被异常中断后(如掉 电)或APP区为空白时,可以重启IPMC,并在该IAP区驻留定时器的定时时间内,ShMC向 IPMC发送在线升级命令,完成IPMC的软件升级。 作为本发明的一个实施例,其中上述升级文件数据包中可包含有版本信息和循环 冗余校验CRC校验信息,从而能够确定升级文件的完好性。
作为本发明的一个实施例,其中在上述每条升级消息内都具有至少两个校验码, 符合IPMI和PICMG3. 0规范。 作为本发明的一个实施例,其中在上述每条升级消息内都具有其对应的序列号, 从而保证升级文件数据流的顺序和文件的完整性。 如图6所示,为本发明实施例IPMC在线升级系统的结构图,该系统包括ShMC 100 和至少一个IPMC 200,各个IPMC 200通过IPMB与ShMC100相连,IPMC 200内分为APP用 户代码区和IAP在线升级区,其中IAP在线升级区完成APP用户代码区的软件升级功能,并 在IPMC升级时可见,APP用户代码区包含用户应用程序,并在IPMC工作时可见。ShMC 100 用于通过IPMB对IPMC 200进行升级,向IPMC 200发送存储区切换命令、升级命令和升级 文件数据。IPMC 200用于接收ShMC IOO发送的存储区切换命令,并根据存储区切换命令从 APP用户代码区切换至IAP在线升级区,并根据接收的升级命令和升级文件数据对APP用户 代码区擦除并重新编程,实现对IPMC 200的在线升级。 作为本发明的一个实施例,IPMC 200在上电复位后,默认为IAP在线升级区可见, IPMC 200还用于在IPMC 200上电复位后,开启定时器,并判断在该定时器超时前是否收到 ShMC 100的升级命令;如果在该定时器超时前收到ShMC 100的升级命令,则关闭定时器并 进行在线升级;如果在该定时器超时前未收到ShMC 100的升级命令,则从IAP在线升级区 切换至APP用户代码区。其中上述升级文件数据包中可包含有版本信息和循环冗佘校验 CRC校验信息。从而保证升级文件的完好性。 在上述实施例中,IPMC 200在收到并执行ShMC 100通过IPMB向IPMC 200发送 存储区切换命令、升级命令和升级文件数据之后,向ShMClOO返回相应的响应包,ShMC 100 在正确地收到响应包后进行进一步的操作,如果未收到或未正确地收到相应的响应包则将 相应的命令重传给IPMC200。 在上述实施例中,IPMC 200可为具有自擦除存储器的控制器,具体地可为可执行 自擦除的Flash单片机,IPMC200使用可执行自擦除的Flash单片机内部的IAP编程指令 对APP用户代码区进行编程。 同样,作为本发明的系统实施例,在每条升级消息内可具有至少两个校验码,其满 足IPMI和PICMG3. 0的规范规定。 作为本发明的系统实施例,在每条升级消息内可具有其对应的序列号,保证升级 文件数据流的顺序和文件的完整性。 其中,ShMC 100包括IPMC升级功能模块IIO,用于对通过IPMB与ShMC 100相连 的各个IPMC 200进行升级,向IPMC 200发送存储区切换命令、升级命令和升级文件数据, 其中IPMC 200可为具有自擦除存储器的控制器,具体地可为具有自擦除Flash的控制器, 且IPMC 200内的Flash分为APP用户代码区和IAP在线升级区,IAP在线升级区完成APP 用户代码区的软件升级功能,并在IPMC 200升级时可见,APP用户代码区包含用户应用程 序,并在IPMC 200工作时可见。 其中,作为本发明的一个实施例,IPMC升级功能模块110包括发送子模块111、控 制子模块112和接收子模块113。发送子模块111用于根据控制子模块112的控制指令向 IPMC 200发送存储区切换命令、升级命令和升级文件数据。接收子模块113用于接收IPMC 200返回的响应包。控制子模块112用于在接收子模块113正确地收到响应包后进行进一步的操作,如果接收子模块113未收到或未正确地收到响应包后则将相应的命令重传给 IPMC200。 其中,IPMC 200包括APP接收模块210、 APP控制模块220、 IAP接收模块230和 IAP控制模块240。 APP接收模块210用于接收ShMC 100通过IPMB向IPMC 200发送的存 储区切换命令。APP控制模块220用于根据存储区切换命令从APP用户代码区切换至IAP 在线升级区。IAP接收模块230用于接收ShMC IOO发送的升级命令和升级文件数据。IAP 控制模块240用于根据IAP接收模块230接收的升级命令和升级文件数据对APP用户代码 区擦除并重新编程,实现对IPMC的在线升级。 作为本发明的一个实施例,IPMC200在上电复位后,默认为IAP在线升级区可见。
作为本发明的一个实施例,IAP控制模块240包括定时器子模块241、判断子模块 242和控制子模块243。定时器子模块241用于在IPMC200上电复位后,开启定时器。判断 子模块242用于判断在该定时器超时前是否收到ShMC IOO的升级命令。控制子模块243 用于在判断子模块242判断该定时器超时前收到ShMC 100的升级命令,则关闭该定时器并 进行在线升级;如果在该定时器超时前未收到ShMClOO的升级命令,则从IAP在线升级区切 换至APP用户代码区。 作为本发明的一个实施例,IPMC 200还包括IAP响应包返回模块250,用于在 IPMC200执行切换后,对APP用户代码区进行擦除后,或正确接收到升级文件数据包之后, 向ShMC 100返回相应的响应包。 在上述实施例中,IAP接收模块230还包括解析子模块231,用于解析升级文件数 据包中包含的版本信息和循环冗佘校验CRC校验信息。该解析子模块231还可用于解析每 条升级消息内的校验码或序列号。 本发明中ShMC对各个IPMC同时进行升级且一次完成,不需要反复操作,并且本发 明中IPMC不需要太大的存储空间。并且本发明对IPMC进行在线升级时对其他功能没有影 响,可以大批量、高可靠地对IPMC进行在线升级。本发明成本低,实现简单,不需要增加任 何外部器件。 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以 理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换 和变型,本发明的范围由所附权利要求及其等同限定。
权利要求
一种智能平台管理控制器IPMC在线升级方法,其特征在于,包括至少一个IPMC,各个所述IPMC通过智能平台管理总线IPMB与机框管理控制器ShMC相连,且所述IPMC内分为应用程序APP用户代码区和应用中升级IAP在线升级区,所述IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应用程序,并在所述IPMC工作时可见,包括以下步骤所述ShMC通过所述IPMB向所述IPMC发送存储区切换命令;所述IPMC根据所述存储区切换命令从所述APP用户代码区切换至所述IAP在线升级区;所述ShMC通过所述IPMB向所述IPMC发送升级命令和升级文件数据;所述IPMC根据接收的所述升级命令和升级文件数据对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。
2. 如权利要求1所述的IPMC在线升级方法,其特征在于,还包括 设置在所述IPMC上电复位后,所述IAP在线升级区可见。
3. 如权利要求2所述的IPMC在线升级方法,其特征在于,还包括 在所述IPMC上电复位后,开启定时器;所述IPMC判断在所述定时器超时前是否收到所述ShMC的升级命令; 如果在所述定时器超时前收到所述ShMC的升级命令,则所述IPMC关闭所述定时器进 行在线升级;如果在所述定时器超时前未收到所述ShMC的升级命令,则所述IPMC从所述IAP在线 升级区切换至所述APP用户代码区。
4. 如权利要求1所述的IPMC在线升级方法,其特征在于,所述IPMC根据接收的所述升 级命令和升级文件数据对所述APP用户代码区擦除并重新编程包括所述IPMC接收所述ShMC发送的升级命令;所述IPMC根据所述升级命令对所述APP用户代码区进行擦除;所述IPMC接收所述ShMC发送的所述升级文件数据;所述IPMC根据所述升级文件数据对所述APP用户代码区进行编程。
5. 如权利要求4所述的IPMC在线升级方法,其特征在于,在所述IPMC根据所述升级命 令对所述APP用户代码区进行擦除还包括所述IPMC向所述ShMC返回升级命令的响应包,所述ShMC在收到所述升级命令的响应 包后向所述IPMC发送升级文件数据。
6. 如权利要求4所述的IPMC在线升级方法,其特征在于,所述IPMC接收所述ShMC发 送的所述升级文件数据包括所述IPMC接收所述ShMC发送的升级文件数据包后,向所述ShMC返回对应的响应包; 所述ShMC在正确接收到所述IPMC返回的所述响应包后,继续向所述IPMC发送后续的升级文件数据包,如果所述ShMC未收到或未正确接收到所述IPMC返回的所述响应包,则所述ShMC将所述升级文件数据包重传给所述IPMC。
7. 如权利要求1所述的IPMC在线升级方法,其特征在于,在所述IPMC根据所述存储区 切换命令从所述APP用户代码区切换至所述IAP在线升级区之后,还包括所述IPMC向所述ShMC返回所述存储区切换命令的响应包,所述ShMC在收到所述存储区切换命令的响应包后向所述IPMC发送升级命令。
8. 如权利要求1、4或6所述的IPMC在线升级方法,其特征在于,所述升级文件数据包 中包含有版本信息和循环冗余校验CRC校验信息。
9. 如权利要求l-7任一项所述的IPMC在线升级方法,其特征在于,在每条升级消息内都具有至少两个校验码。
10. 如权利要求1-7任一项所述的IPMC在线升级方法,其特征在于,在每条升级消息内都具有其对应的序列号。
11. 如权利要求1所述的IPMC在线升级方法,其特征在于,所述IPMC为具有自擦除存 储器的控制器。
12. 如权利要求11所述的IPMC在线升级方法,其特征在于,所述IPMC为可执行自擦除 的闪存Flash单片机。
13. —种IPMC在线升级系统,其特征在于,包括ShMC和至少一个IPMC,各个所述IPMC 通过IPMB与所述ShMC相连,所述IPMC内分为APP用户代码区和IAP在线升级区,所述IAP 在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP 用户代码区包含用户应用程序,并在所述IPMC工作时可见,所述ShMC,用于通过所述IPMB对所述IPMC进行升级,向所述IPMC发送存储区切换命 令、升级命令和升级文件数据;所述IPMC,用于接收所述ShMC发送的存储区切换命令,并根据所述存储区切换命令从 所述APP用户代码区切换至所述IAP在线升级区,并根据接收的所述升级命令和升级文件 数据对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。
14. 如权利要求13所述的IPMC在线升级系统,其特征在于,所述IPMC在上电复位后, 默认为所述IAP在线升级区可见。
15. 如权利要求14所述的IPMC在线升级系统,其特征在于,所述IPMC,用于在所述 IPMC上电复位后,开启定时器,并判断在所述定时器超时前是否收到所述ShMC的升级命 令;如果所述定时器超时前收到所述ShMC的升级命令,则关闭所述定时器进行在线升级; 如果所述定时器超时前未收到所述ShMC的升级命令,则从所述IAP在线升级区切换至所述 APP用户代码区。
16. 如权利要求15所述的IPMC在线升级系统,其特征在于,所述升级文件数据包中包 含有版本信息和循环冗余校验CRC校验信息。
17. 如权利要求13所述的IPMC在线升级系统,其特征在于,所述IPMC在收到并执行所 述ShMC通过所述IPMB向所述IPMC发送存储区切换命令、升级命令和升级文件数据之后, 向所述ShMC返回相应的响应包,所述ShMC在正确地收到所述响应包后进行进一步的操作, 如果未收到或未正确地收到所述响应包则将相应的命令重传给所述IPMC。
18. 如权利要求13所述的IPMC在线升级系统,其特征在于,所述IPMC为具有自擦除存 储器的控制器。
19. 如权利要求18所述的IPMC在线升级系统,其特征在于,所述IPMC为可执行自擦除 的Flash单片机。
20. 如权利要求13-19任一项所述的IPMC在线升级系统,其特征在于,在每条升级消息 内都具有至少两个校验码。
21. 如权利要求13-19任一项所述的IPMC在线升级系统,其特征在于,在每条升级消息 内都具有其对应的序列号。
22. —种ShMC,其特征在于,包括IPMC升级功能模块,用于对通过IPMB与所述ShMC相 连的各个IPMC进行升级,向所述IPMC发送存储区切换命令、升级命令和升级文件数据,其 中所述IPMC内分为APP用户代码区和IAP在线升级区,所述IAP在线升级区完成所述APP 用户代码区的软件升级功能,并在所述IPMC升级时可见,所述APP用户代码区包含用户应 用程序,并在所述IPMC工作时可见。
23. 如权利要求22所述的ShMC,其特征在于,所述IPMC升级功能模块包括发送子模 块、控制子模块和接收子模块,所述发送子模块,用于根据所述控制子模块的控制指令向所述IPMC发送存储区切换 命令、升级命令和升级文件数据;所述接收子模块,用于接收所述IPMC返回的响应包;所述控制子模块,用于在所述接收子模块正确地收到所述响应包后进行进一步的操 作,如果所述接收子模块未收到或未正确地收到所述响应包则将相应的命令重传给所述 IPMC。
24. 如权利要求22所述的ShMC,其特征在于,所述升级文件数据包中包含有版本信息 和循环冗余校验CRC校验信息。
25. 如权利要求22或23所述的ShMC,其特征在于,在每条升级消息内都具有至少两个 校验码。
26. 如权利要求22或23所述的ShMC,其特征在于,在每条升级消息内都具有其对应的 序列号。
27. —种IPMC,其特征在于,所述IPMC内分为APP用户代码区和IAP在线升级区,所述 IAP在线升级区完成所述APP用户代码区的软件升级功能,并在所述IPMC升级时可见,所述 APP用户代码区包含用户应用程序,并在所述IPMC工作时可见,还包括APP接收模块、APP 切换控制模块、IAP接收模块和IAP控制模块,所述APP接收模块,用于接收ShMC通过IPMB向所述IPMC发送的存储区切换命令; 所述APP控制模块,用于根据所述存储区切换命令从所述APP用户代码区切换至所述 IAP在线升级区;所述IAP接收模块,用于接收所述ShMC发送的升级命令和升级文件数据; 所述IAP控制模块,用于根据所述IAP接收模块接收的所述升级命令和升级文件数据 对所述APP用户代码区擦除并重新编程,实现对所述IPMC的在线升级。
28. 如权利要求27所述的IPMC,其特征在于,所述IPMC在上电复位后,默认为所述IAP 在线升级区可见。
29. 如权利要求28所述的IPMC,其特征在于,所述IAP控制模块包括定时器子模块、判 断子模块和控制子模块,所述定时器子模块,用于在所述IPMC上电复位后,开启定时器; 所述判断子模块,用于判断在所述定时器超时前是否收到所述ShMC的升级命令; 所述控制子模块,用于所述判断子模块判断所述定时器超时前收到所述ShMC的升级 命令,则关闭所述定时器进行在线升级;如果所述定时器超时前未收到所述ShMC的升级命令,则从所述IAP在线升级区切换至所述APP用户代码区。
30. 如权利要求27所述的IPMC,其特征在于,所述IAP控制模块,还用于根据所述升级 命令对所述APP用户代码区进行擦除,并根据所述升级文件数据对所述APP用户代码区进 行编程。
31. 如权利要求27所述的IPMC,其特征在于,还包括IAP响应包返回模块,用于在所述 IPMC执行切换后,对所述APP用户代码区进行擦除后,或正确接收到升级文件数据包之后, 向所述ShMC返回相应的响应包。
32. 如权利要求27所述的IPMC,其特征在于,所述IAP接收模块包括解析子模块,用于 解析所述升级文件数据包中包含的版本信息和循环冗余校验CRC校验信息。
33. 如权利要求27所述的IPMC,其特征在于,所述IAP接收模块包括解析子模块,用于解析每条升级消息内的校验码。
34. 如权利要求27所述的IPMC,其特征在于,所述IAP接收模块包括解析子模块,用于解析每条升级消息内的序列号。
35. 如权利要求27所述的IPMC,其特征在于,所述IPMC为具有自擦除存储器的控制器。
36. 如权利要求35所述的IPMC,其特征在于,所述IPMC为可执行自擦除的Flash单片机。
全文摘要
本发明提出一种IPMC在线升级系统,包括ShMC和至少一个IPMC,各个IPMC通过IPMB与ShMC相连,且IPMC内分为APP用户代码区和IAP在线升级区,IAP在线升级区完成APP用户代码区的软件升级功能,并在IPMC升级时可见,APP用户代码区包含用户应用程序,并在IPMC工作时可见,所述ShMC通过IPMB对所述IPMC进行升级。本发明中ShMC对各个IPMC同时进行升级且一次完成,不需要反复操作,并且本发明中IPMC不需要太大的存储空间。
文档编号H04L12/24GK101729287SQ20081022538
公开日2010年6月9日 申请日期2008年10月31日 优先权日2008年10月31日
发明者张峰, 田华 申请人:大唐移动通信设备有限公司