一种电能表操作系统启动方法、装置、电能表及存储介质与流程

文档序号:24192370发布日期:2021-03-09 15:33阅读:143来源:国知局
一种电能表操作系统启动方法、装置、电能表及存储介质与流程

1.本申请涉及电能表领域,尤其涉及一种电能表操作系统启动方法、装置、电能表及存储介质。


背景技术:

2.随着社会发展,电力用户对电能的使用要求越来越高,电能表作为电网企业与用户的连接节点,智能化水平的提升需求日益迫切。当前,国内的新一代电能表技术发展向着国际接轨,在这个大环境下,嵌入式在管理单元上使用操作系统,能够将新一代电能表的功能app化,从而可以灵活定制电能表的高级功能,使电能表具备了低压电网用户生态建设要求。
3.常规的嵌入式系统在运行中需要保持系统运行稳定性、可靠性,以及具备升级更新功能。普遍的嵌入式操作系统存放在rom上,当设备启动时将操作系统从rom读取到ram上并运行。
4.现有的嵌入式电能表在系统启动过程或是切换过程中,启动新的操作系统时基本都涉及到将操作系统代码从rom到ram或外部存储器到ram的切换,内部代码拷贝传输时间成本很高,达到秒级甚至分钟级的切换时间,从而导致电能表的计量及其他高级功能容易因操作系统启动耗时过长而受到影响的技术问题。


技术实现要素:

5.本申请提供了一种电能表操作系统启动方法、装置、电能表及存储介质,用于解决现有的电能表的计量及其他高级功能容易因操作系统启动耗时过长而受到影响的技术问题。
6.有鉴于此,本申请第一方面提供了一种电能表操作系统启动方法,包括:
7.响应于电能表的切换指令,读取预存在rom中的启动代码,根据所述启动代码确定预设的多个系统代码区的地址,其中,所述系统代码区均为预设在片内flash中的代码存储空间,且一个系统代码区对应一组操作系统代码;
8.根据预设的操作系统启动校验方式,对所述系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则启动所述操作系统代码,若启动校验结果为未通过时,则对当前校验的系统代码区的下一个系统代码区进行启动校验。
9.优选地,所述操作系统启动校验方式具体包括:代码正确性校验和代码生效时间校验。
10.优选地,对所述系统代码区中的操作系统代码进行启动校验的过程,具体包括:
11.对所述系统代码区中的操作系统代码进行代码正确性校验,若所述代码正确性校验的结果为通过,则根据所述操作系统代码中的生效时间与当前时间进行比对,若所述当前时间不早于所述生效时间,则判定所述代码生效时间校验的结果,并判定所述启动校验结果为通过;
12.若所述代码正确性校验的结果或所述代码生效时间校验的结果为未通过时,则判定所述启动校验结果为未通过。
13.优选地,还包括:
14.当所有系统代码区的启动校验结果均为未通过时,根据所述启动代码确定预设的系统备份区的地址,以便对所述系统备份区中的操作系统代码进行启动校验,当启动校验结果为通过时,则启动所述系统备份区中的操作系统代码,其中,所述系统备份区为预设在片外flash中的代码存储空间。
15.优选地,启动所述操作系统代码之后还包括:
16.响应于电能表操作系统升级指令,根据所述电能表的运行状态信息,确定目标系统代码区,其中,所述目标系统代码区为其中一个处于非运行状态的系统代码区;
17.接收待升级的操作系统代码,并将所述待升级的操作系统代码存储至所述目标系统代码区;
18.根据所述待升级的操作系统代码进行代码生效时间校验,当所述代码生效时间校验的结果为通过时,则将当前运行的操作系统代码切换为所述待升级的操作系统代码。
19.优选地,所述根据所述待升级的操作系统代码进行代码生效时间校验,当所述代码生效时间校验的结果为通过时,则将当前运行的操作系统代码切换为所述待升级的操作系统代码具体包括:
20.根据所述待升级的操作系统代码中的生效时间与当前时间进行比对,若所述当前时间不早于所述生效时间,则将当前运行的操作系统代码切换为所述待升级的操作系统代码,若所述当前时间早于所述生效时间,则通过定时循环触发代码生效时间校验的方式,直至所述当前时间不早于所述生效时间。
21.优选地,所述接收待升级的操作系统代码,之后还包括:
22.将所述待升级的操作系统代码存储至所述系统备份区,并对所述待升级的操作系统代码进行代码正确性校验,当所述代码正确性校验的结果为通过时,则将所述待升级的操作系统代码转移至所述目标系统代码区进行存储。
23.本申请第二方面提供了一种电能表操作系统启动装置,包括:
24.系统代码区确定单元,用于响应于电能表的切换指令,读取预存在rom中的启动代码,根据所述启动代码确定预设的多个系统代码区的地址,其中,所述系统代码区均为预设在片内flash中的代码存储空间,且一个系统代码区对应一组操作系统代码;
25.操作系统启动校验单元,用于根据预设的操作系统启动校验方式,对所述系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则启动所述操作系统代码,若启动校验结果为未通过时,则对当前校验的系统代码区的下一个系统代码区进行启动校验。
26.本申请第三方面提供了一种电能表终端,包括:存储器和处理器;
27.所述存储器用于存储程序代码,所述程序代码与本申请第一方面所述的电能表操作系统启动方法相对应;
28.所述处理器用于执行所述程序代码。
29.本申请第四方面提供了一种存储介质,所述存储介质中保存有与本申请第一方面所述的电能表操作系统启动方法相对应的程序代码。
30.从以上技术方案可以看出,本申请实施例具有以下优点:
31.本申请提供了一种电能表操作系统启动方法,包括:响应于电能表的切换指令,读取预存在rom中的启动代码,根据所述启动代码确定预设的多个系统代码区的地址,其中,所述系统代码区均为预设在片内flash中的代码存储空间,且一个系统代码区对应一组操作系统代码;根据预设的操作系统启动校验方式,对所述系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则启动所述操作系统代码,若启动校验结果为未通过时,则对当前校验的系统代码区的下一个系统代码区进行启动校验。
32.本申请通过在电能表处理器片内flash存储空间设定多个系统代码区,且一个系统代码区对应一组操作系统代码,接着根据启动代码的执行,选择性启动任意一个系统代码区中的操作系统代码,省略了现有启动方式需要在启动前先拷贝操作系统代码的过程,降低了操作系统的启动耗时,解决了现有的电能表的计量及其他高级功能容易因操作系统启动耗时过长而受到影响的技术问题。
附图说明
33.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
34.图1为本申请提供的一种电能表操作系统启动方法的第一个实施例的流程示意图;
35.图2为本申请提供的一种电能表操作系统启动方法的第二个实施例的流程示意图;
36.图3为本申请提供的一种电能表操作系统启动装置的第一个实施例的结构示意图;
37.图4为本申请提供的一种电能表内部逻辑架构示意图。
具体实施方式
38.本申请实施例提供了一种电能表操作系统启动方法、装置、电能表及存储介质,用于解决现有的电能表的计量及其他高级功能容易因操作系统启动耗时过长而受到影响的技术问题。
39.为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
40.请参阅图1和图4,本申请第一个实施例提供了一种电能表操作系统启动方法,包括:
41.步骤101、响应于电能表的切换指令,读取预存在rom中的启动代码,根据启动代码确定预设的多个系统代码区的地址,其中,系统代码区均为预设在片内flash中的代码存储
空间,且一个系统代码区对应一组操作系统代码;
42.步骤102、根据预设的操作系统启动校验方式,对系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则执行步骤103,若启动校验结果为未通过时,则执行步骤104。
43.步骤103、启动操作系统代码。
44.步骤104、对当前校验的系统代码区的下一个系统代码区进行启动校验。
45.需要说明的是,本实施例结合图4所示的结构,首先由电能表中的cpu对外部操作或外部输入的控制指令进行响应,当响应于电能表的切换指令时,读取预存在rom中的启动代码,根据启动代码确定预设的多个系统代码区的地址,本实施例提供说明均以设置了两个系统代码区为例。
46.然后,根据启动代码开始选择操作系统代码区bank1、操作系统代码区bank 2的系统代码启动操作系统运行。系统运行过程中,cpu会定时通过中断对各个系统代码区和预设的操作系统启动校验方式进行比对,当满足启动校验的条件则可以启动当前校验通过的操作系统,实现操作系统的启动。
47.其中,操作系统代码区bank 1、操作系统代码区bank 2属于片内flash,因此操作系统直接在上面运行,满足运行速率要求,也满足可靠性要求,不易被改写。同时,两个片内flash之间进行系统切换,可满足毫秒级速率切换要求。
48.以上为本申请提供的一种电能表操作系统启动方法的第一个实施例的详细说明,下面为本申请提供的一种电能表操作系统启动方法的第二个实施例的详细说明。
49.请参阅图2和图4,本申请第二个实施例提供了一种电能表操作系统启动方法,包括:
50.步骤201、响应于电能表的切换指令,读取预存在rom中的启动代码,根据启动代码确定预设的多个系统代码区的地址,其中,系统代码区均为预设在片内flash中的代码存储空间,且一个系统代码区对应一组操作系统代码;
51.步骤202、根据预设的操作系统启动校验方式,对系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则执行步骤203,若启动校验结果为未通过时,则执行步骤204。
52.需要说明的是,本实施例的操作系统启动校验包括但不限于以下两个方面:代码正确性校验和代码生效时间校验。
53.其中,代码正确性校验过程用于校验操作系统代码是否完整以及是否有被篡改,优选采用ecc校验方式实现,可以根据实际系统文件特性选择其他校验方法,比如采用组合式的校验方案,当代码正确性校验未通过时,很大概率为操作代码不完整或被篡改,不宜继续使用。
54.而代码生效时间校验则是通过操作系统代码中包含的生效时间信息与当前时间进行比对,若当前时间不早于生效时间,则可以判定代码生效时间校验的结果为通过,当上述两项校验均通过时,则可判定当前的操作系统代码的启动校验结果为通过,否则,判定启动校验结果为未通过。
55.根据本实施例提供的优选实施方式,可以先进行代码正确性校验,当代码正确性校验通过后再触发代码生效时间校验,在此流程模式下,只要当代码生效时间校验的结果
为通过时,即可判定启动校验结果为通过。
56.步骤203、启动操作系统代码。
57.步骤204、对当前校验的系统代码区的下一个系统代码区进行启动校验。
58.更具体地,在本实施例步骤204之后还可以包括:
59.步骤205、当所有系统代码区的启动校验结果均为未通过时,根据启动代码确定预设的系统备份区的地址,以便对系统备份区中的操作系统代码进行启动校验,当启动校验结果为通过时,则启动系统备份区中的操作系统代码,其中,系统备份区为预设在片外flash中的代码存储空间。
60.需要说明的是,本实施例通过在片外flash设置系统备份区bank3,作三重备份,当片内存储的操作系统代码均不满足启动校验的条件时,可以通过启动存储于系统备份区bank3的操作系统代码,以提高电能表设备的可靠性。
61.更具体地,在本实施例步骤203之后还可以包括:
62.步骤206、响应于电能表操作系统升级指令,根据电能表的运行状态信息,确定目标系统代码区,其中,目标系统代码区为其中一个处于非运行状态的系统代码区;
63.步骤207、接收待升级的操作系统代码;
64.步骤208、将待升级的操作系统代码存储至系统备份区,并对待升级的操作系统代码进行代码正确性校验,当代码正确性校验的结果为通过时,则执行步骤209。
65.步骤209、将待升级的操作系统代码存储至目标系统代码区;
66.步骤210、根据待升级的操作系统代码进行代码生效时间校验,当代码生效时间校验的结果为通过时,则将当前运行的操作系统代码切换为待升级的操作系统代码。
67.需要说明的是,基于上述的电能表启动方法,在电能表启动并开始运行后,当需要电能表的操作系统进行升级时,可以按照步骤205至步骤209的流程:
68.首先,响应于电能表操作系统升级指令,使电能表进入到系统升级切换模式,根据电能表的运行状态信息,确定目标系统代码区,其中,目标系统代码区为其中一个处于非运行状态的系统代码区,例如当前电能表运行的是系统代码区bank1中的操作系统代码,则bank1就是电能表终端中处于运行状态的系统代码区,相对的,剩余的bank2就是处于非运行状态的系统代码区。
69.在确定了待升级的操作系统代码文件最终存储的目标系统代码区之后,在将待升级的操作系统代码存入目标系统代码区之前,还可以先将待升级的操作系统代码先存入片外的系统备份区,在系统备份区中进行代码正确性校验,待确定了待升级的操作系统代码为完整且安全的,再将其转移到片内的目标系统代码区bank2中存储,等到当代码生效时间校验的结果为通过时,则停止bank1中运行的操作系统代码,转而启动bank2中的操作系统代码,从而完成将当前运行的操作系统代码切换为待升级的操作系统代码。
70.另外本实施例通过生效时间的设置和应用,可实现多个智能电表操作系统准同步启动,保证集抄数据的同步性和准确率。
71.以上为本申请提供的一种电能表操作系统启动方法的第二个实施例的详细说明,下面为本申请提供的一种电能表操作系统启动装置的第一个实施例的详细说明。
72.请参阅图3,本申请第三个实施例提供了一种电能表操作系统启动装置与本申请第一个实施例提及的电能表操作系统启动方法一一对应,本实施例的装置具体包括:
73.系统代码区确定单元301,用于响应于电能表的切换指令,读取预存在rom中的启动代码,根据启动代码确定预设的多个系统代码区的地址,其中,系统代码区均为预设在片内flash中的代码存储空间,且一个系统代码区对应一组操作系统代码;
74.操作系统启动校验单元302,用于根据预设的操作系统启动校验方式,对系统代码区中的操作系统代码进行启动校验的过程,若启动校验结果为通过时,则启动操作系统代码,若启动校验结果为未通过时,则对当前校验的系统代码区的下一个系统代码区进行启动校验。
75.以上为本申请提供的一种电能表操作系统启动装置的第一个实施例的详细说明,下面为本申请提供的一种电能表终端实施例和一种存储介质实施例的详细说明。
76.本申请第四个实施例提供了一种电能表终端,包括:存储器和处理器;
77.存储器用于存储程序代码,程序代码与本申请第一个实施例或第二个实施例提及的电能表操作系统启动方法相对应;
78.处理器用于执行该程序代码,以实现本申请第一个实施例或第二个实施例提及的电能表操作系统启动方法。
79.本申请第五个实施例提供了一种存储介质,该存储介质中保存有与本申请第一个实施例或第二个实施例提及的电能表操作系统启动方法相对应的程序代码。
80.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
81.在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
82.本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
83.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
84.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
85.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
86.以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1