Can報文異常檢測方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出一種CAN報文的異常檢測方法,包括以下步驟:建立與車輛的OBD-II口的連接,從OBD-II接收CAN幀;判斷CAN幀的幀格式是否正確,如果CAN幀的幀格式錯誤,則丟棄CAN幀并報警;如果CAN幀的幀格式正確,則進一步調(diào)用檢測函數(shù)對CAN幀進行合法性檢測;如果CAN幀非法,則判定CAN幀異常并報警。本發(fā)明的CAN報文的異常檢測方法簡單高效、安全性高、實用性強。本發(fā)明還提出一種CAN報文的異常檢測系統(tǒng)。
【專利說明】CAN報文異常檢測方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及汽車內(nèi)CAN總線通信安全【技術(shù)領(lǐng)域】,尤其涉及一種CAN報文異常檢測 方法及系統(tǒng)。
【背景技術(shù)】
[0002] 汽車內(nèi)的電子系統(tǒng)包括多個電控單元(electronic control unit,EQJ),各個EQJ 之間通過控制器局域網(wǎng)(control area network, CAN)總線進行通信。CAN通信協(xié)議原本 是為封閉環(huán)境下的CAN總線通信設(shè)計,E⑶沒有對外通信的接口。CAN通信協(xié)議中規(guī)定了數(shù) 據(jù)中貞的循環(huán)冗余校驗碼(cyclic redundancy check, CRC)段用于增強通信的可靠性,但未 提供數(shù)據(jù)幀的加密和認證過程。目前CAN網(wǎng)絡(luò)存在與外部通信的接口,通過外部接口發(fā)送 的信息會向總線上的所有ECU廣播,存在嚴重的安全隱患。設(shè)計一個可實際應(yīng)用的異常檢 測系統(tǒng)非常必要。。
[0003] 而現(xiàn)有的CAN總線異常檢測方案,通常是設(shè)計一個應(yīng)用于CAN總線的網(wǎng)關(guān),網(wǎng)關(guān)將 CAN總線劃分為不同的子網(wǎng),對于經(jīng)過不同子網(wǎng)的數(shù)據(jù)幀進行檢測,攔截非法數(shù)據(jù)幀并報 警,同時只轉(zhuǎn)發(fā)合法數(shù)據(jù)幀。目前實施這些CAN總線異常檢測方案要求重新更改汽車網(wǎng)關(guān) 的軟硬件設(shè)計,成本較高。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。為此,本發(fā)明的 第一個目的在于提出一種簡單高效、安全性高、實用性強的CAN報文的異常檢測方法。
[0005] 本發(fā)明的第二個目的在于提出一種CAN報文的異常檢測系統(tǒng)。
[0006] 為了實現(xiàn)上述目的,本發(fā)明第一方面的實施例中提出一種CAN報文的異常檢測方 法,包括以下步驟:建立與車輛的0BD-II 口的連接,從所述0BD-II接收CAN幀,其中,所述 CAN幀包括標識符和數(shù)據(jù)域;判斷所述CAN幀的幀格式是否正確,如果所述CAN幀的幀格式 錯誤,則丟棄所述CAN幀并報警;如果所述CAN幀的幀格式正確,則進一步調(diào)用檢測函數(shù)對 所述CAN幀進行合法性檢測;如果所述CAN幀非法,則判定所述CAN幀異常,丟棄所述CAN 幀并報警,其中,所述檢測函數(shù)包括對所述CAN幀的標識符、統(tǒng)計特性、語義范圍和語義相 關(guān)性的檢測。
[0007] 根據(jù)本發(fā)明實施例的CAN報文的異常檢測方法,通過建立與車輛的0BD-II 口的連 接,從0BD-II接收CAN幀。判斷CAN幀的幀格式是否正確,如果CAN幀的幀格式錯誤,則丟 棄CAN幀并報警。如果CAN幀的幀格式正確,則進一步調(diào)用檢測函數(shù)對CAN幀進行合法性 檢測。如果CAN幀非法,則判定CAN幀異常并進行報警。本發(fā)明的CAN報文的異常檢測方 法簡單高效、安全性高、實用性強。
[0008] 在一些示例中,所述檢測函數(shù)根據(jù)預(yù)設(shè)的CAN幀索引表對所述CAN幀進行檢測,其 中,所述CAN幀索引表包括:CAN幀的標識符、所述CAN幀的標識符對應(yīng)的數(shù)據(jù)域語義值的 最大值和最小值、幀時間間隔閾值、閾值計數(shù)值、上一幀的接收時間、上一幀的數(shù)據(jù)域語義 值和相關(guān)性閾值。
[0009] 在一些示例中,所述標識符檢測包括:將所述幀格式正確的所述CAN幀的標識符 與所述CAN幀索引表比對,若所述CAN幀索引表中不存在所述標識符,則丟棄所述CAN幀并 報警,反之則判定所述CAN幀的標識符合法。
[0010] 在一些示例中,所述統(tǒng)計檢測包括:檢測所述標識符相同的所述CAN幀的傳輸速 率,若所述傳輸速率大于或者等于預(yù)設(shè)閾值且所述傳輸速率連續(xù)大于或者等于預(yù)設(shè)閾值的 次數(shù)達到預(yù)定數(shù)值,則判定所述CAN幀非法并報警,反之,則判定所述CAN幀合法。
[0011] 在一些示例中,所述語義范圍檢測包括:檢測所述CAN幀的數(shù)據(jù)域語義值是否在 預(yù)設(shè)范圍內(nèi),若是,則判定所述CAN幀合法,反之,則判定所述CAN幀非法并報警。
[0012] 在一些示例中,所述語義相關(guān)性檢測包括:檢測所述CAN幀的數(shù)據(jù)域語義值的變 化速率是否大于預(yù)設(shè)相關(guān)性閾值,若是,則判定所述CAN幀非法并報警,反之,則判定所述 CAN幀合法。
[0013] 本發(fā)明第二方面的實施例中提出一種CAN報文的異常檢測系統(tǒng),包括:CAN收發(fā) 器,所述CAN收發(fā)器通過所述0BD-II通信接口建立與車輛的0BD-II 口的連接,從所述 0BD-II接收CAN幀,其中,所述CAN幀包括標識符和數(shù)據(jù)域;CAN控制器,所述CAN控制器用 于判斷所述CAN幀的幀格式是否正確;過濾器,所述過濾器包括所述檢測函數(shù);報警器,所 述報警器用于報警;和微控制器,所述微控制器分別與所述CAN控制器、所述過濾器和所述 報警器相連,用于在所述CAN控制器判定所述CAN幀的幀格式錯誤時,丟棄所述CAN幀并控 制所述報警器報警,以及在所述CAN幀的幀格式正確時,調(diào)用所述過濾器的檢測函數(shù)對所 述CAN巾貞進行合法性檢測,如果所述CAN巾貞非法,則判定所述CAN巾貞異常,丟棄所述CAN中貞 并報警,其中,所述檢測函數(shù)包括對所述CAN幀的標識符、統(tǒng)計特性、語義范圍和語義相關(guān) 性的檢測。
[0014] 根據(jù)本發(fā)明實施例的CAN報文的異常檢測系統(tǒng),通過CAN收發(fā)器建立與車輛的 0BD-II 口的連接,并從0BD-II接收CAN幀。CAN控制器判斷CAN幀的幀格式是否正確,如 果CAN幀的幀格式錯誤,則微控制器控制CAN控制器丟棄CAN幀并觸發(fā)報警器報警。如果 CAN幀的幀格式正確,則微控制器進一步控制過濾器調(diào)用檢測函數(shù)對CAN幀進行合法性檢 測。如果CAN幀非法,則判定CAN幀異常,微控制器觸發(fā)報警器報警。本發(fā)明的CAN報文的 異常檢測系統(tǒng)簡單高效、安全性高、實用性強。
[0015] 在一些示例中,還包括:與所述微控制器相連的CAN幀索引表,所述檢測函數(shù)根據(jù) 預(yù)設(shè)的CAN幀索引表對所述CAN幀進行檢測,其中,所述CAN幀索引表包括:CAN幀的標識 符、所述CAN幀的標識符對應(yīng)的數(shù)據(jù)域語義值的最大值和最小值、幀時間間隔閾值、閾值計 數(shù)值、上一幀的接收時間、上一幀的數(shù)據(jù)域語義值和相關(guān)性閾值。
[0016] 在一些示例中,所述標識符檢測包括:將所述幀格式正確的所述CAN幀的標識符 與所述CAN幀索引表比對,若所述CAN幀索引表中不存在所述標識符,則丟棄所述CAN幀并 報警,反之則判定所述CAN幀的標識符合法。
[0017] 在一些示例中,所述統(tǒng)計檢測包括:檢測所述標識符相同的所述CAN幀的傳輸速 率,若所述傳輸速率大于或者等于預(yù)設(shè)閾值且所述傳輸速率連續(xù)大于或者等于預(yù)設(shè)閾值的 次數(shù)達到預(yù)定數(shù)值,,則判定所述CAN幀非法并報警,反之,則判定所述CAN幀合法。
[0018] 在一些示例中,所述語義范圍檢測包括:檢測所述CAN幀的數(shù)據(jù)域語義值是否在 預(yù)設(shè)范圍內(nèi),若是,則判定所述CAN幀合法,反之,則判定所述CAN幀非法并報警。
[0019] 在一些示例中,所述語義相關(guān)性檢測包括:檢測所述CAN幀的數(shù)據(jù)域語義值的變 化速率是否大于預(yù)設(shè)相關(guān)性閾值,若是,則判定所述CAN幀非法并報警,反之,則判定所述 CAN幀合法。
[0020] 本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0021] 圖1是根據(jù)本發(fā)明一個實施例的CAN報文的異常檢測方法的流程圖;和
[0022] 圖2是根據(jù)本發(fā)明一個實施例的CAN報文的異常檢測系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0023] 下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0024] 參照圖1,本發(fā)明第一方面實施例的CAN報文的異常檢測方法,包括以下步驟:建 立與車輛的0BD-II 口的連接,從0BD-II接收CAN幀,其中,CAN幀包括標識符和數(shù)據(jù)域;判 斷CAN幀的幀格式是否正確,如果CAN幀的幀格式錯誤,則丟棄CAN幀并報警;如果CAN幀 的幀格式正確,則進一步調(diào)用檢測函數(shù)對CAN幀進行合法性檢測;如果CAN幀非法,則判定 CAN幀異常,并進行報警,其中,檢測函數(shù)包括對CAN幀的標識符、統(tǒng)計特性、語義范圍和語 義相關(guān)性的檢測。本發(fā)明實施例的CAN報文的異常檢測方法的具體實現(xiàn)過程如下:
[0025] 步驟S101,建立與車輛的0BD-II 口的連接,從0BD-II接收CAN幀,其中,CAN幀包 括標識符和數(shù)據(jù)域。
[0026] 步驟S102,判斷CAN幀的幀格式是否正確,如果CAN幀的幀格式錯誤,則丟棄CAN 幀并報警。
[0027] 具體地,CAN幀的幀格式檢測的目的為了判斷CAN幀是否符合CAN通信協(xié)議,CAN 總線的通信協(xié)議,包括ID域、控制域、數(shù)據(jù)域、校驗域等各個部分位數(shù)、填充方式是否正確, 同時也進行CRC校驗,如果CAN幀的幀格式出現(xiàn)錯誤即丟棄此CAN幀并報警。
[0028] 特別地,在步驟S102中還對來自網(wǎng)關(guān)和CAN子網(wǎng)的CAN幀進行所屬幀類型的檢 測。即,判斷接收到的CAN幀為數(shù)據(jù)幀、遠程幀、錯誤幀、過載幀的一種。需要指出的是遠程 幀與數(shù)據(jù)幀的區(qū)別在于不包含數(shù)據(jù)域部分。對于錯誤幀和過載幀,僅進行幀格式檢測。若 錯誤幀和過載幀的幀格式無異常則使其通過檢測,否則丟棄并報警。
[0029] 步驟S103,如果CAN幀的幀格式正確,則進一步調(diào)用檢測函數(shù)對CAN幀進行合法性 檢測。
[0030] 具體地,如果CAN幀的幀格式正確,記錄并存儲此CAN幀的接收時間、標識符和數(shù) 據(jù)域語義值。
[0031] 進一步地,在本發(fā)明的一個實施例中,檢測函數(shù)根據(jù)預(yù)設(shè)的CAN幀索引表對 CAN幀進行檢測。其中,CAN幀索引表中存儲有車輛0BD-II允許接收的CAN幀的標識符 (identifier,ID)及ID對應(yīng)的語義的相關(guān)參數(shù)。如表1所示,CAN幀索引表包括:CAN幀合 法的ID、CAN幀合法的ID對應(yīng)的數(shù)據(jù)域語義值的最大值和最小值、幀時間間隔閾值、閾值 計數(shù)值、上一幀的接收時間、上一幀的數(shù)據(jù)域語義值和相關(guān)性閾值等參數(shù)。在實現(xiàn)本發(fā)明的 CAN報文異常檢測方法之初,需對索引表進行初始化,其中,閾值計數(shù)值初始化為0。并在實 施過程中,檢測函數(shù)調(diào)用索引表,一個周期的檢測結(jié)束后更新索引表。特別地,對于接收到 的對應(yīng)不同合法ID的第一個CAN幀,用第一個CAN幀的數(shù)據(jù)域語義值、接收時間更新索引 表中上一幀的接收時間、上一幀的數(shù)據(jù)域語義值兩個參數(shù),但不進行與這兩個參數(shù)相關(guān)的 異常檢測。
[0032]表1 CAN幀索引表
【權(quán)利要求】
1. 一種CAN報文的異常檢測方法,其特征在于,包括以下步驟: 建立與車輛的OBD-II 口的連接,從所述OBD-II接收CAN幀,其中,所述CAN幀包括標 識符和數(shù)據(jù)域; 判斷所述CAN幀的幀格式是否正確,如果所述CAN幀的幀格式錯誤,則丟棄所述CAN幀 并報警; 如果所述CAN幀的幀格式正確,則進一步調(diào)用檢測函數(shù)對所述CAN幀進行合法性檢 測; 如果所述CAN幀非法,則判定所述CAN幀異常,并進行報警,其中,所述檢測函數(shù)包括對 所述CAN幀的標識符、統(tǒng)計特性、語義范圍和語義相關(guān)性的檢測。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測函數(shù)根據(jù)預(yù)設(shè)的CAN幀索引表 對所述CAN幀進行檢測,其中,所述CAN幀索引表包括:CAN幀的標識符、所述CAN幀的標識 符對應(yīng)的數(shù)據(jù)域語義值的最大值和最小值、幀時間間隔閾值、閾值計數(shù)值、上一幀的接收時 間、上一幀的數(shù)據(jù)域語義值和相關(guān)性閾值。
3. 如權(quán)利要求1或2任意一項所述的方法,其特征在于,所述標識符檢測包括: 將所述幀格式正確的所述CAN幀的標識符與所述CAN幀索引表比對,若所述CAN幀索 引表中不存在所述標識符,則丟棄所述CAN幀并報警,反之則判定所述CAN幀的標識符合 法。
4. 如權(quán)利要求1或2任意一項所述的方法,其特征在于,所述統(tǒng)計檢測包括: 檢測所述標識符相同的所述CAN幀的傳輸速率,若所述傳輸速率大于或者等于預(yù)設(shè)閾 值且所述傳輸速率連續(xù)大于或者等于預(yù)設(shè)閾值的次數(shù)達到預(yù)定數(shù)值,則判定所述CAN幀非 法并報警,反之,則判定所述CAN幀合法。
5. 如權(quán)利要求1或2任意一項所述的方法,其特征在于,所述語義范圍檢測包括: 檢測所述CAN幀的數(shù)據(jù)域語義值是否在預(yù)設(shè)范圍內(nèi),若是,則判定所述CAN幀合法,反 之,則判定所述CAN幀非法并報警。
6. 如權(quán)利要求1或2任意一項所述的方法,其特征在于,所述語義相關(guān)性檢測包括: 檢測所述CAN幀的數(shù)據(jù)域語義值的變化速率是否大于預(yù)設(shè)相關(guān)性閾值,若是,則判定 所述CAN幀非法并報警,反之,則判定所述CAN幀合法。
7. -種CAN報文的異常檢測系統(tǒng),其特征在于,包括: CAN收發(fā)器,所述CAN收發(fā)器通過所述OBD-II通信接口建立與車輛的OBD-II 口的連 接,從所述OBD-II接收CAN幀,其中,所述CAN幀包括標識符和數(shù)據(jù)域; CAN控制器,所述CAN控制器用于判斷所述CAN幀的幀格式是否正確; 過濾器,所述過濾器包括所述檢測函數(shù); 報警器,所述報警器用于報警;和 微控制器,所述微控制器分別與所述CAN控制器、所述過濾器和所述報警器相連,用于 在所述CAN控制器判定所述CAN幀的幀格式錯誤時,丟棄所述CAN幀并控制所述報警器報 警,以及在所述CAN幀的幀格式正確時,調(diào)用所述過濾器的檢測函數(shù)對所述CAN幀進行合法 性檢測,如果所述CAN幀非法,則判定所述CAN幀異常,并進行報警,其中,所述檢測函數(shù)包 括對所述CAN幀的標識符、統(tǒng)計特性、語義范圍和語義相關(guān)性的檢測。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括:與所述微控制器相連的CAN幀索 引表,所述檢測函數(shù)根據(jù)預(yù)設(shè)的CAN幀索引表對所述CAN幀進行檢測,其中,所述CAN幀索 引表包括:CAN幀的標識符、所述CAN幀的標識符對應(yīng)的數(shù)據(jù)域語義值的最大值和最小值、 幀時間間隔閾值、閾值計數(shù)值、上一幀的接收時間、上一幀的數(shù)據(jù)域語義值和相關(guān)性閾值。
9. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述標識符檢測包括: 將所述幀格式正確的所述CAN幀的標識符與所述CAN幀索引表比對,若所述CAN幀索 引表中不存在所述標識符,則丟棄所述CAN幀并報警,反之則判定所述CAN幀的標識符合 法。
10. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述統(tǒng)計檢測包括: 檢測所述標識符相同的所述CAN幀的傳輸速率,若所述傳輸速率大于或者等于預(yù)設(shè)閾 值且所述傳輸速率連續(xù)大于或者等于預(yù)設(shè)閾值的次數(shù)達到預(yù)定數(shù)值,則判定所述CAN幀非 法并報警,反之,則判定所述CAN幀合法。
11. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述語義范圍檢測包括: 檢測所述CAN幀的數(shù)據(jù)域語義值是否在預(yù)設(shè)范圍內(nèi),若是,則判定所述CAN幀合法,反 之,則判定所述CAN幀非法并報警。
12. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述語義相關(guān)性檢測包括: 檢測所述CAN幀的數(shù)據(jù)域語義值的變化速率是否大于預(yù)設(shè)相關(guān)性閾值,若是,則判定 所述CAN幀非法并報警,反之,則判定所述CAN幀合法。
【文檔編號】H04L12/26GK104320295SQ201410524529
【公開日】2015年1月28日 申請日期:2014年10月8日 優(yōu)先權(quán)日:2014年10月8日
【發(fā)明者】王劍, 張子鍵, 袁堅 申請人:清華大學(xué)