CAN通信故障诊断方法技术

技术编号:17798287 阅读:26 留言:0更新日期:2018-04-25 21:48
本发明专利技术涉特别涉及一种CAN通信故障诊断方法,包括如下步骤:系统初始化;进行第一类故障的判断,若发生第一类故障则退出否则执行下一步;进行故障诊断使能条件模块的搭建;在第一类故障未发生且使能状态En=1时进行第二类故障的判断。通过以上步骤,可以实现对第一类故障即通讯完全中断和第二类故障即通讯时断时续的识别,这样可以在发生第一类故障时直接进行相应的故障处理,并且在第一类故障未发生时进行第二类故障判断,对故障优先级进行区分,可以避免重复判断,大幅提高诊断效率,也方便后续的故障排查。

【技术实现步骤摘要】
CAN通信故障诊断方法
本专利技术涉及通信故障诊断
,特别涉及一种CAN通信故障诊断方法。
技术介绍
CAN通信故障是CAN总线中比较常见的故障,对于通过CAN网络来进行通讯的控制器之间,这种故障会导致控制器接收到错误的数据或者丢失数据,从而影响控制器的判断,甚至可能会造成严重的安全事故。对于用CAN网络实现控制的电动车来说,该故障的诊断可以在多处利用,因此可以将该模块通过MATLAB搭建成一个标准的诊断库,然后利用自动代码生成技术,生成函数。后期使用中,通过修改一些标定参数,即可以实现不同软件CAN网络故障的诊断。目前,常用的故障诊断方法是通过控制器发送的life值来判断通讯是否发生故障,life值是一个在0~255顺序变化的值,初始life值为0,如果开始正常发送报文,每发送一帧报文life值就加1,该值出现了跳变或者一直保持不变就说明报文发送有问题,以此来判断通讯是否有问题。在诊断时,通过检测life值是否正常变化,如果出现异常并持续了一段时间,则判断为通信有故障。该诊断方法存在诸多不足:其一,针对软件运行周期和报文发送时间不同的情况,会出现判断时间不对齐,进而会有误判的情况出现;其二,该方法未对通讯故障类型进行划分,笼统对其进行判断,功能不明确,增大了后期问题排查的难度。
技术实现思路
本专利技术的目的在于提供一种CAN通信故障诊断方法,具有一定的通用性且能够对故障进行分类。为实现以上目的,本专利技术采用的技术方案为:一种CAN通信故障诊断方法,包括如下步骤:(A)系统初始化:设置时间t1和t2,t1、t2均为报文发送周期的整数倍;设置阈值CntrCal和ErrCal,CntrCal为报文发送周期除以软件运行周期,ErrCal为累计故障次数;设置输出状态值St=0,计数值i=0;(B)接收控制器发送的life值并判断:若当前时刻life值和前一时刻life值均等于0,则执行步骤C;否则执行步骤D;(C)若当前时刻life值和前一时刻life值均等于0的持续时间大于等于设置时间t1,则输出故障标志位FltFlag1=1并退出;否则输出FltFlag1=0并重复步骤B;(D)若当前时刻life值不等于0且前一时刻life值等于0且St=0,则输出使能状态En=1、St=1后执行步骤G;否则执行步骤E;(E)若St=1,i自加1后执行步骤F;否则直接执行步骤F;(F)若i=CntrCal,则输出使能状态En=1、i=0后执行步骤G,否则输出使能状态En=0后重复执行步骤B;(G)FltFlag1=0和En=1同时成立时,若当前时刻life值减去前一时刻life值不等于1且不等于-255,则判定有单次故障,从有单次故障发生时间开始计时,在t2时间内,统计单次故障发生次数j,若j=ErrCal,则输出FltFlag2=1、j=0并退出;否则输出FltFlag2=0、j=0并重复步骤B。与现有技术相比,本专利技术存在以下技术效果:通过以上步骤,可以实现对第一类故障即通讯完全中断和第二类故障即通讯时断时续的识别,这样可以在发生第一类故障时直接进行相应的故障处理,并且在第一类故障未发生时进行第二类故障判断,对故障优先级进行区分,可以避免重复判断,大幅提高诊断效率,也方便后续的故障排查。附图说明图1是本专利技术的流程示意图。具体实施方式下面结合图1,对本专利技术做进一步详细叙述。参阅图1,一种CAN通信故障诊断方法,包括如下步骤:(A)系统初始化:设置时间t1和t2,t1、t2均为报文发送周期的整数倍;设置阈值CntrCal和ErrCal,CntrCal为报文发送周期除以软件运行周期,ErrCal为累计故障次数;设置输出状态值St=0,计数值i=0。参数时间t1和t2以及累计故障次数ErrCal可以按照实际情况进行设定,这里定义了第一类故障和第二类故障,其中第一类故障是初始时刻life值一直不变,表示此时可能是对方控制器未启动或者出现故障,导致LIFE没有发出来,通讯完全中断;第二类故障是life值中间有跳变或者某一个时刻开始突然保持不变,该现象说明中间过程中通讯时断时续。在进行第一类故障判断时,我们定义时间t1内life值不变即代表初始时刻life值一直不变;在进行第二类故障判断时,我们定义时间t2内发生ErrCal次单次故障表示life值中间有跳变或某一个时刻突然保持不变。初始化以后,我们先进行第一类故障的判断,其包括如下步骤:(B)接收控制器发送的life值并判断:若当前时刻life值和前一时刻life值均等于0,则执行步骤C;否则执行步骤D;(C)若当前时刻life值和前一时刻life值均等于0的持续时间大于等于设置时间t1,则输出故障标志位FltFlag1=1并退出;否则输出FltFlag1=0并重复步骤B。这里通过判断当前时刻life值和前一时刻life值均等于0即可方便的判断出初始时刻life值是否发生变化,当输出故障标志位FltFlag1=1时,表示发生了第一类故障。在第二类故障发生之前,我们先进行故障诊断使能条件模块的搭建,该模块决定什么时候触发第二类故障的诊断。使能条件模块的搭建包括如下步骤:(D)若当前时刻life值不等于0且前一时刻life值等于0且St=0,则输出使能状态En=1、St=1后执行步骤G;否则执行步骤E;(E)若St=1,i自加1后执行步骤F;否则直接执行步骤F;(F)若i=CntrCal,则输出使能状态En=1、i=0后执行步骤G,否则输出使能状态En=0后重复执行步骤B;在FltFlag1=0和En=1同时成立时,进入第二类故障诊断模块进行故障判断,其包括如下步骤:(G)FltFlag1=0和En=1同时成立时,若当前时刻life值减去前一时刻life值不等于1且不等于-255,则判定有单次故障,从有单次故障发生时间开始计时,在t2时间内,统计单次故障发生次数j,若j=ErrCal,则输出FltFlag2=1、j=0并退出;否则输出FltFlag2=0、j=0并重复步骤B。当输出故障标志位FltFlag2=1时,表示发生了第二类故障。本专利技术对故障进行了分类,明确了故障的发生条件,对问题排查有一定辅助作用。同时,由于t1、t2、CntrCal都是可标定的值,这样可以适应不同的软件运行周期和报文发送周期,具有一定通用性,并且能够将判断时刻进行对齐,使得判断结果更为准确。以下通过举例来示意各值的变化情况,假设报文发送周期为200ms,软件运行周期100ms,那么CntrCal=2。下表为通讯正常的方式,此时故障标志位FltFlag1和FltFlag2均无输出。序号12345678910Life值0011223344FLTFlag1FLTFlag2下表为出现第一类故障的方式(t1=400ms),此时故障标志位FltFlag1输出1。序号12345678910Life值0000001223FLTFlag10000011111FLTFlag20000000000下表为出现第二类故障的情况(t2=400ms,ErrCal=2),此时故障标志位FltFlag2输出1。本文档来自技高网...
CAN通信故障诊断方法

【技术保护点】
一种CAN通信故障诊断方法,包括如下步骤:(A)系统初始化:设置时间t1和t2,t1、t2均为报文发送周期的整数倍;设置阈值CntrCal和ErrCal,CntrCal为报文发送周期除以软件运行周期,ErrCal为累计故障次数;设置输出状态值St=0,计数值i=0;(B)接收控制器发送的life值并判断:若当前时刻life值和前一时刻life值均等于0,则执行步骤C;否则执行步骤D;(C)若当前时刻life值和前一时刻life值均等于0的持续时间大于等于设置时间t1,则输出故障标志位FltFlag1=1并退出;否则输出FltFlag1=0并重复步骤B;(D)若当前时刻life值不等于0且前一时刻life值等于0且St=0,则输出使能状态En=1、St=1后执行步骤G;否则执行步骤E;(E)若St=1,i自加1后执行步骤F;否则直接执行步骤F;(F)若i=CntrCal,则输出使能状态En=1、i=0后执行步骤G,否则输出使能状态En=0后重复执行步骤B;(G)FltFlag1=0和En=1同时成立时,若当前时刻life值减去前一时刻life值不等于1且不等于‑255,则判定有单次故障,从有单次故障发生时间开始计时,在t2时间内,统计单次故障发生次数j,若j=ErrCal,则输出FltFlag2=1、j=0并退出;否则输出FltFlag2=0、j=0并重复步骤B。...

【技术特征摘要】
1.一种CAN通信故障诊断方法,包括如下步骤:(A)系统初始化:设置时间t1和t2,t1、t2均为报文发送周期的整数倍;设置阈值CntrCal和ErrCal,CntrCal为报文发送周期除以软件运行周期,ErrCal为累计故障次数;设置输出状态值St=0,计数值i=0;(B)接收控制器发送的life值并判断:若当前时刻life值和前一时刻life值均等于0,则执行步骤C;否则执行步骤D;(C)若当前时刻life值和前一时刻life值均等于0的持续时间大于等于设置时间t1,则输出故障标志位FltFlag1=1并退出;否则输出FltFlag1=0并重复步骤B;(D)若当前时刻life值不等...

【专利技术属性】
技术研发人员:廖茜陕亮亮
申请(专利权)人:成都雅骏新能源汽车科技股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1