本发明属于车载总线测试领域,尤其是涉及一种基于can总线的通信诊断故障码自动化测试系统及测试方法。
背景技术:
目前,汽车电控模块(ecu)在进行uds协议的can总线通信相关故障码测试过程中,主要存在以下几点需求:(1)各个被测ecu的故障码种类与数量各不相同,面对大量故障码需要测试的情况,需要一种方法,将ecu的各诊断故障代码(diagnostictroublecode,dtc)自动收集,实现根据dtc所属类型,自动实现dtc测试的通用化测试执行。(2)诊断故障码测试需要对时间参数、行为参数有高精度的要求,面对当前主要为人工手动测试的情况,需要一种方法,实时控制测试执行状态,在必要时间节点时,实时的执行相关阶段/步骤,保证测试的一致性与准确性。(3)通信相关故障码测试过程需要伴随着数据存储、关键数据抓取、测试报告生成等耗时工作,需要一种依据测试需求自动化整理测试数据生成测试报告的方法。
技术实现要素:
有鉴于此,本发明旨在提出一种基于can总线的通信诊断故障码自动化测试系统及测试方法,以解决人工测试车载can总线通信诊断故障码时实时性与一致性无法控制的问题。
为达到上述目的,本发明的技术方案是这样实现的:
基于can总线的通信诊断故障码自动化测试方法,包括:
s1、建立can总线通信相关故障码测试的测试覆盖内容;
s2、根据s1中的测试项,建立各测试项对应的流程图完成逻辑化转换;
s3、收集整理被测ecu正常工作的条件信息;
s4、将测试内容转化编写为相应的自动化测试序列代码,用于实现更换被测ecu后,通过必要信息录入配置,实现自动化测试执行;
s5、执行步骤s4,对被测ecu的通信相关故障码测试;
s6、测试结果通过报告生成模块生成测试报告。
进一步的,步骤s1中,所述覆盖内容包括:总线关闭故障策略测试、诊断时间策略测试、节点丢失故障策略测试、过压/欠压故障策略测试、老化机制策略测试、诊断优先策略测试、checksum故障记录策略测试、rollingcounter故障记录策略测试。
进一步的,执行步骤s2时,需要明白各测试项的故障注入条件/方法/步骤、各条件/方法/步骤的时间参数、各测试项的评价标准、各测试项的报告描述内容与格式。
进一步的,所述步骤s3中,需要整理的被测ecu正常工作的条件包括:can总线通信速率、有无终端电阻、正常工作电压值、有无休眠唤醒策略。
进一步的,所述步骤s4中,将步骤s1、s2、s3中的测试内容与步骤相关内容通过vector工具链的canoe软件,转化编写为相应的自动化测试序列代码。
进一步的,所述步骤s5执行过程中,需要对检测的can总线数据存储、关键数据抓取。
基于can总线的通信诊断故障码自动化测试系统,包括动作库模块,所述动作库模块用于故障注入,动作库模块依据can通信诊断故障码测试的覆盖内容,确定所需制造的故障方式与对应的时间参数要求;
所述故障方式包括间断性总线干扰、程控io动作并控制动作时间、仿真被测ecu接收报文发送并精确控制报文发送的周期与数量、精确程控供电输出电压值并控制动作时间、后台监听总线信号并对特殊信号进行准确性校验。
进一步的,基于所述故障方式,动作库模块结合vector工具链的设备程控电源、总线干扰仪、总线记录软件以及c#建立动作库,包括:
开发程控总线干扰仪接口,建立can总线任一域干扰库,canstress.dll,包括对can总线任一域进行有限次/无限次干扰、指定位干扰、全部域干扰、任一id范围干扰四类库函数;
开发程控电源接口,建立电源调整与io控制库,power.dll,包括对电源输出电压至少满足±0.1v精度的调整、kl30/kl31/kl15三个io的±5ms的精度控制、can线短接电源或地线的±5ms的精度控制等三类库函数,每个动作的执行时间均可获取;
仿真ecu残余总线行为函数库,开发基于canoe软件的ecu残余总线仿真库,simecu.dll,包括仿真任一ecu的任一/多个报文的多线程/单线程发送、精确毫秒级报文周期控制、变更报文任一信号值实时控制,并获取每帧报文发送的时间。
信号特殊逻辑校验函数库,开发基于c#环境下的特殊逻辑后台运算库,simlogic.dll,包括rollingcounter运算函数、支持crc算法/异或加权算法的checksum运算函数、车速轮速运算函数等,并能够将上述函数运算结果载入至仿真的ecu残余总线或对被测ecu发出的响应信号进行校核。
进一步的,还包括通信相关故障码测试项序列模型模块,所述通信相关故障码测试项序列模型模块基于canoe软件编程环境capl语言环境下开发的测试项序列模块开发,以通用化、扁平化、可扩展化为目标;
所述通信相关故障码测试项序列模型模块包括故障初始化单元、故障注入单元、数据分析评价单元、报告描述单元;
所述故障初始化单元用于在测试项执行开始阶段将样件置于无故障工作状态,包括pin脚线束给电状态置位、供电电压输出状态置位、仿真ecu模型开启、清除历史dtc、读取当前dtc确认待测ecu处于无故障状态;
所述故障注入模块用于依据测试要求,将各类故障注入动作库模块选择相应函数并执行;
所述数据分析评价模块用于依据测试评价标准,将各类故障过程中获取的关键数据进行分析,并与测试标准进行关联对比,获取的关键数据包括.log文件与对应时间端的报文记录窗口的显示内容截图;
所述报告描述模块用于将测试过程中必要过程与结果填写至报告中,呈现给测试人员读取使用。
进一步的,还包括ecu通用化模型模块、测试序列生成器、报告生成器;
所述ecu通用化模型模块用于嵌入到动作库模块、通信相关故障码测试项序列模型模块中,将ecu的特异性进行数字化,实现共用一套代码;
所述测试序列生成器用于生成相应的通用化capl代码,实现自动化测试执行;
所述报告生成器将测试结果描述生成word/html格式的报告。
相对于现有技术,本发明所述的基于can总线的通信诊断故障码自动化测试系统及测试方法具有以下优势:
(1)本发明所述的基于can总线的通信诊断故障码自动化测试方法通过测试覆盖内容的逻辑化转换、被测ecu工作条件的录入等步骤,实现基于canoe软件的can总线通信相关故障码的自动化测试,以实现对ecu在记录故障码策略的评价。同时,在测试过程中抓取关键总线数据及截图,并在测试结束后自动化生成测试报告,保证测试执行准确性、可靠性与时效性,在提高测试执行效率的同时,保证ecu质量,降低召回的风险。
(2)本发明所述的基于can总线的通信诊断故障码自动化测试系统及测试方法提供了执行动作精度高,实时性好的can总线通信故障码测试的方法,保证了测试的完整性与准备性;以模块化、扁平化为设计基础,可以实现测试序列模块化编辑,简单易组件,环境搭建便捷,同时,具有可扩展性,为后续新增故障类型的开发降低了操作难度;测试记录过程中的关键数据与测试报告均实现自动抓取与自动生成,极大的提高了测试执行效率。
(3)本发明所述的基于can总线的通信诊断故障码自动化测试系统及测试方法能够避免由于人为操作不具备在时间参数方面的准确控制造成的无法精确的对诊断故障码记录逻辑进行测试,提供了一种高测试精度的测试方法与系统。
(4)本发明所述的基于can总线的通信诊断故障码自动化测试系统及测试方法满足了对后续新故障类型测试的扩展性,满足不断增加的测试需求。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的基于can总线的通信诊断故障码自动化测试系统及测试方法流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,基于can总线的通信诊断故障码自动化测试方法,包括:
s1、建立can总线通信相关故障码测试的测试覆盖内容;
s2、根据s1中的测试项,建立各测试项对应的流程图完成逻辑化转换;
s3、收集整理被测ecu正常工作的条件信息;
s4、将测试内容转化编写为相应的自动化测试序列代码,用于实现更换被测ecu后,通过必要信息录入配置,实现自动化测试执行;
s5、执行步骤s4,对被测ecu的通信相关故障码测试;
s6、测试结果通过报告生成模块生成测试报告,主要包括支持word/html格式。
步骤s1中,所述覆盖内容包括:总线关闭故障策略测试、诊断时间策略测试、节点丢失故障策略测试、过压/欠压故障策略测试、老化机制策略测试、诊断优先策略测试、checksum故障记录策略测试、rollingcounter故障记录策略测试。
执行步骤s2时,需要明白各测试项的故障注入条件/方法/步骤、各条件/方法/步骤的时间参数、各测试项的评价标准、各测试项的报告描述内容与格式。
所述步骤s3中,需要整理的被测ecu正常工作的条件包括:can总线通信速率、有无终端电阻、正常工作电压值、有无休眠唤醒策略。
所述步骤s4中,将步骤s1、s2、s3中的测试内容与步骤相关内容通过vector工具链的canoe软件,转化编写为相应的自动化测试序列代码。
所述步骤s5执行过程中,需要对检测的can总线数据存储、关键数据抓取。
基于can总线的通信诊断故障码自动化测试系统,包括动作库模块;所述动作库模块用于故障注入,动作库模块依据can通信诊断故障码测试的覆盖内容,确定所需制造的故障方式与对应的时间参数要求;
所述故障方式包括间断性总线干扰、程控io动作并控制动作时间、仿真被测ecu接收报文发送并精确控制报文发送的周期与数量、精确程控供电输出电压值并控制动作时间、后台监听总线信号并对特殊信号进行准确性校验。
基于所述故障方式,动作库模块结合vector工具链的设备程控电源、总线干扰仪、总线记录软件以及c#建立动作库,包括:
开发程控总线干扰仪接口,建立can总线任一域干扰库,canstress.dll,包括对can总线任一域进行有限次/无限次干扰、指定位干扰、全部域干扰、任一id范围干扰四类库函数;
开发程控电源接口,建立电源调整与io控制库,power.dll,包括对电源输出电压至少满足±0.1v精度的调整、kl30/kl31/kl15三个io的±5ms的精度控制、can线短接电源或地线的±5ms的精度控制等三类库函数,每个动作的执行时间均可获取;
仿真ecu残余总线行为函数库,开发基于canoe软件的ecu残余总线仿真库,simecu.dll,包括仿真任一ecu的任一/多个报文的多线程/单线程发送、精确毫秒级报文周期控制、变更报文任一信号值实时控制,并获取每帧报文发送的时间。
信号特殊逻辑校验函数库,开发基于c#环境下的特殊逻辑后台运算库,simlogic.dll,包括rollingcounter运算函数、支持crc算法/异或加权算法的checksum运算函数、车速轮速运算函数等,并能够将上述函数运算结果载入至仿真的ecu残余总线或对被测ecu发出的响应信号进行校核。
还包括通信相关故障码测试项序列模型模块,所述通信相关故障码测试项序列模型模块基于canoe软件编程环境capl语言环境下开发的测试项序列模块开发,以通用化、扁平化、可扩展化为目标。
例如,结合vector工具链的设备vh1150(程控电源)、vh6501(总线干扰仪)、canoe(总线记录软件)以及c#建立如下动作库模块:
a)canstress.dll。开发程控vh6501接口,建立can总线任一域干扰库,canstress.dll,包括对can总线任一域进行有限次/无限次干扰、指定位干扰、全部域干扰、任一id范围干扰等四类库函数;
b)power.dll。开发程控vh1150接口,建立电源调整与io控制库,power.dll,包括对电源输出电压至少满足±0.1v精度的调整、kl30/kl31/kl15三个io的±5ms的精度控制、can线短接电源或地线的±5ms的精度控制等三类库函数,每个动作的执行时间均可获取。
c)simecu.dll。仿真ecu残余总线行为函数库。开发基于canoe软件的ecu残余总线仿真库,simecu.dll,包括仿真任一ecu的任一/多个报文的多线程/单线程发送、精确毫秒级报文周期控制、变更报文任一信号值实时控制,并获取每帧报文发送的时间。
d)simlogic.dll。信号特殊逻辑校验函数库。开发基于c#环境下的特殊逻辑后台运算库,simlogic.dll,包括rollingcounter运算函数、支持crc算法/异或加权算法的checksum运算函数、车速轮速运算函数等,并能够将上述函数运算结果载入至仿真的ecu残余总线或对被测ecu发出的响应信号进行校核。
上文所述的程控电源、总线干扰仪、总线记录软件不局限于上述vh1150、vh6501、canoe三种特殊型号,其他具有相同功能软硬件也在权利范围内。
所述通信相关故障码测试项序列模型模块基于canoe软件编程环境capl语言环境下开发的测试项序列模块开发,以通用化、扁平化、可扩展化为目标;
通信相关故障码测试项序列模型模块包括故障初始化单元、故障注入单元、数据分析评价单元、报告描述单元;
所述故障初始化单元用于在测试项执行开始阶段将样件置于无故障工作状态,包括pin脚线束给电状态置位、供电电压输出状态置位、仿真ecu模型开启、清除历史dtc、读取当前dtc确认待测ecu处于无故障状态;
所述故障注入模块用于依据测试要求,将各类故障注入动作库模块选择相应函数并执行;
所述数据分析评价模块用于依据测试评价标准,将各类故障过程中获取的关键数据进行分析,并与测试标准进行关联对比,获取的关键数据包括.log文件与对应时间端的报文记录窗口的显示内容截图;
所述报告描述模块用于将测试过程中必要过程与结果填写至报告中,呈现给测试人员读取使用。
还包括ecu通用化模型模块、测试序列生成器、报告生成器;
ecu通用化模型模块基于c#环境开发的人机ui界面,根据ecu各类通用化参数的归类,将ecu的特异性进行数字化,并将该模型嵌入至动作库模块与步骤通信相关故障码测试项序列模型模块中所需的代码中,实现该方法与系统一套代码,通用化使用的效果。通用化模型中主要参数包括不局限于:
a)baudrate.module,can总线通信速率;
b)terminalres.module,终端电阻;
c)workvoltage.module,正常工作电压值;
d)sleepmode.module,有无休眠唤醒策略。
所述测试序列生成器基于c#开发生成满足vector工具链的canoe软件编译环境capl语法的,测试序列生成器,生成相应的通用化capl代码,即可实现自动化测试执行。
所述报告生成器基于c#开发的报告生成器,可以将测试结果描述生成以word/html格式为主的报告,报告模板内容以可由用户自行定义,具备扩展和二次开发的能力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。