一種can總線數(shù)據(jù)場校驗方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種CAN總線數(shù)據(jù)場校驗方法及系統(tǒng)。
【背景技術(shù)】
[0002]CAN總線(Controller Area Network,控制器局域網(wǎng)絡(luò))是國際上通用的現(xiàn)場總線之一,由于具有較高的可靠性,而被廣泛應(yīng)用于工業(yè)自動化和汽車電子領(lǐng)域。為了確保CAN總線數(shù)據(jù)傳輸信息的有效性和可靠性,需要對CAN總線數(shù)據(jù)場進(jìn)行校驗。其中,CAN總線數(shù)據(jù)場信息主要包括:常規(guī)的數(shù)據(jù)信息和整車生產(chǎn)廠與控制器單元供應(yīng)商之間協(xié)定的數(shù)據(jù)信息。
[0003]現(xiàn)有技術(shù)中,通常采用CRC(Cyclic Reduncy Check,循環(huán)冗余校驗)對CAN總線數(shù)據(jù)場中常規(guī)的數(shù)據(jù)信息進(jìn)行校驗,再配合有效位校驗的方式,對CAN總線數(shù)據(jù)場中協(xié)定的數(shù)據(jù)信息進(jìn)行校驗。具體而言,CRC校驗通過對每個數(shù)據(jù)幀幀頭到幀尾進(jìn)行全幀數(shù)據(jù)驗算,保證常規(guī)數(shù)據(jù)信息的準(zhǔn)確性。而有效位校驗,則采用專門增加的有效位來對協(xié)定的數(shù)據(jù)信息進(jìn)行校驗,由于有效位校驗只能進(jìn)行一次校驗,從而導(dǎo)致在校驗位本身出錯的情況下,容易采用錯誤信息進(jìn)行車輛控制,從而導(dǎo)致整車功能失常。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種CAN總線數(shù)據(jù)場校驗方法及系統(tǒng),能夠?qū)AN總線數(shù)據(jù)場中的協(xié)定數(shù)據(jù)信息進(jìn)行準(zhǔn)確校驗,從而保證CAN總線數(shù)據(jù)場信息的準(zhǔn)確可靠性。
[0005]本發(fā)明實施例提供的技術(shù)方案如下:
[0006]一方面,提供了一種CAN總線數(shù)據(jù)場校驗方法,包括:
[0007]步驟S1:接收CAN總線發(fā)送的數(shù)據(jù)幀;
[0008]步驟S2:對所述數(shù)據(jù)幀的數(shù)據(jù)場中的數(shù)據(jù)做校驗和;
[0009]步驟S3:判斷所述校驗和是否等于預(yù)設(shè)校驗和,如果是,則轉(zhuǎn)入步驟SI ;
[0010]步驟S4:對執(zhí)行步驟SI的次數(shù)進(jìn)行計數(shù),當(dāng)所述計數(shù)次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,判斷所述CAN總線數(shù)據(jù)場有效。
[0011]優(yōu)選地,如果所述校驗和不等于所述預(yù)設(shè)校驗和,則判斷所述CAN總線數(shù)據(jù)場無效。
[0012]優(yōu)選地,在判斷所述CAN總線數(shù)據(jù)場無效后,還包括:采用上一循環(huán)中判斷為有效的CAN總線數(shù)據(jù)場替代本次循環(huán)中接收的CAN總線數(shù)據(jù)場。
[0013]優(yōu)選地,所述CAN總線數(shù)據(jù)場包括:協(xié)定數(shù)據(jù)信息位、循環(huán)計數(shù)位和校驗和位。
[0014]優(yōu)選地,所述CAN總線數(shù)據(jù)場的長度為8字節(jié),其中,所述協(xié)定數(shù)據(jù)信息位的長度為6.5字節(jié),所述循環(huán)計數(shù)位的長度為0.5字節(jié),所述校驗和位的長度為I字節(jié)。
[0015]另一方面,提供了一種CAN總線數(shù)據(jù)場校驗系統(tǒng),包括:
[0016]接收模塊,用于接收CAN總線發(fā)送的數(shù)據(jù)幀;
[0017]校驗?zāi)K,用于對所述數(shù)據(jù)幀的數(shù)據(jù)場中的數(shù)據(jù)做校驗和;
[0018]第一判斷模塊,用于判斷所述校驗和是否等于預(yù)設(shè)校驗和;
[0019]控制模塊,用于在所述第一判斷模塊判斷所述校驗和等于所述預(yù)設(shè)校驗和后,控制所述接收模塊接收CAN總線發(fā)送的數(shù)據(jù)幀;
[0020]計數(shù)模塊,用于對所述接收模塊接收CAN總線發(fā)送的數(shù)據(jù)幀的次數(shù)進(jìn)行計數(shù);
[0021]第二判斷模塊,用于在所述計數(shù)模塊的計數(shù)次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,判斷所述CAN總線數(shù)據(jù)場有效。
[0022]優(yōu)選地,所述第二判斷模塊,還用于在所述第一判斷模塊判斷所述校驗和不等于所述預(yù)設(shè)校驗和后,判斷所述CAN總線數(shù)據(jù)場無效。
[0023]優(yōu)選地,還包括:替代模塊,用于在所述第二判斷模塊判斷所述CAN總線數(shù)據(jù)場無效后,采用上一循環(huán)中判斷為有效的CAN總線數(shù)據(jù)場替代本次循環(huán)中接收的CAN總線數(shù)據(jù)場。
[0024]優(yōu)選地,所述CAN總線數(shù)據(jù)場包括:協(xié)定數(shù)據(jù)信息位、循環(huán)計數(shù)位和校驗和位。
[0025]優(yōu)選地,所述CAN總線數(shù)據(jù)場的長度為8字節(jié),其中,所述協(xié)定數(shù)據(jù)信息位的長度為6.5字節(jié),所述循環(huán)計數(shù)位的長度為0.5字節(jié),所述校驗和位的長度為I字節(jié)。
[0026]本發(fā)明實施例提供的CAN總線數(shù)據(jù)場校驗方法及系統(tǒng),在接收到CAN總線發(fā)送的數(shù)據(jù)幀后,對數(shù)據(jù)幀中的數(shù)據(jù)場做校驗和,在判斷出校驗和等于預(yù)設(shè)校驗和的情況下,循環(huán)多次執(zhí)行數(shù)據(jù)幀接收、校驗和判斷步驟,當(dāng)執(zhí)行次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,判斷CAN總線數(shù)據(jù)場有效,通過多次循環(huán)校驗,能夠?qū)AN總線數(shù)據(jù)場中的協(xié)定數(shù)據(jù)信息進(jìn)行準(zhǔn)確校驗,從而保證CAN總線數(shù)據(jù)場信息的準(zhǔn)確可靠性。
【附圖說明】
[0027]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0028]圖1是本發(fā)明實施例提供的一種CAN總線數(shù)據(jù)場校驗方法的流程圖;
[0029]圖2是本發(fā)明實施例提供的一種CAN總線數(shù)據(jù)場的結(jié)構(gòu)示意圖;
[0030]圖3是本發(fā)明實施例提供的第二種CAN總線數(shù)據(jù)場校驗方法的流程圖;
[0031]圖4是本發(fā)明實施例提供的第三種CAN總線數(shù)據(jù)場校驗方法的流程圖;
[0032]圖5是本發(fā)明實施例提供的一種CAN總線數(shù)據(jù)場校驗系統(tǒng)的結(jié)構(gòu)示意圖;
[0033]圖6是本發(fā)明實施例提供的另外一種CAN總線數(shù)據(jù)場校驗系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例的方案,下面結(jié)合附圖和實施方式對本發(fā)明實施例作進(jìn)一步的詳細(xì)說明。
[0035]如圖1所示,CAN總線數(shù)據(jù)場校驗方法,包括以下步驟:
[0036]步驟S1:接收CAN總線發(fā)送的數(shù)據(jù)幀。
[0037]其中,數(shù)據(jù)幀是數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元,包括三部分:幀頭,數(shù)據(jù)部分和幀尾。其中,幀頭和幀尾包含一些必要的控制信息,比如同步信息、地址信息、差錯控制信息等;數(shù)據(jù)部分則包含網(wǎng)絡(luò)層傳下來的數(shù)據(jù),例如ip數(shù)據(jù)包等。具體而言,數(shù)據(jù)部分包括:仲裁場、控制場、數(shù)據(jù)場、CRC場和應(yīng)答場,本專利申請重點針對數(shù)據(jù)幀中的數(shù)據(jù)場進(jìn)行數(shù)據(jù)校驗。
[0038]步驟S2:對數(shù)據(jù)幀的數(shù)據(jù)場中的數(shù)據(jù)做校驗和。
[0039]在本發(fā)明實施例中,CAN總線數(shù)據(jù)場中協(xié)定的數(shù)據(jù)信息為多位結(jié)構(gòu),具體包括:協(xié)定數(shù)據(jù)信息位、循環(huán)計數(shù)位和校驗和位,如圖2所示,為本發(fā)明實施例提供的一種CAN總線數(shù)據(jù)場的結(jié)構(gòu)示意圖,其中,各位的排布順序可以根據(jù)實際需要進(jìn)行任意設(shè)置、調(diào)整。
[0040]根據(jù)CAN總線數(shù)據(jù)的特點,數(shù)據(jù)幀中數(shù)據(jù)場的長度最小為O字節(jié),最大為64字節(jié),在本發(fā)明實施例中,優(yōu)選數(shù)據(jù)場的長度采用8字節(jié),相應(yīng)地,協(xié)定數(shù)據(jù)信息位的長度為6.5字節(jié),循環(huán)計數(shù)位的長度為0.5字節(jié),校驗和位的長度為I字節(jié)。
[0041]步驟S3:判斷校驗和是否等于預(yù)設(shè)校驗和,如果是,則轉(zhuǎn)入步驟SI。
[0042]在本發(fā)明實施例中,可以根據(jù)實際需要預(yù)先設(shè)置一個校驗和,例如O或者1,在校驗過程中,將步驟S2中計算得到的校驗和與該預(yù)設(shè)校驗和比較,如果校驗和等于預(yù)設(shè)校驗和,可以認(rèn)為本次所校驗的CAN總線數(shù)據(jù)場有效。在得到本次校驗有效的結(jié)果后,繼續(xù)循環(huán)執(zhí)行步驟S1-S3,從而實現(xiàn)對CAN總線數(shù)據(jù)場循環(huán)、多次校驗,從而確保CAN總線數(shù)據(jù)的準(zhǔn)確、可靠性。
[0043]步驟S4:對執(zhí)行步驟SI的次數(shù)進(jìn)行計數(shù),當(dāng)計數(shù)次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,判斷CAN總線數(shù)據(jù)場有效。
[0044]在本發(fā)明實施例中,要對步驟SI的執(zhí)行次數(shù)進(jìn)行計數(shù),并且根據(jù)對CAN總線所傳輸數(shù)據(jù)的準(zhǔn)確性要求,預(yù)先設(shè)置循環(huán)次數(shù)(預(yù)設(shè)次數(shù)),其中,循環(huán)次數(shù)可以根據(jù)實際需要例如設(shè)置為8次、16次、24次等任意值。當(dāng)所計數(shù)的執(zhí)行次數(shù)達(dá)到預(yù)設(shè)次數(shù)(例如設(shè)置為16次)后,認(rèn)為經(jīng)過連續(xù)16次校驗,CAN總線數(shù)據(jù)場都有效,因此,認(rèn)為CAN總線所發(fā)送的數(shù)據(jù)可靠性較高,將該CAN總線數(shù)據(jù)場最終判定為有效。
[0045]由于CAN總線所傳輸?shù)臄?shù)據(jù)通常為涉及車輛安全或重要車輛功能的數(shù)據(jù),重要程度較高。例如,碰撞信號(涉及碰撞斷油、車門自動解鎖功能),輪速信號(涉及電子轉(zhuǎn)向助力輸出扭矩大小的功能),電子駐車工作信號(涉及變速箱扭矩控制功能)等,因此,對這些信號傳輸?shù)臏?zhǔn)確性和可靠性要提出較高要求。
[0046]如圖3所示,在首次校驗過程中,或者循環(huán)校驗過程中,如果出現(xiàn)校驗和不等于預(yù)設(shè)校驗和,則執(zhí)行步驟S5:判斷CAN總線數(shù)據(jù)場無效,也即,在數(shù)據(jù)場校