CN111273895A - 一种电池管理系统模块开发软件集成方法 - Google Patents
一种电池管理系统模块开发软件集成方法 Download PDFInfo
- Publication number
- CN111273895A CN111273895A CN201911076250.2A CN201911076250A CN111273895A CN 111273895 A CN111273895 A CN 111273895A CN 201911076250 A CN201911076250 A CN 201911076250A CN 111273895 A CN111273895 A CN 111273895A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- modules
- software
- dil
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种电池管理系统模块开发软件集成方法。为了克服现有技术软件开发耦合、功能扩展困难问题;本发明包括以下步骤:S1:对BMS的软件进行分层、分模块管理;定义数据管理层DIL,用于负责模块的数据管理和模块之间的数据交互;S2:模块之间接口的统一,定义DIL的接口函数和模块的接口函数名;S3:调用模块接口,进行数据交互;使用统一的接口函数,获取和释放定义在DIL的数据。本发明将软件模块化管理,解除软件之间的耦合关系,能够协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。模块之间由DIL连接,只需保持模块之间的接口定义,就能够允许不同人以不同方法实现相同的功能,提高兼容性和功能的扩展性。
Description
技术领域
本发明涉及一种软件开发和集成领域,尤其涉及一种电池管理系统模块开发软件集成方法。
背景技术
随着电动汽车的发展,对电动汽车的核心部件电池要求越来越高,同时随着行业对功能安全的越来越重视,作为电池的管理系统控制也越来越复杂,软件控制复杂度越来越高,软件代码量也越来越大。研发团队的重心落在电池应用层面的研究,开发和测试。而目前的BMS软件架构采用的是面向过程的应用执行体系,往往是一个人开发一个项目的所用软件,从而导致代码复用率低,模块相互之间耦合度高,软件代码的移植性差,软件单元测试困难,软件错误率高的问题。
有在其他领域的软件模块化开发集成的方法,例如,一种在中国专利文献上公开的“针对电能表软件的模块化设计方法”,其公告号“CN 109271146A”,包括电能表软件分层设计、电能表软件模块定义、模块交互定义、软件模块配置管理和电能表软件最小系统;电能表软件分层设计用于将电能表软件分层设计并定义各层级的内容和调用规则;电能表软件模块定义用于建立统一的软件功能模块模型;模块交互定义用于定义各个软件模块之间的数据交互规则;软件模块配置管理用于对软件模块进行功能配置选项的宏定义;电能表软件最小系统用于定义电能表软件的最小配置方案。该方法虽然对软件进行模块化区分,但是模块之间直接进行数据交互,在开发时对不同人员以不同开发方式开发的兼容性和扩展性差。
发明内容
本发明主要解决现有技术软件开发耦合、功能扩展困难问题;提供一种电池管理系统模块开发软件集成方法,使各模块进行解耦合独立运行,同时能方便模块的集成、扩展。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
本发明包括以下步骤:
S1:对动力电池管理系统(BMS)的软件进行分层、分模块管理;定义数据管理层(DIL),用于负责模块的数据管理和模块之间的数据交互;
S2:模块之间接口的统一,定义数据管理层(DIL)的接口函数和模块的接口函数名;
S3:调用模块接口,进行数据交互;使用统一的接口函数,获取和释放定义在DIL的数据。
使用分层模式架构,再将每层的软件模块化管理,各模块之间解耦合独立运行,协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。方便功能的软件模块的开发和集成。各单元模块有明确的接口定义,提高模块的可测性。模块与模块之间由数据管理层(DIL)连接,只需保持模块与模块之间的接口定义,就能够允许不同人以不同方法实现相同的功能。
作为优选,所述的步骤S1包括以下步骤:
S11:采用分层模式软件架构,将BMS系统构架划分为底层和应用层;
S12:根据功能的不同,将底层和应用层划分为若干个功能模块;
S13:定义数据管理层(DIL),用于负责模块的数据管理和各模块的数据交互。
先采用分层模式软件架构将软件分层,再将每层的软件按功能划分为不用的模块,将软件模块化管理,可协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。定义数据管理层(DIL)来管理数据和模块间的数据交互,只需保持模块的接口定义,允许不同人以不同方法实现相同的功能,提高兼容性和功能扩展能力。
作为优选,以基础软件和应用软件为区别进行分层,基础软件划分为底层,包括ECU的驱动模块、通讯模块、服务模块、系统调度模块;应用软件划分为应用层,包括完成项目需求的功能逻辑和算法。将软件分层管理,便于进一步的将软件模块化,解除软件之间的耦合关系,提高软件的复用能力。
作为优选,所述的DIL接口函数的定义包括在DIL中定义所有交互信号获取的接口函数GET和释放的接口函数SET;所述的模块接口函数名的定义包括定义各模块信号变量的获取和释放的接口函数名。数据管理层(DIL)用于管理数据和模块之间的数据交互。定义数据管理层(DIL)的获取和释放的接口函数,且定义各模块交互数据信号变量的获取和释放函数名。各个模块有明确的接口定义,模块的可测性得到提高。使用统一的接口函数,数据管理层(DIL)能够获取模块释放的交互数据,也能通过释放接口函数向模块释放数据。模块与模块之间由数据管理层连接,只需保持模块与模块之间的接口定义,就能允许不同人以不同方法实现相同的功能,提高兼容性和功能模块的扩展能力。避免信号变量直接在各模块之间进行传递,解除模块间的耦合关系。
作为优选,所述的步骤S2包括以下步骤:
S21:在数据管理层DIL中定义所有交互信号的获取接口函数GET和释放接口函数SET;
S22:使用Excel工具进行模块的数据管理,定义模块中数据的属性;
S23:通过MATLAB脚本语言将Excel管理的数据及定义的数据属性导入MATLAB的workspace中;
S24:使用MATLAB脚本语言,统一定义各模块变量获取和释放的接口函数名;
S25:使用MATLAB将workspace中的所有数据及定义的数据属性生成mat文件;
S26:将mat文件下发给模块开发负责人员。
通过MATLAB工具,将各数据通过脚本生成mat文件,通过mat文件完成项目负责人进行整体数据的管理,以及各功能模块开发负责人进行数据的获取。方便功能模块的开发。
作为优选,所述的步骤S21包括以下步骤:
S221:区分模块数据类型包括输入数据(var_in)、输出数据(var_out)、存储数据(eep_val)、标定数据(cal_val)和常量数据(cnst);
S222:定义数据属性包括名称(name)、描述(description)、数据类型(datatype)、维数(size)和初始值(initalvalue)。
通过excel完成各数据模块信号变量的梳理以及各变量的属性的管理,对模块的数据流分别梳理出输入数据、输出数据、存储数据、标定数据和常量数据。对各数据的属性梳理出包括数据的名称、描述、数据类型、维数以及初始值。用于规范化命名。
作为优选,所述的定义数据名称为对BMS项目数据变量名的规范命名;规范命名后的名称形式为存储类别(Storage-Class)组织形式(Organization-Form)模块识别符(Block-Identifier)_物理值(Physical-Value)_描述性文字(Descriptive-Name)_计量单位(Measurement-Unit)。通过规范化的数据命名规范,可通过数据的名称知道该数据的流向和属性。
本发明的有益效果是:
1.模块之间由数据管理层(DIL)连接,只需保持模块之间的接口定义,就能够允许不同人以不同方法实现相同的功能,提高兼容性和功能的扩展性。
2. 各模块有明确的接口定义,模块的可测性得到提高。
3. 软件模块化管理,解除软件之间的耦合关系,能够协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。
4. 通过规范化的数据命名规范,可通过数据的名称知道该数据的流向和属性。
附图说明
图1是本发明的一种方法流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
一种电池管理系统模块开发软件集成方法,如图1所示,包括以下步骤:
S1:对动力电池管理系统(BMS)的软件进行分层、分模块管理;定义数据管理层(DIL),用于负责模块的数据管理和模块之间的数据交互。
S11:采用分层模式软件架构,将BMS系统构架划分为底层和应用层。
以基础软件和应用软件为区别进行分层,基础软件划分为底层,底层包括ECU的驱动模块、通讯模块、服务模块和系统调度模块。应用软件划分为应用层,应用层包括完成项目需求的功能逻辑和算法。
S12:根据功能的不同,将底层和应用层划分为若干个功能模块。
根据功能划分模块,从而完成整个复杂的软件系统模块的划分。软件模块化管理,可协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。
S13:定义数据管理层(DIL),用于负责模块的数据管理和各模块的数据交互。
通过分层管理定义数据管理层(DIL),该层主要负责管理各模块的数据管理以及各模型之间数据的交互。而软件模块之间不进行数据交互,整个系统所用的信号都经过DIL。
S2:模块之间接口的统一,定义数据管理层(DIL)的接口函数和模块的接口函数名。
S21:在数据管理层DIL中定义所有交互信号的获取接口函数GET和释放接口函数SET。
S22:使用Excel工具进行模块的数据管理,定义模块中数据的属性。
S221:区分模块数据类型包括输入数据(var_in)、输出数据(var_out)、存储数据(eep_val)、标定数据(cal_val)和常量数据(cnst)。
S222:定义数据属性包括名称(name)、描述(description)、数据类型(datatype)、维数(size)和初始值(initalvalue)。
将数据规范化命名。规范命名后的名称形式为存储类别(Storage-Class)组织形式(Organization-Form)模块识别符(Block-Identifier)_物理值(Physical-Value)_描述性文字(Descriptive-Name)_计量单位(Measurement-Unit)。
例如,标准化命名后的一个变量名为GeBSWB_U_MaxCellVolt_V。
其中,第一位G为存储类别(Storage-Class),代表整体类型(Global);还可以是C,代表标定类型(Calibration);L,代表本地类型(Local);S,代表常数类型(Constant);D,代表定义类型(Define);E,代表EEPROM类型。
第二位e为组织形式(Organization-Form),代表元素(Element);还可以是a,代表数组(Array);t,代表表格(Table);s,代表结构(Structure);n,代表非线性轴(NonlinearAxis)。
BSWB为模块识别符(Block-Identifier),表示来源。
U为物理值(Physical-Value),代表电压(Voltage);还可以是I,电流(Current);e,枚举(enumeration);b,布尔型(Boolean);N,数字(number);P,功率(Power);t,时间(Time);r,比率(ratio);S,速度(Speed);Cf,转换系数(Conversion factor);Cnt,次数(Count);f,频率(Frequency);T,温度(Temperature);R,电阻(Resistance);Q,数量(Quantity);E,能源(Energy)。
MaxCellVolt为描述性文字(Descriptive-Name),最大单元格。
V为计量单位(Measurement-Unit),伏。
规范化的数据命名规范,可通过数据的名称知道该数据的流向和属性。
S23:通过MATLAB脚本语言将Excel管理的数据及定义的数据属性导入MATLAB的workspace中。
S24:使用MATLAB脚本语言,统一定义各模块变量获取和释放的接口函数名。
各个模块有明确的接口定义,模块的可测性得到提高。
使用统一的接口函数,数据管理层(DIL)能够获取模块释放的交互数据,也能通过释放接口函数向模块释放数据。模块之间的信息交互都通过DIL进行,分别从DIL中提取和释放变量,避免信号变量直接在各模块之间进行传递,解除模块间的耦合关系。
模块与模块之间由数据管理层连接,只需保持模块与模块之间的接口定义,就能允许不同人以不同方法实现相同的功能,提高兼容性和功能模块的扩展能力。
S25:使用MATLAB将workspace中的所有数据及定义的数据属性生成mat文件。
S26:将mat文件下发给模块开发负责人员。
通过MATLAB工具,将各数据通过脚本生成mat文件,通过mat文件完成项目负责人进行整体数据的管理以及各功能模块开发负责人进行数据的获取,方便功能模块的开发。
S3:调用模块接口,进行数据交互;使用统一的接口函数,获取和释放定义在DIL的数据。
模块之间的信息交互都通过DIL进行,分别从DIL中提取和释放变量,避免信号变量直接在各模块之间进行传递,解除模块间的耦合关系。
本发明使用分层软件架构,将软件模块化管理,解除软件之间的耦合关系,能够协调研发团队同步开发,独立运行和调试各功能模块,最后进行集成功能集成测试。各模块有明确的接口定义,模块的可测性得到提高。模块之间由数据管理层(DIL)连接,只需保持模块之间的接口定义,就能够允许不同人以不同方法实现相同的功能,提高兼容性和功能的扩展性。通过规范化的数据命名规范,可通过数据的名称知道该数据的流向和属性。
Claims (7)
1.一种电池管理系统模块开发软件集成方法,其特征在于,包括以下步骤:
S1:对动力电池管理系统(BMS)的软件进行分层、分模块管理;定义数据管理层(DIL),用于负责模块的数据管理和模块之间的数据交互;
S2:模块之间接口的统一,定义数据管理层(DIL)的接口函数和模块的接口函数名;
S3:调用模块接口,进行数据交互;使用统一的接口函数,获取和释放定义在DIL的数据。
2.根据权利要求1所述的一种电池管理系统模块开发软件集成方法,其特征在于,所述的步骤S1包括以下步骤:
S11:采用分层模式软件架构,将BMS系统构架划分为底层和应用层;
S12:根据功能的不同,将底层和应用层划分为若干个功能模块;
S13:定义数据管理层(DIL),用于负责模块的数据管理和各模块的数据交互。
3.根据权利要求2所述的一种电池管理系统模块开发软件集成方法,其特征在于,以基础软件和应用软件为区别进行分层,基础软件划分为底层,包括ECU的驱动模块、通讯模块、服务模块、系统调度模块;应用软件划分为应用层,包括完成项目需求的功能逻辑和算法。
4.根据权利要求1所述的一种电池管理系统模块开发软件集成方法,其特征在于,所述的DIL接口函数的定义包括在DIL中定义所有交互信号获取的接口函数GET和释放的接口函数SET;所述的模块接口函数名的定义包括定义各模块信号变量的获取和释放的接口函数名。
5.根据权利要求1或4所述的一种电池管理系统模块开发软件集成方法,其特征在于,所述的步骤S2包括以下步骤:
S21:在数据管理层DIL中定义所有交互信号的获取接口函数GET和释放接口函数SET;
S22:使用Excel工具进行模块的数据管理,定义模块中数据的属性;
S23:通过MATLAB脚本语言将Excel管理的数据及定义的数据属性导入MATLAB的workspace中;
S24:使用MATLAB脚本语言,统一定义各模块变量获取和释放的接口函数名;
S25:使用MATLAB将workspace中的所有数据及定义的数据属性生成mat文件;
S26:将mat文件下发给模块开发负责人员。
6.根据权利要求5所述的一种电池管理系统模块开发软件集成方法,其特征在于,所述的步骤S21包括以下步骤:
S221:区分模块数据类型包括输入数据(var_in)、输出数据(var_out)、存储数据(eep_val)、标定数据(cal_val)和常量数据(cnst);
S222:定义数据属性包括名称(name)、描述(description)、数据类型(datatype)、维数(size)和初始值(initalvalue)。
7.根据权利要求6所述的一种电池管理系统模块开发软件集成方法,其特征在于,所述的定义数据名称为对BMS项目数据变量名的规范命名;规范命名后的名称形式为存储类别(Storage-Class)组织形式(Organization-Form)模块识别符(Block-Identifier)_物理值(Physical-Value)_描述性文字(Descriptive-Name)_计量单位(Measurement-Unit)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076250.2A CN111273895B (zh) | 2019-11-06 | 2019-11-06 | 一种电池管理系统模块开发软件集成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076250.2A CN111273895B (zh) | 2019-11-06 | 2019-11-06 | 一种电池管理系统模块开发软件集成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111273895A true CN111273895A (zh) | 2020-06-12 |
CN111273895B CN111273895B (zh) | 2023-08-22 |
Family
ID=70998715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911076250.2A Active CN111273895B (zh) | 2019-11-06 | 2019-11-06 | 一种电池管理系统模块开发软件集成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111273895B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111769311A (zh) * | 2020-06-30 | 2020-10-13 | 上海捷氢科技有限公司 | 一种氢燃料电池控制系统 |
CN116719586A (zh) * | 2023-08-11 | 2023-09-08 | 宁德时代新能源科技股份有限公司 | 软件模块调用方法、装置、设备、存储介质和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080092150A1 (en) * | 2006-09-21 | 2008-04-17 | Jethi Rashesh J | Data platform web services application programming interface |
CN103377070A (zh) * | 2012-04-12 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种现场总线接口抽象方法 |
CN105303464A (zh) * | 2015-11-13 | 2016-02-03 | 威胜集团有限公司 | 智能电能表的数据管理系统 |
CN108376065A (zh) * | 2018-03-01 | 2018-08-07 | 中国航空无线电电子研究所 | 构建模型驱动的航电软件开发环境的系统 |
CN109271146A (zh) * | 2018-09-06 | 2019-01-25 | 威胜集团有限公司 | 针对电能表软件的模块化设计方法 |
-
2019
- 2019-11-06 CN CN201911076250.2A patent/CN111273895B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080092150A1 (en) * | 2006-09-21 | 2008-04-17 | Jethi Rashesh J | Data platform web services application programming interface |
CN103377070A (zh) * | 2012-04-12 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种现场总线接口抽象方法 |
CN105303464A (zh) * | 2015-11-13 | 2016-02-03 | 威胜集团有限公司 | 智能电能表的数据管理系统 |
CN108376065A (zh) * | 2018-03-01 | 2018-08-07 | 中国航空无线电电子研究所 | 构建模型驱动的航电软件开发环境的系统 |
CN109271146A (zh) * | 2018-09-06 | 2019-01-25 | 威胜集团有限公司 | 针对电能表软件的模块化设计方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111769311A (zh) * | 2020-06-30 | 2020-10-13 | 上海捷氢科技有限公司 | 一种氢燃料电池控制系统 |
CN111769311B (zh) * | 2020-06-30 | 2021-10-15 | 上海捷氢科技有限公司 | 一种氢燃料电池控制系统 |
CN116719586A (zh) * | 2023-08-11 | 2023-09-08 | 宁德时代新能源科技股份有限公司 | 软件模块调用方法、装置、设备、存储介质和程序产品 |
CN116719586B (zh) * | 2023-08-11 | 2024-01-19 | 宁德时代新能源科技股份有限公司 | 软件模块调用方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111273895B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782539B (zh) | 一种基于国产操作系统的测试诊断一体化开发平台 | |
CN109254905B (zh) | 基于工作流的分布式并行自动化测试系统 | |
CN109840207A (zh) | 一种基于autosar网络管理自动化测试系统及测试方法 | |
CN108255649A (zh) | 一种基于建模仿真协同分析的诊断策略设计方法 | |
CN107368408A (zh) | 一种面向接口的软件故障注入自动化测试方法 | |
CN103235881B (zh) | 一种基于最小割集的核反应堆故障监测系统 | |
CN106292626B (zh) | 用于新能源汽车测试评价的数据采集装置和方法 | |
CN109062777A (zh) | 一种轨道交通信号设备通用自动化测试系统 | |
CN111273895B (zh) | 一种电池管理系统模块开发软件集成方法 | |
CN111898328B (zh) | 一种基于FPGA的SoC原型验证系统 | |
CN105225049A (zh) | 一种高可扩展性故障诊断专家系统 | |
CN114236359B (zh) | 面向ate测试设备的集成电路测试激励生成方法 | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN108108403A (zh) | 基于间隔层设备逻辑组态可视化平台系统及其构建方法 | |
CN116680885A (zh) | 一种基于SysML和Tango的复杂装置控制软件建模与验证方法 | |
CN106291329A (zh) | 一种具有自动检测配点终端三遥功能的测试系统 | |
CN112035996A (zh) | 一种装备测试性一体化设计与评估系统 | |
Krammer et al. | Standard compliant co-simulation models for verification of automotive embedded systems | |
CN110989554B (zh) | 新能源整车集成控制器硬件在环测试用例库建立方法 | |
CN108712165A (zh) | 一种用于异步交互接口监测的管脚复用电路 | |
CN103017815A (zh) | 一种可视化的通用测试系统及测试方法 | |
Guo et al. | ISDP: Interactive software development platform for household appliance testing industry | |
Mueller-Glaser et al. | An approach to computer-aided specification | |
CN101702089B (zh) | 一种带存储功能的多路信号发生模拟器 | |
Mei et al. | ATS software framework design pattern and application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310051 1st and 6th floors, no.451 Internet of things street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Zhejiang Zero run Technology Co.,Ltd. Address before: 310051 1st and 6th floors, no.451 Internet of things street, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: ZHEJIANG LEAPMOTOR TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |