周期性can報文丟失故障的判定系統(tǒng)和方法
【專利摘要】本發(fā)明提供一種周期性CAN報文丟失故障的判定系統(tǒng)和方法,該系統(tǒng)包括:報文接收模塊;第一定時器模塊,用于循環(huán)啟用第一定時器,第一定時器的值為要接收CAN報文的周期;第二定時器模塊,用于在第一定時器時間到達(dá)而報文接收模塊沒有接收到報文時啟用第二定時器;計數(shù)器模塊,用于設(shè)置計數(shù)器,計數(shù)器在第一定時器和第二定時器設(shè)定的時間內(nèi)接收到報文時進(jìn)行統(tǒng)計,并在第二定時器設(shè)定的時間內(nèi)未接收到報文時進(jìn)行相反的統(tǒng)計,以根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。本發(fā)明不但能檢測出連續(xù)丟失報文的故障,還能檢測出間歇性丟失報文和接收到的報文周期過長的故障。
【專利說明】周期性CAN報文丟失故障的判定系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及汽車【技術(shù)領(lǐng)域】,尤其涉及一種周期性CAN報文丟失故障的判定系統(tǒng)和方法。
【背景技術(shù)】
[0002]CAN (Controller Area Network)即控制器局域網(wǎng),是德國BOSCH公司在20世紀(jì)80年代初,為了解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。
[0003]目前各汽車廠商對CAN通信中報文丟失的故障判別方法的定義通常為:設(shè)置一個超時時間,一旦在此時間內(nèi)未收到報文,即認(rèn)定產(chǎn)生了報文丟失的故障。
[0004]這種判別方法的實(shí)現(xiàn)流程如圖1所示,采用以下步驟:
[0005]步驟S101、設(shè)置一個超時定時器并啟用。
[0006]步驟S102、判斷是否收到報文。如果是,則跳回步驟SlOl ;如果否,則跳至步驟S103。
[0007]步驟S103、判斷超時定時器是否超時。如果是,則跳至步驟S104 ;如果否,則跳回步驟S102。
[0008]步驟S104、認(rèn)定產(chǎn)生了報文丟失的故障。
[0009]考慮到容錯性,此超時時間一般設(shè)定在報文發(fā)送周期的5倍或以上。
[0010]上述流程只能檢測出在一段時間內(nèi)連續(xù)丟失報文的故障,而對間歇性地丟失報文,或者接收到的報文周期比規(guī)定周期長但在超時時間以內(nèi)的情況無法判定故障。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的特征和優(yōu)點(diǎn)在下文的描述中部分地陳述,或者可從該描述顯而易見,或者可通過實(shí)踐本發(fā)明而學(xué)習(xí)。
[0012]為克服現(xiàn)有技術(shù)的問題,本發(fā)明提供一種周期性CAN報文丟失故障的判定系統(tǒng)和方法,不但能檢測出連續(xù)丟失報文的故障,還能檢測出間歇性丟失報文和接收到的報文周期過長的故障。
[0013]本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案如下:
[0014]根據(jù)本發(fā)明的一個方面,提供一種周期性CAN報文丟失故障的判定系統(tǒng),包括報文接收模塊、第一定時器模塊、第二定時器模塊和計數(shù)器模塊,其中:
[0015]報文接收模塊用于接收CAN報文,并將是否接收到的結(jié)果發(fā)送給計數(shù)器模塊;
[0016]第一定時器模塊用于循環(huán)啟用第一定時器,第一定時器的值為要接收CAN報文的周期,并在第一定時器時間到達(dá)時通知報文接收模塊接收報文;
[0017]第二定時器模塊用于在第一定時器時間到達(dá)而報文接收模塊沒有接收到報文時啟用第二定時器,在第二定時器時間到達(dá)時,通知報文接收模塊接收報文;
[0018]計數(shù)器模塊用于設(shè)置計數(shù)器,計數(shù)器在第一定時器和第二定時器設(shè)定的時間內(nèi)接收到報文時進(jìn)行統(tǒng)計,并在第二定時器設(shè)定的時間內(nèi)未接收到報文時進(jìn)行相反的統(tǒng)計,以根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。
[0019]根據(jù)本發(fā)明的一個實(shí)施例,還包括故障指示模塊,用于對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或1,以根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
[0020]根據(jù)本發(fā)明的一個實(shí)施例,第二定時器模塊將第二定時器的值設(shè)置為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
[0021]根據(jù)本發(fā)明的一個實(shí)施例,計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值。
[0022]根據(jù)本發(fā)明的一個實(shí)施例,第一值小于或等于第二值。
[0023]根據(jù)本發(fā)明的另一個方面,提供一種周期性CAN報文丟失故障的判定方法,包括:
[0024]循環(huán)啟用第一定時器,第一定時器的值為要接收CAN報文的周期,用來周期性判斷是否接收到報文;
[0025]每當(dāng)?shù)谝欢〞r器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則啟用第二定時器;
[0026]在第二定時器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則通過計數(shù)器進(jìn)行相反的統(tǒng)計;
[0027]根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。
[0028]根據(jù)本發(fā)明的一個實(shí)施例,還包括:對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或1,用來根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
[0029]根據(jù)本發(fā)明的一個實(shí)施例,第二定時器的值為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
[0030]根據(jù)本發(fā)明的一個實(shí)施例,計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值。
[0031]根據(jù)本發(fā)明的一個實(shí)施例,第一值小于或等于第二值。
[0032]根據(jù)本發(fā)明的一個實(shí)施例,在將報文丟失計數(shù)器的值減去第一值時,首先判斷報文丟失計數(shù)器的值是否小于等于第一值,若是,則將報文丟失計數(shù)器清零,并判定報文丟失故障消失;否則將報文丟失計數(shù)器的值減去第一值;在將報文丟失計數(shù)器的值加上第二值時,判斷報文丟失計數(shù)器的值是否大于等于報文丟失計數(shù)器的上限值與第二值之間的差值,若是,則將報文丟失計數(shù)器的值置為上限值,并判定報文丟失故障存在;否則將報文丟失計數(shù)器的值加上第二值。
[0033]本發(fā)明提供了一種周期性CAN報文丟失故障的判定系統(tǒng)和方法,在第一定時器和第二定時器設(shè)定的時間內(nèi)接收到報文時進(jìn)行統(tǒng)計,并在第二定時器設(shè)定的時間內(nèi)未接收到報文時進(jìn)行相反的統(tǒng)計,從而根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。收到一次報文,計數(shù)器減去第一值(例如m),丟失一次報文,計數(shù)器加上第二值(例如η)。當(dāng)計數(shù)器的值到達(dá)上限值(例如b)時,判定報文丟失故障產(chǎn)生,當(dāng)計數(shù)器的值到達(dá)下限值(例如O)時,判定報文丟失故障消失。此種方法不但能檢測出連續(xù)丟失報文的故障,還能檢測出間歇性丟失報文和接收到的報文周期過長的故障,有效避免了傳統(tǒng)判定方法的弊端。
[0034]通過閱讀說明書,本領(lǐng)域普通技術(shù)人員將更好地了解這些技術(shù)方案的特征和內(nèi)容。
【專利附圖】
【附圖說明】
[0035]下面通過參考附圖并結(jié)合實(shí)例具體地描述本發(fā)明,本發(fā)明的優(yōu)點(diǎn)和實(shí)現(xiàn)方式將會更加明顯,其中附圖所示內(nèi)容僅用于對本發(fā)明的解釋說明,而不構(gòu)成對本發(fā)明的任何意義上的限制,在附圖中:
[0036]圖1為傳統(tǒng)的報文丟失故障判定流程。
[0037]圖2為本發(fā)明實(shí)施例的周期性CAN報文丟失故障判定系統(tǒng)結(jié)構(gòu)示意圖。
[0038]圖3為本發(fā)明實(shí)施例的周期性CAN報文丟失故障判定流程圖。
【具體實(shí)施方式】
[0039]如圖1所示,為解決傳統(tǒng)判定方法對間歇性地丟失報文,或者接收到的報文周期比規(guī)定周期長但在超時時間以內(nèi)的情況下無法判定故障的問題,本實(shí)施例提供一種周期性CAN報文丟失故障的判定系統(tǒng),包括報文接收模塊10、第一定時器模塊20、第二定時器模塊30、計數(shù)器模塊40和故障指示模塊50,其中:
[0040]報文接收模塊10用于接收CAN報文,并將是否接收到的結(jié)果發(fā)送給計數(shù)器模塊40 ;
[0041]第一定時器模塊20用于循環(huán)啟用第一定時器,第一定時器的值為要接收CAN報文的周期,并在第一定時器時間到達(dá)時通知報文接收模塊10接收報文;
[0042]第二定時器模塊30用于在第一定時器時間到達(dá)而報文接收模塊10沒有接收到報文時啟用第二定時器,在第二定時器時間到達(dá)時,通知報文接收模塊10接收報文;優(yōu)選地,第二定時器模塊30將第二定時器的值設(shè)置為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
[0043]計數(shù)器模塊40用于設(shè)置計數(shù)器,計數(shù)器在第一定時器和第二定時器設(shè)定的時間內(nèi)接收到報文時進(jìn)行統(tǒng)計,并在第二定時器設(shè)定的時間內(nèi)未接收到報文時進(jìn)行相反的統(tǒng)計,以根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。在本實(shí)施中,計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值。優(yōu)選地,第一值小于或等于第二值。
[0044]故障指示模塊50用于對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或1,以根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
[0045]本實(shí)施例同時提供一種周期性CAN報文丟失故障的判定方法,包括:[0046]循環(huán)啟用第一定時器,第一定時器的值為要接收CAN報文的周期,用來周期性判斷是否接收到報文;
[0047]每當(dāng)?shù)谝欢〞r器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則啟用第二定時器;優(yōu)選地,第二定時器的值為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
[0048]在第二定時器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則通過計數(shù)器進(jìn)行相反的統(tǒng)計;在本實(shí)施例中,計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值。優(yōu)選地,第一值小于或等于第二值。
[0049]根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。在本實(shí)施例中,在將報文丟失計數(shù)器的值減去第一值時,首先判斷報文丟失計數(shù)器的值是否小于等于第一值,若是,則將報文丟失計數(shù)器清零,并判定報文丟失故障消失;否則將報文丟失計數(shù)器的值減去第一值;在將報文丟失計數(shù)器的值加上第二值時,判斷報文丟失計數(shù)器的值是否大于等于報文丟失計數(shù)器的上限值與第二值之間的差值,若是,則將報文丟失計數(shù)器的值置為上限值,并判定報文丟失故障存在;否則將報文丟失計數(shù)器的值加上第二值。
[0050]本實(shí)施例中還對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或1,用來根據(jù)計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
[0051]下面以一個具體的實(shí)施例進(jìn)行說明:
[0052]周期性CAN報文會周期性地重復(fù)發(fā)送。本實(shí)施例針對CAN報文丟失故障的判定在ECU (電子控制單元)內(nèi)部設(shè)置了四個參數(shù)。第一個是定時器T1,T1的值為要接收CAN報文的周期,用來周期性判斷報文是否接收到;第二個是定時器Τ2,Τ2的值為要接收CAN報文的周期的a%,用來允許a%的時間誤差,考慮到精確性和容錯性的兩者兼顧,將a的取值范圍定為0-100 (當(dāng)然,a的取值范圍也可以設(shè)置為超過100%);第三個是報文丟失計數(shù)器,取值范圍為Ο-b,用來表示報文丟失的嚴(yán)重程度,b為大于O的正整數(shù);第四個是報文丟失故障標(biāo)志位,取值范圍為0-1,用來表示報文丟失故障的判定結(jié)果。每個報文都對應(yīng)著一個標(biāo)志位,存儲在ECU的存儲器中(其實(shí)每個報文都分別對應(yīng)著上面所述的四個參數(shù),不同報文的丟失故障是分別判定的)。
[0053]圖2中所示的報文接收模塊10用來接收CAN報文,并將是否接收到的結(jié)果發(fā)送給計數(shù)器模塊40 ;第一定時器模塊20用以循環(huán)啟用Tl定時器,并在Tl時間到達(dá)時通知報文接收模塊10接收報文;第二定時器模塊20用以啟用T2定時器,當(dāng)Tl時間到達(dá),報文接收模塊10沒有接收到報文時啟用。在T2時間到達(dá)時,通知報文接收模塊10接收報文;計數(shù)器模塊40用來設(shè)置報文丟失計數(shù)器的值,根據(jù)報文接收的結(jié)果動態(tài)設(shè)置;故障指示模塊50根據(jù)報文丟失計數(shù)器的值來設(shè)置報文丟失故障標(biāo)志位,用以指示故障是否存在。
[0054]如圖3所示,E⑶周期性的啟用定時器T1,T1的值為要接收CAN報文的周期。每當(dāng)Tl時間超時,就去檢查是否收到報文。如果收到,則將報文丟失計數(shù)器的值減m(0〈m Sb),減到O為止。根據(jù)報文重要性的不同,b和m的關(guān)系也不同。對于重要性很低的報文,可將m設(shè)置成很大,比如說等于b,那么一旦報文收到一次,則計數(shù)器直接就減到了 0,即判定故障消失;對于重要性很高的報文,可將m設(shè)置成很小,比如說設(shè)置成m=b/10,那么在故障存在的情況下,報文至少要收到十次才會將計數(shù)器減到O,即判定故障消失。如果未收到,則啟用定時器T2,T2的值為要接收CAN報文的周期的a%。一旦T2時間超時,則再次檢查是否收到報文,用來保證有&%的容差。如果收到,則將報文丟失計數(shù)器的值減m (0〈m<b),減到O為止。如果未收到,則將報文丟失計數(shù)器的值加n (0〈n ( b,優(yōu)選地m≤n ( b),加到b為止。根據(jù)報文重要性的不同,b和η的關(guān)系也不同。對于重要性很低的報文,可將η設(shè)置成很小,比如說設(shè)置成n=b/10,那么在故障不存在的情況下,報文至少要丟失十次才會將計數(shù)器加到b,即判定故障存在;對于重要性很高的報文,可將η設(shè)置成很大,比如說等于b,那么一旦報文丟失一次,則計數(shù)器直接加到了 b,即判定故障存在。如果報文丟失計數(shù)器的值到達(dá)b,則將報文丟失故障標(biāo)志位置1,表示故障發(fā)生;如果報文丟失計數(shù)器的值到達(dá)O,則將報文丟失故障標(biāo)志位置O,表示故障消失。
[0055] 圖3中本實(shí)施例流程的具體描述如下:
[0056]S201、第一定時器模塊啟用定時器Tl,Tl的值為要接收CAN報文的周期;
[0057]S202、等待Tl時間到,判斷Tl是否超時;
[0058]S203、若Tl超時,則循環(huán)啟用定時器Tl ;
[0059]S204、報文接收模塊判斷是否接收到報文;若是,則執(zhí)行S212,否則執(zhí)行S205 ;
[0060]S205、第二定時器模塊單次啟用定時器T2,T2的值為TlXa%,a的取值范圍為0-100 ;T2的值為報文接收所允許的時間誤差;
[0061]S206、等待Τ2時間到,判斷Τ2是否超時;
[0062]S207、報文接收模塊判斷是否接收到報文;若是,則執(zhí)行到S212,否則執(zhí)行S208 ;
[0063]S208、計數(shù)器模塊判斷報文丟失計數(shù)器的值是否大于等于b-n,η的取值范圍為0〈n ( b ;若是,則執(zhí)行S210,否則執(zhí)行S209 ;
[0064]S209、計數(shù)器模塊將報文丟失計數(shù)器的值加n,并返回S202。
[0065]S210、計數(shù)器模塊將報文丟失計數(shù)器的值置為b,并判定報文丟失故障存在;
[0066]S211、將報文丟失故障標(biāo)志位(即故障Flag)置I ;
[0067]S212、計數(shù)器模塊判斷報文丟失計數(shù)器的值是否小于等于m,該計數(shù)器的取值范圍為0-b,m的取值范圍為0〈m ( b ;若是,則執(zhí)行S213,否則執(zhí)行S215 ;
[0068]S213、計數(shù)器模塊將報文丟失計數(shù)器清零,并判定報文丟失故障消失;
[0069]S214、將報文丟失故障標(biāo)志位(即故障Flag)置O ;
[0070]S215、計數(shù)器模塊將報文丟失計數(shù)器的值減m,并返回S202。
[0071]報文丟失計數(shù)器的初始值一般設(shè)置為0,表示報文未丟失。b值的設(shè)置與m、n的值有關(guān),一般為m、η的5-10倍,例如,b=30, m=3, n=5, a=10。即計數(shù)器初始為0,丟失一次報文加5,收到一次報文減3,當(dāng)計數(shù)器到達(dá)30時,判定故障存在;當(dāng)計數(shù)器到達(dá)O時,判定故障消失;報文周期的容差為10%。
[0072]當(dāng)報文丟失故障標(biāo)志位為I時,認(rèn)為故障存在,則存儲故障代碼,且故障代碼狀態(tài)為當(dāng)前,并將ECU的功能做相應(yīng)的降級處理;當(dāng)報文丟失故障標(biāo)志位為O時,認(rèn)為故障不存在,如果之前有故障代碼,則將故障代碼的狀態(tài)設(shè)為歷史,ECU的功能恢復(fù)正常。
[0073]以上參照【專利附圖】
【附圖說明】了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域技術(shù)人員不脫離本發(fā)明的范圍和實(shí)質(zhì),可以有多種變型方案實(shí)現(xiàn)本發(fā)明。舉例而言,作為一個實(shí)施例的部分示出或描述的特征可用于另一實(shí)施例以得到又一實(shí)施例。以上僅為本發(fā)明較佳可行的實(shí)施例而已,并非因此局限本發(fā)明的權(quán)利范圍,凡運(yùn)用本發(fā)明說明書及附圖內(nèi)容所作的等效變化,均包含于本發(fā)明的權(quán)利范圍之內(nèi)。
【權(quán)利要求】
1.一種周期性CAN報文丟失故障的判定系統(tǒng),其特征在于包括報文接收模塊、第一定時器模塊、第二定時器模塊和計數(shù)器模塊,其中: 所述報文接收模塊用于接收CAN報文,并將是否接收到的結(jié)果發(fā)送給所述計數(shù)器模塊; 所述第一定時器模塊用于循環(huán)啟用第一定時器,所述第一定時器的值為要接收CAN報文的周期,并在第一定時器時間到達(dá)時通知報文接收模塊接收報文; 所述第二定時器模塊用于在所述第一定時器時間到達(dá)而所述報文接收模塊沒有接收到報文時啟用第二定時器,在第二定時器時間到達(dá)時,通知所述報文接收模塊接收報文; 所述計數(shù)器模塊用于設(shè)置計數(shù)器,所述計數(shù)器在所述第一定時器和第二定時器設(shè)定的時間內(nèi)接收到報文時進(jìn)行統(tǒng)計,并在所述第二定時器設(shè)定的時間內(nèi)未接收到報文時進(jìn)行相反的統(tǒng)計,以根據(jù)所述計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。
2.根據(jù)權(quán)利要求1所述的周期性CAN報文丟失故障的判定系統(tǒng),其特征在于,還包括故障指示模塊,用于對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或1,以根據(jù)所述計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
3.根據(jù)權(quán)利要求1所述的周期性CAN報文丟失故障的判定系統(tǒng),其特征在于,所述第二定時器模塊將所述第二定時器的值設(shè)置為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的周期性CAN報文丟失故障的判定系統(tǒng),其特征在于,所述計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值,且所述第一值小于或等于所述第二值。
5.一種周期性CAN報文丟失故障的判定方法,其特征在于包括: 循環(huán)啟用第一定時器,所述第一定時器的值為要接收CAN報文的周期,用來周期性判斷是否接收到報文; 每當(dāng)?shù)谝欢〞r器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則啟用第二定時器; 在第二定時器時間到達(dá)時,判斷是否接收到報文;若接收到報文,則通過計數(shù)器進(jìn)行統(tǒng)計;否則通過所述計數(shù)器進(jìn)行相反的統(tǒng)計; 根據(jù)所述計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值,判定是否產(chǎn)生報文丟失故障。
6.根據(jù)權(quán)利要求5所述的周期性CAN報文丟失故障的判定方法,其特征在于,還包括:對應(yīng)每個報文設(shè)置一個報文丟失故障標(biāo)志位,其值為O或I,用來根據(jù)所述計數(shù)器的統(tǒng)計值是否達(dá)到設(shè)定的計數(shù)器上限值或下限值來指示是否產(chǎn)生報文丟失故障。
7.根據(jù)權(quán)利要求5所述的周期性CAN報文丟失故障的判定方法,其特征在于,所述第二定時器的值為要接收CAN報文的周期的預(yù)設(shè)百分比值,用來允許預(yù)設(shè)的報文接收時間誤差。
8.根據(jù)權(quán)利要求5-7中任一項(xiàng)所述的周期性CAN報文丟失故障的判定方法,其特征在于,所述計數(shù)器采用報文丟失計數(shù)器,在接收到報文進(jìn)行統(tǒng)計時,報文丟失計數(shù)器的值減去第一值;在未收到報文進(jìn)行相反的統(tǒng)計時,將報文丟失計數(shù)器的值加上第二值。
9.根據(jù)權(quán)利要求8所述的周期性CAN報文丟失故障的判定方法,其特征在于,所述第一值小于或等于所述第二值。
10.根據(jù)權(quán)利要求8所述的周期性CAN報文丟失故障的判定方法,其特征在于,在將所述報文丟失計數(shù)器的值減去第一值時,首先判斷報文丟失計數(shù)器的值是否小于等于所述第一值,若是,則將報文丟失計數(shù)器清零,并判定報文丟失故障消失;否則將所述報文丟失計數(shù)器的值減去所述第一值;在將所述報文丟失計數(shù)器的值加上第二值時,判斷報文丟失計數(shù)器的值是否大于等于所述報文丟失計數(shù)器的上限值與第二值之間的差值,若是,則將報文丟失計數(shù)器的值置為上限值,并判定報文丟失故障存在;否則將所述報文丟失計數(shù)器的值加上 第二值。
【文檔編號】H04L12/40GK103546306SQ201210243545
【公開日】2014年1月29日 申請日期:2012年7月13日 優(yōu)先權(quán)日:2012年7月13日
【發(fā)明者】李濟(jì)泰, 黃麗芳, 何曄, 黃少堂, 袁蘭秀 申請人:廣州汽車集團(tuán)股份有限公司