周期性can报文丢失故障的判定系统和方法

文档序号:7980914阅读:1318来源:国知局
周期性can报文丢失故障的判定系统和方法
【专利摘要】本发明提供一种周期性CAN报文丢失故障的判定系统和方法,该系统包括:报文接收模块;第一定时器模块,用于循环启用第一定时器,第一定时器的值为要接收CAN报文的周期;第二定时器模块,用于在第一定时器时间到达而报文接收模块没有接收到报文时启用第二定时器;计数器模块,用于设置计数器,计数器在第一定时器和第二定时器设定的时间内接收到报文时进行统计,并在第二定时器设定的时间内未接收到报文时进行相反的统计,以根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。本发明不但能检测出连续丢失报文的故障,还能检测出间歇性丢失报文和接收到的报文周期过长的故障。
【专利说明】周期性CAN报文丢失故障的判定系统和方法
【技术领域】
[0001]本发明涉及汽车【技术领域】,尤其涉及一种周期性CAN报文丢失故障的判定系统和方法。
【背景技术】
[0002]CAN (Controller Area Network)即控制器局域网,是德国BOSCH公司在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。
[0003]目前各汽车厂商对CAN通信中报文丢失的故障判别方法的定义通常为:设置一个超时时间,一旦在此时间内未收到报文,即认定产生了报文丢失的故障。
[0004]这种判别方法的实现流程如图1所示,采用以下步骤:
[0005]步骤S101、设置一个超时定时器并启用。
[0006]步骤S102、判断是否收到报文。如果是,则跳回步骤SlOl ;如果否,则跳至步骤S103。
[0007]步骤S103、判断超时定时器是否超时。如果是,则跳至步骤S104 ;如果否,则跳回步骤S102。
[0008]步骤S104、认定产生了报文丢失的故障。
[0009]考虑到容错性,此超时时间一般设定在报文发送周期的5倍或以上。
[0010]上述流程只能检测出在一段时间内连续丢失报文的故障,而对间歇性地丢失报文,或者接收到的报文周期比规定周期长但在超时时间以内的情况无法判定故障。

【发明内容】

[0011]本发明的特征和优点在下文的描述中部分地陈述,或者可从该描述显而易见,或者可通过实践本发明而学习。
[0012]为克服现有技术的问题,本发明提供一种周期性CAN报文丢失故障的判定系统和方法,不但能检测出连续丢失报文的故障,还能检测出间歇性丢失报文和接收到的报文周期过长的故障。
[0013]本发明解决上述技术问题所采用的技术方案如下:
[0014]根据本发明的一个方面,提供一种周期性CAN报文丢失故障的判定系统,包括报文接收模块、第一定时器模块、第二定时器模块和计数器模块,其中:
[0015]报文接收模块用于接收CAN报文,并将是否接收到的结果发送给计数器模块;
[0016]第一定时器模块用于循环启用第一定时器,第一定时器的值为要接收CAN报文的周期,并在第一定时器时间到达时通知报文接收模块接收报文;
[0017]第二定时器模块用于在第一定时器时间到达而报文接收模块没有接收到报文时启用第二定时器,在第二定时器时间到达时,通知报文接收模块接收报文;
[0018]计数器模块用于设置计数器,计数器在第一定时器和第二定时器设定的时间内接收到报文时进行统计,并在第二定时器设定的时间内未接收到报文时进行相反的统计,以根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。
[0019]根据本发明的一个实施例,还包括故障指示模块,用于对应每个报文设置一个报文丢失故障标志位,其值为O或1,以根据计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
[0020]根据本发明的一个实施例,第二定时器模块将第二定时器的值设置为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
[0021]根据本发明的一个实施例,计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值。
[0022]根据本发明的一个实施例,第一值小于或等于第二值。
[0023]根据本发明的另一个方面,提供一种周期性CAN报文丢失故障的判定方法,包括:
[0024]循环启用第一定时器,第一定时器的值为要接收CAN报文的周期,用来周期性判断是否接收到报文;
[0025]每当第一定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则启用第二定时器;
[0026]在第二定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则通过计数器进行相反的统计;
[0027]根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。
[0028]根据本发明的一个实施例,还包括:对应每个报文设置一个报文丢失故障标志位,其值为O或1,用来根据计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
[0029]根据本发明的一个实施例,第二定时器的值为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
[0030]根据本发明的一个实施例,计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值。
[0031]根据本发明的一个实施例,第一值小于或等于第二值。
[0032]根据本发明的一个实施例,在将报文丢失计数器的值减去第一值时,首先判断报文丢失计数器的值是否小于等于第一值,若是,则将报文丢失计数器清零,并判定报文丢失故障消失;否则将报文丢失计数器的值减去第一值;在将报文丢失计数器的值加上第二值时,判断报文丢失计数器的值是否大于等于报文丢失计数器的上限值与第二值之间的差值,若是,则将报文丢失计数器的值置为上限值,并判定报文丢失故障存在;否则将报文丢失计数器的值加上第二值。
[0033]本发明提供了一种周期性CAN报文丢失故障的判定系统和方法,在第一定时器和第二定时器设定的时间内接收到报文时进行统计,并在第二定时器设定的时间内未接收到报文时进行相反的统计,从而根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。收到一次报文,计数器减去第一值(例如m),丢失一次报文,计数器加上第二值(例如η)。当计数器的值到达上限值(例如b)时,判定报文丢失故障产生,当计数器的值到达下限值(例如O)时,判定报文丢失故障消失。此种方法不但能检测出连续丢失报文的故障,还能检测出间歇性丢失报文和接收到的报文周期过长的故障,有效避免了传统判定方法的弊端。
[0034]通过阅读说明书,本领域普通技术人员将更好地了解这些技术方案的特征和内容。
【专利附图】

【附图说明】
[0035]下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:
[0036]图1为传统的报文丢失故障判定流程。
[0037]图2为本发明实施例的周期性CAN报文丢失故障判定系统结构示意图。
[0038]图3为本发明实施例的周期性CAN报文丢失故障判定流程图。
【具体实施方式】
[0039]如图1所示,为解决传统判定方法对间歇性地丢失报文,或者接收到的报文周期比规定周期长但在超时时间以内的情况下无法判定故障的问题,本实施例提供一种周期性CAN报文丢失故障的判定系统,包括报文接收模块10、第一定时器模块20、第二定时器模块30、计数器模块40和故障指示模块50,其中:
[0040]报文接收模块10用于接收CAN报文,并将是否接收到的结果发送给计数器模块40 ;
[0041]第一定时器模块20用于循环启用第一定时器,第一定时器的值为要接收CAN报文的周期,并在第一定时器时间到达时通知报文接收模块10接收报文;
[0042]第二定时器模块30用于在第一定时器时间到达而报文接收模块10没有接收到报文时启用第二定时器,在第二定时器时间到达时,通知报文接收模块10接收报文;优选地,第二定时器模块30将第二定时器的值设置为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
[0043]计数器模块40用于设置计数器,计数器在第一定时器和第二定时器设定的时间内接收到报文时进行统计,并在第二定时器设定的时间内未接收到报文时进行相反的统计,以根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。在本实施中,计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值。优选地,第一值小于或等于第二值。
[0044]故障指示模块50用于对应每个报文设置一个报文丢失故障标志位,其值为O或1,以根据计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
[0045]本实施例同时提供一种周期性CAN报文丢失故障的判定方法,包括:[0046]循环启用第一定时器,第一定时器的值为要接收CAN报文的周期,用来周期性判断是否接收到报文;
[0047]每当第一定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则启用第二定时器;优选地,第二定时器的值为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
[0048]在第二定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则通过计数器进行相反的统计;在本实施例中,计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值。优选地,第一值小于或等于第二值。
[0049]根据计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。在本实施例中,在将报文丢失计数器的值减去第一值时,首先判断报文丢失计数器的值是否小于等于第一值,若是,则将报文丢失计数器清零,并判定报文丢失故障消失;否则将报文丢失计数器的值减去第一值;在将报文丢失计数器的值加上第二值时,判断报文丢失计数器的值是否大于等于报文丢失计数器的上限值与第二值之间的差值,若是,则将报文丢失计数器的值置为上限值,并判定报文丢失故障存在;否则将报文丢失计数器的值加上第二值。
[0050]本实施例中还对应每个报文设置一个报文丢失故障标志位,其值为O或1,用来根据计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
[0051]下面以一个具体的实施例进行说明:
[0052]周期性CAN报文会周期性地重复发送。本实施例针对CAN报文丢失故障的判定在ECU (电子控制单元)内部设置了四个参数。第一个是定时器T1,T1的值为要接收CAN报文的周期,用来周期性判断报文是否接收到;第二个是定时器Τ2,Τ2的值为要接收CAN报文的周期的a%,用来允许a%的时间误差,考虑到精确性和容错性的两者兼顾,将a的取值范围定为0-100 (当然,a的取值范围也可以设置为超过100%);第三个是报文丢失计数器,取值范围为Ο-b,用来表示报文丢失的严重程度,b为大于O的正整数;第四个是报文丢失故障标志位,取值范围为0-1,用来表示报文丢失故障的判定结果。每个报文都对应着一个标志位,存储在ECU的存储器中(其实每个报文都分别对应着上面所述的四个参数,不同报文的丢失故障是分别判定的)。
[0053]图2中所示的报文接收模块10用来接收CAN报文,并将是否接收到的结果发送给计数器模块40 ;第一定时器模块20用以循环启用Tl定时器,并在Tl时间到达时通知报文接收模块10接收报文;第二定时器模块20用以启用T2定时器,当Tl时间到达,报文接收模块10没有接收到报文时启用。在T2时间到达时,通知报文接收模块10接收报文;计数器模块40用来设置报文丢失计数器的值,根据报文接收的结果动态设置;故障指示模块50根据报文丢失计数器的值来设置报文丢失故障标志位,用以指示故障是否存在。
[0054]如图3所示,E⑶周期性的启用定时器T1,T1的值为要接收CAN报文的周期。每当Tl时间超时,就去检查是否收到报文。如果收到,则将报文丢失计数器的值减m(0〈m Sb),减到O为止。根据报文重要性的不同,b和m的关系也不同。对于重要性很低的报文,可将m设置成很大,比如说等于b,那么一旦报文收到一次,则计数器直接就减到了 0,即判定故障消失;对于重要性很高的报文,可将m设置成很小,比如说设置成m=b/10,那么在故障存在的情况下,报文至少要收到十次才会将计数器减到O,即判定故障消失。如果未收到,则启用定时器T2,T2的值为要接收CAN报文的周期的a%。一旦T2时间超时,则再次检查是否收到报文,用来保证有&%的容差。如果收到,则将报文丢失计数器的值减m (0〈m<b),减到O为止。如果未收到,则将报文丢失计数器的值加n (0〈n ( b,优选地m≤n ( b),加到b为止。根据报文重要性的不同,b和η的关系也不同。对于重要性很低的报文,可将η设置成很小,比如说设置成n=b/10,那么在故障不存在的情况下,报文至少要丢失十次才会将计数器加到b,即判定故障存在;对于重要性很高的报文,可将η设置成很大,比如说等于b,那么一旦报文丢失一次,则计数器直接加到了 b,即判定故障存在。如果报文丢失计数器的值到达b,则将报文丢失故障标志位置1,表示故障发生;如果报文丢失计数器的值到达O,则将报文丢失故障标志位置O,表示故障消失。
[0055] 图3中本实施例流程的具体描述如下:
[0056]S201、第一定时器模块启用定时器Tl,Tl的值为要接收CAN报文的周期;
[0057]S202、等待Tl时间到,判断Tl是否超时;
[0058]S203、若Tl超时,则循环启用定时器Tl ;
[0059]S204、报文接收模块判断是否接收到报文;若是,则执行S212,否则执行S205 ;
[0060]S205、第二定时器模块单次启用定时器T2,T2的值为TlXa%,a的取值范围为0-100 ;T2的值为报文接收所允许的时间误差;
[0061]S206、等待Τ2时间到,判断Τ2是否超时;
[0062]S207、报文接收模块判断是否接收到报文;若是,则执行到S212,否则执行S208 ;
[0063]S208、计数器模块判断报文丢失计数器的值是否大于等于b-n,η的取值范围为0〈n ( b ;若是,则执行S210,否则执行S209 ;
[0064]S209、计数器模块将报文丢失计数器的值加n,并返回S202。
[0065]S210、计数器模块将报文丢失计数器的值置为b,并判定报文丢失故障存在;
[0066]S211、将报文丢失故障标志位(即故障Flag)置I ;
[0067]S212、计数器模块判断报文丢失计数器的值是否小于等于m,该计数器的取值范围为0-b,m的取值范围为0〈m ( b ;若是,则执行S213,否则执行S215 ;
[0068]S213、计数器模块将报文丢失计数器清零,并判定报文丢失故障消失;
[0069]S214、将报文丢失故障标志位(即故障Flag)置O ;
[0070]S215、计数器模块将报文丢失计数器的值减m,并返回S202。
[0071]报文丢失计数器的初始值一般设置为0,表示报文未丢失。b值的设置与m、n的值有关,一般为m、η的5-10倍,例如,b=30, m=3, n=5, a=10。即计数器初始为0,丢失一次报文加5,收到一次报文减3,当计数器到达30时,判定故障存在;当计数器到达O时,判定故障消失;报文周期的容差为10%。
[0072]当报文丢失故障标志位为I时,认为故障存在,则存储故障代码,且故障代码状态为当前,并将ECU的功能做相应的降级处理;当报文丢失故障标志位为O时,认为故障不存在,如果之前有故障代码,则将故障代码的状态设为历史,ECU的功能恢复正常。
[0073]以上参照【专利附图】
附图
【附图说明】了本发明的优选实施例,本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明。举例而言,作为一个实施例的部分示出或描述的特征可用于另一实施例以得到又一实施例。以上仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效变化,均包含于本发明的权利范围之内。
【权利要求】
1.一种周期性CAN报文丢失故障的判定系统,其特征在于包括报文接收模块、第一定时器模块、第二定时器模块和计数器模块,其中: 所述报文接收模块用于接收CAN报文,并将是否接收到的结果发送给所述计数器模块; 所述第一定时器模块用于循环启用第一定时器,所述第一定时器的值为要接收CAN报文的周期,并在第一定时器时间到达时通知报文接收模块接收报文; 所述第二定时器模块用于在所述第一定时器时间到达而所述报文接收模块没有接收到报文时启用第二定时器,在第二定时器时间到达时,通知所述报文接收模块接收报文; 所述计数器模块用于设置计数器,所述计数器在所述第一定时器和第二定时器设定的时间内接收到报文时进行统计,并在所述第二定时器设定的时间内未接收到报文时进行相反的统计,以根据所述计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。
2.根据权利要求1所述的周期性CAN报文丢失故障的判定系统,其特征在于,还包括故障指示模块,用于对应每个报文设置一个报文丢失故障标志位,其值为O或1,以根据所述计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
3.根据权利要求1所述的周期性CAN报文丢失故障的判定系统,其特征在于,所述第二定时器模块将所述第二定时器的值设置为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
4.根据权利要求1至3中任一项所述的周期性CAN报文丢失故障的判定系统,其特征在于,所述计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值,且所述第一值小于或等于所述第二值。
5.一种周期性CAN报文丢失故障的判定方法,其特征在于包括: 循环启用第一定时器,所述第一定时器的值为要接收CAN报文的周期,用来周期性判断是否接收到报文; 每当第一定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则启用第二定时器; 在第二定时器时间到达时,判断是否接收到报文;若接收到报文,则通过计数器进行统计;否则通过所述计数器进行相反的统计; 根据所述计数器的统计值是否达到设定的计数器上限值或下限值,判定是否产生报文丢失故障。
6.根据权利要求5所述的周期性CAN报文丢失故障的判定方法,其特征在于,还包括:对应每个报文设置一个报文丢失故障标志位,其值为O或I,用来根据所述计数器的统计值是否达到设定的计数器上限值或下限值来指示是否产生报文丢失故障。
7.根据权利要求5所述的周期性CAN报文丢失故障的判定方法,其特征在于,所述第二定时器的值为要接收CAN报文的周期的预设百分比值,用来允许预设的报文接收时间误差。
8.根据权利要求5-7中任一项所述的周期性CAN报文丢失故障的判定方法,其特征在于,所述计数器采用报文丢失计数器,在接收到报文进行统计时,报文丢失计数器的值减去第一值;在未收到报文进行相反的统计时,将报文丢失计数器的值加上第二值。
9.根据权利要求8所述的周期性CAN报文丢失故障的判定方法,其特征在于,所述第一值小于或等于所述第二值。
10.根据权利要求8所述的周期性CAN报文丢失故障的判定方法,其特征在于,在将所述报文丢失计数器的值减去第一值时,首先判断报文丢失计数器的值是否小于等于所述第一值,若是,则将报文丢失计数器清零,并判定报文丢失故障消失;否则将所述报文丢失计数器的值减去所述第一值;在将所述报文丢失计数器的值加上第二值时,判断报文丢失计数器的值是否大于等于所述报文丢失计数器的上限值与第二值之间的差值,若是,则将报文丢失计数器的值置为上限值,并判定报文丢失故障存在;否则将所述报文丢失计数器的值加上 第二值。
【文档编号】H04L12/40GK103546306SQ201210243545
【公开日】2014年1月29日 申请日期:2012年7月13日 优先权日:2012年7月13日
【发明者】李济泰, 黄丽芳, 何晔, 黄少堂, 袁兰秀 申请人:广州汽车集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1