本公開涉及在搭載于車輛等的電子控制單元進行通信的網(wǎng)絡(luò)中,進行不正常幀的檢測等的不正常檢測電子控制單元。
背景技術(shù):
近年來,在汽車中的系統(tǒng)內(nèi),配置有多個稱為電子控制單元(ecu:electroniccontrolunit)的裝置。連接這些ecu的網(wǎng)絡(luò)被稱為車載網(wǎng)絡(luò)。車載網(wǎng)絡(luò)存在多種標(biāo)準(zhǔn)。其中最主流的一種車載網(wǎng)絡(luò)中,存在由iso11898-1規(guī)定的can(controllerareanetwork:控制器局域網(wǎng)絡(luò))這一標(biāo)準(zhǔn)。此外,除了汽車以外,can還在電車、產(chǎn)業(yè)機械、機器人、醫(yī)療器械等各種領(lǐng)域的系統(tǒng)中作為控制網(wǎng)絡(luò)利用。
以往,作為應(yīng)對在can的網(wǎng)絡(luò)中偽裝成正常的ecu并發(fā)送不正常幀(不正常數(shù)據(jù)幀)的威脅的對策,已知有如下技術(shù)(阻止不正常幀的發(fā)送的技術(shù)):由連接到作為can的通信路徑的總線(can總線)的、具有不正常檢測功能的ecu(不正常檢測ecu)檢測出不正常幀時,通過發(fā)送錯誤幀從而將不正常幀無效化(例如參照專利文獻1、非專利文獻1、非專利文獻2)。
在先技術(shù)文獻
專利文獻
專利文獻1:日本特開2014-236248號公報
非專利文獻
非專利文獻1:中野學(xué)/松本勉/camillevuillaume/小谷誠剛著,“汽車的信息安全”,日經(jīng)bp社,2013年12月27日
非專利文獻2:畑正人/田邊正人/吉岡克成/松本勉著,“can中的不正常發(fā)送阻止方式的安裝和評價”,信學(xué)技報,電子信息通信學(xué)會,2012年12月
技術(shù)實現(xiàn)要素:
本公開的一個技術(shù)方案涉及的不正常檢測電子控制單元是一種與遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議進行通信的多個電子控制單元在通信中使用的總線連接的不正常檢測電子控制單元,所述不正常檢測電子控制單元具備:接收部,接收向所述總線開始發(fā)送的幀;和發(fā)送部,在由所述接收部接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀。
另外,本公開的一個技術(shù)方案涉及的車載網(wǎng)絡(luò)系統(tǒng)具備遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議并經(jīng)由總線進行通信的多個電子控制單元和與該總線連接的不正常檢測電子控制單元,所述不正常檢測電子控制單元具備:接收部,接收向所述總線開始發(fā)送的幀;和發(fā)送部,在由所述接收部接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀,所述電子控制單元具備can控制器,所述can控制器包括接收錯誤計數(shù)器,并遵循can協(xié)議控制在所述總線上的通信,在來自所述總線的正常幀的接收成功的情況下,使所述接收錯誤計數(shù)器的值減少。
另外,本公開的一個技術(shù)方案涉及的通信方法是一種在具備多個電子控制單元的車載網(wǎng)絡(luò)系統(tǒng)中使用的通信方法,所述多個電子控制單元遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議并經(jīng)由總線進行通信,所述通信方法包括:接收步驟,接收向所述總線開始發(fā)送的幀;和發(fā)送步驟,在所述接收步驟中接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀。
根據(jù)本公開,能降低由用于將不正常幀無效化的錯誤幀的發(fā)送導(dǎo)致的對正常的ecu的不良影響。
附圖說明
圖1是表示實施方式1涉及的車載網(wǎng)絡(luò)系統(tǒng)的整體構(gòu)成的圖。
圖2是表示由can協(xié)議規(guī)定的數(shù)據(jù)幀的格式的圖。
圖3是表示由can協(xié)議規(guī)定的錯誤幀的格式的圖。
圖4是表示由用于將不正常幀無效化的錯誤幀導(dǎo)致的錯誤計數(shù)器增加的一例的圖。
圖5是不正常檢測ecu和正常ecu的構(gòu)成圖。
圖6是不正常檢測ecu的功能框圖。
圖7是表示實施方式1涉及的不正常檢測ecu的工作例1的流程圖。
圖8是表示實施方式1涉及的不正常檢測ecu的工作例2的流程圖。
圖9是表示實施方式1涉及的不正常檢測ecu的工作例3的流程圖。
圖10是表示實施方式1涉及的不正常檢測ecu的工作例4的流程圖。
圖11是表示實施方式1涉及的不正常檢測ecu的工作例5的流程圖。
圖12是表示實施方式1涉及的不正常檢測ecu的工作例6的流程圖。
圖13是實施方式2涉及的不正常檢測ecu的構(gòu)成圖。
圖14是實施方式2涉及的不正常檢測ecu的功能框圖。
圖15是表示實施方式2涉及的不正常檢測ecu的工作例的流程圖。
具體實施方式
(成為本發(fā)明的基礎(chǔ)的見解)
當(dāng)為了將不正常幀無效化而發(fā)送錯誤幀時,與can總線連接的正常的ecu的接收錯誤計數(shù)器會增大。ecu的接收錯誤計數(shù)器的增大可引起該ecu轉(zhuǎn)移到被限制了數(shù)據(jù)幀等的迅速發(fā)送的被動狀態(tài)的事態(tài)。
本公開提供一種可減少為了檢測不正常幀并將其無效化而發(fā)送錯誤幀這一情況給正常的ecu帶來的不良影響的不正常檢測電子控制單元(不正常檢測ecu)。另外,本公開提供一種可減少用于將不正常幀無效化的錯誤幀的發(fā)送給正常的ecu帶來的不良影響的車載網(wǎng)絡(luò)系統(tǒng)和在該車載網(wǎng)絡(luò)系統(tǒng)中使用的通信方法。
本公開的一個技術(shù)方案涉及的不正常檢測電子控制單元(不正常檢測ecu)是一種與遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議進行通信的多個電子控制單元在通信中使用的總線連接的不正常檢測電子控制單元,所述不正常檢測電子控制單元具備:接收部,接收向所述總線開始發(fā)送的幀;和發(fā)送部,在由所述接收部接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀。由此,在為了將不正常幀無效化而發(fā)送了錯誤幀之后,發(fā)送正常幀。通過接收該正常幀,與can總線連接的正常的ecu的接收錯誤計數(shù)器減少。因此,能降低為了將不正常幀無效化而發(fā)送錯誤幀這一情況給正常的ecu帶來的不良影響。
另外,也可以是,所述不正常檢測電子控制單元具備:與所述總線連接的通信接口;can控制器,與所述通信接口連接,并遵循can協(xié)議控制在所述總線上的通信;以及cpu,控制所述can控制器,并實現(xiàn)所述接收部和所述發(fā)送部。由此,cpu通過執(zhí)行控制程序來控制can控制器,實現(xiàn)用于將不正常幀無效化的錯誤幀的發(fā)送后接著的向can總線的正常幀的發(fā)送。因此,能夠利用控制程序,比較容易地實現(xiàn)為了將不正常幀無效化而發(fā)送錯誤幀這一情況給正常的ecu帶來的不良影響的降低化。
另外,也可以是,在錯誤幀的所述發(fā)送后所述總線最初成為空閑狀態(tài)時,所述發(fā)送部進行所述正常幀的所述發(fā)送。由此,能使為了將不正常幀無效化而發(fā)送錯誤幀,而正常的ecu的接收錯誤計數(shù)器增大的狀態(tài)迅速地恢復(fù)到錯誤幀的發(fā)送前的狀態(tài)。
另外,也可以是,所述發(fā)送部發(fā)送與已發(fā)送的錯誤幀的數(shù)量相同的正常幀。由此,能通過正常幀使該接收錯誤計數(shù)器減少與正常的ecu的接收錯誤計數(shù)器因錯誤幀而相應(yīng)增大的量。
另外,也可以是,在正常幀的所述發(fā)送失敗的情況下,所述發(fā)送部發(fā)送正常幀。由此,即使在錯誤幀的發(fā)送后發(fā)送的正常幀由于通信仲裁等而發(fā)送失敗,由于再次發(fā)送正常幀,所以也能增加如下可能性:即能夠使由于錯誤幀的發(fā)送的影響而增大的正常的ecu的接收錯誤計數(shù)器減少的可能性。
另外,也可以是,所述發(fā)送部發(fā)送如下數(shù)量以上的正常幀,所述數(shù)量為:從已發(fā)送的所述錯誤幀的數(shù)量減去在所述錯誤幀的發(fā)送后從所述總線接收到不符合所述預(yù)定條件的正常幀的數(shù)量而得到的數(shù)量。由此,由于在錯誤幀的發(fā)送后流經(jīng)總線的適當(dāng)幀(不是不正常的正常幀)和已發(fā)送的正常幀的合計數(shù)量成為與錯誤幀的數(shù)量相同的數(shù)量以上,所以能增加如下可能性:即能夠使由于錯誤幀的發(fā)送的影響而增大的正常的ecu的接收錯誤計數(shù)器減少(恢復(fù))到錯誤幀的發(fā)送前的值的可能性。
另外,也可以是,在正常幀的所述發(fā)送失敗的情況下,所述發(fā)送部發(fā)送在id字段中示出比該正常幀的id字段表示的id小的值的id的正常幀。由此,最初發(fā)送使用了優(yōu)先級相對低的id(消息id)的正常數(shù)據(jù)幀,能夠抑制對其他ecu的通信的影響。而且,在正常數(shù)據(jù)幀的發(fā)送失敗的情況下,例如無條件或在一定條件下,將在正常幀(正常數(shù)據(jù)幀)中使用的消息id變更為優(yōu)先級更高的消息id,能夠使之在通信仲裁中難以失敗。因此,能增加能夠使正常的ecu的接收錯誤計數(shù)器減少的可能性。
另外,也可以是,所述發(fā)送部在錯誤幀的發(fā)送后將要發(fā)送的所述正常幀是數(shù)據(jù)字段的長度為零的數(shù)據(jù)幀。由此,所要發(fā)送的正常幀(正常數(shù)據(jù)幀)的總線占有時間變短,能抑制對總線帶寬的影響。
另外,也可以是,所述發(fā)送部在錯誤幀的發(fā)送后將要發(fā)送的所述正常幀的id字段表示的id是:在所述不正常檢測電子控制單元以外的、與所述總線連接的任一個所述電子控制單元中均沒有規(guī)定應(yīng)識別該id來進行的處理的id。由此,能防止接收到所發(fā)送的正常數(shù)據(jù)幀的正常的ecu進行誤動作這一情況。
另外,也可以是,在從所述錯誤幀的發(fā)送后到正常幀的所述發(fā)送之前為止,在從所述總線接收到不符合所述預(yù)定條件的正常幀時,所述發(fā)送部抑制正常幀的所述發(fā)送。由此,在錯誤幀的發(fā)送后,在不是不正常的幀流經(jīng)總線而正常的ecu的接收錯誤計數(shù)器減少的情況下,能抑制不需要的正常幀的發(fā)送并減少對總線帶寬的不良影響。
另外,也可以是,所述不正常檢測電子控制單元與多條總線連接,并具有將從一方總線接收到的幀傳送給另一方總線的功能,在接收到的該幀符合所述預(yù)定條件的情況下抑制該傳送,在由所述接收部接收到的幀符合所述預(yù)定條件的情況下,所述發(fā)送部在發(fā)送該幀的最末尾之前向接收到該幀的總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向該總線發(fā)送所述正常幀。由此,通過不正常檢測ecu僅對檢測出不正常幀的總線進行用于將不正常幀無效化的錯誤幀的發(fā)送、和用于抑制接收錯誤計數(shù)器的增加的正常數(shù)據(jù)幀的發(fā)送,能抑制在某總線上發(fā)生的不正常幀的影響波及到其他總線。
另外,本公開的一個技術(shù)方案涉及的車載網(wǎng)絡(luò)系統(tǒng)具備遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議經(jīng)由總線進行通信的多個電子控制單元和與該總線連接的不正常檢測電子控制單元,所述不正常檢測電子控制單元具備:接收部,接收向所述總線開始發(fā)送的幀;和發(fā)送部,在由所述接收部接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀,所述電子控制單元具備can控制器,所述can控制器包括接收錯誤計數(shù)器,并遵循can協(xié)議控制在所述總線上的通信,在來自所述總線的正常幀的接收成功的情況下,使所述接收錯誤計數(shù)器的值減少。由此,在為了將不正常幀無效化而從不正常檢測ecu發(fā)送錯誤幀后,發(fā)送正常幀。在接收到該正常幀的ecu中,接收錯誤計數(shù)器減少。因此,能減少為了將不正常幀無效化而發(fā)送錯誤幀這一情況給正常的ecu帶來的不良影響。
另外,本公開的一個技術(shù)方案涉及的通信方法是一種在具備多個電子控制單元的車載網(wǎng)絡(luò)系統(tǒng)中使用的通信方法,所述多個電子控制單元遵循can協(xié)議即控制器局域網(wǎng)絡(luò)協(xié)議并經(jīng)由總線進行通信,所述通信方法包括:接收步驟,接收向所述總線開始發(fā)送的幀;和發(fā)送步驟,在所述接收步驟中接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向所述總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向所述總線發(fā)送作為遵循can協(xié)議的幀的正常幀。由此,能減少為了將不正常幀無效化而發(fā)送錯誤幀這一情況給正常的ecu帶來的不良影響。
此外,這些全面或具體的技術(shù)方案既可以用系統(tǒng)、方法、集成電路、計算機程序或計算機可讀取的cd-rom等記錄介質(zhì)實現(xiàn),也可以用系統(tǒng)、方法、集成電路、計算機程序或記錄介質(zhì)的任意組合實現(xiàn)。
以下,參照附圖,說明包括實施方式涉及的不正常檢測ecu的車載網(wǎng)絡(luò)系統(tǒng)。在這里示出的實施方式均表示本公開的一個具體例。因此,在以下實施方式中示出的數(shù)值、構(gòu)成要素、構(gòu)成要素的配置和連接方式以及步驟(工序)和步驟的順序等為一例,并不限定本公開。以下實施方式的構(gòu)成要素中未記載于獨立權(quán)利要求的構(gòu)成要素是能夠任意附加的構(gòu)成要素。另外,各圖為示意圖,并不是嚴(yán)格地進行了圖示的圖。
(實施方式1)
以下,作為本公開的實施方式,使用附圖說明多個電子控制單元(ecu)經(jīng)由總線進行通信的車載網(wǎng)絡(luò)系統(tǒng)10。
[1.1車載網(wǎng)絡(luò)系統(tǒng)10的整體構(gòu)成]
圖1是表示實施方式1涉及的車載網(wǎng)絡(luò)系統(tǒng)10的整體構(gòu)成的圖。車載網(wǎng)絡(luò)系統(tǒng)10是遵循can協(xié)議進行通信的網(wǎng)絡(luò)通信系統(tǒng)的一例,是搭載了控制裝置、傳感器等各種設(shè)備的汽車中的網(wǎng)絡(luò)通信系統(tǒng)。車載網(wǎng)絡(luò)系統(tǒng)10包括總線200、不正常檢測ecu(頭單元)100和與各種設(shè)備連接的ecu400a~400d等ecu這樣的與總線連接的各節(jié)點而構(gòu)成。此外,雖然在圖1中省略,但是在車載網(wǎng)絡(luò)系統(tǒng)10中,除了不正常檢測ecu100和ecu400a~400d以外,還可包含很多ecu。ecu例如是包括處理器(微處理器)、存儲器等數(shù)字電路、模擬電路以及通信電路等的裝置。存儲器為rom、ram等,能夠存儲由處理器執(zhí)行的控制程序(計算機程序)。例如,處理器按照控制程序(計算機程序)工作,由此ecu實現(xiàn)各種功能。此外,計算機程序是為了實現(xiàn)預(yù)定的功能而將表示對處理器的指令的多條命令代碼組合而構(gòu)成的程序。
ecu400a~400d與總線200連接,且分別與發(fā)動機310、制動器320、門開閉傳感器330以及窗開閉傳感器340連接。ecu400a~400d各自分別取得所連接的設(shè)備(發(fā)動機310等)的狀態(tài),并定期地將表示狀態(tài)的幀(后述的數(shù)據(jù)幀)等發(fā)送給網(wǎng)絡(luò)(也即是總線)。
不正常檢測ecu(頭單元)100是一種ecu,并具有接收從ecu400a~400d發(fā)送來的幀,并將各種狀態(tài)顯示在顯示器(未圖示)上向用戶提示的功能。另外,不正常檢測ecu100具有生成表示取得的各信息的幀,并經(jīng)由總線200將該幀發(fā)送給一臺以上ecu的功能。另外,不正常檢測ecu100具有如下不正常檢測功能:通過對將要收發(fā)的幀判定相對于規(guī)則的符合性,從而進行是否是不正常幀(也就是說,不符合規(guī)則的幀)的判別,當(dāng)檢測到不正常幀時發(fā)送錯誤幀。不正常幀也可以說是符合表示不正常的預(yù)定條件的幀。此外,不正常檢測ecu(頭單元)100例如可具有汽車導(dǎo)航、音樂再現(xiàn)、動畫再現(xiàn)、網(wǎng)頁顯示、與智能手機的合作、應(yīng)用程序的下載和執(zhí)行等功能。在本實施方式中,關(guān)注與作為頭單元的不正常檢測ecu100的不正常檢測功能關(guān)聯(lián)的工作來進行說明。
在車載網(wǎng)絡(luò)系統(tǒng)10中,各ecu遵循can協(xié)議進行幀的授受。在can協(xié)議下的幀中,有數(shù)據(jù)幀、遠(yuǎn)程幀、超載幀(overloadframe)以及錯誤幀。
[1.2在can中的數(shù)據(jù)的傳送]
在can中,通信路徑是由兩條線構(gòu)成的總線(上述總線200等),與總線連接的ecu被稱為節(jié)點。與總線連接的各節(jié)點收發(fā)被稱為幀的消息。發(fā)送幀的發(fā)送節(jié)點通過在兩條線上產(chǎn)生電位差,由此發(fā)送被稱為隱性(recessive)的“1”的值和被稱為顯性(dominant)的“0”的值。兩條線的電位差大的狀態(tài)為顯性,相反地,電位差小的狀態(tài)為隱性。多個發(fā)送節(jié)點在同一定時(timing)向總線送出(發(fā)送)了隱性和顯性的情況下,優(yōu)先發(fā)送顯性。接收節(jié)點在接收到的幀的格式存在異常的情況下,發(fā)送被稱為錯誤幀的幀。錯誤幀是通過連續(xù)發(fā)送6個顯性位,向發(fā)送節(jié)點或其他接收節(jié)點通知幀的異常的幀。
另外,在can中不存在指示發(fā)送目的地或發(fā)送源的識別符,發(fā)送節(jié)點在每幀中附加被稱為消息id的id并發(fā)送(即,向總線送出信號),各接收節(jié)點僅接收預(yù)先確定的id的幀(即,從總線讀取信號)。另外,采用csma/ca(carriersensemultipleaccess:載波偵聽多址訪問/collisionavoidance:沖突避免)方式,在多個節(jié)點的同時發(fā)送時,進行利用消息id的仲裁,并優(yōu)先發(fā)送消息id的值小的幀。
can的數(shù)據(jù)通信使用數(shù)據(jù)幀來進行,在can2.0標(biāo)準(zhǔn)中,在一個幀中能夠發(fā)送8字節(jié)為止的數(shù)據(jù)。
[1.3數(shù)據(jù)幀格式]
以下,針對作為在遵循can協(xié)議的網(wǎng)絡(luò)中使用的幀之一的數(shù)據(jù)幀進行說明。
圖2是表示由can協(xié)議規(guī)定的數(shù)據(jù)幀的格式的圖。在該圖中,示出了由can協(xié)議規(guī)定的標(biāo)準(zhǔn)id格式的數(shù)據(jù)幀。數(shù)據(jù)幀包括sof(startofframe:幀起始)、id字段、rtr(remotetransmissionrequest:遠(yuǎn)程發(fā)送請求)、ide(identifierextension:標(biāo)識符擴展)、預(yù)約位“r”、dlc(datalengthcode:數(shù)據(jù)長度碼)、數(shù)據(jù)字段、crc(cyclicredundancycheck:循環(huán)冗余校驗)序列、crc分隔符“del”、ack間隙(acknowledgementslot:應(yīng)答間隙)、ack分隔符“del”以及eof(endofframe:幀結(jié)尾)這些各字段。
sof由1個顯性位(bit)構(gòu)成。sof由1個顯性位(bit)構(gòu)成。在總線為空閑的狀態(tài)下成為隱性,且通過sof向顯性變更來通知幀的發(fā)送開始。
id字段是由11位(bit)構(gòu)成的保存id(消息id)的字段,所述id是表示數(shù)據(jù)的種類的值。在多個節(jié)點同時開始發(fā)送的情況下,為了用該id字段進行通信仲裁而設(shè)計為:id為小值的幀具有高的優(yōu)先級。
rtr是用于識別數(shù)據(jù)幀和遠(yuǎn)程幀的值,在數(shù)據(jù)幀中由1個顯性位構(gòu)成。
ide和“r”雙方由1個顯性位構(gòu)成。
dlc由4位(bit)構(gòu)成,并且是表示數(shù)據(jù)字段的長度的值。此外,將ide、“r”以及dlc一起稱為控制字段。
數(shù)據(jù)字段是由最大64比特構(gòu)成的、表示將要發(fā)送的數(shù)據(jù)的內(nèi)容的值。能夠按8比特調(diào)整長度。所發(fā)送的數(shù)據(jù)的標(biāo)準(zhǔn)不在can協(xié)議中規(guī)定,而在車載網(wǎng)絡(luò)系統(tǒng)10中確定。因此,成為依存于車型、制造者(制造廠商)等的標(biāo)準(zhǔn)。
crc序列由15比特構(gòu)成。根據(jù)sof、id字段、控制字段以及數(shù)據(jù)字段的發(fā)送值而算出。
crc分隔符是由1個顯性位構(gòu)成的表示crc序列的結(jié)束的分隔記號。此外,將crc序列和crc分隔符一起稱為crc字段。
ack間隙由1比特構(gòu)成。發(fā)送節(jié)點將ack間隙設(shè)為隱性并進行發(fā)送。如果到crc序列為止能夠正常接收,則接收節(jié)點將ack間隙設(shè)為顯性并發(fā)送。由于顯性比隱性優(yōu)先,所以如果在發(fā)送后ack間隙為顯性,則發(fā)送節(jié)點能夠確認(rèn)某一個接收節(jié)點接收成功這一情況。
ack分隔符是由1個顯性位構(gòu)成的表示ack的結(jié)束的分割記號。
eof由7個隱性位構(gòu)成,并表示數(shù)據(jù)幀的結(jié)束。
[1.4錯誤幀格式]
圖3是表示由can協(xié)議規(guī)定的錯誤幀的格式的圖。錯誤幀由錯誤標(biāo)志(primary:主動)、錯誤標(biāo)志(secondary:被動)以及錯誤分隔符構(gòu)成。
錯誤標(biāo)志(主動)用于向其他ecu(節(jié)點)告知錯誤的發(fā)生。檢測出錯誤的節(jié)點為了向其他節(jié)點告知錯誤的發(fā)生而連續(xù)發(fā)送6個顯性位。該發(fā)送違反can協(xié)議中的位填充規(guī)則(不連續(xù)地發(fā)送6比特以上相同的值),引起來自其他節(jié)點的錯誤幀(被動)的發(fā)送。
錯誤標(biāo)志(被動)由用于向其他節(jié)點告知錯誤的發(fā)生的、連續(xù)6個顯性位構(gòu)成。接收錯誤標(biāo)志(主動)并檢測出違反位填充規(guī)則的全部節(jié)點發(fā)送錯誤標(biāo)志(被動)。
錯誤分隔符“del”為連續(xù)的8個隱性位,表示錯誤幀的結(jié)束。
[1.5錯誤計數(shù)器]
在can總線上遵循can協(xié)議進行通信的各ecu中,在錯誤發(fā)生時使錯誤計數(shù)器增加。
當(dāng)開始向can總線上發(fā)送錯誤幀時,通過利用比隱性優(yōu)先的顯性連續(xù)的錯誤幀來覆寫(即,無效化),從而中斷到目前為止流經(jīng)總線的幀的發(fā)送。而且,在發(fā)送了到目前為止流經(jīng)總線的幀的ecu(發(fā)送節(jié)點)確認(rèn)發(fā)送錯誤時,將該ecu的can控制器中的發(fā)送錯誤計數(shù)器增加1。
另外,當(dāng)向can總線發(fā)送錯誤幀(主動)時,在與can總線連接的ecu(接收節(jié)點)中,由于違反上述的位填充規(guī)則而成為接收錯誤,發(fā)送錯誤幀(被動)并將該ecu的can控制器中的接收錯誤計數(shù)器增加1。
圖4是表示向can總線發(fā)送了不正常幀之后的錯誤計數(shù)器的一例的圖。在該例中,當(dāng)與can總線連接的不正常ecu發(fā)送不正常幀,且不正常檢測ecu檢測出該不正常幀時,發(fā)送用于無效化的錯誤幀(主動),并示出了在正常ecu(正常的ecu)發(fā)送錯誤幀(被動)的情況下的各ecu的錯誤計數(shù)器的增加值。
在can中,由于在數(shù)據(jù)幀中沒有驗證發(fā)送源的手段,當(dāng)發(fā)送數(shù)據(jù)幀時會向總線上的全部節(jié)點(ecu)進行廣播,所以當(dāng)與總線連接的ecu一旦被攻擊者不正常(非法)侵入并被操縱(控制)時,該ecu會偽裝成承擔(dān)重要的控制的其他ecu,存在不正常(非法)地進行設(shè)備的控制的威脅。不正常ecu的一例是該侵入的ecu。此外,發(fā)生了故障的ecu等也可能成為不正常ecu。如上所述,在不正常檢測ecu(頭單元)100中,根據(jù)不正常ecu發(fā)送的幀是否符合在車載網(wǎng)絡(luò)系統(tǒng)中預(yù)先確定的規(guī)則來判別是否不正常。
在can中,當(dāng)在各ecu中接收錯誤計數(shù)器變得大于一定閾值時,會轉(zhuǎn)移到迅速的發(fā)送受限的、被稱為被動(passive)狀態(tài)的狀態(tài)。在通常狀態(tài)下,當(dāng)不是在can總線成為總線空閑狀態(tài)后,即不是在數(shù)據(jù)幀后的作為3個隱性位的itm(intermission:間歇)之后時,ecu不能發(fā)送數(shù)據(jù)幀。與此相對,在被動狀態(tài)下,進一步地,當(dāng)不是在itm的結(jié)束后接收到8個隱性位之后時,由于不能發(fā)送數(shù)據(jù)幀,所以迅速的發(fā)送受限。
為了抑制由于用于阻止(無效化)不正常幀的發(fā)送的錯誤幀,導(dǎo)致正常ecu的接收錯誤計數(shù)器增加而向迅速的發(fā)送受限的狀態(tài)轉(zhuǎn)移這一錯誤幀的發(fā)送的不良影響,不正常檢測ecu100具有在錯誤幀的發(fā)送后,在一定條件下迅速地發(fā)送正常幀的功能。遵循can協(xié)議工作的正常ecu如果能夠接收正常幀(即,遵循can協(xié)議的幀)而沒有接收錯誤,則使接收錯誤計數(shù)器減少1。由此,能降低向被動狀態(tài)轉(zhuǎn)移的可能性。
[1.6不正常檢測ecu100和ecu400a的構(gòu)成]
圖5是表示不正常檢測ecu(頭單元)100、正常ecu400a等的構(gòu)成的一例的構(gòu)成圖。在該圖中,為了便于說明,提取并示出了與圖1所示車載網(wǎng)絡(luò)系統(tǒng)10的總線200連接的ecu中、作為具有不正常檢測功能的ecu的不正常檢測ecu(頭單元)100和作為正常ecu之一的ecu400a。在圖5中附記有不正常ecu2001,所述不正常ecu2001作為例如由于故障狀態(tài)或被攻擊者控制的狀態(tài)等而發(fā)送不正常數(shù)據(jù)幀的ecu。
不正常ecu2001、正常ecu400a以及不正常檢測ecu100經(jīng)由總線200,進行與電子設(shè)備控制相關(guān)的數(shù)據(jù)幀的收發(fā)等。
不正常檢測ecu100具有遵循can協(xié)議并發(fā)送數(shù)據(jù)幀和錯誤幀的功能,并具有監(jiān)視總線200,在不正常數(shù)據(jù)幀流經(jīng)總線200上的情況下,使用錯誤幀來阻止不正常數(shù)據(jù)幀的發(fā)送(即,將不正常數(shù)據(jù)幀無效化)的功能。
如圖5所示,不正常檢測ecu100具備運算部3001、通信控制部3002以及通信接口(通信i/f)3003。運算部3001和通信控制部3002構(gòu)成為能夠以有線或無線方式相互通信,通信控制部3002和通信i/f3003同樣地構(gòu)成為能夠以有線或無線方式相互通信。通信i/f3003是作為與總線200(can總線)連接并進行幀的收發(fā)的通信線路的can收發(fā)器等。通信控制部3002是作為控制總線200上的通信并進行與can協(xié)議相關(guān)的處理的處理器的can控制器,并具有:將經(jīng)由通信i/f3003接收到的信息設(shè)為可從運算部3001讀出的數(shù)據(jù)的功能、和根據(jù)來自運算部3001的指示,經(jīng)由通信i/f3003發(fā)送遵循can協(xié)議的數(shù)據(jù)幀或錯誤幀的功能。另外,作為can控制器的通信控制部3002包括錯誤計數(shù)器(發(fā)送錯誤計數(shù)器和接收錯誤計數(shù)器),進行錯誤計數(shù)器的操作和與錯誤計數(shù)器相應(yīng)的控制等。運算部3001由cpu(centralprocessingunit:中央處理單元)和存儲器構(gòu)成,通過由cpu執(zhí)行存儲在存儲器中的控制程序,控制通信控制部3002,并實現(xiàn)基于接收到的幀的處理和應(yīng)發(fā)送幀的生成等所涉及的各種功能。
ecu400a(正常ecu)具有:遵循can協(xié)議發(fā)送數(shù)據(jù)幀和錯誤幀的功能、在檢測出流經(jīng)總線200的數(shù)據(jù)的錯誤的情況下發(fā)送錯誤幀并將接收錯誤計數(shù)器增加(使之增加)的功能、以及在正常(無接收錯誤)接收到流經(jīng)總線200的數(shù)據(jù)幀時將接收錯誤計數(shù)器減少(使之減少)的功能。
如圖5所示,ecu400a具備構(gòu)成為能夠以有線或無線方式相互通信的運算部3011、通信控制部3012以及通信接口(通信i/f)3013。運算部3011、通信控制部3012以及通信i/f3013分別與運算部3001、通信控制部3002以及通信i/f3003同樣。通信控制部3012是can控制器,所述can控制器包括接收錯誤計數(shù)器,并遵循can協(xié)議,控制在總線200上的通信,在來自總線200的正常幀的接收成功的情況下,使接收錯誤計數(shù)器的值減少。此外,雖然在圖5中省略,但ecu400b~400d也具備與ecu400a同樣的構(gòu)成。
[1.7不正常檢測ecu100的功能構(gòu)成]
圖6是不正常檢測ecu(頭單元)100的功能框圖。
在功能方面,如圖6所示,不正常檢測ecu100具備接收部110和發(fā)送部120,發(fā)送部120具備不正常判定部121。接收部110和發(fā)送部120的功能由作為執(zhí)行控制程序的cpu的運算部3001實現(xiàn)。此外,雖然在這里省略說明,但作為頭單元的不正常檢測ecu100在與其他正常ecu之間進行數(shù)據(jù)幀的授受,能實現(xiàn)作為頭單元的各種功能(例如,汽車導(dǎo)航、音樂再現(xiàn)、動畫再現(xiàn)、網(wǎng)頁顯示、與智能手機的合作等功能)。
接收部110具有接收向總線200開始發(fā)送的幀的功能,通信控制部3002讀出與接收到的幀相關(guān)的數(shù)據(jù)。
不正常判定部121具有如下功能:根據(jù)由接收部110接收到的數(shù)據(jù)幀的數(shù)據(jù),檢測流經(jīng)總線200的數(shù)據(jù)幀是否是不正常幀。即,不正常判定部121針對數(shù)據(jù)幀進行對預(yù)先確定的判定規(guī)則的符合性的判定(數(shù)據(jù)幀是否不正常的判定)。判定規(guī)則只要是在車載網(wǎng)絡(luò)系統(tǒng)10中預(yù)先確定的規(guī)則即可,可以是任何規(guī)則。作為判定規(guī)則的例子,例如,可列舉如下規(guī)則:是具有記載在預(yù)先確定的消息id列表中的消息id的幀。另外,作為另一例子,例如,可列舉如下規(guī)則:接收到具有確定為定期發(fā)送的消息id的數(shù)據(jù)幀的時間間隔保持在預(yù)先確定的適當(dāng)周期正負(fù)一定余量的范圍內(nèi)。
發(fā)送部120具有:在由不正常判定部121檢測出不正常數(shù)據(jù)幀的情況下發(fā)送錯誤幀的功能、為了適當(dāng)?shù)乜刂普cu的接收錯誤計數(shù)器而在錯誤幀的發(fā)送后在一定條件下迅速地發(fā)送正常幀(遵循can協(xié)議的數(shù)據(jù)幀)的功能等。發(fā)送部120提供幀內(nèi)容并控制通信控制部3002,實現(xiàn)向總線200的幀的發(fā)送。
以下,說明關(guān)于在檢測出不正常幀的情況下的由不正常檢測ecu100進行的處理的各工作例。不正常檢測ecu100例如能夠通過運算部(cpu)3001執(zhí)行與各個處理對應(yīng)的控制程序來實現(xiàn)各工作例所涉及的工作。此外,以下說明的各工作例只不過是一例,例如,不正常檢測ecu100可以將以下多個工作例中的一部分處理步驟組合并執(zhí)行。
[1.8不正常檢測ecu100的工作例1]
圖7是表示本實施方式中的不正常檢測ecu100的工作例1涉及的處理步驟的流程圖。以下,參照該圖說明工作例1。
如圖7所示,首先,不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,用不正常判定部121判定由接收部110接收到的幀是否是不正常幀(步驟s401)。即,不正常檢測ecu100逐位接收并監(jiān)視由任一個ecu向總線200開始發(fā)送的幀,并判定是否符合判定規(guī)則。是否符合判定規(guī)則的判定也可以說是是否符合表示不正常的預(yù)定條件(不符合判定規(guī)則這一條件)的判定。例如,不正常ecu2001能發(fā)送雖然符合can協(xié)議但符合表示不正常的預(yù)定條件(不符合判定規(guī)則)的數(shù)據(jù)幀。由該不正常ecu2001發(fā)送的不正常數(shù)據(jù)幀能在步驟s401中判定為是不正常幀。通過在步驟s401中的判定,能檢測出不符合判定規(guī)則(即,符合了表示不正常的預(yù)定條件)的不正常幀。在沒有檢測出不正常幀的情況下,反復(fù)進行在步驟s401中的處理。
在檢測出不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s402)。該錯誤幀的發(fā)送在發(fā)送不正常幀的最末尾之前的定時進行,由此,在總線200上,不正常幀的至少一部分通過被錯誤幀覆寫而被無效化。因此,通過錯誤幀的發(fā)送,能阻止導(dǎo)致正常ecu接收不正常幀并執(zhí)行與該不正常幀對應(yīng)的功能處理等情況。接著,不正常檢測ecu100利用發(fā)送部120等發(fā)送遵循can協(xié)議的正常幀(正常數(shù)據(jù)幀)(步驟s403)。在步驟s403中的正常幀的發(fā)送例如在步驟s402中發(fā)送了錯誤幀之后,總線200最初成為空閑狀態(tài)(總線空閑)時進行。雖然在步驟s403中的正常幀的發(fā)送無需在總線200最初成為總線空閑的瞬間進行,但在降低由錯誤幀導(dǎo)致的對正常ecu的不良影響(接收錯誤計數(shù)器的增大)的觀點中,迅速地進行正常幀的發(fā)送是有用的。此外,在不正常檢測ecu100在步驟s402中發(fā)送錯誤幀并將不正常幀無效化的情況下,在不正常ecu2001立即反復(fù)進行不正常數(shù)據(jù)幀的發(fā)送時,不正常檢測ecu100也可以進一步進行錯誤幀的發(fā)送,也可以之后在成為總線空閑等時發(fā)送正常幀。
[1.9工作例1的效果]
在本實施方式的工作例1中,不正常檢測ecu100在使用錯誤幀進行不正常幀的發(fā)送阻止(無效化)時,接著發(fā)送正常數(shù)據(jù)幀。由于不正常檢測ecu100檢測不正常幀并發(fā)送錯誤幀,所以可以清楚的是:不是由接收節(jié)點導(dǎo)致的問題,而是由發(fā)送了不正常幀的發(fā)送節(jié)點導(dǎo)致的問題。因此,為了抑制使接收錯誤計數(shù)器增大而發(fā)送正常幀。由此,正常ecu的接收錯誤計數(shù)器被減少。即,通過由不正常檢測ecu100實現(xiàn)的錯誤幀發(fā)送后的正常幀的發(fā)送,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,可防止因為用于不正常幀的無效化的錯誤幀而限制了正常ecu的工作。
[1.10不正常檢測ecu100的工作例2]
圖8是表示本實施方式中的不正常檢測ecu100的工作例2所涉及的處理步驟的流程圖。以下,參照該圖說明工作例2。
不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,由不正常判定部121判定由接收部110接收到的幀是否是不正常幀(步驟s501)。在沒有檢測出不正常幀的情況下,反復(fù)進行在步驟s501中的處理。在檢測出不符合判定規(guī)則的不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s502)。此外,步驟s501、s502分別與上述步驟s401、s402同樣。
接著,不正常檢測ecu100利用發(fā)送部120等,發(fā)送數(shù)據(jù)字段的長度為0(零)的正常數(shù)據(jù)幀(步驟s503)。數(shù)據(jù)字段的長度為0的正常數(shù)據(jù)幀是遵循can協(xié)議的數(shù)據(jù)幀,由于在數(shù)據(jù)字段中不包括數(shù)據(jù),所以是dlc的值為0的數(shù)據(jù)幀。此外,在步驟s503中的數(shù)據(jù)字段的長度為0的正常數(shù)據(jù)幀的發(fā)送例如在步驟s502中發(fā)送了錯誤幀之后總線200最初成為總線空閑等時進行。
[1.11工作例2的效果]
在本實施方式的工作例2中,在不正常檢測ecu100使用錯誤幀進行了不正常幀的發(fā)送阻止(無效化)的情況下,之后發(fā)送正常數(shù)據(jù)幀。由此,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,由于為了減少正常ecu的接收錯誤計數(shù)器而利用不正常檢測ecu100發(fā)送的正常數(shù)據(jù)幀是數(shù)據(jù)字段的長度為0的數(shù)據(jù)幀,所以所發(fā)送的正常數(shù)據(jù)幀的總線占有時間變短,能抑制對總線帶寬的影響。
[1.12不正常檢測ecu100的工作例3]
圖9是表示本實施方式中的不正常檢測ecu100的工作例3所涉及的處理步驟的流程圖。以下,參照該圖說明工作例3。
不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,由不正常判定部121判定由接收部110接收到的幀是否是不正常幀(步驟s601)。在沒有檢測出不正常幀的情況下,反復(fù)進行在步驟s601中的處理。在檢測出不符合判定規(guī)則的不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s602)。此外,步驟s601、s602分別與上述步驟s401、s402同樣。
接著,不正常檢測ecu100利用發(fā)送部120等,發(fā)送具有在其他ecu中沒有被利用的id(消息id)的正常數(shù)據(jù)幀(步驟s603)。在其他ecu中沒有被利用的消息id是指:在車載網(wǎng)絡(luò)系統(tǒng)10中與總線200連接的、不正常檢測ecu100以外的、任一個ecu(ecu400a~400d)中,均沒有規(guī)定應(yīng)識別該消息id來進行的處理的消息id。例如,不正常檢測ecu100以外的、與總線200連接的任一個ecu均不發(fā)送0x200這一消息id的數(shù)據(jù)幀,并在接收到0x200這一消息id的數(shù)據(jù)幀時不執(zhí)行與該數(shù)據(jù)幀對應(yīng)的功能處理等的情況下,在步驟s603中,不正常檢測ecu100發(fā)送0x200這一消息id的正常數(shù)據(jù)幀。在步驟s603中發(fā)送的正常數(shù)據(jù)幀例如是數(shù)據(jù)字段的長度為0的數(shù)據(jù)幀這一方案是有用的,但也可以是,數(shù)據(jù)字段的長度不一定是0。此外,對于在步驟s603中的正常數(shù)據(jù)幀的發(fā)送,例如在通過步驟s602發(fā)送了錯誤幀之后總線200最初成為總線空閑等時進行。
[1.13工作例3的效果]
在本實施方式的工作例3中,在不正常檢測ecu100使用錯誤幀進行了不正常幀的發(fā)送阻止(無效化)的情況下,之后發(fā)送正常數(shù)據(jù)幀。由此,能抑制導(dǎo)致正常ecu的接收錯誤計數(shù)器單方面地增大這一情況,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,由于為了減少正常ecu的接收錯誤計數(shù)器而利用不正常檢測ecu100發(fā)送的正常數(shù)據(jù)幀的消息id是在其他ecu中沒有被利用的id,所以能防止接收到正常數(shù)據(jù)幀的正常ecu進行誤動作。
[1.14不正常檢測ecu100的工作例4]
圖10是表示本實施方式中的不正常檢測ecu100的工作例4所涉及的處理步驟的流程圖。以下,參照該圖說明工作例4。
不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,由不正常判定部121判定由接收部110接收到的幀是否是不正常幀(步驟s701)。即,不正常檢測ecu100逐位接收并監(jiān)視由任一個ecu開始發(fā)送給總線200的幀,并判定是否符合判定規(guī)則(是否符合表示不正常的預(yù)定條件)。由此,能檢測出不符合判定規(guī)則(即,符合表示不正常的預(yù)定條件)的不正常幀。在步驟s701中沒有檢測出不正常幀的情況下,跳過步驟s702和步驟s703,進入步驟s704中的處理。
在步驟s701中,在檢測出不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s702)。該錯誤幀的發(fā)送在發(fā)送不正常幀的最末尾之前的定時進行,由此,在總線200上,不正常幀的至少一部分通過被錯誤幀覆寫而被無效化。因此,通過錯誤幀的發(fā)送,能阻止正常ecu接收不正常幀并執(zhí)行與該不正常幀對應(yīng)的功能處理等情況。接著,不正常檢測ecu100將作為正常數(shù)據(jù)幀的發(fā)送管理用的計數(shù)器的正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器+1(增加)(步驟s703)。為了發(fā)送與已發(fā)送的錯誤幀的數(shù)量相同的正常幀而使用該正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器,正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的初始值為0(零),每當(dāng)發(fā)送錯誤幀時增加1,每當(dāng)正常數(shù)據(jù)幀發(fā)送成功時減少1。
在步驟s703之后或在步驟s701中沒有檢測出不正常幀的情況下,不正常檢測ecu100確認(rèn)正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值(步驟s704),如果是0,則轉(zhuǎn)移到步驟s701。
在步驟s704中,如果正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值不是0,則不正常檢測ecu100利用發(fā)送部120等發(fā)送正常數(shù)據(jù)幀(步驟s705)。通過對成為總線空閑的總線200逐位送出正常數(shù)據(jù)幀來進行在步驟s705中的正常數(shù)據(jù)幀的發(fā)送。不正常檢測ecu100判定該正常數(shù)據(jù)幀的發(fā)送是否成功(步驟s706)。在步驟s706中,針對在步驟s705中開始向總線200逐位送出的正常數(shù)據(jù)幀,由于有可能由其他ecu同時發(fā)送數(shù)據(jù)幀,所以作為can中的通信仲裁的結(jié)果等,判定發(fā)送是否成功。發(fā)送是否成功的判定例如根據(jù)已發(fā)送的正常數(shù)據(jù)幀與出現(xiàn)在總線200上的位值是否一致來進行,或者,例如也可以是,根據(jù)針對已發(fā)送的正常數(shù)據(jù)幀的、出現(xiàn)在總線200上的ack間隙是否為顯性等來進行。此外,也可以是,不正常檢測ecu100的運算部(cpu)3001通過從通信控制部(can控制器)3002接受能夠識別發(fā)送是否成功的發(fā)送完成通知等,來判定發(fā)送是否成功。在步驟s706中,在判定為正常數(shù)據(jù)幀的發(fā)送成功了的情況下,不正常檢測ecu100將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器-1(減少)(步驟s707),并轉(zhuǎn)移到步驟s701。
在步驟s706中,由于通信仲裁失敗等而判定為正常數(shù)據(jù)幀的發(fā)送不成功(即,發(fā)送失敗)的情況下,不正常檢測ecu100跳過步驟s707,轉(zhuǎn)移到步驟s701。由此,在正常數(shù)據(jù)幀的發(fā)送失敗的情況下,通過不正常檢測ecu100的發(fā)送部120等再次發(fā)送正常數(shù)據(jù)幀。不正常檢測ecu100在步驟s702中發(fā)送錯誤幀并將不正常幀無效化了的情況下,例如在不正常ecu2001立即反復(fù)進行不正常數(shù)據(jù)幀的發(fā)送時,不正常檢測ecu100在步驟s705中將要發(fā)送的正常數(shù)據(jù)幀有可能因該不正常數(shù)據(jù)幀而通信仲裁失敗。即使在這樣的情況下,不正常檢測ecu100遲早也能按照正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器,發(fā)送正常數(shù)據(jù)幀。
[1.15工作例4的效果]
在本實施方式的工作例4中,在不正常檢測ecu100使用錯誤幀進行了不正常幀的發(fā)送阻止(無效化)的情況下,之后發(fā)送正常數(shù)據(jù)幀。由此,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,不正常檢測ecu100使用正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器,發(fā)送與已發(fā)送的錯誤幀的數(shù)量相同的正常數(shù)據(jù)幀。由此,即使在萬一正常數(shù)據(jù)幀因通信仲裁等而暫時不能發(fā)送的情況下,也能保證為了減少正常ecu的接收錯誤計數(shù)器而發(fā)送正常數(shù)據(jù)幀這一情況。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。
[1.16不正常檢測ecu100的工作例5]
圖11是表示本實施方式中的不正常檢測ecu100的工作例5所涉及的處理步驟的流程圖。以下,參照該圖說明工作例5。
不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,由不正常判定部121判定由接收部110接收到的幀是否是不正常幀(即,是否符合表示不正常的預(yù)定條件)(步驟s801)。在步驟s801中沒有檢測出不正常幀的情況下,跳過步驟s802和步驟s803,進入步驟s804中的處理。
在步驟s801中,在檢測出不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s802)。接著,不正常檢測ecu100將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器+1(增加),所述正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器是正常數(shù)據(jù)幀的發(fā)送管理用的計數(shù)器(步驟s803)。
在步驟s803之后或在步驟s801中沒有檢測出不正常幀的情況下,不正常檢測ecu100確認(rèn)正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值(步驟s804),如果是0,則轉(zhuǎn)移到步驟s801。
在步驟s804中,如果正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值不是0,則不正常檢測ecu100利用發(fā)送部120等發(fā)送正常數(shù)據(jù)幀(步驟s805)。接著,不正常檢測ecu100判定該正常數(shù)據(jù)幀的發(fā)送是否成功(步驟s806)。在步驟s806中,在判定為正常數(shù)據(jù)幀的發(fā)送成功的情況下,不正常檢測ecu100將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器-1(減少)(步驟s807),并轉(zhuǎn)移到步驟s808。
在步驟s806中,在由于通信仲裁失敗等而判定為正常數(shù)據(jù)幀的發(fā)送不成功的情況下,不正常檢測ecu100跳過步驟s807,轉(zhuǎn)移到步驟s808。
此外,步驟s801、s802、s803、s804、s805、s806、s807分別與上述步驟s701、s702、s703、s704、s705、s706、s707同樣。
在步驟s807之后或在步驟s806中判定為正常數(shù)據(jù)幀的發(fā)送不成功的情況下,不正常檢測ecu100確認(rèn)(判定)正常數(shù)據(jù)幀是否流經(jīng)總線200上(步驟s808)。具體而言,在步驟s808中,不正常檢測ecu100例如確認(rèn)是否從總線200接收到遵循can協(xié)議且不是不正常幀(即,不符合表示不正常的預(yù)定條件)的正常數(shù)據(jù)幀。在步驟s808中,在判定為正常數(shù)據(jù)幀沒有流經(jīng)總線200上的情況下,跳過步驟s809和步驟s810并轉(zhuǎn)移到步驟s801。
在步驟s808中確認(rèn)了正常數(shù)據(jù)幀流經(jīng)總線200上的情況下,只要正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器比0大(步驟s809),不正常檢測ecu100將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器-1(減少)(步驟s810),并轉(zhuǎn)移到步驟s801。為了發(fā)送從已發(fā)送的錯誤幀的數(shù)量減去在發(fā)送錯誤幀后從總線200接收到不是不正常幀的正常數(shù)據(jù)幀的數(shù)量得到的數(shù)量以上的正常數(shù)據(jù)幀,而使用該正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器。正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的初始值為0,基本上與錯誤幀的發(fā)送對應(yīng)地增加,在正常數(shù)據(jù)幀的發(fā)送成功的情況下或由其他ecu向總線200上發(fā)送了正常數(shù)據(jù)幀的情況下對應(yīng)地減少。
[1.17工作例5的效果]
在本實施方式的工作例5中,在不正常檢測ecu100使用錯誤幀進行不正常幀的發(fā)送阻止(無效化)的情況下,之后發(fā)送正常數(shù)據(jù)幀。由此,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大這一情況,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,不正常檢測ecu100使用正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器,使與已發(fā)送錯誤幀的數(shù)量相同的正常數(shù)據(jù)幀流經(jīng)總線200上。由此,即使在萬一正常數(shù)據(jù)幀因通信仲裁等而暫時不能發(fā)送的情況下,也能保證為了減少正常ecu的接收錯誤計數(shù)器而發(fā)送正常數(shù)據(jù)幀。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,不正常檢測ecu100使為了減少正常ecu的接收錯誤計數(shù)器而自己將要發(fā)送的正常數(shù)據(jù)幀的數(shù)量減少與流經(jīng)總線200的正常數(shù)據(jù)幀的數(shù)量相應(yīng)的數(shù)量。由此,為了減少正常ecu的接收錯誤計數(shù)器而發(fā)送的正常數(shù)據(jù)幀的總線占有時間變短,能抑制對總線帶寬的影響。
[1.18不正常檢測ecu100的工作例6]
圖12是表示本實施方式中的不正常檢測ecu100的工作例6所涉及的處理步驟的流程圖。以下,參照該圖說明工作例6。
不正常檢測ecu100監(jiān)視流經(jīng)總線200的幀,由不正常判定部121判定由接收部110接收到的幀是否是不正常幀(即,是否符合表示不正常的預(yù)定條件)(步驟s901)。在步驟s901中沒有檢測出不正常幀的情況下,跳過步驟s902和步驟s903,進入步驟s904中的處理。
在步驟s901中,在檢測出不正常幀的情況下,不正常檢測ecu100利用發(fā)送部120等發(fā)送錯誤幀(步驟s902)。接著,不正常檢測ecu100將作為正常數(shù)據(jù)幀的發(fā)送管理用的計數(shù)器的正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器+1(增加)(步驟s903)。
在步驟s903之后或在步驟s901中沒有檢測出不正常幀的情況下,不正常檢測ecu100確認(rèn)正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值(步驟s904),如果是0,則轉(zhuǎn)移到步驟s901。
如果在步驟s904中正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值不是0,且如果正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值比閾值大(步驟s905),則不正常檢測ecu100將在步驟s907中將要發(fā)送的正常數(shù)據(jù)幀的id字段所包括的消息id的值變更為更小的值(步驟s906)。在can中,消息id的值越小,則在總線上的通信仲裁中優(yōu)先級越高。正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的初始值為0,閾值是0以上的預(yù)先確定的值,例如可取0、1、5等這樣的值。如果閾值為0,則在正常數(shù)據(jù)幀的發(fā)送失敗的情況下,能將正常數(shù)據(jù)幀所使用的消息id變更為更小的值。另外,在正常數(shù)據(jù)幀的發(fā)送失敗的情況下,在一定條件下(例如,超過1以上的閾值的條件之下),可以將正常數(shù)據(jù)幀所使用的消息id變更為優(yōu)先級更高的的消息id。例如,作為正常數(shù)據(jù)幀的消息id的初始值,使用了can的通信仲裁中的優(yōu)先級比較低時的、大的值的消息id,在因通信仲裁失敗等而發(fā)送失敗,且應(yīng)發(fā)送的正常數(shù)據(jù)幀的數(shù)量增加等情況下,在步驟s906的處理中,變更為比其優(yōu)先級更高的消息id(即,消息id的值更小的消息id)。
在步驟s905中在正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器的值不比閾值大的情況下,或者在步驟s906之后,不正常檢測ecu100利用發(fā)送部120等發(fā)送正常數(shù)據(jù)幀(步驟s907)。
接著,不正常檢測ecu100判定該正常數(shù)據(jù)幀的發(fā)送是否成功(步驟s908)。在步驟s908中,在判定為正常數(shù)據(jù)幀的發(fā)送成功的情況下,不正常檢測ecu100將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器-1(減少)(步驟s909),并轉(zhuǎn)移到步驟s910。
在步驟s908中,在由于通信仲裁失敗等判定為正常數(shù)據(jù)幀的發(fā)送不成功的情況下,不正常檢測ecu100跳過步驟s909,轉(zhuǎn)移到步驟s910。
在步驟s909之后或在步驟s908中判定為正常數(shù)據(jù)幀的發(fā)送不成功的情況下,不正常檢測ecu100確認(rèn)(判定)正常數(shù)據(jù)幀是否流經(jīng)總線200上(步驟s910)。在步驟s910中,在判定為正常數(shù)據(jù)幀沒有流經(jīng)總線200上的情況下,跳過步驟s911和步驟s912并轉(zhuǎn)移到步驟s901。
在步驟s910中確認(rèn)了正常數(shù)據(jù)幀流經(jīng)總線200上的情況下,只要正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器比0大(步驟s911),不正常檢測ecu100就將正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器-1(減少)(步驟s912),并轉(zhuǎn)移到步驟s901。
此外,步驟s901~s904、s907~s912分別與上述步驟s801~s804、s805~s810同樣。另外,也可以是,不正常檢測ecu100在某些定時(例如,在正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器成為0等時),使在步驟s906中變更為更小的值的、將要發(fā)送正常數(shù)據(jù)幀中的消息id返回初始值。
[1.19工作例6的效果]
在本實施方式的工作例6中,在不正常檢測ecu100使用錯誤幀進行了不正常幀的發(fā)送阻止(無效化)的情況下,之后發(fā)送正常數(shù)據(jù)幀。由此,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大這一情況,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,不正常檢測ecu100使用正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器,使與已發(fā)送的錯誤幀的數(shù)量相同的正常數(shù)據(jù)幀流經(jīng)總線200上。由此,即使在萬一正常數(shù)據(jù)幀由于通信仲裁等而暫時不能發(fā)送的情況下,也能保證為了減少正常ecu的接收錯誤計數(shù)器而發(fā)送正常數(shù)據(jù)幀這一情況。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。另外,不正常檢測ecu100使為了減少正常ecu的接收錯誤計數(shù)器而自己將要發(fā)送的正常數(shù)據(jù)幀的數(shù)量減少與流經(jīng)總線200的正常數(shù)據(jù)幀的數(shù)量對應(yīng)的數(shù)量。由此,為了減少正常ecu的接收錯誤計數(shù)器而將要發(fā)送的正常數(shù)據(jù)幀的總線占有時間變短,能抑制對總線帶寬的影響。另外,在正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器超過某閾值的情況下,不正常檢測ecu100使為了減少正常ecu的接收錯誤計數(shù)器而將要發(fā)送的正常數(shù)據(jù)幀的優(yōu)先級提高。由此,最初發(fā)送使用了優(yōu)先級低的消息id的正常數(shù)據(jù)幀,能夠抑制對其他ecu的通信的影響。而且,在正常數(shù)據(jù)幀發(fā)送次數(shù)計數(shù)器超過某閾值的情況下,將正常數(shù)據(jù)幀所使用的消息id變更為優(yōu)先級更高的消息id,在通信仲裁中難以失敗,能夠確保正常ecu的接收錯誤計數(shù)器的減少的執(zhí)行。
(實施方式2)
以下,說明將實施方式1所示的車載網(wǎng)絡(luò)系統(tǒng)10的一部分變形而成的車載網(wǎng)絡(luò)系統(tǒng)。
本實施方式涉及的車載網(wǎng)絡(luò)系統(tǒng)具備與總線200和另一總線1200雙方連接的不正常檢測ecu100a,所述總線200連接有實施方式1所示的ecu400a等。不正常檢測ecu100a是將實施方式1所示的不正常檢測ecu100的一部分變形而成的ecu,除了當(dāng)檢測出不正常幀時發(fā)送錯誤幀的不正常檢測功能外,還具有在總線間傳送數(shù)據(jù)幀的傳送功能。
[2.1不正常檢測ecu100a的構(gòu)成]
圖13是表示不正常檢測ecu100a等的構(gòu)成的一例的構(gòu)成圖。在該圖中,除了圖5所示的總線200、與該總線200連接的ecu400a和不正常ecu2001以外,還示出了總線1200、與總線1200連接的正常ecu1400、不正常ecu2011以及與總線200和總線1200雙方連接的不正常檢測ecu100a。正常ecu1400具有與實施方式1所示的ecu400a同樣的構(gòu)成和功能。此外,不正常ecu2011例如是由于故障狀態(tài)或被攻擊者控制的狀態(tài)等而發(fā)送不正常數(shù)據(jù)幀的ecu。
不正常檢測ecu100a具有遵循can協(xié)議并發(fā)送數(shù)據(jù)幀和錯誤幀的功能,并具有監(jiān)視總線200,在不正常數(shù)據(jù)幀流經(jīng)總線200上的情況下,使用錯誤幀來阻止不正常數(shù)據(jù)幀的發(fā)送(即,將不正常數(shù)據(jù)幀無效化)的功能。另外,不正常檢測ecu100a具有在總線200與總線1200之間,在一定條件下從一方總線向另一方總線傳送數(shù)據(jù)幀的傳送功能。利用具有該傳送功能的不正常檢測ecu100a,例如能夠進行在與總線200連接的正常ecu400a、和與總線1200連接的正常ecu1400之間的數(shù)據(jù)幀(消息)的授受。
在總線200中,收發(fā)遵循can協(xié)議的幀,在總線1200中也同樣地能收發(fā)遵循can協(xié)議的幀。此外,在總線1200上的通信中使用的協(xié)議可以不一定與在總線200上的通信中使用的協(xié)議一致,例如,可以設(shè)為:在總線200上的通信中使用can協(xié)議,在總線1200上的通信中使用can-fd(canwithflexibledatarate:具有靈活的數(shù)據(jù)速率的can)協(xié)議。在兩條總線的協(xié)議不一致的情況下,不正常檢測ecu100a例如可以具有在幀的傳送時進行協(xié)議轉(zhuǎn)換的功能(網(wǎng)關(guān)功能)。在這里,設(shè)為在總線200上的通信中、總線1200上的通信中均使用can協(xié)議來繼續(xù)說明。
如圖13所示,不正常檢測ecu100a具備運算部3001a、通信控制部3002、通信控制部3002a、通信i/f3003以及通信i/f3003a。運算部3001a與通信控制部3002、3002a構(gòu)成為能夠以有線或無線方式相互通信,通信控制部3002與通信i/f3003構(gòu)成為能夠以有線或無線方式相互通信,通信控制部3002a與通信i/f3003a同樣地構(gòu)成為能夠以有線或無線方式相互通信。在圖13中,關(guān)于與圖5所示的構(gòu)成要素同樣的構(gòu)成要素,賦予相同的標(biāo)號并在這里省略說明。通信i/f3003a是作為與can總線(總線1200)連接并進行幀的收發(fā)的通信線路的can收發(fā)器等。通信控制部3002a是作為控制總線1200上的通信并進行與can協(xié)議相關(guān)的處理的處理器的can控制器,并具有:將經(jīng)由通信i/f3003a接收到的信息設(shè)為能從運算部3001a讀出的數(shù)據(jù)的功能、和根據(jù)來自運算部3001a的指示,經(jīng)由通信i/f3003a發(fā)送遵循can協(xié)議的數(shù)據(jù)幀或錯誤幀的功能。另外,作為can控制器的通信控制部3002a包括錯誤計數(shù)器(發(fā)送錯誤計數(shù)器和接收錯誤計數(shù)器),進行錯誤計數(shù)器的操作和與錯誤計數(shù)器相應(yīng)的控制等。運算部3001a由cpu和存儲器構(gòu)成,通過由cpu執(zhí)行存儲在存儲器中的控制程序,從而控制通信控制部3002、3002a,實現(xiàn)基于接收到的幀的處理和應(yīng)發(fā)送的幀的生成等所涉及的各種功能。
正常ecu400a、正常ecu1400以及不正常檢測ecu100a經(jīng)由總線200或總線1200,進行與電子設(shè)備控制相關(guān)的數(shù)據(jù)幀的收發(fā)等。
[2.2不正常檢測ecu100a的功能構(gòu)成]
圖14是不正常檢測ecu100a的功能框圖。
在功能方面,如圖14所示,不正常檢測ecu100a具備接收部110a和發(fā)送部120a,發(fā)送部120a具備不正常判定部121。接收部110a和發(fā)送部120a的功能由作為執(zhí)行控制程序的cpu的運算部3001a實現(xiàn)。此外,不正常檢測ecu100a例如可以具有作為頭單元的各種功能(例如汽車導(dǎo)航等功能)。
接收部110a具有接收向總線200或總線1200開始發(fā)送的幀的功能,通信控制部3002或通信控制部3002a讀出與接收到的幀相關(guān)的數(shù)據(jù)。
不正常判定部121與實施方式1所示的不正常判定部121同樣(參照圖6),具有根據(jù)由接收部110a接收到的數(shù)據(jù)幀的數(shù)據(jù),檢測該數(shù)據(jù)幀是否是不正常幀的功能。即,不正常判定部121針對數(shù)據(jù)幀進行對預(yù)先確定的判定規(guī)則的符合性的判定(數(shù)據(jù)幀是否不正常的判定)。
發(fā)送部120a具有:在由不正常判定部121檢測出不正常數(shù)據(jù)幀的情況下判別在總線200和總線1200中的哪一條總線上發(fā)送了不正常幀并向發(fā)送了該不正常幀的總線發(fā)送錯誤幀的功能、和為了適當(dāng)?shù)乜刂普cu的接收錯誤計數(shù)器而在錯誤幀的發(fā)送后在一定條件下迅速地發(fā)送正常幀(遵循在該總線上的通信中使用的can協(xié)議的數(shù)據(jù)幀)的功能。發(fā)送部120a通過在發(fā)送不正常數(shù)據(jù)幀的最末尾之前向被發(fā)送了該不正常數(shù)據(jù)幀的總線上發(fā)送錯誤幀,從而阻止不正常數(shù)據(jù)幀的發(fā)送(將不正常數(shù)據(jù)幀無效化)。發(fā)送部120a提供幀內(nèi)容并控制通信控制部3002或通信控制部3002a,實現(xiàn)向總線200或總線1200的幀的發(fā)送。
以下,說明關(guān)于在檢測出不正常幀的情況下的由不正常檢測ecu100a進行的處理的工作例。不正常檢測ecu100a例如通過運算部(cpu)3001a執(zhí)行控制程序,從而可實現(xiàn)該工作例所涉及的工作。
[2.3不正常檢測ecu100a的工作例]
圖15是表示本實施方式中的不正常檢測ecu100a的工作例涉及的處理步驟的流程圖。以下,參照該圖說明不正常檢測ecu100a的工作例。
不正常檢測ecu100a監(jiān)視流經(jīng)總線200和總線1200的幀,由不正常判定部121判定由接收部110a從總線200和總線1200中的某一個接收到的幀是否是不正常幀(步驟s101)。即,不正常檢測ecu100a逐位接收并監(jiān)視由某一個ecu向總線200或總線1200開始發(fā)送的幀,并判定是否符合判定規(guī)則。是否符合判定規(guī)則的判定也可以說是是否符合表示不正常的預(yù)定條件(不符合判定規(guī)則這樣的條件)的判定。由此,能檢測不符合判定規(guī)則(即,符合表示不正常的預(yù)定條件)的不正常幀。在沒有檢測出不正常幀的情況下,反復(fù)進行在步驟s101中的處理。
在檢測出不正常幀的情況下,不正常檢測ecu100a判別在總線200和總線1200中的哪一條總線上發(fā)送了不正常幀(步驟s102)。
在步驟s102中判別為在總線200上發(fā)送了不正常幀的情況下,不正常檢測ecu100a利用發(fā)送部120a等,向發(fā)送了該不正常幀的總線200發(fā)送錯誤幀(步驟s103)。在發(fā)送不正常幀的最末尾之前的定時進行該錯誤幀的發(fā)送,由此,在總線200上,不正常幀的至少一部分通過被錯誤幀覆寫而被無效化。因此,通過錯誤幀的發(fā)送,能阻止正常ecu400a等接收不正常幀而執(zhí)行與該不正常幀對應(yīng)的功能處理等情況。接著,不正常檢測ecu100a利用發(fā)送部120等,向總線200發(fā)送遵循can協(xié)議的正常幀(正常數(shù)據(jù)幀)(步驟s104)。在步驟s104中的正常幀的發(fā)送例如在步驟s103中向總線200發(fā)送了錯誤幀之后,總線200最初成為總線空閑時進行。此外,雖然在步驟s104中的正常幀的發(fā)送不一定必須在總線200最初成為總線空閑的瞬間進行,但在降低由錯誤幀導(dǎo)致的對正常ecu的不良影響(接收錯誤計數(shù)器的增大)的觀點中,迅速地進行正常幀的發(fā)送是有用的。
在步驟s102中判別為在總線1200上發(fā)送了不正常幀的情況下,不正常檢測ecu100a利用發(fā)送部120a等,向發(fā)送了該不正常幀的總線1200發(fā)送錯誤幀(步驟s105)。接著,不正常檢測ecu100a利用發(fā)送部120等,向總線1200發(fā)送遵循can協(xié)議的正常幀(正常數(shù)據(jù)幀)(步驟s106)。步驟s105和步驟s106的除了發(fā)送目的地的總線為總線1200這一點以外,與步驟s103和步驟s104同樣。在步驟s105中錯誤幀的發(fā)送在發(fā)送不正常幀的最末尾之前的定時進行,由此,在總線1200上,不正常幀的至少一部分通過被錯誤幀覆寫而被無效化。因此,通過錯誤幀的發(fā)送,能阻止正常ecu1400等接收不正常幀并執(zhí)行與該不正常幀對應(yīng)的功能處理等情況。此外,在步驟s104或步驟s106中發(fā)送的正常數(shù)據(jù)幀例如是數(shù)據(jù)字段的長度為0的數(shù)據(jù)幀這一情況是有用的,但也可以是,數(shù)據(jù)字段的長度不一定是0。另外,在步驟s104或步驟s106中發(fā)送的正常數(shù)據(jù)幀的消息id是在其他ecu中沒有被利用的消息id這一情況是有用的。在這里,在其他ecu中沒有被利用的消息id是指:例如在向總線200發(fā)送正常數(shù)據(jù)幀的情況下,與總線200連接的、不正常檢測ecu100a以外的任一個ecu中,均沒有識別該消息id并確定應(yīng)進行的處理的消息id。另外,在其他ecu中沒有被利用的消息id是指:例如在向總線1200發(fā)送正常數(shù)據(jù)幀的情況下,與總線1200連接的不正常檢測ecu100a以外的任一個ecu中,均沒有識別該消息id并確定應(yīng)進行的處理的消息id。
此外,在總線200上接收到不是不正常數(shù)據(jù)幀的數(shù)據(jù)幀的情況下,不正常檢測ecu100a能基于預(yù)先確定的傳送規(guī)則,將該數(shù)據(jù)幀傳送給總線1200。另外,在總線1200上接收到不是不正常數(shù)據(jù)幀的數(shù)據(jù)幀的情況下,不正常檢測ecu100a能基于預(yù)先確定的傳送規(guī)則,將該數(shù)據(jù)幀傳送給總線200。但是,不正常檢測ecu100a在接收到不正常數(shù)據(jù)幀的情況下,不進行傳送。
[2.4實施方式2的效果]
在本實施方式中,在不正常檢測ecu100a使用錯誤幀進行不正常幀的發(fā)送阻止(無效化)時,接著發(fā)送正常數(shù)據(jù)幀。由于不正常檢測ecu100a檢測不正常幀并發(fā)送錯誤幀,所以可以清楚:不是由接收節(jié)點導(dǎo)致的問題而是由發(fā)送了不正常幀的發(fā)送節(jié)點導(dǎo)致的問題。因此,為了抑制使接收錯誤計數(shù)器增大而發(fā)送正常幀。由此,正常ecu的接收錯誤計數(shù)器被減少。即,通過由不正常檢測ecu100a實現(xiàn)的發(fā)送錯誤幀之后的正常幀的發(fā)送,能抑制正常ecu的接收錯誤計數(shù)器單方面地增大,并能降低正常ecu轉(zhuǎn)移到被動狀態(tài)的可能性。因此,能防止因用于不正常幀的無效化的錯誤幀而導(dǎo)致正常ecu的工作受限這一情況。通過不正常檢測ecu100a僅對檢測出不正常幀的總線進行用于將不正常幀無效化的錯誤幀的發(fā)送、和用于抑制接收錯誤計數(shù)器的增加的正常數(shù)據(jù)幀的發(fā)送,能抑制在某總線上發(fā)生的不正常幀的影響波及到其他總線。
(其他實施方式)
以上,作為本公開涉及的技術(shù)的例示對實施方式1、2進行了說明。然而,本公開涉及的技術(shù)不限定于此,也能夠應(yīng)用于適當(dāng)進行了變更、置換、附加以及省略等的實施方式。例如,以下變形例也包括于本公開的一個實施方式。
(1)在上述實施方式中,示出了不正常檢測ecu100的發(fā)送部120在向總線200的錯誤幀的發(fā)送后接著向總線200發(fā)送正常數(shù)據(jù)幀(正常幀)的例子,但也可以是,發(fā)送部120在從該錯誤幀的發(fā)送后到正常幀的發(fā)送之前為止,在從總線200接收到不符合表示不正常的預(yù)定條件的正常幀時,抑制正常幀的該發(fā)送。
(2)在上述實施方式中,以標(biāo)準(zhǔn)id格式記述了can協(xié)議中的數(shù)據(jù)幀,但也可以是擴展id格式。
(3)在上述實施方式中,示出了不正常檢測ecu是頭單元的一例,但不正常檢測ecu是具有不正常檢測功能的ecu即可,不一定必須具有作為頭單元的功能。
(4)在上述實施方式中,將車載網(wǎng)絡(luò)系統(tǒng)作為例子進行了說明,但只要是連接遵循can協(xié)議進行通信的多個ecu的網(wǎng)絡(luò),上述不正常檢測ecu100、100a可不限于利用在車載網(wǎng)絡(luò)中,例如,能利用在由can總線將搭載于產(chǎn)業(yè)機械、機器人等的多個ecu間連接而成的網(wǎng)絡(luò)中。
(5)上述的can協(xié)議可以具有如下的廣義含義:也包含ttcan(time-triggeredcan:時間觸發(fā)can)、can-fd(canwithflexibledatarate:具有靈活的數(shù)據(jù)速率的can)等派生性協(xié)議。
(6)上述實施方式中的各ecu(包括不正常檢測ecu)例如是包含處理器、存儲器等數(shù)字電路、模擬電路以及通信線路等的裝置,但也可以包含硬盤裝置、顯示器、鍵盤以及鼠標(biāo)等其他硬件構(gòu)成要素。另外,也可以通過專用硬件(數(shù)字電路等)實現(xiàn)功能,取代通過處理器執(zhí)行存儲于存儲器的控制程序而軟件性地實現(xiàn)該功能。另外,各ecu中的cpu、can控制器、can收發(fā)器等構(gòu)成要素只不過為一例,這些各構(gòu)成要素可以是用任意的單位結(jié)合或分離的集成電路等。
(7)構(gòu)成上述實施方式中的各裝置的構(gòu)成要素的一部分或全部可以由一個系統(tǒng)lsi(largescaleintegration:大規(guī)模集成電路)構(gòu)成。系統(tǒng)lsi是將多個構(gòu)成部集成在一個芯片上制造而成的超多功能lsi,具體而言,是包括微處理器、rom以及ram等而構(gòu)成的計算機系統(tǒng)。在所述ram中記錄有計算機程序。通過所述微處理器按照所述計算機程序工作,系統(tǒng)lsi實現(xiàn)該功能。另外,構(gòu)成上述各裝置的構(gòu)成要素的各部分既可以形成為獨立的單片,也可以形成為包含一部分或全部的單片。另外,在這里,設(shè)為系統(tǒng)lsi,但根據(jù)集成度的不同,有時也稱呼為ic、lsi、超級lsi以及大規(guī)模lsi。另外,集成電路化的方法不限于lsi,也可以由專用電路或通用處理器實現(xiàn)。在lsi制造后,也可以利用可編程的fpga(fieldprogrammablegatearray:現(xiàn)場可編程門陣列)、能夠?qū)si內(nèi)部的電路單元的連接、設(shè)定重新構(gòu)建的可重構(gòu)處理器。進而,如果因半導(dǎo)體技術(shù)的進步或派生的其他技術(shù)出現(xiàn)代替lsi的集成電路化的技術(shù),當(dāng)然也可以使用該技術(shù)進行功能塊的集成化。也有可能應(yīng)用生物技術(shù)等。
(8)構(gòu)成上述各裝置的構(gòu)成要素的一部分或全部可以由可拆裝于各裝置的ic卡或單個模塊構(gòu)成。所述ic卡或所述模塊是由微處理器、rom以及ram等構(gòu)成的計算機系統(tǒng)。所述ic卡或所述模塊也可以包含上述的超多功能lsi。通過微處理器按照計算機程序工作,所述ic卡或所述模塊實現(xiàn)該功能。該ic卡或該模塊也可以具有防篡改性。
(9)作為本公開的一個技術(shù)方案,可以設(shè)為在上述車載網(wǎng)絡(luò)中用于不正常幀的無效化及其影響的降低化的通信方法等方法。例如,通信方法包括:接收步驟,接收向can總線開始發(fā)送的幀;和發(fā)送步驟,在該接收步驟中接收到的幀符合表示不正常的預(yù)定條件的情況下,在發(fā)送該幀的最末尾之前向該總線發(fā)送錯誤幀,在錯誤幀的發(fā)送后向該總線發(fā)送作為遵循can協(xié)議的幀的正常幀。另外,既可以是利用計算機實現(xiàn)該方法的計算機程序,也可以是由所述計算機程序構(gòu)成的數(shù)字信號。另外,作為本公開的一個技術(shù)方案,也可以將所述計算機程序或所述數(shù)字信號記錄于計算機可讀取的記錄介質(zhì),例如軟盤、硬盤、cd-rom、mo、dvd、dvd-rom、dvd-ram、bd(blu-ray(注冊商標(biāo))disc)以及半導(dǎo)體存儲器等。另外,也可以是記錄在這些記錄介質(zhì)中的所述數(shù)字信號。另外,作為本公開的一個技術(shù)方案,也可以經(jīng)由電通信線路、無線或有線通信線路、以互聯(lián)網(wǎng)為代表的網(wǎng)絡(luò)以及數(shù)據(jù)廣播等傳送所述計算機程序或所述數(shù)字信號。另外,作為本公開的一個技術(shù)方案,是具備微處理器和存儲器的計算機系統(tǒng),所述存儲器記錄有上述計算機程序,所述微處理器按照所述計算機程序工作。另外,也可以將所述程序或所述數(shù)字信號記錄于所述記錄介質(zhì)并移送,或經(jīng)由所述網(wǎng)絡(luò)等移送所述程序或所述數(shù)字信號,由此利用其他獨立的計算機系統(tǒng)實施。
(10)通過任意組合上述實施方式和上述變形例所示的各構(gòu)成要素和功能而實現(xiàn)的方式也包括在本公開的范圍內(nèi)。
產(chǎn)業(yè)上的可利用性
本公開能利用于檢測在網(wǎng)絡(luò)中發(fā)送的不正常幀并將其無效化的車載網(wǎng)絡(luò)系統(tǒng)等。
標(biāo)號說明
10車載網(wǎng)絡(luò)系統(tǒng)
100、100a不正常檢測電子控制單元(不正常檢測ecu)
110、110a接收部
120、120a發(fā)送部
121不正常判定部
200、1200總線310發(fā)動機320制動器330門開閉傳感器
340窗開閉傳感器400a、400b、400c、400d、1400電子控制單元(ecu)
2001、2011不正常ecu
3001、3001a、3011運算部(cpu)
3002、3002a、3012通信控制單元(can控制器)
3003、3003a、3013通信接口(通信i/f)