在线程序更新方法与流程

文档序号:25345394发布日期:2021-06-08 11:40阅读:214来源:国知局
在线程序更新方法与流程

1.本申请涉及数据处理技术领域,尤其涉及一种在线程序更新方法。


背景技术:

2.应用于大型服务器、网络交换机、存储设备以及通信基站等网络设备上的开关电源称为网络电源,通常为了避免网络电源中的电路损坏,在网络电源进行在线程序更新时要做关机处理。而由于实际需求,网络电源要求持续可靠地供电,关机会造成通讯服务中断、数据丢失等问题。
3.在线程序更新,又称boot loader,应用于可编程逻辑器件,如微控制单元(microcontroller unit,mcu)、数字信号处理器(digital signal processing,dsp)等控制器,通过已有的通讯总线,如两线式串行总线(inter-integrated circuit,i2c)、控制器局域网络总线(controller area network,can),来更新控制器的程序存储区。与传统的专用程序烧写接口相比,boot loader不需要开机壳或外接引线,更新程序文件更加方便和安全。
4.控制器通常划分为boot区和应用区,控制器正常上电复位后会默认在boot区运行,boot区代码校验应用区代码,如果校验无误,程序指针会跳转到应用区运行。如果需要更新应用区,boot区通过已有通讯总线接收应用程序数据,存储至应用区,最后通过复位、校验、跳转的方式进入应用区运行应用程序数据。图1为本申请实施例提供的现有控制器的结构示意图,如图1所示,本实施例提供的控制器可以通过基于i2c的电源管理总线(power management bus,pmbus)和外部设备进行通信,并且通过外设i/o端口控制电源的功率级电路等。
5.在实际应用中,对于给大型服务器、网络交换机、存储设备以及通信基站等网络设备供电的网络电源来说,由于该网络电源通常为数字电源,通过功率级的控制环实现,由于控制环对数据处理的实时性要求非常高,控制不当可能引起驱动问题损坏功率电路,因此网络电源在进行在线程序更新时通常要关机处理。然而,对于网络电源这类设备一般要求全天持续可靠地供电,关机会造成通讯服务器中断、数据丢失等问题。因此在进行在线程序更新的过程中网络电源保持开机状态,对于供电系统的可靠性具有重要意义。其中,网络电源包括控制器。
6.基于此,现有技术提供了一种供电方案,通过将多台网络电源进行并联,构成冗余系统,从而共同提供系统功率。冗余供电设计既可以降低单台电源的设计难度,还可以降低由于电源故障而导致系统断电的风险,这样在进行在线程序更新时,虽然当前电源关机,但其它并联电源也可以共同承担负载,保证系统正常供电。图2为本申请实施例提供的现有供电系统的结构示意图,如图2所示,第一电源、第二电源、第三电源分别提供1000w的功率,系统功率为3000w,在第二电源进行在线程序更新时,第二电源提供的功率为0w,那么为了提供3000w的系统功率,第一电源和第三电源分别提供1500w的功率。这样即可实现当前电源关机进行在线程序更新时,其它并联电源也可以承担负载,保证系统正常供电。
7.但是,重负载下工作时,当并联电源数量较少的情况下,一台电源关机做在线程序更新可能导致其它电源由于过流保护而发生连锁关机,使得整个系统供电中断。


技术实现要素:

8.本申请提供一种在线程序更新方法,以实现电能变换装置在线程序更新过程中能够持续供电,提高供电系统的可靠性。
9.第一方面,本申请实施例提供一种在线程序更新方法,应用于电能变换装置,所述电能变换装置的控制器包括应用区和备用区,所述应用区和所述备用区都可运行程序文件,所述方法包括:
10.接收到外部指令时,所述控制器通过所述应用区接收更新的程序文件,并将所述更新的程序文件存储至所述备用区,所述外部指令中包括所述更新的程序文件;
11.通过程序指针跳转至所述备用区,运行更新的程序文件。
12.在一种可能的实现中,所述程序指针跳转至所述备用区中程序文件的复位地址字段、外设复位地址之后的字段、变量初始化之后的字段、外设初始化之后的字段、主程序字段中的任意一个。
13.在一种可能的实现中,所述方法还包括:
14.通过所述程序指针跳转至所述应用区,运行所述应用区存储的程序文件。
15.第二方面,本申请实施例提供一种在线程序更新方法,应用于电能变换装置,所述电能变换装置的控制器包括应用区和备用区,所述应用区可运行程序文件,所述方法包括:
16.接收到外部指令时,所述控制器通过所述应用区接收更新的程序文件,并将所述更新的程序文件存储至所述备用区,所述外部指令中包括更新的程序文件;
17.在预设条件下,通过程序指针跳转,将所述应用区存储的程序文件更新为所述备用区存储的更新的程序文件。
18.在一种可能的实现中,所述应用区设置于所述控制器的主存储区,所述备用区设置于所述控制器的外部存储器中。
19.在一种可能的实现中,所述预设条件为所述电能变换装置部分功能失效。
20.在一种可能的实现中,所述电能变换装置的控制器还包括boot区。
21.在一种可能的实现中,所述方法还包括:
22.在所述预设条件下,通过所述程序指针跳转至所述boot区,所述boot区控制所述程序指针跳转至所述应用区,并运行所述应用区存储的程序文件。
23.在一种可能的实现中,所述方法还包括:
24.在所述预设条件下,通过程序指针跳转至所述boot区,所述boot区将所述应用区存储的程序文件更新为备用区存储的更新的程序文件。
25.第三方面,本申请实施例提供一种在线程序更新方法,应用于电能变换装置,所述电能变换装置的控制器包括应用区和备用区,所述方法包括:
26.接收到外部指令时,通过程序指针跳转至所述备用区,所述应用区和所述备用区共用所述电能变换装置的资源。
27.本申请实施例提供的在线程序更新方法,包括:接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,外部指令中包括更新的程
序文件,通过程序指针跳转至备用区,运行更新的程序文件。在该方案中,通过程序指针跳转的方式跳转至备用区,运行更新的程序文件,从而实现了在线程序更新的同时能够持续供电,提高供电系统的可靠性。
附图说明
28.图1为本申请实施例提供的现有控制器的结构示意图;
29.图2为本申请实施例提供的现有供电系统的结构示意图;
30.图3为本申请实施例提供的在线程序更新方法实施例一的流程图;
31.图4为本申请实施例提供的控制器的结构示意图一;
32.图5为本申请实施例提供的在线程序更新方法实施例二的流程图;
33.图6为本申请实施例提供的控制器的结构示意图二;
34.图7为本申请实施例提供的电能变换装置实施例一的结构示意图;
35.图8为本申请实施例提供的电能变换装置实施例二的结构示意图。
具体实施方式
36.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
37.如图2所示的现有供电系统在重负载下工作时,当并联电源数据较少的情况下,一台电源关机做在线程序更新可能导致其它电源由于过流保护而发生连锁关机,使得整个系统供电中断;且,在完成程序更新后,由于应用区被擦除、控制器会处于boot区,在重新进行程序更新之前,该电源都会处于关机状态;此外,由于每台电源程序更新时间较长,则依次更新每台电源所花费的总时间较长,这就要求供电系统具备同时更新多台电源的能力,但同时更新多台电源则会导致系统供电中断。
38.针对现有技术存在的问题,本申请实施例提供了一种在线程序更新方法,包括:接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,外部指令中包括更新的程序文件,通过程序指针跳转至备用区,运行更新的程序文件。在该方案中,通过程序指针跳转的方式跳转至备用区,运行更新的程序文件,从而实现了在线程序更新的同时能够持续供电,提高供电系统的可靠性。
39.下面通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
40.图3为本申请实施例提供的在线程序更新方法实施例一的流程图,本实施例的执行主体可以为电能变换装置,该电能变换装置的控制器包括应用区和备用区,其中,应用区和备用区都可运行程序文件。
41.如图3所示,本实施例提供的在线程序更新方法包括如下步骤:
42.s101、接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,外部指令中包括更新的程序文件。
43.其中,电能变换装置可以为服务器、网络交换机、通信基站等上的网络电源。外部指令用于指示对电能变换装置的控制器进行在线程序更新,外部指令中包括更新的程序文件。
44.为了满足在线程序更新时不断电,至少需要满足以下条件:在开机状态下接收程序文件并进行存储,且旧程序文件切换到新程序文件时,控制器不能复位关机。
45.基于此,该方案中的控制器包括应用区和备用区,应用区用于存储当前运行的程序文件,备用区用于存储更新的程序文件。其中,应用区、备用区可以是根据存储地址进行划分的。
46.在本步骤中,电能变换装置接收到外部指令时,控制器通过应用区接收该外部指令中更新的程序文件,并将更新的程序文件存储至备用区。
47.s102、通过程序指针跳转至备用区,运行更新的程序文件。
48.在接收到外部指令时,表明要对控制器进行在线程序更新,也即,运行更新的程序文件。由于在未接收到外部指令时,应用区运行当前程序文件,在接收到更新的程序文件后,可以通过程序指针从应用区跳转至备用区,运行更新的程序文件。
49.在一种可能的实现中,程序指针跳转至备用区中程序文件的复位地址字段、外设复位地址之后的字段、变量初始化之后的字段、外设初始化之后的字段、主程序字段中的任意一个。
50.在一个实施例中,程序执行的过程是中央处理器(central processing unit,cpu)复位、外设复位、变量初始化、外设初始化、运行主程序,其中复位地址字段可以是例如cpu复位的字段、外设复位地址之后的字段可以是例如cpu复位之后、变量初始化之前的字段。
51.在本步骤中,可以根据实际需求,通过程序指针可以跳转至备用区中程序文件的复位地址字段、外设复位地址之后的字段、变量初始化之后的字段、外设初始化之后的字段以及主程序字段中的任意一个,本实施例对此不做限制。这样,通过程序指针的跳转,实现了旧程序文件和更新后的程序文件的无缝切换。
52.需要说明的是,程序指针跳转至外设复位地址之后的字段时,外设状态可以保持跳转前的状态;程序指针跳转至变量初始化之后的字段时,变量状态可以保持跳转前的状态。
53.在一种可能的实现中,该方法还包括:
54.通过程序指针跳转至应用区,运行应用区存储的程序文件。
55.在本步骤中,通过主程序指针跳转至备用区,并运行备用区的程序文件后,还可以再次通过程序指针跳转至应用区,运行应用区存储的程序文件,当然,跳转至应用区中时还可以跳转至应用区中程序文件的复位地址字段、外设复位地址之后的字段、变量初始化之后的字段、外设初始化之后的字段以及主程序字段中的任意一个,本实施例对此不做限制。
56.在上述过程中,通过程序指针实现程序文件的跳转,整个过程不经过控制器复位,电能变换装置输出正常,因此能够持续供电。
57.图4为本申请实施例提供的控制器的结构示意图一,如图4所示,该控制器包括应用区和备用区,接收到外部指令时,通过应用区可以接收更新的程序文件,并将更新的程序文件存储至备用区,可以通过程序指针在备用区中的程序文件和应用区中的程序文件来回
跳转,使得控制器不必复位,实现程序文件的无缝切换。
58.需要说明的是,对于数字电源来说,主功率控制环一般通过中断实现,程序指针在两个程序文件之间跳转时,为了保证环路运算及输出功率的实时性,程序指针要跳转到更新的程序文件的环路控制代码首地址,如果环路参数发生改动,则要初始化环路变量,而在该方案中控制器不经过复位,若更新的程序文件存在对外设配置的改动或者ram中存储的变量数据以及地址有改动时,在从应用区跳转至备用区后,要做进行初始化处理,以避免数据的丢失、错位以及外设功能的失效。
59.本实施例提供的在线程序更新方法,包括:接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,外部指令中包括更新的程序文件,通过程序指针跳转至备用区,运行更新的程序文件。在该方案中,通过程序指针跳转的方式跳转至备用区,运行更新的程序文件,从而实现了在线程序更新的同时能够持续供电,提高供电系统的可靠性。
60.图5为本申请实施例提供的在线程序更新方法实施例二的流程图,本实施例的执行主体可以为电能变换装置,该电能变换装置的控制器包括应用区和备用区,应用区可运行程序文件。
61.如图5所示,本实施例提供的在线程序更新方法包括如下步骤:
62.s201、接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,外部指令中包括更新的程序文件。
63.在本步骤中,控制器包括应用区和备用区,应用区用于存储当前运行的程序文件,在接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区。其中备用区不运行程序文件,仅用于存储更新的程序文件。
64.在一种可能的实现中,应用区设置于控制器的主存储区,备用区设置于控制器的外部存储器中,本实施例不以此为限。
65.s202、在预设条件下,通过程序指针跳转,将应用区存储的程序文件更新为备用区存储的更新的程序文件。
66.其中,预设条件可以为电能变换装置部分功能失效,例如关机情况下。
67.在本步骤中,将更新的程序文件存储至备用区后,继续运行的是应用区的程序文件而不立即更新应用区。直至在预设条件下,例如在下次关机或其它原因需要关机的情况下电能变换装置关机,可以通过程序指针跳转,将应用区存储的程序文件更新为备用区存储的更新的程序文件。
68.在一种可能的实现中,电能变换装置的控制器还包括boot区。
69.在一种可能的实现中,该方法还包括:
70.在预设条件下,通过程序指针跳转至boot区,boot区控制程序指针跳转至应用区,并运行应用区存储的程序文件。
71.其中boot区可以用于校验应用区代码,如果校验无误,程序指针会跳转到应用区运行。
72.例如:在关机情况下将应用区存储的程序文件更新为备用区存储的更新的程序文件,然后采用boot区对应用区存储的程序文件进行校验,如果校验无误,boot区控制程序指针跳转至应用区,并运行应用区存储的程序文件。
73.在一种可能的实现中,步骤s201具体包括:
74.在预设条件下,通过程序指针跳转至boot区,boot区将应用区存储的程序文件更新为备用区存储的更新的程序文件。
75.示例性地,在关机情况下通过程序指针跳转至boot区,boot区从备用区中读取更新的程序文件,从而将应用区存储的程序文件更新为备用区存储的更新的程序文件。这样,在下一次重启后,即可运行应用区中更新的程序文件。
76.图6为本申请实施例提供的控制器的结构示意图二,如图6所示,该控制器包括应用区、备用区和boot区,接收到外部指令时,通过应用区可以接收更新的程序文件,并将更新的程序文件存储至备用区,在预设条件下,通过程序指针跳转至boot区,boot区将应用区存储的程序文件更新为备用区存储的更新的程序文件。这样,可以同时更新多台电源,并且整个过程中供电不中断,还解决了现有技术中同时更新多台电源造成更新时间长的问题。
77.本实施例提供的在线程序更新方法,包括:接收到外部指令时,控制器通过应用区接收更新的程序文件,并将更新的程序文件存储至备用区,所述外部指令中包括更新的程序文件,在预设条件下,通过程序指针跳转,将应用区存储的程序文件更新为备用区存储的更新的程序文件。在该方案中,将更新的程序文件存储至备用区,在预设条件下更新应用区,实现了在线程序更新的同时持续供电,还解决了现有技术中同时更新多台电源造成更新时间长的问题。
78.本申请实施例还提供了一种在线程序更新方法,应用于电能变换装置,该电能变换装置的控制器包括应用区和备用区,该方法包括:
79.接收到外部指令时,通过程序指针跳转至备用区,应用区和备用区共用电能变换装置的资源。
80.其中外部指令可以用于指示对控制器进行在线程序更新或者指示进行程序指针跳转。
81.当外部指令用于指示对控制器进行在线程序更新时,外部指令中可以包括更新的程序文件,应用区存储当前运行的程序文件。在接收到外部指令时,通过程序指针跳转至备用区,从而运行更新的程序文件,从而实现在线程序更新的同时供电不中断,提高供电系统的可靠性。具体实现过程可以参考图1、图5实施例。
82.当外部指令用于指示进行程序指针跳转时,应用区和备用区可以都存储当前运行的程序文件。在接收到外部指令时,通过程序指针跳转至备用区,从而运行备用区中的程序文件。
83.下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请方法实施例中已介绍的细节,将不再赘述。
84.图7为本申请实施例提供的电能变换装置实施例一的结构示意图,该电能变换装置10包括:
85.接收模块11,用于接收到外部指令时,所述控制器通过所述应用区接收更新的程序文件,并将所述更新的程序文件存储至所述备用区,所述外部指令中包括所述更新的程序文件;
86.处理模块12,用于通过程序指针跳转至所述备用区,运行更新的程序文件。
87.在一种可能的实现中,所述程序指针跳转至所述备用区中程序文件的复位地址字
段、外设复位地址之后的字段、变量初始化之后的字段、外设初始化之后的字段、主程序字段中的任意一个。
88.在一种可能的实现中,所述控制器设置于处理模块12内,和/或接收模块11内。
89.在一种可能的实现中,所述处理模块还用于:
90.通过所述程序指针跳转至所述应用区,运行所述应用区存储的程序文件。
91.本申请实施例提供的装置,可用于执行图3实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
92.图8为本申请实施例提供的电能变换装置实施例二的结构示意图,该电能变换装置20包括:
93.接收模块21,用于接收到外部指令时,所述控制器通过所述应用区接收更新的程序文件,并将所述更新的程序文件存储至所述备用区,所述外部指令中包括更新的程序文件;
94.处理模块22,用于在预设条件下,通过程序指针跳转,将所述应用区存储的程序文件更新为所述备用区存储的更新的程序文件。
95.在一种可能的实现中,所述应用区设置于所述控制器的主存储区,所述备用区设置于所述控制器的外部存储器中。
96.在一种可能的实现中,所述控制器设置于处理模块22内,和/或接收模块21内。
97.在一种可能的实现中,所述预设条件为所述电能变换装置部分功能失效。
98.在一种可能的实现中,所述电能变换装置的控制器还包括boot区。
99.在一种可能的实现中,所述处理模块还用于:
100.在所述预设条件下,通过所述程序指针跳转至所述boot区,所述boot区控制所述程序指针跳转至所述应用区,并运行所述应用区存储的程序文件。
101.在一种可能的实现中,所述处理模块还用于:
102.在所述预设条件下,通过程序指针跳转至所述boot区,所述boot区将所述应用区存储的程序文件更新为备用区存储的更新的程序文件。
103.本申请实施例提供的装置,可用于执行图5实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
104.本实施例还提供了一种电能变换装置,该电能变换装置包括:
105.处理模块,用于接收到外部指令时,通过程序指针跳转至所述备用区,所述应用区和所述备用区共用所述电能变换装置的资源,例如接收模块和处理模块。
106.本申请实施例还提供一种存储介质,所述存储介质中存储有指令。当所述执行在计算机上运行时,使得计算机执行上述方法实施例。
107.可以理解的是,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
108.最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术
方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1