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值不等于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的值增加1,并与ErrCal进行比较,当j=ErrCal,则输出第二类故障标志位FltFlag2=1、j=0并退出;否则输出FltFlag2=0、j=0并重复步骤B。