一种管理电器参数的方法、系统、设备以及介质与流程

文档序号:23003249发布日期:2020-11-20 11:51阅读:166来源:国知局
一种管理电器参数的方法、系统、设备以及介质与流程

本发明涉及电源领域,具体涉及一种管理电器参数的方法、系统、设备以及存储介质。



背景技术:

在存储领域,bbu保证系统在市电断电后数据转储过程的有效性。从软件角度看,存储控制器上的mcs有bbu管理模块,主要负责bbu运作的安全性、可靠性及稳定性。

目前,bbu的多个电器参数以源代码的方式写入在mcs中,且不同平台,不同bbu类型参数不同,这些参数在bbu管理模块具备不同的作用。当前,bbu电器参数调整、引入测试,需要修改mcs源代码、编译、灌装等一系列操作,造成调试不便。特别是在新bbu引入环节,需要对大量电器参数进行调整,这无形中增加了大量调试工作量。



技术实现要素:

有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种管理电器参数的方法,包括以下步骤:

响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码;

根据所述校验码在电源的存储器的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址;

根据所述地址在所述存储器的第二区域中读取或更改所述电器参数的值。

在一些实施例中,根据所述校验码在电源的存储器的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址,进一步包括:

根据所述校验码依次遍历所述第一区域的每一个子区域并判断所述子区域中的预先保存的校验码是否与所述指令对应的校验码相同;

响应于所述子区域中的预先保存的校验码与所述指令对应的校验码相同,在所述子区域中获取到所述地址。

在一些实施例中,还包括:

响应于每一个所述子区域中预先保存的校验码与所述指令对应的校验码均不相同,反馈所述电器参数的值读取或更改失败。

在一些实施例中,还包括:

根据所述电源的类型以及所述电源所在平台的类型,确定待烧录到所述存储器的多个电器参数;

将所述多个电器参数的名称对应的校验码和值对应的地址分别烧录到所述第一区域中的不同的子区域中。

在一些实施例中,还包括:

根据所述名称对应的校验码和所述值对应的地址在所述存储器中所占字节大小确定每一个子区域的长度;

根据所述子区域的数量以及所述每一个子区域的长度确定所述第一区域的长度;

根据所述第一区域的长度以及每一个电器参数的值所占字节大小确定每一个所述电器参数的值在所述第二区域中的地址。

在一些实施例中,响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码,进一步包括:

根据管理所述电源的管理单元的版本确定待生成校验码的多个电器参数;

分别利用多个所述电器参数的名称生成对应的校验码以建立所述电器参数的名称与所述对应的校验码的映射;

根据所述映射得到所述指令对应的校验码。

在一些实施例中,分别利用多个所述电器参数的名称生成对应的校验码,进一步包括:

利用crc编码方法计算每一个所述电器参数的名称对应的校验码。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种管理电器参数的系统,包括:

匹配模块,所述匹配模块配置为响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码;

获取模块,所述获取模块配置为根据所述校验码在电源的存储器的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址;

更改模块,所述更改模块配置为根据所述地址在所述存储器的第二区域中读取或更改所述电器参数的值。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种管理电器参数的方法的步骤。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种管理电器参数的方法的步骤。

本发明具有以下有益技术效果之一:本发明提出的方案将电源的参数从mcs的bbu管理单元的源代码中解耦到bbu的存储器中,这样在不增加硬件的情况下,极大的方便bbu电器参数调整,并灵活处理不同版本兼容性问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明的实施例提供的管理电器参数的方法的流程示意图;

图2为本发明的实施例提供的电器参数名称和key值的对应图;

图3为本发明的实施例提供的存储器的结构示意图;

图4为本发明的实施例提供的电器参数名称、key值和pos信息的对应图;

图5为本发明的实施例提供的管理电器参数的系统的结构示意图;

图6为本发明的实施例提供的计算机设备的结构示意图;

图7为本发明的实施例提供的计算机可读存储介质的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

需要说明的是,在本发明的实施例中,存储控制器包含cpu、内存、sas接口、电源模块、bbu(电源)、可挂载硬盘的存储控制设备。

mcs:multiplecontrollersystem,多控制器系统,运行在存储控制器上的管理单元,一般通过系统安装包进行灌装。

crc:cyclicredundancycheck,是一种根据计算机文件等数据产生简短固定位数校验码的一种编码技术。

eeprom:全称electricallyerasableprogrammablereadonlymemory,是指带电可擦可编程只读存储器,其为一种掉电后不丢失数据的存储芯片。

根据本发明的一个方面,本发明的实施例提出一种管理电器参数的方法,如图1所示,其可以包括步骤:

s1,响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码;

s2,根据所述校验码在电源的存储器中的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址;

s3,根据所述地址在所述存储器的第二区域中读取或更改所述电器参数的值。

本发明提出的方案将电源的参数从mcs的bbu管理单元的源代码中解耦到bbu的存储器中,这样在不增加硬件的情况下,极大的方便bbu电器参数调整,并灵活处理不同版本兼容性问题。

在一些实施例中,步骤s1,响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码,进一步包括:

根据管理所述电源的管理单元的版本确定待生成校验码的多个电器参数;

分别利用多个所述电器参数的名称生成对应的校验码以建立所述电器参数的名称与所述对应的校验码的映射;

根据所述映射得到所述指令对应的校验码。

在一些实施例中,分别利用多个所述电器参数的名称生成对应的校验码,进一步包括:

利用crc编码方法计算每一个所述电器参数的名称对应的校验码。

具体的,如图2所示,mcs的bbu管理单元可以识别出当前的mcs版本,也即bbu管理单元的版本,然后依据crc生成当前版本下的多个电器参数的名称与校验码(key值)的映射表。

需要说明的是,由于在本发明的实施例中,电器参数的名称是以源代码的方式写入在mcs中,源码中可方便利用“##”运算符将变量名称转换为字符串,进而利用crc计算key值。

在一些实施例中,根据所述校验码在电源的存储器的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址,进一步包括:

根据所述校验码依次遍历所述第一区域的每一个子区域并判断所述子区域中的预先保存的校验码是否与所述指令对应的校验码相同;

响应于所述子区域中的预先保存的校验码与所述指令对应的校验码相同,在所述子区域中获取到所述地址。

具体的,如图3所示,在bbu的存储器(eeprom)中规划出第一区域(top区域)和第二区域(value区域)。其中,top区域可以包括多个子区域(即图3中所示的多个head信息),每一个head信息可以包括key值和pos信息,其中key值为电器参数的名称对应的校验码,pos信息为key值对应的电器参数的值在value区域的存放地址(也即电器参数的值对应的地址)。在一些实施例中,子区域的数量可以根据存储器的大小确定,例如图3中所示的256个子区域(即256个head信息)。而value区域则存放电器参数的值,如图3所示,value区域中的每一个pos区域均可以存放一个key值对应的电器参数的值,长度可以根据实际的电器参数的值确定,不同的电器参数的值的长度不同,例如图2所示的key值为3b对应的电器参数(序号为1)的电器参数的值的长度为2byte,而key值为87对应的电器参数(序号为4)的电器参数的值的长度为1byte。

这样,当bbu管理单元接收到读取或更改电器参数的值的指令时,可以根据图2中的key值和电器参数的名称的映射关系确定指令所对应的key值,然后根据指令对应的key值在电源的存储器的第一区域进行遍历以到pos信息,进而利用pos信息在第二区域中的相应地址中对电器参数的值进行读取或更改。例如,当bbu管理单元对序号为1的电器参数(charging_voltage_mv)的值进行读取或更改时,可以先根据自身的映射关系得到电器参数(charging_voltage_mv)的key值(3b),然后利用该key值在电源的存储器的第一区域进行遍历以到pos信息,进而利用pos信息在第二区域中的相应地址中对电器参数的值进行读取或更改。

需要说明的是,在第二区域中的相应地址中对电器参数的值进行读取或更改时,pos信息确定的可以是初始地址以及具体的读取长度,pos信息确定的还可以只是初始地址,具体的长度可以在bbu管理单元的源码中确定。

在一些实施例中,方法还包括:

响应于每一个所述子区域中预先保存的校验码与所述指令对应的校验码均不相同,反馈所述电器参数的值读取或更改失败。

具体的,当对存储器的第一区域的所有子区域进行遍历后,均无法匹配到对应的key值,也即每一个所述子区域中预先保存的校验码与所述指令对应的校验码均不相同,则说明bbu管理单元与电源的版本不匹配,则反馈所述电器参数的值读取或更改失败。

需要说明的是,即便mcs和bbu版本不一致,即mcs的bbu管理单元源码中的电器参数和bbu中eeprom存储的电器参数不一致的情况下,也可以灵活兼容。例如,若mcs的bbu管理单元的源码中的电器参数的数量多于bbu中eeprom存储的电器参数数量,bbu管理单元仍可以读取bbu中eeprom存储的电器参数。而若mcs的bbu管理单元的源码中的电器参数的数量小于bbu中eeprom存储的电器参数数量,bbu中eeprom存储的电器参数仍可向bbu管理单元反馈其所需的电器参数的值或者bbu管理单元仍可通过key值对bbu中eeprom存储的电器参数进行读取或更改。

在一些实施例中,还包括:

根据所述电源的类型以及所述电源所在平台的类型,确定待烧录到所述存储器的多个电器参数;

将所述多个电器参数的名称对应的校验码和值对应的地址分别烧录到所述第一区域中的不同的子区域中。

在一些实施例中,还包括:

根据所述名称对应的校验码和所述值对应的地址在所述存储器中所占字节大小确定每一个子区域的长度;

根据所述子区域的数量以及所述每一个子区域的长度确定所述第一区域的长度;

根据所述第一区域的长度以及每一个电器参数的值所占字节大小确定每一个所述电器参数的值在所述第二区域中的地址。

具体的,不同的电源的类型或版本以及电源所在平台的类型决定了烧录到存储器中的电器参数的数量和值的不同。由于每一个电器参数的名称对应的校验码在存储器中所占字节可以为1byte,而每一个电器参数的值对应的地址在存储器中国所占字节可以为2byte,因此每一个子区域的大小均为3byte,这样当有256个子区域时,第一区域的总长度则为3*256=768byte。也即当需要烧录的电器参数的数量确定后第一区域的长度也能确定,并且每一个电器参数的值所占字节也是已知的,这样当多个电器参数烧录到存储器的顺序确定后,每一个电器参数的值在第二区域的地址也能确定,例如,如图4所示,若按照表中序号的顺序烧录多个电器参数,则通过确定第一区域的总长度后,key值为3b的pos值则可以为0×0300,其值的长度为2,则key值为12的pos值则可以为0×0302,以此类推即可得到每一个电器参数的值在第二区域的地址。

需要说明的是,烧录到存储器中的多个电器参数的顺序可以是随机的,只要确定每一个电器参数的值的长度以及第一区域的长度,根据烧录到存储器中的多个电器参数的顺序就可以得到每一个电器参数的值在第二区域的地址。

本发明提出的方案将电器参数的值从mcs的bbu管理单元的源代码中解耦到bbu的存储器中,不仅增加了存储器的利用率,还可以在新的bbu引入环节,避免软件人员修改mcs的bbu管理单元源代码、编译、灌装安装包等一系列工作量。可不通过修改源代码的方式修改电器参数的值,方便引入测试,并且在bbu测试过程中可方便测试人员随时调整电器参数,比如精准修改某个电器参数,以作边界测试。还可以在mcs和bbu版本不一致时,即mcs的bbu管理单元期望的电器参数和bbu中eeprom存储的电器参数不一致的情况下,也可以灵活兼容。这样在不增加硬件的情况下,极大的方便bbu电器参数调整,并灵活处理不同版本兼容性问题。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种管理电器参数的系统400,如图5所示,包括:

匹配模块401,所述匹配模块401配置为响应于接收到读取或更改电器参数的值的指令,根据所述指令对应的电器参数的名称得到校验码;

获取模块402,所述获取模块402配置为根据所述校验码在电源的存储器的第一区域中得到所述电器参数的值在所述存储器的第二区域中的地址;

更改模块403,所述更改模块403配置为根据所述地址在所述存储器的第二区域中读取或更改所述电器参数的值。

在一些实施例中,所述获取模块402还配置为:

根据所述校验码依次遍历所述第一区域的每一个子区域并判断所述子区域中的预先保存的校验码是否与所述指令对应的校验码相同;

响应于所述子区域中的预先保存的校验码与所述指令对应的校验码相同,在所述子区域中获取到所述地址。

在一些实施例中,所述获取模块402还配置为:

响应于每一个所述子区域中预先保存的校验码与所述指令对应的校验码均不相同,反馈所述电器参数的值读取或更改失败。

在一些实施例中,所述获取模块402还配置为:

根据所述电源的类型以及所述电源所在平台的类型,确定待烧录到所述存储器的多个电器参数;

将所述多个电器参数的名称对应的校验码和值对应的地址分别烧录到所述第一区域中的不同的子区域中。

在一些实施例中,所述获取模块402还配置为:

根据所述名称对应的校验码和所述值对应的地址在所述存储器中所占字节大小确定每一个子区域的长度;

根据所述子区域的数量以及所述每一个子区域的长度确定所述第一区域的长度;

根据所述第一区域的长度以及每一个电器参数的值所占字节大小确定每一个所述电器参数的值在所述第二区域中的地址。

在一些实施例中,所述匹配模块401还配置为:

根据管理所述电源的管理单元的版本确定待生成校验码的多个电器参数;

分别利用多个所述电器参数的名称生成对应的校验码以建立所述电器参数的名称与所述对应的校验码的映射;

根据所述映射得到所述指令对应的校验码。

在一些实施例中,所述匹配模块401还配置为:

利用crc编码方法计算每一个所述电器参数的名称对应的校验码。

基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机设备501,包括:

至少一个处理器520;以及

存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种管理电器参数的方法的步骤。

基于同一发明构思,根据本发明的另一个方面,如图7所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种管理电器参数的方法的步骤。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1