一种UDS诊断接口软件生成的方法、装置及设备
技术领域
本发明涉及汽车监控管理领域,特别是涉及一种UDS诊断接口软件生成的方法、装置及设备。
背景技术
电池管理控制器,通常在行业内被称作是新能源汽车电池的“大脑”,与电池模组、整车控制器共同构成新能源汽车的三大核心零部件。电池管理控制器作为电池包的监测和控制中心,承担着对电池物理参数实时监控、电池状态估计、在线诊断与预警、充放电与预充控制、均衡管理和热管理等任务。电池模组内部状态多变,电池包内更是情况错综复杂,各个零部件之间密切关联、相互协同,因此,对电池包的在线诊断显得尤为重要,它为电池包的故障排除和修复提供了强有力的依据;当前电池管理控制器的诊断软件由控制器软件开发工程师根据《UDS诊断问卷调查表》中的信息,手动编写软件代码来实现电池管理控制器的诊断功能,由于电池包内部状态多变、零部件繁多,需要诊断的故障特别多,设计的软件异常复杂,如果直接按照《UDS诊断问卷调查表》的更新修改相应的软件代码,非常容易出错,而重新编写诊断代码,则需要耗费软件工程师大量的时间进行软件代码编写,同样容易出现错误。
因此,如何加快生成UDS诊断接口软件的速度,降低出现错误的几率,以提升软件开发的效率和质量,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种UDS诊断接口软件生成的方法、装置及设备,用于加快生成UDS诊断接口软件的速度,降低出现错误的几率,以提升软件开发的效率和质量。
为解决上述技术问题,本发明提供一种UDS诊断接口软件生成的方法,包括:
当接收到软件生成命令时,加载UDS诊断问卷调查表文件;
在所述UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表;
在所述列表中获取诊断参数,并按预设规则将所述诊断参数转换为软件源代码,以生成UDS诊断接口软件。
可选地,所述列表具体包括:车辆故障码DTC列表、快照和扩展数据列表以及车辆相关数据流DID列表。
可选地,所述在所述列表中获取诊断参数,并按预设规则将所述诊断参数转换为软件源代码,具体包括:
读取所述车辆故障码DTC列表,确定故障信息相关列;
依据行号读取所述故障信息相关列中的故障信息;
将所述故障信息按所述行号的顺序排列,写入枚举变量中,以得到UDS诊断故障索引列表。
可选地,在所述读取所述车辆故障码DTC列表,确定故障信息相关列之后,还包括:
依据所述行号读取各所述故障信息的故障接口信号和各所述故障信息的故障码;
将所述故障接口信号和所述故障码一一对应,以宏定义的方式定义各所述故障信息,以生成UDS故障码定义表。
可选地,在所述读取所述车辆故障码DTC列表,确定故障信息相关列之后,还包括:
将所述故障信息依照故障探测函数的调用格式进行组合,写入指定文件中,以生成故障探测函数。
可选地,所述在所述列表中获取诊断参数,并按预设规则将所述诊断参数转换为软件源代码,具体包括:
读取所述车辆相关数据流DID列表,确定车辆相关数据流DID信息;
将所述车辆相关数据流DID信息进行排列和定义,以生成UDS故障车辆相关数据流DID列表。
可选地,所述在所述列表中获取诊断参数,并按预设规则将所述诊断参数转换为软件源代码,具体包括:
读取所述快照和扩展数据列表,获取冻结帧信息;
将所述冻结帧信息进行排列和定义,以生成UDS故障冻结帧列表。
可选地,所述接收到软件命令,具体为接收到在软件生成工具界面上的点击命令。
为解决上述技术问题,本发明还提供一种UDS诊断接口软件生成的装置,包括:
加载模块,用于当接收到软件生成命令时,加载UDS诊断问卷调查表文件;
读取模块,用于在所述UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表;
转换模块,用于在所述列表中获取诊断参数,并按预设规则将所述诊断参数转换为软件源代码,以生成UDS诊断接口软件。
为解决上述技术问题,本发明还提供一种UDS诊断接口软件生成的设备,包括:
存储器,用于存储指令,所述指令包括上述任意一项所述UDS诊断接口软件生成的方法的步骤;
处理器,用于执行所述指令。
本发明所提供的UDS诊断接口软件生成的方法,通过在接收到软件生成命令时,加载UDS诊断问卷调查表文件,从UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表,并在列表中获取诊断参数,按预设规则将诊断参数转换为软件源代码,以根据软件源代码生成UDS诊断接口软件,提供了一个自动生成UDS诊断接口软件的方式,当需要重新对UDS诊断接口软件进行重建或更新时,无需软件工程师手动编写,从而使UDS诊断接口软件的创建更加高效且不易出错,进而保证了UDS对电池包在线诊断的准确性。本发明还提供一种UDS诊断接口软件生成的装置和设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种UDS诊断接口软件生成的方法的流程图;
图2为本发明实施例提供的一种生成UDS诊断故障索引列表的具体实施方式的流程图;
图3为本发明实施例提供的一种生成UDS故障码定义表的具体实施方式的流程图;
图4为本发明实施例提供的一种生成故障探测函数的具体实施方式的流程图;
图5为本发明实施例提供的一种生成UDS故障车辆相关数据流DID列表的具体实施方式的流程图;
图6为本发明实施例提供的一种生成UDS故障冻结帧列表的具体实施方式的流程图;
图7为本发明实施例提供的一种电池管理控制器UDS诊断接口软件生成的装置的结构示意图;
图8为本发明实施例提供的一种UDS诊断接口软件生成的设备的结构示意图。
具体实施方式
本发明的核心是提供一种UDS诊断接口软件生成的方法、装置及设备,用于加快生成UDS诊断接口软件的速度,降低出现错误的几率,以提升软件开发的效率和质量。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种UDS诊断接口软件生成的方法的流程图。如图1所示,UDS诊断接口软件生成的方法包括:
S10:当接收到软件生成命令时,加载UDS诊断问卷调查表文件。
电池管理控制器,简称电控,是作为电池包的监测和控制中心,承担着对电池物理参数实时监控、电池状态估计、在线诊断与预警、充放电与预充控制、均衡管理和热管理等任务。当前电池管理控制器的诊断软件由控制器软件开发工程师根据《UDS诊断问卷调查表》中的信息,手动编写软件代码来实现电池管理控制器的诊断功能。《UDS诊断问卷调查表》是一个Excel文件,是参照ISO14229规范定义的一个文档,其中规定了电子控制单元ECU需要支持的所有UDS服务、否定相应码、故障标志位、数据流等UDS诊断相关的内容,是一个规范性的文档。
在具体实施中,接收到软件命令,具体为接收到在软件生成工具界面上的点击命令。可以通过MATLAB等软件建立UDS诊断接口代码生成工具的操作界面,并在操作界面中设置接口列表路径和《UDS诊断问卷调查表》加载路径。当用户在操作界面上点击开始生成的按钮后,到预设的家在路径调取《UDS诊断问卷调查表》文件。
S11:在UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表。
根据预设的选择或者用户自行选择,在《UDS诊断问卷调查表》文件中读取与UDS诊断接口相关的列表,通常可以包括车辆故障码DTC列表(《6-1_DTCList》)、快照和扩展数据列表(《6-3_Snapshot&ExtendedDataRe》)以及车辆相关数据流DID列表(《7-1_DIDList》)。
《UDS诊断问卷调查表》文件解析方法为,打开《UDS诊断问卷调查表》文件后,首先按照sheet文件名称进行读取各列表,读取后再按行和列读取每个列表中每个表格中的内容。
S12:在列表中获取诊断参数,并按预设规则将诊断参数转换为软件源代码。
通过遍历《UDS诊断问卷调查表》文件中的预设的列表的各行各列之后,获取所需的电池管理控制器的诊断参数,再按预设规则将诊断参数转换为软件源代码。
在具体实施中,预先根据UDS诊断接口软件所需的功能模块,设定转换规则,将读取的列表中的信息进行归纳整理,并转换为用于诊断的源代码。
在生成所需的源代码后,在操作界面上显示UDS接口代码生成完成的提示。可选地,当生成源代码的过程中出现错误时,在操作界面或编写软件的主界面(如matlab)上显示错误信息。
本发明实施例提供的UDS诊断接口软件生成的方法,通过在接收到软件生成命令时,加载UDS诊断问卷调查表文件,从UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表,并在列表中获取诊断参数,按预设规则将诊断参数转换为软件源代码,以根据软件源代码生成UDS诊断接口软件,提供了一个自动生成UDS诊断接口软件的方式,当需要重新对UDS诊断接口软件进行重建或更新时,无需软件工程师手动编写,从而使UDS诊断接口软件的创建更加高效且不易出错,进而保证了UDS对电池包在线诊断的准确性。
图2为本发明实施例提供的一种生成UDS诊断故障索引列表的具体实施方式的流程图。
在上述实施例的基础上,步骤S12可以包括:
读取车辆故障码DTC列表,确定故障信息相关列。
依据行号读取故障信息相关列中的故障信息。
将故障信息按行号的顺序排列,写入枚举变量中,以得到UDS诊断故障索引列表。
在具体实施中,如图2所示,具体可以包括:
S20:读取车辆故障码DTC列表;
S21:对表中各列的属性进行定义,确定故障信息的相关列:
DTC_Meaning=4
DTC_Number=2
行初始值定义ir=0;
S22:行号ir++(按照行号依次对每个故障信息进行识别);
S23:按照行号读取每个故障信息的接口信号,将读取的接口信号按照行号的顺序进行排列,写入枚举变量中;
S24:判断行号ir是否为最后一行;如果是,则结束;如果否,则返回步骤S22。
通过以上步骤生成整个电池管理控制器的UDS诊断故障索引列表。
图3为本发明实施例提供的一种生成UDS故障码定义表的具体实施方式的流程图。
在上述实施例的基础上,在读取车辆故障码DTC列表,确定故障信息相关列之后,还可以包括:
依据行号读取各故障信息的故障接口信号和各故障信息的故障码。
将故障接口信号和故障码一一对应,以宏定义的方式定义各故障信息,以生成UDS故障码定义表。
在具体实施中,如图3所示,在步骤S20之后,还包括:
S30:定义故障信息相关列的属性如下:
DTC_Meaning=4
DTC_Number=2
L_Byte=7
HM_Byte=3
行初始值定义ir=0;
S31:行号ir++(按照行号依次对每个故障信息进行识别);
S32:按照行号读取每个故障信息的故障接口信号、故障高中低数据,识别后将故障接口信号与车辆故障码DT一一对应,使用宏定义的方式定义对每个故障信息进行定义;
S33:判断行号ir是否为最后一行;如果是,则结束;如果否,则返回步骤S31。
通过以上步骤实现对车辆故障码DTC列表中所有需要处理的故障信息的识别,从而生成UDS故障码定义表。
图4为本发明实施例提供的一种生成故障探测函数的具体实施方式的流程图。
在上述实施例的基础上,在读取车辆故障码DTC列表,确定故障信息相关列之后,还可以包括:
将故障信息依照故障探测函数的调用格式进行组合,写入指定文件中,以生成故障探测函数。
在具体实施中,如图4所示,在步骤S20之后,还包括:
S40:定义故障信息相关列的属性如下:
DTC_Meaning=4
DTC_Number=2
Fanult_class=6
行初始值定义ir=0;
S41:行号ir++(按照行号依次对每个故障信息进行识别);
S42:按照行号读取每个故障信息的故障接口信号以及对应的故障等级,将读取的故障接口信号以及故障等级进行组合,形成故障探测函数,并写入指定的*.c文件中;
S43:判断行号ir是否为最后一行;如果是,则结束;如果否,则返回步骤S41。
通过以上步骤,实现将车辆故障码DTC列表中给定的所有故障发生标志位接口信号转换为代码,从而生成故障探测函数。
图5为本发明实施例提供的一种生成UDS故障车辆相关数据流DID列表的具体实施方式的流程图。
在上述实施例的基础上,步骤S12还可以包括:
读取车辆相关数据流DID列表,确定车辆相关数据流DID信息。
将车辆相关数据流DID信息进行排列和定义,以生成UDS故障车辆相关数据流DID列表。
在具体实施中,如图5所示,具体包括:
S50:读取车辆相关数据流DID列表;
S51:判断数据是否包含在冻结帧中;如果是,则进入步骤S52;如果否,则进入步骤S53;
S52:获取数据流信息的数据占位长度;
S54:判断数据占位长度是否小于9;如果是,则进入步骤S55;如果否,则进入步骤S56;
S55:定义数据流字节长度为1;
S56:定义数据流字节长度为2;
S57:获取数据流信息的接口信号名称以及对应的数据ID,将读取的信息进行组合,对每个数据流信息进行定义,并写入指定的*.c文件中;
S58:判断行号ir是否为最后一行;如果是,则结束;如果否,则返回步骤S51;
S53:按照固定格式将数据写入指定的*.c文件中。
通过以上步骤,实现将车辆相关数据流DID列表中给定的所有数据流接口信号转换为代码,从而生成UDS故障车辆相关数据流DID列表。
图6为本发明实施例提供的一种生成UDS故障冻结帧列表的具体实施方式的流程图。
在上述实施例的基础上,步骤S12还可以包括:
读取快照和扩展数据列表,获取冻结帧信息;
将冻结帧信息进行排列和定义,以生成UDS故障冻结帧列表。
在具体实施中,如图6所示,具体包括:
S60:读取快照和扩展数据列表;
S61:获取数据流信息的数据占位长度;
S62:判断数据占位长度是否小于9;如果是,则进入步骤S63;如果否,则进入步骤S64;
S63:定义数据流字节长度为1;
S64:定义数据流字节长度为2;
S65:获取数据流信息的接口信号名称以及对应的数据ID,将读取的信息进行组合,对每个数据流信息进行定义,并写入指定的*.c文件中;
S66:判断行号ir是否为最后一行;如果是,则结束;如果否,则返回步骤S61。
通过以上步骤,实现将快照和扩展数据列表中给定的所有冻结帧接口信号转换为代码,从而生成UDS故障冻结帧列表。
上文详述了UDS诊断接口软件生成的方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的UDS诊断接口软件生成的装置。
图7为本发明实施例提供的一种电池管理控制器UDS诊断接口软件生成的装置的结构示意图,包括:
加载模块701,用于当接收到软件生成命令时,加载UDS诊断问卷调查表文件;
读取模块702,用于在UDS诊断问卷调查表文件中读取与UDS诊断接口相关的列表;
转换模块703,用于在列表中获取诊断参数,并按预设规则将诊断参数转换为软件源代码,以生成UDS诊断接口软件。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图8为本发明实施例提供的一种UDS诊断接口软件生成的设备的结构示意图。如图8所示,该UDS诊断接口软件生成的设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算装置中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在UDS诊断接口软件生成的设备800上执行存储介质830中的一系列指令操作。
UDS诊断接口软件生成的设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口880,和/或,一个或一个以上操作系统831,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图1至图6所描述的UDS诊断接口软件生成的方法中的步骤由UDS诊断接口软件生成的设备基于该图8所示的结构实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的UDS诊断接口软件生成的设备及计算机可读存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置、设备及计算机可读存储介质,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种UDS诊断接口软件生成的方法、装置及设备进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。